Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extract or reproduce event log message #458

Open
hitenkoku opened this issue Mar 23, 2022 · 7 comments
Open

Extract or reproduce event log message #458

hitenkoku opened this issue Mar 23, 2022 · 7 comments
Assignees
Labels
under-investigation under investigation to develop

Comments

@hitenkoku
Copy link
Collaborator

確認ありがとうございます!
データセットのJSONがそれぞれ違うので、対応するのは大変で広く使えなさそうなので、取り敢えずbotsとOTRF dataset対応なしにしましょうか?

それより、Messageを検索するルールが20件ぐらいありますが、元々のevtxファイルにMessageがないので、Messageが記録されているxmlかjsonファイルにexportしてから、Message検索と出力対応にした方が良さそうです。(アラートを確認する際にMessage情報があると助かるので)

今、良さそうなexport方法を調査中です。残念ながら、Windowsイベントログを書き込むrust crateはあるけど、exportするcrateは無さそうです。
PowershellでGet-WinEvent -LogName system |ConvertTo-JsonGet-WinEvent -LogName system |ConvertTo-Xmlで良い感じに変換できるけど、とても遅いのと、Windows 7のデフォルトPowershellバージョンでは使えないかもしれません。

Event ViewerのGUIからMessageが記録されているXMLをエクスポートできるけど、GUIなので自動化できません。

wevtutil.exeでMessageが無いXMLかテキストのMessageのどちらかをexportできるけど、Event ViewerのようにMessageが含まれているXMLを出力できなさそうなので、もう少し調べてみます。。

これを別のissueにしましょうか?

Originally posted by @YamatoSecurity in #386 (comment)

@hitenkoku
Copy link
Collaborator Author

hitenkoku commented Mar 24, 2022

Exportの方法はWindowsイベントログをRustでJSONもしくXMLにexportするのはevtxライブラリでできるので、以下を参考にしながらJSONにアウトプットすれば行けそうです。

https://github.com/omerbenamram/EVTX#evtx_dump-binary-utility

@YamatoSecurity
Copy link
Collaborator

YamatoSecurity commented Mar 25, 2022

調べてくれてありがとうございます。問題はevtxにメッセージ情報が無いので、ライブ端末でWindows API経由でメッセージ情報を抽出しながら、エクスポートする必要があります。
WELMというNSAのツールがDLLにあるメッセージ情報を抽出しているので、そのDBを使う手もありますが、3年以上前から更新されていなくて、Windows 11や日本語に対応していない、メッセージが無かったりする場合もあるので、できればエクスポート時にメッセージをエクスポートした方が確実です。

ご参考:
https://github.com/nsacyber/Windows-Event-Log-Messages/blob/master/docs/Running%20WELM.md
https://github.com/nsacyber/Windows-Event-Log-Messages/blob/master/docs/Datasets.md

このsqlite dbを一回見てみたのですが、よく分かりませんでした。このデータセット使えそうかどうか一回見てくれますか?

https://github.com/nsacyber/Windows-Event-Log-Messages/releases

@hitenkoku
Copy link
Collaborator Author

なるほど・コメントいただきありがとうございます。よくわかっておらず申し訳ないです。

sqlite dbのデータセットを確認するということで承りました。少し確認してみます

@YamatoSecurity
Copy link
Collaborator

wevtutil epl Security Security-backup-test.evtx
wevtutil al Security-backup-test.evtx /l:en-US

という風にしたら、英語の表示情報(message)がLocaleMetaDataフォルダ配下にSecurity-backup-test_1033.MTAというファイルに保存されますが、.MTAをどうやってパースするのが問題です。。もう少し調べます。

Screen Shot 2022-03-30 at 16 49 37

@YamatoSecurity
Copy link
Collaborator

(Get-WinEvent -listprovider Microsoft-Windows-Security-Auditing).events 等のPwShコマンドで各ログのイベントIDとメッセージを抽出できそうです!
Screen Shot 2022-06-06 at 18 51 11

Get-WinEventコマンドで各ログのイベントIDとメッセージ情報を抽出して、テキストデータベース(CSV?)に保存しておけば、オフライン調査でメッセージをある程度再現できそうです。

ただ、問題は2つあります:

  1. Messageが凄く長い場合があります。 (例: (Get-WinEvent -listprovider Microsoft-Windows-Security-Auditing).events | Where-Object id -eq 4624 )
  2. %1等のプレースホルダの置換処理しかできなさそうですが、本当はhexデータの変換処理とかをする必要があります。
    例: エラーコードのマッピング等々。(ま、これが無くても仕方ないけど、エラーコードのHex値を暗記していない場合はアナリストが毎回グーグル検索する必要があります。)

もう少し考えておきます。取り敢えずメモとして残しておきます。

@YamatoSecurity YamatoSecurity changed the title export方法の検討 Extract or reproduce event log message Jun 6, 2022
@hitenkoku
Copy link
Collaborator Author

情報提供ありがとうございます。2つ確認させてください。

1つめは、descriptionの部分がMessageということで理解しました。これってversionが複数ありますが、対象のイベントの中にあるSystem > Versionの値を利用するという認識で良いのでしょうか。

2つめは出力をするとしたら以下の2つの方法が良いと思いますが、どちらがよろしいでしょうか。個人的には別ファイル出力かなとも思っています。

  • ある一定文字数で省略文字(...)として一定以上の長さにならないようにする
    • 欠点: 出力はできるようになりますがあまり意味がなさそう
  • csvの出力にしては大きすぎるのでpivot-keywordsのように別ファイルに出力する
    • 欠点:検知数によってはファイルサイズがかなり大きくなってしまう可能性がある

@YamatoSecurity
Copy link
Collaborator

メモ: Windows Event Collectorでデフォルトのログ転送機能を使ったら、Message情報がEVTXに保存されます。
RenderingInfo

SIEMを構築しなくてもエクスポート時にMessageを保存する方法がないかな〜。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
under-investigation under investigation to develop
Projects
None yet
Development

No branches or pull requests

2 participants