Skip to content
このページは AI の支援により作成・翻訳されました。誤りがあれば、改善にご協力ください。 GitHub で編集

YARAルール

YARAルールはPRX-SD検出パイプラインの第2レイヤーです。ハッシュマッチングが既知のマルウェアの正確なコピーを捕捉するのに対し、YARAルールはファイル内のバイトシーケンス、文字列、構造的条件を照合することでマルウェアのファミリーバリアント動作パターンを検出します。

PRX-SDは8つのソースから集約された38,800以上のYARAルールを搭載し、YARA-Xエンジン(YARAの次世代Rustリライト)を使用して改善されたパフォーマンス、安全性、互換性を提供します。

YARA-Xエンジン

PRX-SDは従来のCベースのYARAライブラリの代わりにYARA-Xを使用します。主な利点:

機能YARA(C)YARA-X(Rust)
言語CRust(メモリセーフ)
パフォーマンス良好大規模ルールセットで2〜5倍高速
ルール互換性ベースライン完全な後方互換性 + 新機能
スレッドセーフティ慎重な取り扱いが必要設計によりセーフ
モジュールサポート組み込みモジュールモジュラー、拡張可能

ルールソース

PRX-SDは8つのソースからルールを集約します:

ソースルール数内容プラットフォームカバレッジ
組み込みルール64ランサムウェア、トロイの木馬、バックドア、ルートキット、マイナー、ウェブシェルLinux + macOS + Windows
Yara-Rules/rules(GitHub)~12,400Emotet、TrickBot、CobaltStrike、Mirai、LockBitクロスプラットフォーム
Neo23x0/signature-base~8,200APT29、Lazarus、暗号マイニング、ウェブシェル、ランサムウェアクロスプラットフォーム
ReversingLabs YARA~9,500トロイの木馬、ランサムウェア、バックドア、ハックツールWindows + Linux
ESET IOC~3,800Turla、Interception、高度な持続的脅威クロスプラットフォーム
InQuest~4,836OLE/DDE悪意のあるドキュメント、マクロペイロードクロスプラットフォーム
JPCERT/CC~500以上アジア太平洋地域を標的とした脅威クロスプラットフォーム
カスタム/インポート変動ユーザー提供のルール任意

合計: 38,800以上のルール(重複排除後)

組み込みルール

64の組み込みルールはPRX-SDバイナリにコンパイルされており、外部ルールセットをダウンロードしなくても常に利用可能です。最も蔓延している脅威カテゴリをカバーします:

カテゴリルール数
ランサムウェア12WannaCry、LockBit、Conti、REvil、BlackCat、Ryuk
トロイの木馬10Emotet、TrickBot、Dridex、QakBot
バックドア8Cobalt Strike Beacon、Metasploit Meterpreter、リバースシェル
ルートキット6Reptile、Diamorphine、Jynx2(Linux)
暗号マイナー6XMRig、CGMiner、隠れたマイニング設定
ウェブシェル8China Chopper、WSO、B374K、PHP/ASP/JSPシェル
RAT6njRAT、DarkComet、AsyncRAT、Quasar
エクスプロイト4EternalBlue、PrintNightmare、Log4Shellペイロード
テストシグネチャ4EICARテストファイルバリアント

ルールマッチングプロセス

ファイルがレイヤー2に到達すると、YARA-Xは次のように処理します:

  1. ルールコンパイル -- 起動時にすべてのルールが最適化された内部表現にコンパイルされます。これは一度行われ、メモリにキャッシュされます。
  2. アトム抽出 -- YARA-Xはルールパターンから短いバイトシーケンス(アトム)を抽出して検索インデックスを構築します。これにより高速な事前フィルタリングが可能になります。
  3. スキャン -- ファイル内容はアトムインデックスに対してスキャンされます。マッチングアトムを持つルールのみが完全に評価されます。
  4. 条件評価 -- 各候補ルールについて、完全な条件(ブールロジック、文字列カウント、ファイル構造チェック)が評価されます。
  5. 結果 -- マッチングルールが収集され、ファイルはレポートにルール名を含むMALICIOUSとしてマークされます。

パフォーマンス

指標
ルールコンパイル(38,800ルール)~2秒(起動時に1回)
ファイルごとのスキャン時間平均~0.3ミリ秒
メモリ使用量(コンパイル済みルール)~150 MB
スループット~3,000ファイル/秒/スレッド

YARAルールの更新

ルールはハッシュシグネチャと一緒に更新されます:

bash
# すべてを更新(ハッシュ + YARAルール)
sd update

# YARAルールのみ更新
sd update --source yara

更新プロセス:

  1. 各ソースからルールアーカイブをダウンロード
  2. YARA-Xでルール構文を検証
  3. 名前とコンテンツハッシュでルールを重複排除
  4. 組み合わせたルールセットをコンパイル
  5. アクティブなルールセットをアトミックに置き換え

ゼロダウンタイム更新

ルール更新はアトミックです。新しいルールセットはアクティブなものを置き換える前にコンパイルおよび検証されます。コンパイルが失敗した場合(例:コミュニティルールの構文エラーにより)、既存のルールセットがアクティブのままです。

カスタムルール

カスタムディレクトリに.yarまたは.yaraファイルを配置することで独自のYARAルールを追加できます:

bash
# デフォルトのカスタムルールディレクトリ
~/.config/prx-sd/rules/

カスタムルールの例:

yara
rule custom_webshell_detector {
    meta:
        description = "Detects custom PHP webshell variant"
        author = "Security Team"
        severity = "high"

    strings:
        $eval = "eval(base64_decode(" ascii
        $system = "system($_" ascii
        $exec = "exec($_" ascii

    condition:
        filesize < 100KB and
        ($eval or $system or $exec)
}

カスタムルールを追加した後、ルールセットをリロード:

bash
sd reload-rules

またはモニターデーモンを再起動して変更を自動的に取り込みます。

ルールディレクトリ

ディレクトリソース更新動作
~/.local/share/prx-sd/rules/builtin/バイナリにコンパイル済みリリースと共に更新
~/.local/share/prx-sd/rules/community/ソースからダウンロードsd updateで更新
~/.config/prx-sd/rules/ユーザー提供のカスタムルール手動、上書きされない

ルールの確認

現在ロードされているルール数とソースを確認:

bash
sd info
YARA Rules
==========
Built-in:        64
Community:       38,736
Custom:          12
Total compiled:  38,812
Rule sources:    8
Last updated:    2026-03-21 10:00:00 UTC

特定のキーワードに一致するルールを一覧表示:

bash
sd rules list --filter "ransomware"

次のステップ

Released under the Apache-2.0 License.