O objetivo desta ferramenta é executar um determinado conjunto de regras YARA na pasta node_module dada.
Com essa abordagem, podemos definir regras YARA para identificar scripts suspeitos que são injetados em pacotes de nó.
Principalmente inspirado nesses artigos.
Este pacote pode ser adicionado ao pipeline CI/CD conforme mencionado abaixo (integração 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 O relatório está disponível em 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 essa ferramenta com CI/CD , conforme mencionado abaixo.
#! /bin/bash
make NODE_MODULE_FOLDER_TO_AUDIT=../restful4up/node_modules run
suspicious_file_count= $( jq length artifacts/output.json )
exit $suspicious_file_count Quando precisamos adicionar novas regras YARA , elas devem ser adicionadas à pasta yara_rules com extensão .yara .
(As regras existentes são criadas com base neste artigo. Eles podem estar desatualizados)
Uma regra possível é como abaixo.
rule evil
{
meta:
name = "[email protected]"
strings:
$ scripts = /"scripts":/
$ inst all = /"mkdir -p ~/Desktop/sploit && touch ~/Desktop/sploit/haxx"/
condition:
all of them
} Salve esta regra na pasta yara_rules como evil.yara e bom para ir