マルウェア検知のためのYARAルール
文字列、バイトパターン、ファイル構造に基づいてYARAルールを作成し、マルウェアファミリーを検知します。
「マルウェア検知のためのYARAルール」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
YARA とは
YARA は、マルウェアの分類を目的としたパターンマッチングツールです。ルールでは、文字列パターン、バイト列、ブール条件を組み合わせて、マルウェアファミリーを記述します。YARA はファイル、プロセス、メモリをスキャンし、一致した結果を報告します。
YARA ルールの構造
ルールには 3 つのセクションがあります。meta(作成者や日付などのメタデータ)、strings(検索するパターン)、condition(文字列を組み合わせるブール論理)です。ルールはスキャナーにコンパイルされ、高速なファイルシステムの一括スキャンに使用されます。
rule ExampleRule {
meta:
author = "analyst"
strings:
$a = "malicious_string"
$b = { 4D 5A 90 00 }
condition:
$a and $b
}文字列パターン
YARA は 3 種類の文字列をサポートします。プレーンテキスト文字列(nocase、wide 修飾子付き)、ワイルドカードを含む 16 進数パターン({ 4D 5A ?? ?? })、正規表現(/pattern/)です。wide は、Windows マルウェアでよく使われる UTF-16 文字列に対応します。
16 進数パターンとワイルドカード
16 進数パターンでは、1 バイトのワイルドカードに ?? を、可変長のジャンプに [n-m] を使用します。例:{ 60 89 E5 31 C0 [4-8] 5D C3 } は、可変部分があってもシェルコードスタブに一致します。
条件ロジック
条件では、and、or、not を使って文字列を組み合わせます。柔軟なマッチングには、any of them、all of them、2 of ($a*) を使用します。5 of ($s*) のようなしきい値条件を使うと、一般的な文字列による誤検知を減らせます。
ファイルプロパティの条件
YARA では、ファイルサイズ(filesize < 1MB)、PE ヘッダーのプロパティ(pe.imphash())、エントリポイントのバイト列(uint16(0) == 0x5A4D)を確認できます。PE モジュールの条件では、特定のコンパイラーのアーティファクトやリンカーのメタデータを検出できます。
動作解析からのルール作成
静的解析や動的解析で抽出した文字列を、ルールの文字列として使用します。C2 URL、一意のミューテックス名、特定のエラーメッセージ、シェルコードスタブのバイト列は、それぞれ誤検知率の低い強力な YARA 文字列になります。
YARA ルールのテスト
yara rule.yar /path/to/sample を使ってテストします。クリーンなファイルのコーパスに対して検証し、誤検知率を測定してください。出力を抑制するには --no-warnings を、ディレクトリを再帰的にスキャンするには -r を使用します。
yara -r rules/family.yar /malware_corpus/
yara -r rules/family.yar /System32/ 2>/dev/nullセキュリティ製品での YARA
YARA ルールは、ClamAV、OSSEC、Velociraptor、Splunk、EDR プラットフォーム内で実行されます。ルールを Git リポジトリに集約し、バージョン管理して、デプロイ前にピアレビューを行い、ヒット統計を追跡して価値の低いルールを廃止してください。
よくある落とし穴の回避
一般的すぎる文字列は誤検知を引き起こします。非常に短い 16 進数パターンはノイズにも一致します。デプロイ前に、代表的なクリーンサンプルで必ずルールの特性を確認してください。精度を高めるため、可能な場合は any of them ではなく all of them を使用します。
YARA コミュニティのリソース
YARA-Forge は、品質の高いコミュニティルールを集約しています。MalwareBazaar などのマルウェアリポジトリでは、テスト用のサンプルを入手できます。ベンダー(Mandiant、Kaspersky)の GitHub リポジトリでは、研究用途に適したルールが公開されており、学習や応用に利用できます。
理解度チェック
YARA の条件 2 of ($s*) は何を意味しますか?
まとめ
YARA ルールは、文字列パターン、バイト列、ブール条件を組み合わせて、マルウェアファミリーを分類します。動作解析の結果からルールを作成し、クリーンなコーパスでテストし、セキュリティプラットフォーム経由で導入することで、拡張可能な検出範囲を構築できます。
よくある質問
「マルウェア検知のためのYARAルール」レッスンは無料ですか?
はい。「マルウェア検知のためのYARAルール」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「マルウェア検知のためのYARAルール」で何を学びますか?
文字列、バイトパターン、ファイル構造に基づいてYARAルールを作成し、マルウェアファミリーを検知します。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「マルウェア検知のためのYARAルール」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 静的解析:文字列、ハッシュ、PEヘッダー
- サンドボックスでの動的解析
- 振る舞いに基づくIOC:レジストリ、ネットワーク、ファイルの痕跡
- マルウェア検知のためのYARAルール