
Aryaは、YARAルールをトリガーするための擬似的な悪意のあるファイルを生成するユニークなツールです。これは逆YARAと考えることができます。なぜなら、まったく逆の動作をするからです。つまり、あなたのルールに一致するファイルを作成します。
Aryaとその仕組みについての詳細は、ブログをご覧ください。

YARAルールは、セキュリティ研究者にとって不可欠なツールであり、マルウェアサンプルの識別と分類を支援します。マルウェアコード内のパターンや文字列を記述することで、アナリストが既知の脅威や新たな脅威を特定するのに役立ちます。YARAルールは、商用の検出ツールに統合されることもよくあり、また企業ネットワーク上で不正なバイナリを検出するために内部で使用されることもあります。
しかし、ルールを作成している悪意のあるファイルが手元にない場合はどうでしょうか?YARAを入力として「マルウェア」ファイルを作成したい場合はどうでしょうか?それが、私たちがAryaを開発した理由です。Aryaは、昔ながらのEICARテストファイルのように、アンチウイルス(AV)やエンドポイント検出・対応(EDR)ツールをトリガーするためのカスタムメイドの疑似マルウェアファイルを生成するために使用できます。このツールには、マルウェア研究、YARAルールのQAテスト、YARAルールから構築されたコードサンプルを使用したネットワークのプレッシャーテストなど、多くのユースケースがあります。

Aryaは、その種のものとしては初めてのツールです。YARAルールをトリガーするための擬似的な悪意のあるファイルを生成します。このツールは、指定されたYARA(.yar拡張子)ファイルを読み取り、Avastのyaramodパッケージ(この研究で使用されたYARAパーシングエンジン)を使用してその構文を解析し、擬似的な「マルウェア」ファイルを構築します。入力ルールをトリガーするために、YARAルールから目的のバイトを慎重に配置します。
このツールの目標は、AVやEDRなどの検出センサーが、入力されたYARAルールが検出しようとするマルウェアファイルとして結果ファイルを識別するような、テーラーメイドの疑似悪意のあるファイルを生成することです。この目標を達成するために、入力YARAルールから必要な署名、文字列、バイトを追加するだけでなく、実際のPEヘッダ、出力ファイルのエントロピーの増加、x86バイトコードの追加、関数のプロローグ/エピローグアセンブリコードなどの「タッチ」も追加しています。これらすべてが、AV/EDRのトリガープロセスを支援し、それらが持つ可能性のあるいくつかのヒューリスティックチェックを回避するのに役立ちます。

YARAファイル(.yar拡張子)は、1つ以上のYARAルールを含むテキストファイルです。このプロジェクトでは、yaramodを使用してYARAルールをPythonオブジェクトで表現されたルールのリストに変換し、それを使用してルールの内部コンテンツ(文字列、型、条件など)にアクセスできるようにしました。YaramodはYARAルールをAST(抽象構文木)に解析します。
抽象構文木の走査は、ObserverとVisitorのデザインパターンを組み合わせて行われます。コードが通過するすべてのノードについて、走査するサブツリー内の条件をトリガーするために、どのバイトと文字列をどこに配置する必要があるかを決定します。その結果、この木は文字列とそれらを配置する可能なオフセットのマッピングを生成します。また、それらの一部をファイル内に予約し、プレーサー機構に渡してさらに処理することもできます。
研究者は、YARAルールをビルディングブロックとして使用し、疑似悪意のあるファイルを生成するためにAryaを使用できます。これらのファイルは、特定のマルウェアとして識別されるファイルを構築するために使用できます。たとえば、Zeusマルウェアのサンプルがなくても、AVがどのように反応するかを確認したい場合がありますか?問題ありません。Zeus YARAルールをAryaに読み込み、AV/EDRツールがZeusとして識別する独自の「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 [INPUT_DIRECTORY] OR [INPUT_FILE]-o [OUTPUT_FILE_NAME]--header - ファイルの先頭にConfickerの最初の2048バイトを追加します。-r - [INPUT_DIRECTORY] 下のすべてのファイルを再帰的に実行します。-m [MALWARE_FILE] - 出力のベースとしてファイル [INPUT_DIRECTORY] を使用します。python3 src/arya.py -i example_rules/ -o MalwareAryaDefault.exe