Le but de cet outil est d'exécuter un ensemble donné de règles YARA dans le dossier node_module donné.
Avec cette approche, nous pouvons définir les règles YARA pour identifier les scripts suspects qui sont injectés dans des packages de nœuds.
Principalement inspiré par ces articles.
Ce package peut être ajouté au pipeline CI/CD comme mentionné ci-dessous (intégration CI / CD).
git clone https://github.com/rpgeeganage/audit-node-modules-with-yara.gitmake NODE_MODULE_FOLDER_TO_AUDIT= < path to node_module > runmake NODE_MODULE_FOLDER_TO_AUDIT=../restful4up/node_modules run Le rapport est disponible dans artifacts/output.json .
[
{
"rule" : " evil_package_1 " ,
"string_information" : [
" 0x6:$name: " name " : " nodecaffe " , " ,
" 0x1f:$version: " version " : " 0.0.1 " "
]
},
{
"rule" : " evil_package_2 " ,
"string_information" : [
" 0x6:$name: " name " : " sqlserver " , " ,
" 0x1f:$version: " version " : " 4.0.5 " "
]
},
{
"rule" : " evil_package_3 " ,
"string_information" : [
" 0x1d:$scripts: " scripts " : " ,
" 0x39:$install: " mkdir -p ~/Desktop/sploit && touch ~/Desktop/sploit/haxx " "
]
}
] Nous pouvons utiliser cet outil avec CI/CD comme mentionné ci-dessous.
#! /bin/bash
make NODE_MODULE_FOLDER_TO_AUDIT=../restful4up/node_modules run
suspicious_file_count= $( jq length artifacts/output.json )
exit $suspicious_file_count Lorsque nous devons ajouter de nouvelles règles YARA , elles doivent être ajoutées au dossier yara_rules avec extension .yara .
(Les règles existantes sont créées sur la base de cet article. Ils pourraient être obsolètes)
Une règle possible est comme ci-dessous.
rule evil
{
meta:
name = "[email protected]"
strings:
$ scripts = /"scripts":/
$ inst all = /"mkdir -p ~/Desktop/sploit && touch ~/Desktop/sploit/haxx"/
condition:
all of them
} Sauvez cette règle dans le dossier yara_rules comme evil.yara , et bon à y aller