TA-dmarc add-on for Splunk | Splunkbase でExchange Onlineにアクセスしよう
2022年11月時点ではExchange OnlineのIMAPは基本認証が使えないはずですので、モダン認証(OAuth2)を使う必要があります。WEBアプリ開発者でない方にとってはどうすれば?と途方に暮れているかもしれませんのでお役に立てればと思います。
ということで、最新のSplunkとTA-dmarcをセットアップしましょう。
TA-dmarcの[入力]の[Create New Input]に[DMARC imap(oauth2)]が表示されていることを確認します。 (TA-dmarc v4.1.1以降が必要です)
また、この作業を行う前に、DNSでDMARCレコードを公開または「rua=mailto:<EMAIL>」を追記し統計レポートを受け取ることを確認しましょう。
統計レポートはドメインごとに24時間に1度の頻度なので届くのは翌日だと思います。
統計レポートはドメインごとに24時間に1度の頻度なので届くのは翌日だと思います。
設定の流れ
- TA-dmarcで使用するアカウント情報を作成する
- TA-dmarc Account登録
- メールボックスの権限設定
- TA-dmarc Inputの登録
- 動作確認
TA-dmarcで使用するアカウント情報を作成する
Azure ADポータルの[管理]>[アプリの登録]を開き、[新規登録]を選択します。
- [名前] 管理しやすい名前を付けましょう。
- [サポートされているアカウントの種類] 用法に合わせて選択ですが「この組織ディレクトリのみに含まれるアカウント」でよいと思います。
- [リダイレクト URL] 「Web」を選び「https://localhost」に設定します。
表示された"アプリケーション (クライアント) ID"の値は"Username"として後ほど利用します。
次に[管理]>[証明書とシークレット]を開き[新しいクライアントシークレット]を選択します。
追加されたシークレットの[値]を"Password"で使用します。このページから離れると二度と確認できませんので気を付けてください。
- [説明] 任意の名前
- [有効期限] セキュリティ面を考慮すると短い方が良いですが運用とのバランスもありますのでお任せします。
追加されたシークレットの[値]を"Password"で使用します。このページから離れると二度と確認できませんので気を付けてください。
わからなくなったらシークレットを作成してください。使わなくなったシークレットは忘れず削除しましょう。
TA-dmarcでアカウントを登録する
先ほど作成したアプリの情報を使い設定します。
アカウント登録
Splunkの[TA-dmarc]>[設定]>[Account]の追加を行います。
- Account name: わかりやすい名前を設定します。(有効期限を入れておく良いかも)
- Username: Azure ADのアプリの"アプリケーション(クライアント)ID"です。
- Password: "証明書とシークレット"で作成したシークレットの値になります。
パスワードには有効期限がありますので期限切れになる前に更新してください。
メールボックスの権限設定
メールボックスには作成したアプリを使用して接続しますので権限設定が必要です。
とりあえずPowerShellでExchange Onlineに接続しましょう。
Install-Module -Name ExchangeOnlineManagementImport-Module ExchangeOnlineManagementConnect-ExchangeOnline -Organization <TENANTID>
- <TENANTID> Azure ADの概要または、作成したアプリの概要で確認できます。
New-ServicePrincipal -AppId <CLIENTID> -ServiceId <OBJECTID>Add-MailboxPermission -Identity "<EMAIL>" -User <OBJECTID> -AccessRights FullAccess
- <CLIENTID> アプリ登録、アカウント登録で使用した "アプリケーション(クライアント)ID"です。
- <OBJECTID> Azure ADの[エンタープライズアプリケーション]からアプリ登録で使用した名前を開くと[概要]の”オブジェクト ID”に表示されています。
- <EMAIL> TA-dmarcから接続するメールアドレスです。
DNSのDMARCレコードに設定した「rua=mailto:<EMAIL>」
実行してエラーが出なければ権限設定は完了なのでExchange Onlineを切断しましょう。
Disconnect-ExchangeOnline
TA-dmarc Inputの登録
TA-dmarcの[入力]>[Create New Input]で[DMARC imap(oauth2)]を選択します。
基本的には初期値のままでよいです。
- Name:任意の名前
- Interval:受信チェックする間隔を秒で指定します。(例:3600)
- Grobal Account: 事前に登録したアカウントを選択します。
- IMAP server: 初期値の[outlook.office365.com]
- IMAP username: 権限設定で使用したメールアドレスを入力 <EMAIL>
- OAuth2 Authority: 「https://login.microsoftonline.com/<tenant_id>」
<tenant_id>は権限設定で使用した<TENANTID>です。
入力出来たら[追加]を選択します。
動作確認
正しく設定できていれば受信済みレポートの取り込みが始まります。
サーチで「| inputlookup ta_dmarc_checkpointer_lookup」を実行すれば取り込んだメッセージを確認できますし、「sourcetype="dmarc:json"」で内容を確認できます。
うまく取り込めない場合は、Splunkインストールフォルダの「var/log/splunk」にある「ta_dmarc_*」ファイルを確認するとエラーの原因が分かるかもしれません。