SigmaおよびYARAルールを活用したリアルタイムクライアント監視ツールYAMAGoya

近年、ファイルレスマルウェアやマルウェアの難読化により、ファイル単体のスキャンだけでは不審なアクティビティを検知することが難しくなっています。そのような脅威に対抗するために、セキュリティ研究者やマルウェアアナリストは、SigmaやYARAなどのルールを積極的に作成し、公開しています。 しかし、既存のエンドポイントセキュリティツールでは、独自の検知エンジンを用いているため、SigmaやYARAを直接活用できる製品が不足しているのが現状です。 この課題に対し、オープンソースのスレットハンティングツールYAMAGoyaを公開しました。YAMAGoyaは、次のGitHubレポジトリで公開していますので、ご自由にお使いください。

GitHub JPCERTCC/YAMAGoya:https://github.com/JPCERTCC/YAMAGoya

YAMAGoyaの起動画面
図1:YAMAGoyaの起動画面

以降では、YAMAGoyaのコンセプトや使用方法について紹介します。

YAMAGoyaのコンセプト

YAMAGoyaは、ETW(Event Tracing for Windows)のイベント監視メモリスキャンをあわせて脅威の検知を行えるように設計しています。以下は、本ツールの特徴です。

  • ユーザーランドのみで動作:カーネルドライバー不要で導入容易
  • リアルタイム監視:ファイル/プロセス/レジストリ/DNS/ネットワーク/PowerShell/WMI等をETW経由でリアルタイム監視可能
  • 複数のルール形式をサポート:Sigmaおよび相関分析に活用できるオリジナルYAMLルールをサポート
  • メモリスキャン:ファイルレスやパッキングされたマルウェアをYARAルールで検知
  • GUI/CLIサポート:GUIからの使用だけではなくコマンドラインによる自動化なども可能

導入方法

バイナリ入手

すぐに評価したい場合は、GitHubレポジトリのReleasesからバイナリを取得できます。

ビルド

ソースコードからビルドする場合は、READMEをご覧ください。

使い方

YAMAGoyaは、GUIおよびCLIで使用することが可能です。コマンドラインからオプションなしで実行するか、ダブルクリックで実行することでGUIが起動します。

# GUIの実行
> YAMAGoya.exe

本ツールは、管理者権限で実行する必要があります(ETWセッションを起動するため)。ツールを実行する際は、右クリックから「管理者として実行」を選択するか、コマンドプロンプトを管理者として実行するようにしてください。

コマンドラインからは、次のように実行することで利用可能です。その他のオプションについては、オプションhelpで確認してください。

# Sigmaルールで監視
> YAMAGoya.exe --session --sigma "C:\Rules\Sigma" --all
# YARAルールでメモリスキャン
> YAMAGoya.exe --session --yara "C:\Rules\YARA" --all

YAMAGoyaのサポートルール

YAMAGoyaは、SigmaルールおよびYARAルールをサポートしていますので、公開されているルールなどを活用してください。Sigmaルールに関しては、サポートするカテゴリーがWindows OSを対象とするものに限られています。詳しくは、READMEをご覧ください。

本ツールでは、SigmaルールおよびYARAルール以外にもオリジナルYAMLルールをサポートしています。以下では、オリジナルYAMLルールの書き方について紹介します。

オリジナルYAMLルールの書き方

オリジナルYAMLルールを作成するには、以下のスキーマに従ってください。各ルールファイルには以下を含める必要があります:

- rulename: ルールの一意の名前
- description: ルールが検知する内容の説明
- rules: ルール項目のリスト。各項目には以下を含める必要があります:
  - ruletype: ルールの種類(例:regex、binary)
  - target: マッチするイベントカテゴリー
  - rule: マッチするパターンまたは値(正規表現ルールの場合は有効な正規表現)

targetのカテゴリーには表1のものを使用できます。

表1:target一覧
target名 説明
file ファイル作成イベント
delfile ファイル削除イベント
process プロセスイベント
open OpenProcess
load DLL読み込みイベント
registry レジストリイベント
dns DNSイベント
ipv4 IPv4ネットワークイベント
ipv6 IPv6ネットワークイベント
shell シェル関連イベント(RunKey、ショートカット)
powershell PowerShell実行イベント
wmi WMIコマンド実行イベント

デフォルトでは、1ファイルに記述したすべてのruleが10秒以内に確認された場合に、アラートが上がります。 例えば、次のようなファイルの作成、プロセスの実行、DLLのロード、通信をしている場合にマルウェアとして検知することができるルールを記述することができます。 オリジナルYAMLルールは、このような複数のアクティビティを相関的に確認して検知したい場合に有効です。

rulename: "ANEL"
description: "Detects ANEL from maldoc type"
rules:
  - ruletype: "regex"
    target: "file"
    rule: "Tmp\\.docx$"
  - ruletype: "regex"
    target: "process"
    rule: "ScnCfg32\\.Exe$"
  - ruletype: "regex"
    target: "dll"
    rule: "vsodscpl\\.dll$"
  - ruletype: "regex"
    target: "file"
    rule: "TCDolW0p\\.log$"
  - ruletype: "ipv4"
    target: "ipv4"
    rule: "45.32.116.146"

ログの確認

GUIで使用する場合は、アラートタブでログを確認することができます。また、図2のアラートタブのOpen Log Fileから、テキストログを確認することもできます。

YAMAGoyaのアラートタブ
図2:YAMAGoyaのアラートタブ

さらに、イベントログ(Application)にもアラートは保存されます。表2は、YAMAGoyaが記録するイベントID一覧です。

表2:YAMAGoyaが記録するイベントログID一覧(Application)
イベントID 主なトリガー条件
8001 オリジナルYAMLルールでの検知
8002 オリジナルYAMLルールの一部要素がマッチ(デバッグメッセージ)
8003 オリジナルYAMLルールで検知したプロセスの停止(Killモードの動作時)
8005 WinRM アウトバウンド通信
8006 WinRM インバウンド通信
8008 Security Mitigationsイベント
8009 Security Adminlessイベント検知
8011 Security CVEイベント検知
8012 SMBサーバー認証検知
8013 SMBサーバー ファイルシェア検知
8014 SMBサーバー ファイルシェアの追加検知
8015 SMBクライアント 接続失敗
8016 SMBクライアント ファイル転送
8017 ETWセッションのスタート
8018 ETWセッションの停止
9001 Sigmaルールでの検知
9002 Sigmaルールで検知したプロセスの停止(Killモードの動作時)

イベントログに記録されたYAMAGoyaのアラート
図3:イベントログに記録されたYAMAGoyaのアラート

おわりに

YAMAGoyaは、SigmaやYARAなどの公開されているシグネチャを利用可能なため、セキュリティコミュニティーのノウハウをセキュリティ対策に活用できるツールです。スレットハンティングやインシデントレスポンスなどの際にご活用ください。本ツールに関してPull Requestや要望などお待ちしています。

FAQ(よくある質問)

Q1. YAMAGoyaは従来型ウイルス対策ソフトの代わりになりますか?

A. いいえ。YAMAGoyaはウイルス対策ソフトを置き換えるものではなく、補完するツールです。デフォルトで検知ルールはないため、利用する際は検知ルールの収集・作成から行う必要があります。

Q2. 常駐(バックグラウンド実行)はできますか?

A. はい。システムトレイに常駐し、バックグラウンドで監視できます。設定したルールに基づき、検知があれば通知/ログ出力します。

Q3. 既存のSIEMと連携できますか?

A. はい。YAMAGoyaはログをテキストとイベントログ(Application)に出力します。これらをログ収集エージェントや転送機能で送れば、SplunkなどのSIEMに取り込めます。

Q4. ETWバイパス(回避手法)への対策に制限はありますか?

A. はい。現時点でETWバイパスへの専用対策は未実装です。高度な攻撃者がETWを無効化・改ざんして検知を回避する可能性があります。EDRや他の監視ツールと併用して多層防御を構成することを推奨します。

≪ 前へ
トップに戻る