Arya是一种独特的工具,用于生成旨在触发YARA规则的伪恶意文件。你可以把它想象成一个反向YARA,因为它恰恰做了相反的事情——它创建与你的规则匹配的文件。
你可以在我们的博客中阅读更多关于Arya及其工作原理的信息。

YARA规则是安全研究人员识别和分类恶意软件样本的重要工具。它们通过描述恶意软件代码中的模式和字符串来帮助分析师识别已知或新的威胁。YARA规则也经常集成到商业检测工具中,或内部用于检测企业网络中的异常二进制文件。
但如果我们没有正在为其编写规则的恶意文件呢?如果我们想基于YARA作为输入来创建“恶意软件”文件呢?这就是我们开发Arya的原因。Arya可用于生成定制化的伪恶意文件,以触发防病毒(AV)和端点检测与响应(EDR)工具,就像经典的EICAR测试文件一样。我们的工具有多种用例,包括恶意软件研究、YARA规则QA测试,以及使用基于YARA规则构建的代码样本对网络进行压力测试。

Arya是首个此类工具;它生成旨在触发YARA规则的伪恶意文件。该工具读取给定的YARA(.yar后缀)文件,使用Avast的yaramod包(本研究中使用的YARA解析引擎)解析其语法,并构建一个伪“恶意软件”文件。它仔细放置来自YARA规则所需字节以触发输入规则。
该工具的目标是生成一个量身定制的伪恶意文件,以便检测传感器(如AV或EDR)将结果文件识别为输入YARA规则旨在检测的恶意软件文件。为了实现这一目标,我们不仅添加了输入YARA规则中的必要签名、字符串和字节,还添加了一些“修饰”,例如真实的PE头部、增加输出文件熵、添加x86字节码以及函数序言/结尾汇编代码。所有这些都有助于AV/EDR的触发过程,并绕过它们可能拥有的一些启发式检查。

YARA文件(.yar扩展名)是包含一个或多个YARA规则的文本文件。在本项目中,我们使用yaramod将YARA规则转换为由Python对象表示的规则列表,然后可以使用这些列表访问规则的内部内容,如字符串、类型、条件等。Yaramod将YARA规则解析为AST(抽象语法树)。
抽象语法树的遍历是通过结合观察者模式和访问者模式完成的。对于代码经过的每个节点,它将决定需要放置哪些字节和字符串,以及放置在哪里,以便触发其所遍历子树中的条件。因此,该树将生成一个字符串及其可能偏移量的映射;它还可以在文件中保留其中一些,这些将传递给放置机制进行进一步处理。
研究人员可以使用Arya以YARA规则为构建块生成伪恶意文件。这些文件可用于构建将被识别为特定恶意软件的文件。例如,如果你没有Zeus恶意软件样本,但想检查你的AV如何反应?没问题,将Zeus YARA规则加载到Arya中,生成你自己的“Zeus”样式的伪恶意软件,AV/EDR工具将识别为Zeus。
Arya也可以用于事件响应训练——类似于紫队联合作战——其中伪恶意文件可以在网络中发送,以对传感器和探测器进行压力测试。
已支持
计划在后续更新中支持
sudo apt update
sudo apt install yara cmake
git clone https://github.com/claroty/arya
cd arya
pip3 install -r requirements.txt
运行Arya时考虑以下参数:
-i [输入目录] 或 [输入文件]-o [输出文件名]--header - 在文件开头添加conficker的前2048字节。-r - 对[输入目录]下的所有文件递归运行。-m [恶意软件文件] - 使用文件[输入目录]作为输出的基础。python3 src/arya.py -i example_rules/ -o MalwareAryaDefault.exe