dfir について
dfirは、セキュリティチーム向けにデジタルフォレンジックとインシデント対応を支援するOpenClawスキルです。メモリやディスクの解析、YARAスキャン、レポート作成を行えます。
主な機能
- 01Volatilityによるメモリダンプ解析
- 02Autopsyによるディスクフォレンジック
- 03YARAによるマルウェア指標のスキャン
- 04アーティファクト収集と脅威緩和
- 05タイムラインと証拠レポートの作成
活用シーン
- 01メモリダンプ内の不審なプロセスの調査
- 02ディスク上の侵害指標の検索
- 03情報漏えい後の証拠収集
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill dfirインストール後、Claude Code で/dfirを入力して読み込まれたか確認します。
詳細
dfir
目的
このスキルを使うと、サイバーセキュリティインシデントにおける異常の検出、アーティファクトの分析、脅威の緩和など、デジタルフォレンジックとインシデント対応(DFIR)のタスクを AI が実行できます。メモリ分析用の Volatility やディスクフォレンジック用の Autopsy などのツールに重点を置き、侵害を体系的に調査できるよう支援します。
使用する場面
マルウェア感染やデータ侵害など、迅速な分析が必要な進行中のインシデントでこのスキルを使用します。ブルーチームの運用におけるプロアクティブな脅威ハンティングや、証拠を収集するためのインシデント後レビューにも適用します。日常的なモニタリングには使用せず、詳細なフォレンジック調査が必要な状況に限定してください。
主な機能
- メモリフォレンジック:Volatility を使ってメモリダンプを解析し、プロセスやネットワーク接続を抽出します。
- ディスク分析:Autopsy でファイルシステムを調査し、削除されたファイルやタイムラインを特定します。
- インシデント対応:アーティファクトの収集と脅威の緩和を自動化します。たとえば、スクリプトでホストを隔離します。
- マルウェア検出:バイナリを YARA ルールでスキャンし、侵害の痕跡(IOC)と照合します。
- レポート作成:分析したデータからタイムラインとレポートを生成し、証拠を保全します。
使用パターン
OpenClaw の Python API からモジュールをインポートし、必要なパラメーターを指定してメソッドを呼び出すことで、このスキルを実行します。入力ファイルまたは対象を必ず明示してください。CLI ベースのツールを使う場合は、実行を処理するために OpenClaw の関数でラップします。await openclaw.dfir.analyze() のように、時間のかかるタスクには非同期パターンを使用します。認証情報は環境変数から渡します。たとえば、実行前に $DFIR_API_KEY を設定します。
主なコマンド/API
連携には OpenClaw DFIR API エンドポイントを使用します。
- エンドポイント:
/api/dfir/analyze-memory– JSON 本文で POST が必要です:{"file_path": "memory.dump", "profile": "Win10x64"}。応答例:プロセスのリストを含む JSON オブジェクト。 - エンドポイント:
/api/dfir/scan-disk–{"device": "/dev/sda1", "rules": ["suspicious.exe"]}を指定して POST します。ヘッダーAuthorization: Bearer $DFIR_API_KEYで認証します。
OpenClaw でラップして使用する一般的な CLI コマンド:
- Volatility コマンド:
openclaw.dfir.run_volatility('-f memory.dump --profile=Win10x64 pslist')– ダンプからプロセスリストを出力します。 - Autopsy コマンド:
openclaw.dfir.run_autopsy('case_name', '/path/to/evidence')– ケースを開始し、分析対象の証拠を追加します。
コードスニペット:
import openclaw
result = openclaw.dfir.analyze_memory_dump('memory.dump', profile='Win10x64')
print(result['processes']) # Returns a list of running processes
openclaw.dfir.scan_with_yara('suspicious.bin', rule_file='yara.rules')
# Outputs matches like: [{'rule': 'malware', 'offset': 1024}]
設定形式:API リクエストには JSON を使用します。例:{"api_key": os.environ.get('DFIR_API_KEY'), "options": {"timeout": 300}}。ローカルツールには、次のような YAML 設定ファイルを指定します。
tools:
volatility: /usr/bin/volatility
autopsy: /opt/autopsy/bin/autopsy
連携に関する注意事項
API 呼び出しを連鎖させて、このスキルを他のブルーチームツールと連携します。たとえば、まず脅威インテリジェンススキルで IOC を取得し、その後 /api/dfir/scan-disk に渡します。キー用の環境変数を設定します:export DFIR_API_KEY=your_key_here。複数のツールを使うワークフローには、OpenClaw のオーケストレーションを使用します:openclaw.workflow.run(['dfir', 'threat-intelligence'])。Volatility などの依存関係が、pip install volatility3 またはシステムパッケージを使ってインストールされていることを確認してください。情報が露出しないよう、ファイルパスを安全に扱います。
エラー処理
HTTP ステータスコード(認証失敗時の 401、ファイルが見つからない場合の 404 など)を解析して、API 応答のエラーを確認します。コードでは try-except ブロックを使用します。
try:
openclaw.dfir.analyze_memory_dump('invalid.dump')
except openclaw.DfirError as e:
print(f"Error: {e.code} - {e.message}") # e.code might be 'FILE_NOT_FOUND'
エラーをタイムスタンプとともに記録し、openclaw.utils.retry() を使って一時的な問題(ネットワークエラーなど)を最大 3 回再試行します。コマンドを実行する前に入力を検証します。たとえば、os.path.exists() でファイルの存在を確認します。認証に失敗した場合は、$DFIR_API_KEY の入力を促して再認証します。
具体的な使用例
-
メモリダンプを分析して不審なプロセスを特定する: メモリダンプファイルを読み込み、実行中のプロセスを特定します。コード:
import openclaw processes = openclaw.dfir.analyze_memory_dump('evidence/memory.dump', profile='Linux_x64') suspicious = [p for p in processes if 'malware' in p['name']] openclaw.dfir.report_findings(suspicious)潜在的な脅威を検出して記録し、インシデント対応用のレポートを生成します。
-
ディスクをスキャンして IOC を特定し、対処する: YARA ルールを使用してマウントされたディスクをスキャンし、脅威が見つかった場合は隔離します。コード:
import openclaw matches = openclaw.dfir.scan_with_yara('/mnt/evidence', rule_file='ioc_rules.yara') if matches: openclaw.dfir.mitigate_threat('isolate_host', target='192.168.1.5')検出と対応を自動化します。たとえば、脅威の拡散を防ぐためにホストをファイアウォールで遮断します。
グラフの関係
- 関連:threat-intelligence(IOC データを共有)、security-monitoring(分析用のアラートを提供)。
- 依存:blue-team クラスター(連携した防御ツール用)。
- 競合:red-team スキル(攻撃をシミュレートする penetration-testing など)。