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

ヒューリスティック分析

ヒューリスティック分析はPRX-SD検出パイプラインの第3レイヤーです。ハッシュマッチングとYARAルールが既知のシグネチャとパターンに依存するのに対し、ヒューリスティックはファイルの構造的および動作的特性を分析して、これまで見たことのない脅威(ゼロデイマルウェア、カスタムインプラント、高度に難読化されたサンプルを含む)を検出します。

仕組み

PRX-SDはまずマジックナンバー検出を使用してファイルタイプを識別し、そのファイル形式に固有のターゲットを絞ったヒューリスティックチェックセットを適用します。トリガーされた各チェックは累積スコアにポイントを追加します。最終スコアが判定を決定します。

スコアリングメカニズム

スコア範囲判定意味
0〜29クリーン重大な疑わしい指標なし
30〜59疑わしいいくつかの異常を検出;手動確認を推奨
60〜100悪意あり高確信度の脅威;複数の強い指標

スコアは加算的です。1つの軽微な異常(例:わずかに高いエントロピー)があるファイルは15をスコアするかもしれませんが、高いエントロピー、疑わしいAPIインポート、パッカーシグネチャを組み合わせたファイルは75以上をスコアします。

PE(Windows実行可能ファイル)分析

PEヒューリスティックはWindows実行可能ファイル(.exe、.dll、.scr、.sys)をターゲットにします:

チェックポイント説明
高いセクションエントロピー10〜25エントロピー> 7.0のセクションはパッキングまたは暗号化を示す
疑わしいAPIインポート5〜20VirtualAllocExWriteProcessMemoryCreateRemoteThreadなどのAPI
既知のパッカーシグネチャ15〜25UPX、Themida、VMProtect、ASPack、PECompactヘッダーを検出
タイムスタンプ異常5〜10将来のまたは2000年以前のコンパイルタイムスタンプ
セクション名異常5〜10非標準セクション名(.rsrcの置き換え、ランダムな文字列)
リソース異常5〜15リソースに埋め込まれたPEファイル、暗号化されたリソースセクション
インポートテーブル異常10〜15インポートが非常に少ない(パック済み)、または疑わしいインポートの組み合わせ
デジタル署名-10有効なAuthenticode署名はスコアを下げる
TLSコールバック10アンチデバッグTLSコールバックエントリ
オーバーレイデータ5〜10PE構造の後に追加された重要なデータ

PEの調査結果例

Heuristic Analysis: updater.exe
Score: 72/100 [MALICIOUS]

Findings:
  [+25] Section '.text' entropy: 7.91 (likely packed or encrypted)
  [+15] Packer detected: UPX 3.96
  [+12] Suspicious API imports: VirtualAllocEx, WriteProcessMemory,
        CreateRemoteThread, NtUnmapViewOfSection
  [+10] Section name anomaly: '.UPX0', '.UPX1' (non-standard)
  [+10] Compilation timestamp: 2089-01-01 (future date)

ELF(Linux実行可能ファイル)分析

ELFヒューリスティックはLinuxバイナリと共有オブジェクトをターゲットにします:

チェックポイント説明
高いセクションエントロピー10〜25エントロピー> 7.0のセクション
LD_PRELOAD参照15〜20LD_PRELOADまたは/etc/ld.so.preloadを参照する文字列
cron永続性10〜15/etc/crontab/var/spool/cron、cronディレクトリへの参照
systemd永続性10〜15systemdユニットパス、systemctl enableへの参照
SSHバックドア指標15〜20変更されたauthorized_keysパス、sshd設定文字列
アンチデバッグ10〜15ptrace(PTRACE_TRACEME)/proc/self/statusチェック
ネットワーク操作5〜10生ソケット作成、疑わしいポートバインド
自己削除10実行後の自身のバイナリパスのunlink
ストリップ済み + 高エントロピー10高エントロピーのストリップされたバイナリはパックされたマルウェアを示唆
/dev/nullリダイレクト5/dev/nullへの出力リダイレクト(デーモン動作)

ELFの調査結果例

Heuristic Analysis: .cache/systemd-helper
Score: 65/100 [MALICIOUS]

Findings:
  [+20] LD_PRELOAD reference: /etc/ld.so.preload manipulation
  [+15] Cron persistence: writes to /var/spool/cron/root
  [+15] SSH backdoor: modifies /root/.ssh/authorized_keys
  [+10] Self-deletion: unlinks /tmp/.cache/systemd-helper
  [+5]  Network: creates raw socket

Mach-O(macOS実行可能ファイル)分析

Mach-OヒューリスティックはmacOSバイナリ、バンドル、ユニバーサルバイナリをターゲットにします:

チェックポイント説明
高いセクションエントロピー10〜25エントロピー> 7.0のセクション
Dylib注入15〜20DYLD_INSERT_LIBRARIES参照、疑わしいdylibローディング
LaunchAgent/Daemon永続性10〜15~/Library/LaunchAgents/Library/LaunchDaemonsへの参照
Keychainアクセス10〜15Keychain API呼び出し、securityコマンド使用
Gatekeeperバイパス10〜15xattr -d com.apple.quarantine文字列
プライバシーTCCバイパス10〜15TCCデータベースへの参照、アクセシビリティAPIの悪用
アンチ分析10デバッガーのsysctlチェック、VM検出文字列
コード署名異常5〜10アドホック署名または署名なしのバイナリ

Mach-Oの調査結果例

Heuristic Analysis: com.apple.helper
Score: 55/100 [SUSPICIOUS]

Findings:
  [+20] Dylib injection: DYLD_INSERT_LIBRARIES manipulation
  [+15] LaunchAgent persistence: writes to ~/Library/LaunchAgents/
  [+10] Keychain access: SecKeychainFindGenericPassword calls
  [+10] Unsigned binary: no code signature present

Officeドキュメント分析

OfficeヒューリスティックはMicrosoft Office形式(.doc、.docx、.xls、.xlsx、.ppt)をターゲットにします:

チェックポイント説明
VBAマクロの存在10〜15自動実行マクロ(AutoOpenDocument_OpenWorkbook_Open
シェル実行を伴うマクロ20〜30マクロ内のShell()WScript.ShellPowerShell呼び出し
DDEフィールド15〜20コマンドを実行するダイナミックデータエクスチェンジフィールド
外部テンプレートリンク10〜15attachedTemplateを介したリモートテンプレートインジェクション
難読化されたVBA10〜20高度に難読化されたマクロコード(Chr()、文字列連結の乱用)
埋め込まれたOLEオブジェクト5〜10OLEオブジェクトとして埋め込まれた実行可能ファイルまたはスクリプト
疑わしいメタデータ5Base64文字列または異常なパターンを持つ作成者フィールド

Officeの調査結果例

Heuristic Analysis: Q3_Report.xlsm
Score: 60/100 [MALICIOUS]

Findings:
  [+15] VBA macro with AutoOpen trigger
  [+25] Macro executes: Shell("powershell -enc JABjAGwA...")
  [+10] Obfuscated VBA: 47 Chr() calls, string concatenation abuse
  [+10] External template: https://evil.example.com/template.dotm

PDF分析

PDFヒューリスティックはPDFドキュメントをターゲットにします:

チェックポイント説明
埋め込みJavaScript15〜25/JSまたは/JavaScriptアクションのJavaScript
Launch操作20〜25システムコマンドを実行する/Launch操作
URI操作5〜10既知の悪意のあるパターンを指す疑わしいURI操作
難読化されたストリーム10〜15複数のエンコードレイヤー(FlateDecode + ASCII85 + hex)
埋め込みファイル5〜10添付ファイルとして埋め込まれた実行可能ファイル
フォーム送信5〜10外部URLにデータを送信するフォーム
JavaScriptを持つAcroForm15埋め込みJavaScriptを持つインタラクティブフォーム

PDFの調査結果例

Heuristic Analysis: shipping_label.pdf
Score: 45/100 [SUSPICIOUS]

Findings:
  [+20] Embedded JavaScript: 3 /JS actions found
  [+15] Obfuscated stream: triple-encoded FlateDecode chain
  [+10] Embedded file: invoice.exe (PE executable)

一般的な調査結果リファレンス

以下の表はすべてのファイルタイプで最も頻繁にトリガーされるヒューリスティック調査結果を一覧表示します:

調査結果重大度ファイルタイプ誤検知率
高エントロピーセクションPE、ELF、Mach-O低〜中(ゲームアセット、圧縮データ)
パッカー検出PE非常に低い
自動実行マクロOffice低(一部の正規マクロ)
LD_PRELOAD操作ELF非常に低い
埋め込みJavaScript中〜高PDF
疑わしいAPIインポートPE中(セキュリティツールがこれをトリガーする)
自己削除ELF非常に低い

誤検知の削減

正規のファイルがヒューリスティックアラートをトリガーした場合、SHA-256ハッシュでアローリストに追加できます:

bash
sd allowlist add /path/to/legitimate/file

アローリストに追加されたファイルはヒューリスティック分析をスキップしますが、ハッシュとYARAデータベースに対してはチェックされます。

次のステップ

Released under the Apache-2.0 License.