M365のログを使ってスピアフィッシング T1566を検知する方法を調べてみた

Pocket

M365ログを使ってスピアフィッシングを検知する方法をいろいろ調べています。

1.O365 Safe Links Detection

O365 Safe Links Detection
https://research.splunk.com/cloud/711d9e8c-2cb0-45cf-8813-5f191ecb9b26/

ChatGPTの解説は以下の通り。

このSPLクエリは、Office 365における安全なリンク保護機能によって検出された潜在的に悪意のあるURLに関連するアラート情報を集計し、そのデータを解析するものです。以下に詳細を解説します。
クエリの解説

o365_management_activity: Office 365の管理活動ログからデータを参照しています。
Name="*a potentially malicious URL*": 名前フィールドに「潜在的に悪意のあるURL」という記載が含まれるエントリをフィルタリングしています。
Operation=AlertEntityGenerated: アラートが生成された操作に関連するデータのみを抽出しています。

次に、fromjson Data コマンドで、Dataフィールドに含まれるJSON形式のデータを抽出します。

stats: 集計処理を行います。
count: イベントの発生回数をカウントします。
min(_time) as firstTime: 最初の検出時刻を「firstTime」として集計します。
max(_time) as lastTime: 最後の検出時刻を「lastTime」として集計します。
values(ObjectId) as url: URLを「url」として集計します。
values(od) as desc: 説明フィールドを「desc」として集計します。
by AlertId, trc, Operation, Name, ot: AlertId、trc、Operation、Name、otの各フィールドでグループ化します。

フィールド名の変更:

Name を signature に変更。
AlertId を signature_id に変更。
trc を user に変更。
ot を action に変更。

eval関数: actionフィールドの値に基づいて、新しいアクションを設定します。
Allowed または BlockPageOverride の場合、アクションは「allowed」と設定されます。
それ以外の場合、アクションは「blocked」となります。

security_content_ctime: 最初の検出時刻(firstTime)と最後の検出時刻(lastTime)を人間が読める形式に変換します。

o365_safe_links_detection_filter: Office 365の安全なリンク検出のフィルタリングマクロが適用されます。

ちなみに上記メッセージを含むいろいろなメッセージが以下の資料にかかれているので参考になるかもしれません。

Microsoft 365 Minimum Viable Secure Configuration Baseline
https://www.cisa.gov/sites/default/files/publications/Microsoft%20Exchange%20Online%20M365%20Minimum%20Viable%20SCB%20Draft%20v0.1.pdf

2.O365 ZAP Activity Detection

O365 ZAP Activity Detection 
https://research.splunk.com/cloud/4df275fd-a0e5-4246-8b92-d3201edaef7a/

以下、ChatGPTに解説してもらいました。

このSPLクエリは、Office 365のSecurity Compliance Centerによって生成されたアラートに基づき、悪意のあるメッセージを含むメールに関する情報を集計して解析するものです。詳細は以下の通りです。
クエリの解説

o365_management_activity: Office 365管理活動ログを参照しています。
Workload=SecurityComplianceCenter: Security Compliance Centerに関連するデータをフィルタしています。
Operation=AlertEntityGenerated: アラートが生成された操作に関連するデータを抽出しています。
Name="*messages containing malicious*": メッセージに「悪意のあるコンテンツ」を含むアラートに関連するデータをフィルタしています。

次に、fromjson Data コマンドで、Dataフィールドに含まれるJSON形式のデータを展開して抽出します。

stats: 次のフィールドを集計します。
count: イベントの発生回数をカウントします。
min(_time) as firstTime: 最初の検出時刻を「firstTime」として集計します。
max(_time) as lastTime: 最後の検出時刻を「lastTime」として集計します。
values(zu) as url: URLを「url」として集計します。
values(zfn) as file_name: ファイル名を「file_name」として集計します。
values(ms) as subject: メールの件名を「subject」として集計します。
values(ttr) as result: メールの処理結果を「result」として集計します。
values(tsd) as src_user: メッセージの送信者(攻撃者または送信者)を「src_user」として集計します。

次に、フィールド名を変更します。

Name を signature に変更。
AlertId を signature_id に変更。
trc を user に変更。

eval関数: resultフィールドの値に基づいてアクションを評価し、新しい値を設定します。
**Successの場合は「blocked」**とし、それ以外の場合は「allowed」とします。
url = split(url,";"): URLのリストをセミコロン(;)で分割して、複数のURLを抽出します。

security_content_ctime: 最初の検出時刻(firstTime)と最後の検出時刻(lastTime)を人間が読める形式に変換します。

o365_zap_activity_detection_filter: ZAP(Zero-hour Auto Purge)アクティビティ検出のフィルタリングマクロが適用されます。これはOffice 365の自動メール削除機能に関連する検出ルールです。

関連情報一覧

O365 Threat Intelligence Suspicious Email Delivered
https://research.splunk.com/cloud/605cc93a-70e4-4ee3-9a3d-1a62e8c9b6c2/

O365 Email Reported By Admin Found Malicious
https://research.splunk.com/cloud/94396c3e-7728-422a-9956-e4b77b53dbdf/

Windows Defender ASR Rules Stacking
https://research.splunk.com/endpoint/425a6657-c5e4-4cbb-909e-fc9e5d326f01/

O365 ZAP Activity Detection
https://research.splunk.com/cloud/4df275fd-a0e5-4246-8b92-d3201edaef7a/

⭐️スピアフィッシングでうけるWindowsの影響を検知するルールあり⭐️
KaseyaユーザーがREvillで暗号化される?
https://www.splunk.com/ja_jp/blog/security/kaseya-sera-what-revil-shall-encrypt-shall-encrypt.html

Detecting Office 365 attacks
https://lantern.splunk.com/Security/UCE/Guided_Insights/Threat_hunting/Detecting_Office_365_attacks

Windows Spearphishing Attachment Connect To None MS Office Domain
https://research.splunk.com/endpoint/1cb40e15-cffa-45cc-abbd-e35884a49766/

Spear Phishing & How To Prevent It
https://www.splunk.com/en_us/blog/learn/spear-phishing.html

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA