From f740f612794710a3a478e95962c1bd10cca4e92b Mon Sep 17 00:00:00 2001 From: DastInDark <2350416+hitenkoku@users.noreply.github.com> Date: Sun, 9 Oct 2022 14:38:14 +0900 Subject: [PATCH 1/4] to exclude double quote from EventID data --- src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 0163b369..06ce1995 100644 --- a/src/main.rs +++ b/src/main.rs @@ -823,8 +823,8 @@ impl App { } match eventid.unwrap() { - Value::String(s) => utils::is_target_event_id(s), - Value::Number(n) => utils::is_target_event_id(&n.to_string()), + Value::String(s) => utils::is_target_event_id(&s.replace('\"', "")), + Value::Number(n) => utils::is_target_event_id(&n.to_string().replace('\"', "")), _ => true, // レコードからEventIdが取得できない場合は、特にフィルタしない } } From de2161a31482940ddfc77cc81e5336fb9dab1e9f Mon Sep 17 00:00:00 2001 From: DastInDark <2350416+hitenkoku@users.noreply.github.com> Date: Sun, 9 Oct 2022 15:15:42 +0900 Subject: [PATCH 2/4] to exclude record from detection target when channel in record is null --- src/main.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 06ce1995..6457faa7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -738,9 +738,9 @@ impl App { continue; } - // target_eventids.txtでイベントIDベースでフィルタする。 let data = record_result.as_ref().unwrap().data.clone(); - if !self._is_target_event_id(&data) + // channelがnullである場合もしくは、target_eventids.txtでイベントIDベースでフィルタする。 + if !self._is_valid_channel(&data) | !self._is_target_event_id(&data) && !configs::CONFIG.read().unwrap().args.deep_scan { continue; @@ -829,6 +829,18 @@ impl App { } } + /// レコードのチャンネルの値が正しい(Stringの形でありnullでないもの)ことを判定する関数 + fn _is_valid_channel(&self, data: &Value) -> bool { + let channel = utils::get_event_value("Event.System.Channel", data); + if channel.is_none() { + return false; + } + match channel.unwrap() { + Value::String(s) => s != "null", + _ => false, // channelの値は文字列を想定しているため、それ以外のデータが来た場合はfalseを返す + } + } + fn evtx_to_jsons(&self, evtx_filepath: PathBuf) -> Option> { match EvtxParser::from_path(evtx_filepath) { Ok(evtx_parser) => { From 9d48adbb8e90992f9b008f32c1035e0572530df4 Mon Sep 17 00:00:00 2001 From: DastInDark <2350416+hitenkoku@users.noreply.github.com> Date: Sun, 9 Oct 2022 15:30:52 +0900 Subject: [PATCH 3/4] updated changelog #727 --- CHANGELOG-Japanese.md | 1 + CHANGELOG.md | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG-Japanese.md b/CHANGELOG-Japanese.md index 2031902f..a3280df5 100644 --- a/CHANGELOG-Japanese.md +++ b/CHANGELOG-Japanese.md @@ -7,6 +7,7 @@ - より正確な結果を出力するために、チャンネルとEIDの情報を`rules/config/channel_eid_info.txt`に基づいてチェックするようにした。 (#463) (@garigariganzy) - 検知ルールを利用しないオプション(`-M`と`-L`オプション)の時のメッセージの出力内容を修正した。 (#730) (@hitenkoku) - 検出したルールの作者名を標準出力に追加した。 (#724) (@hitenkoku) +- チャンネル情報がnullとなっているレコードを検知およびmetricの対象から除外した。 (#727) (@hitenkoku) **バグ修正:** diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a8b6a90..cdfce6ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Hayabusa now checks Channel and EID information based on `rules/config/channel_eid_info.txt` to provide more accurate results. (#463) (@garigariganzy) - Do not display a message about loading detection rules when using the `-M` or `-L` options. (#730) (@hitenkoku) - Added a table of rule authors to standard output. (#724) (@hitenkoku) +- Exclude record that channel name is `null` from detecion and metrics. (#727) (@hitenkoku) **Bug Fixes:** From 7e6551a4a14e65ac09c8b5f89925212ade444b67 Mon Sep 17 00:00:00 2001 From: Yamato Security <71482215+YamatoSecurity@users.noreply.github.com> Date: Sun, 9 Oct 2022 17:36:43 +0900 Subject: [PATCH 4/4] update changelog --- CHANGELOG-Japanese.md | 2 +- CHANGELOG.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG-Japanese.md b/CHANGELOG-Japanese.md index a3280df5..70a36b54 100644 --- a/CHANGELOG-Japanese.md +++ b/CHANGELOG-Japanese.md @@ -7,7 +7,7 @@ - より正確な結果を出力するために、チャンネルとEIDの情報を`rules/config/channel_eid_info.txt`に基づいてチェックするようにした。 (#463) (@garigariganzy) - 検知ルールを利用しないオプション(`-M`と`-L`オプション)の時のメッセージの出力内容を修正した。 (#730) (@hitenkoku) - 検出したルールの作者名を標準出力に追加した。 (#724) (@hitenkoku) -- チャンネル情報がnullとなっているレコードを検知およびmetricの対象から除外した。 (#727) (@hitenkoku) +- チャンネル情報が`null`となっているレコード(ETWイベント)を検知およびmetricの対象から除外した。 (#727) (@hitenkoku) **バグ修正:** diff --git a/CHANGELOG.md b/CHANGELOG.md index cdfce6ee..1c24eb1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ - Hayabusa now checks Channel and EID information based on `rules/config/channel_eid_info.txt` to provide more accurate results. (#463) (@garigariganzy) - Do not display a message about loading detection rules when using the `-M` or `-L` options. (#730) (@hitenkoku) - Added a table of rule authors to standard output. (#724) (@hitenkoku) -- Exclude record that channel name is `null` from detecion and metrics. (#727) (@hitenkoku) +- Ignore event records when the channel name is `null` (ETW events) when scanning and performing metrics. (#727) (@hitenkoku) **Bug Fixes:**