将来自Yara github存储库中的所有Yara规则合并到一个.yar文件中

时间:2018-11-23 17:49:08

标签: bash git automated-tests rules yara

在正式的Yara规则存储库git hub中有一个索引文件。 这个:https://github.com/Yara-Rules/rules/blob/master/index.yar

我想用bash或其他语言创建一个脚本,以能够合并包括我所有yara文件的.yar中的所有yara文件(例如index.yar)。 我可以手动完成操作,但是问题是有太多规则无法在脚本中手动记录下来。

例如,此存储库:https://github.com/citizenlab/malware-signatures/tree/master/malware-families 我真的不知道如何创建一个文件来创建一个yara文件,其中包括来自存储库的所有这些yara规则

在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我不确定您的问题,但为什么不列出原始yar文件并循环下载呢?在下面的示例中,我下拉了3个文件并将其打印出来,但我删除了包含include的行的文件名(除了文件名)。然后,我当然可以使用'>'将这个脚本运行到另一个文件中:

示例:

#!/bin/bash

raw_list_urls="https://raw.githubusercontent.com/Yara-Rules/rules/master/index.yar https://raw.githubusercontent.com/Yara-Rules/rules/master/index.yar https://raw.githubusercontent.com/Yara-Rules/rules/master/index.yar"
IFS=' ' read -r -a urls <<< "${raw_list_urls}"

for url in "${urls[@]}" ; do
        echo "Getting ${url}" ; sleep 2
        curl "${url}" | grep include | cut -d'"' -f2
done

输出示例:

./malware/RAT_ShadowTech.yar
./malware/RAT_Shim.yar
./malware/RAT_Terminator.yar
./malware/RAT_Xtreme.yar
./malware/RAT_ZoxPNG.yar
./malware/RAT_jRAT.yar
./malware/RAT_xRAT.yar
./malware/RAT_xRAT20.yar
./malware/TOOLKIT_Chinese_Hacktools.yar
./malware/TOOLKIT_Dubrute.yar
./malware/TOOLKIT_FinFisher_.yar
./malware/TOOLKIT_Gen_powerkatz.yar
./malware/TOOLKIT_Mandibule.yar

答案 1 :(得分:0)

我编写了一个小脚本,用于在本地文件夹中查找 *.yar 文件并使用找到的 para 规则创建索引文件:

for f in $(find . -mindepth 1 ! -path "./$(basename $PWD)_all.yar" -type f -name "*.yar"); do
  if [[ "$f" == *"Mobile_Malware"* || "$f" == *"mobile"* ]]; then  # exclude Android rules
    continue
  fi
  echo "include \"$f\"" >> $(basename $PWD)_index.yar;
done;