M365ログによるBECメール T1657(Financial Theft)検知についていいろいろ調べて考えてみた

Pocket

BEC(business email compromise)メールをM365のログから検知する方法をいろいろ探ってみた。

なお、参考になりそうなサイトは以下の通り。

ビジネスメール詐欺(BEC)の手法と対策
https://gblogs.cisco.com/jp/2018/07/details-of-business-email-compromise/

ビジネスメール詐欺(BEC)の特徴と対策
https://www.ipa.go.jp/security/bec/hjuojm0000003cce-att/000102392.pdf

ビジネスメール詐欺に備えてメールの転送を見直そう
https://news.mynavi.jp/techplus/article/techp5349/

ビジネスメール詐欺の実態と対策アプローチ 第1版
https://www.macnica.co.jp/business/security/security-reports/141698/

1.EmailEvents-PotentialNewSpammer

Office 365/EmailEvents-PotentialNewSpammer.kql
https://github.com/reprise99/Sentinel-Queries/blob/main/Office%20365/EmailEvents-PotentialNewSpammer.kql

これをChatGPTに解説してもらった。

このKQL(Kusto Query Language)のクエリは、Microsoft 365 DefenderやMicrosoft Sentinelを使用して、初めてユーザーにスパムメールを送信している可能性のある送信者を特定するためのものです。ビジネスメール詐欺(BEC: Business Email Compromise)を検出するのに役立ちます。以下にその詳細を日本語で解説します。
前提

クエリにはM365 DefenderのEmailイベントテーブルが必要です。
スパム行為の特定に役立つしきい値として、10分間に500通以上の同じメールが送信された場合を考慮します。

クエリの流れ
1. しきい値の設定

最初にスパムとみなす基準として、500通をしきい値(threshold)として設定します。

kql

let threshold = 500;

2. 過去の大量送信メールの送信者リストを作成

過去30日間から1日前までの間に、大量のメールを送信してきた送信者のリストを作成します。これにより、企業のコミュニケーションやニュースレターのような正規の大量メールを除外することが目的です。

kql

let knownbulkemail=
EmailEvents
| where TimeGenerated > ago(30d) and TimeGenerated < ago (1d) // 30日前から1日前までのデータを抽出
| project TimeGenerated, EmailDirection, DeliveryAction, RecipientEmailAddress, SenderFromAddress, Subject // 必要なフィールドを選択
| where EmailDirection == "Inbound" // 受信メールに限定
| where DeliveryAction == "Delivered" // 配信されたメールに限定
| summarize RecipientCount=dcount(RecipientEmailAddress) by SenderFromAddress, Subject, bin(TimeGenerated, 10m) // 10分ごとに受信者の数を集計
| where RecipientCount > threshold // 受信者が500人以上のものを抽出
| distinct SenderFromAddress; // 送信者アドレスを一意に抽出

3. 過去1時間の新規送信者を検索

次に、過去1日のメールデータの中から、過去にリストに含まれていない新しい送信者を探します。送信者が500通以上のメールを10分以内に送信した場合に抽出されます。

kql

EmailEvents
| where TimeGenerated > ago(1d) // 過去1日のデータを抽出
| project TimeGenerated, EmailDirection, DeliveryAction, RecipientEmailAddress, SenderFromAddress, Subject // 必要なフィールドを選択
| where EmailDirection == "Inbound" // 受信メールに限定
| where DeliveryAction == "Delivered" // 配信されたメールに限定
| summarize RecipientCount=dcount(RecipientEmailAddress) by SenderFromAddress, Subject, bin(TimeGenerated, 10m) // 10分ごとに受信者の数を集計
| where SenderFromAddress !in (knownbulkemail) and RecipientCount > threshold // 過去の大量送信者に含まれず、かつ500通以上送信した送信者を抽出

解説のポイント

knownbulkemail: 過去30日間で、大量メールを送信している既知の送信者リストを作成。これにより、企業の正規な大量送信(例: 社内連絡、ニュースレター)を除外します。
threshold(しきい値): 同一送信者から10分以内に500通以上のメールが届いた場合、それをスパムの可能性として検出します。
最後のフィルタリング: 過去1時間の間に、新たに大量のメールを送信している送信者を特定し、それが既知の大量送信者リストに含まれていない場合、スパムの可能性が高いと判断されます。

このクエリは、ビジネスメール詐欺やスパムメールの送信者を特定し、早期に対処するためのものです。

2.Emails from Outside the Organization with Company Domains

3.Emails with Lookalike Domains

上記2.3.の方法については、Splunk Security Essentialsで提供されているようなので、調べてみるとよい。

ちなみに、3のSPLは以下の資料に記載されている。また、Splunk社の「The Essential Guide to Security」というドキュメントのも記載されており、ググるといろんなサイトからダウンロード可能。

Say Goodbye to Your Big Alert Pipeline, and Say Hello to Your
New Risk-Based Approach(Splunk)
https://static1.squarespace.com/static/5cfe5a0cf9e0ca0001f8fdf3/t/6179b34ed2c93672af9ededb/1635365719245/SEC1479_SayGoodbyeToYourBig_Final_1538509127390001SxPF.pdf
Fraud Detection: WFH Leading to Increased BEC and Phishing Threats — What To Look For 
https://www.splunk.com/en_us/blog/security/fraud-detection-wfh-leading-to-increased-bec-and-phishing-threats-what-to-look-for.html?_gl=1*72hcnp*_gcl_aw*R0NMLjE3MjY4MDA2NjEuQ2p3S0NBandsNi0zQmhCV0Vpd0FwTjZfa2x6M01nTVVzRXRDVHVMVXFONTRUbHBnbVZrbTJJNlFNVERsMHJqQktja21ublAzallodk54b0NFYkFRQXZEX0J3RQ..*_gcl_au*MTcxMzg4MzUxMS4xNzI2MzA2NzU4*FPAU*MTcxMzg4MzUxMS4xNzI2MzA2NzU4*_ga*MTYyMDc2NTA2OC4xNzE2NzA0NzE3*_ga_5EPM2P39FV*MTcyNzA1MTEyMi4yNS4xLjE3MjcwNTE2OTAuMC4wLjc0NzU2MTc4MQ..*_fplc*Z0VWa256WnQ4bVZjMnAwMk50OVVGYjI3M1JjaERrR1FMazdzVTMlMkJyMHhSVWFEc0JuQiUyRnRIMGs3aFRMNGhzbUxJdnJnQ1pocTl2cW5JSzhsQWZtaERYRDBHZkppUDdIcnBXSzc0STFmJTJGb0pkdzVwRXdCUzV4UmdLRTFDVWZBJTNEJTNE

特に、3についての詳しい記事として以下がある。

Parsing Domains with URL Toolbox (Just Like House Slytherin) 
https://www.splunk.com/en_us/blog/security/domain-parsing-url-toolbox.html

またこんなAppのあるらしい。

Mimecast for Splunk
https://splunkbase.splunk.com/app/4075?_gl=1*pjioxo*_gcl_aw*R0NMLjE3MjY4MDA2NjEuQ2p3S0NBandsNi0zQmhCV0Vpd0FwTjZfa2x6M01nTVVzRXRDVHVMVXFONTRUbHBnbVZrbTJJNlFNVERsMHJqQktja21ublAzallodk54b0NFYkFRQXZEX0J3RQ..*_gcl_au*MTcxMzg4MzUxMS4xNzI2MzA2NzU4*FPAU*MTcxMzg4MzUxMS4xNzI2MzA2NzU4*_ga*MTYyMDc2NTA2OC4xNzE2NzA0NzE3*_ga_5EPM2P39FV*MTcyNzA1MTEyMi4yNS4xLjE3MjcwNTIwNzQuMC4wLjc0NzU2MTc4MQ..*_fplc*eVAzdzltYzdPNGFvZXp0RFRCJTJCQXpxejIwdDlMMXZMSkolMkZvWEo1TmR4YVUyN01ObU1QVG95TFVVVWFwcTJvJTJGcE5BS2hwNjFzcWhPaUpnMWViVExNU3ZVJTJGRkNKQXZGRkVFZWlobjZNNkVuVEE5THUzWklJS0p4TTNidHU2anclM0QlM0Q.

Agari
https://splunkbase.splunk.com/app/5950?_gl=1*1jtkk18*_gcl_aw*R0NMLjE3MjY4MDA2NjEuQ2p3S0NBandsNi0zQmhCV0Vpd0FwTjZfa2x6M01nTVVzRXRDVHVMVXFONTRUbHBnbVZrbTJJNlFNVERsMHJqQktja21ublAzallodk54b0NFYkFRQXZEX0J3RQ..*_gcl_au*MTcxMzg4MzUxMS4xNzI2MzA2NzU4*FPAU*MTcxMzg4MzUxMS4xNzI2MzA2NzU4*_ga*MTYyMDc2NTA2OC4xNzE2NzA0NzE3*_ga_5EPM2P39FV*MTcyNzA1MTEyMi4yNS4xLjE3MjcwNTIxMDAuMC4wLjc0NzU2MTc4MQ..*_fplc*RkJIa1Yyb1FrZk9PNm50UkFkQnIzaUF3WEd1U0NyWUN3bHRCQXhPSEhPRmppRzV3QWdMaW9SZEFPVzV1Y0dSQnRlTnV4NDFNJTJCMUZ1TzJrc3QyTFlJQnVlTjJpSSUyRkJhMlQ3YlhMTUVjJTJGJTJCckxidWdUR0d5OFJjalpsNHZSJTJGQSUzRCUzRA..

Comments

コメントを残す

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

CAPTCHA