El propósito de esta herramienta es ejecutar un conjunto dado de reglas YARA contra la carpeta node_module dada.
Con este enfoque, podemos definir las reglas YARA para identificar scripts sospechosos que se inyectan en paquetes de nodos.
Inspirado principalmente en estos artículos.
Este paquete se puede agregar a la tubería CI/CD como se menciona a continuación (integración de 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 El informe está disponible en 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 " "
]
}
] Podemos usar esta herramienta con CI/CD como se menciona a continuación.
#! /bin/bash
make NODE_MODULE_FOLDER_TO_AUDIT=../restful4up/node_modules run
suspicious_file_count= $( jq length artifacts/output.json )
exit $suspicious_file_count Cuando necesitamos agregar nuevas reglas YARA , deben agregarse a la carpeta yara_rules con extensión .yara .
(Las reglas existentes se crean en función de este artículo. Pueden estar desactualizados)
Una posible regla es la siguiente.
rule evil
{
meta:
name = "[email protected]"
strings:
$ scripts = /"scripts":/
$ inst all = /"mkdir -p ~/Desktop/sploit && touch ~/Desktop/sploit/haxx"/
condition:
all of them
} Guarde esta regla en la carpeta yara_rules como evil.yara , y bueno para ir