【ヤラルール】

YARAルール とは?

💡 マルウェアを見つけ出す「手配書パターン集」
📌 このページのポイント
YARAルール — パターンマッチングでマルウェア検出 YARAルール定義 rule SuspiciousMalware strings: $s1 = "evil.exe" $s2 = { 4D 5A 90 00 } $s3 = /mal\w+/ condition: 2 of ($s1, $s2, $s3) } YARA エンジン パターン照合 対象ファイル unknown.exe プロセスメモリ PID: 4912 MATCH! マルウェア検出 No Match クリーン 文字列・バイト列・正規表現でマルウェアの特徴を記述
YARAルールによるパターンマッチング検出フロー
ひよこ ひよこ

YARAルールって何なの?マルウェアを探すための何かなの?

ペンギン先生 ペンギン先生

そうだよ。マルウェアの特徴(文字列・バイト列・正規表現)をルールとして書いておいて、ファイルやメモリと照合することでマルウェアを検出するための言語なんだ。

ひよこ ひよこ

アンチウイルスソフトとは違うの?

ペンギン先生 ペンギン先生

アンチウイルスはルールをベンダーが管理しているけど、YARAは自分でルールを書けるんだ。セキュリティ研究者やアナリストが「この特徴を持つファイルを探したい」というときに自作ルールを使うよ。

ひよこ ひよこ

ルールってどんな形で書くの?

ペンギン先生 ペンギン先生

stringsブロックに探したい文字列バイト列を書いて、conditionブロックで条件を定義するんだよ。例えば「この3つの文字列が全部含まれていたらマルウェア」とか「特定のバイト列で始まっていたら怪しい」みたいに書けるんだ。

ひよこ ひよこ

VirusTotalでも使われているって聞いたけどどういうことなの?

ペンギン先生 ペンギン先生

VirusTotalにはYARAルールで検索できる機能があって、「このYARAルールにマッチするファイルをデータベースから探して」という使い方ができるんだよ。世界中のサンプルから似たマルウェアをまとめて探せるんだ。

ひよこ ひよこ

新しいマルウェアが出たらどうするの?

ペンギン先生 ペンギン先生

サンプルを解析してユニークな特徴(特定の文字列や処理パターン)を見つけ出してYARAルールに追加するんだ。シグネチャが世界中の研究者に共有されることも多くて、GitHubでYARAルールのリポジトリを公開しているコミュニティもあるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「YARAルール」って出てきたら「マルウェアパターンマッチングで見つけるルール記述言語」と思えればだいたいOK!
📖 おまけ:英語の意味
「YARA」 = Yet Another Recursive Acronym(再帰的頭字語)
💬 YARAはYet Another Recursive Acronymの再帰的頭字語で、「また別の再帰的な頭字語」という自己言及的なジョーク名だよ。セキュリティコミュニティのユーモアが詰まった名前だね。
← 用語集にもどる