Closed YamatoSecurity closed 2 years ago
ちょっと、Slackの方でお話をして方針変わってきたので、メモっておきます。最終的にどのように実装したかは、プルリクエストのほうに書いておきます。
ザックさんの発言
キーワードをできればハードコーディングではなく、設定ファイルで自由に修正できたら理想ですが、できそうですか?
-> できそう。
ザックさんの発言
以下のよう使い方の方が良い気がしてきました:
-p / --pivot-keywords-listを指定する際に通常のフォレンジックタイムラインではなく、ピボット一覧を表示します。-p -o file.txtを指定する場合は結果をfile.txtに保存します。ファイルが存在する場合は上書きせず、エラーを出します。
(Fast forensicsはスピードを重視するが、エビデンスや解析データ等を上書きすると、大変なことになる可能があるので)
そうすると、--pivot-keywordsの後にfile.txtの必要性が無くなります。
もし、既存の-oオプションを利用するのが難しいのであれば、仕様に書いてあるように、アウトプットファイル名を-p <file.txt>にして、更に-oオプションが付けられた場合は「You cannot specify -o / --output when using -p / --pivot-keywords-list」というエラーを出しましょう。
-> 前者でやる。
(levelがlow以上の)アラートがある場合は、以下のフィールドから"Pivot Keyword"(攻撃者の足跡になる送信元のIPアドレス、ログオンID等々)をリストアップして、テキストファイルに保存する機能です。キーワードリストで、大量のinformationalログをgrepして、攻撃者の痕跡だけを抽出するための機能です。(informationalログが多すぎて解析が難しいという意見(クレーム?)が来ていたので、これで不要なinformationalログが減るはずです。) また、キーワードの一覧を見るだけで、どのユーザや端末が攻撃を受けている可能性があるかパッと見て分かるので、fast forenscisに役立ちます。
取り敢えず、アラートに以下のフィールドが存在する場合は、Pivot Keywords Listに追加します。 %SubjectUserName% %TargetUserName% %User% %SubjectLogonId% %TargetLogonId% %WorkstationName% %IpAddress% %Image% (後でプロセスID等も追加したいかも)
オプション名:
-p / --pivot-keywords-list <ファイル名>
例:./hayabusa.exe --min-level high --pivot-keywords-list keywords.txt -d ./sample-evtx
スキャン後に以下を出力する: The following pivot keywords were found: Users: (%SubjectUserName%, %TargetUserName%, %User%の一覧)
Logon IDs: (%SubjectLogonId%と%TargetLogonId%の一覧)
Workstation Names: (%WorkstationName%の一覧)
IP Addresses: (%IpAddress%の一覧 (※127.0.0.1等を無視する))
Processes: %Image%の一覧
その後、すべてのキーワードをkeywords.txtに保存する。
注意点:
調査員がpivot keywords list(keywords.txt)を作った後に、informationalイベントも含めて詳細なCSV(results.csv)を作って、
grep -f keywords.txt results.csv > attacker-results.csv
等で攻撃者の痕跡のタイムラインを作ります。(※もちろん、検知漏れの可能性があります。調査の初期段階でノイズをなるべく削減して、攻撃者の主な痕跡を見つける(fast forensicsの)ためです。調査員はその後徹底的調査を行うイメージです。)