PowerDMARCのSplunk統合により、メール認証およびドメインセキュリティデータをSplunk環境内で直接シームレスに取り込み、監視できます。PowerDMARC APIを活用することで、組織は複雑な設定なしに効率的なSIEM統合を構築可能です。接続して実行するだけで、全ドメインにわたるメールセキュリティ態勢を一元的に可視化できます。
本ガイドでは、意図的にセットアップとデータ取り込みに焦点を当てています。Splunkダッシュボードおよび高度な可視化機能は、本ドキュメントの対象範囲外です。
APIドキュメント
Swagger ドキュメント: https://app.powerdmarc.com/swagger-ui/index.html
代替ドキュメント: https://api.powerdmarc.com/
注記: 命名規則は、このドキュメントに記載されているものに限定されません。
アーキテクチャ概要
この例では、テスト目的および説明のために監査ログエンドポイントを使用しています。
PowerDMARC API
↓
Pythonスクリプト(cron/タスクスケジューラ経由でスケジュール)
↓
Splunk HTTPイベントコレクター (HEC)
↓
Splunk(検索、ダッシュボード、アラート、 相関)
SplunkはHTTPイベントコレクター(HEC)エンドポイントを通じてデータを受信し、外部ソースからの安全なデータ取り込みを可能にします。
前提条件
開始前に、以下のものを用意してください:
Splunk Enterprise または Splunk Cloud 管理者アクセス権限付き
許可を:
HTTPイベントコレクター(HEC)トークンを作成する
インデックスを作成する
データ入力の設定
Python 3.7以上 統合スクリプトを実行するシステムにインストールされている
PowerDMARC API ベアラートークン 監査ログへのアクセス権限付き
スクリプト実行環境から以下の宛先へのネットワーク接続性:
PowerDMARC API (https://app.powerdmarc.com)
Splunk HEC エンドポイント
Splunk設定
ステップ1: 専用インデックスを作成する
設定に移動 設定 → インデックス
クリック 新しいインデックス
設定:
インデックス名: powerdmarc
インデックスデータ型: イベント
アプリ: 検索(またはお好みのアプリ)
その他の設定はデフォルトのままにするか、保存要件に基づいて調整してください
クリック 保存
ステップ2: HTTPイベントコレクター(HEC)を有効にする
設定に移動 設定 → データ入力
クリック HTTPイベントコレクター
クリック グローバル設定
設定:
すべてのトークン: 有効
SSLを有効にする: 有効 (推奨)
HTTPポート番号: 8088 (デフォルト)
クリック 保存
ステップ3: HECトークンの作成
設定 → データ入力 → HTTPイベントコレクター 設定 → データ入力 → HTTPイベントコレクター
クリック 新規トークン
トークン設定を構成する:
名前: PowerDMARC_Integration
ソース名の上書き: powerdmarc:api
説明: PowerDMARC監査ログ取り込み用トークン
クリック 次へ
入力設定:
ソースタイプ: 選択 自動
索引: 選択 powerdmarc (または利用可能なインデックスを含む powerdmarcを含む利用可能なインデックス)
デフォルトインデックス: powerdmarc
クリック レビュー
クリック 送信
重要: トークン値を直ちにコピーして保存してください(後から取得することはできません)
統合スクリプト設定
ステップ4: Python環境の準備
オプションA: オンラインインストール(推奨)
必要なPythonライブラリをPyPIからインストールします(インターネット接続が必要です):
pip インストール requests
または付属の requirements.txt ファイルを使用してください:
pip インストール -r requirements.txt
オプションB: オフラインインストール
インターネットにアクセスできない環境では、同梱の requirements.txt ファイルを使用してください。
インターネットに接続されたマシンでパッケージをダウンロードする:
pip requirements.txt を -r オプションでダウンロード -d ./packages
パッケージを転送する パッケージ フォルダをターゲットシステムに転送し、次にインストールします:
pip --no-index --find-links=./packages -r requirements.txt
インストールを確認する:
python3 -c "import requests; print(f'requests version: {requests.__version__}')"
期待される出力: requests バージョン: 2.31.0 (または類似のバージョン)
ステップ5: 統合スクリプトの作成
Create powerdmarc_to_splunk.py を作成し、powerdmarc_to_splunk.txt プロのコードを貼り付けます。
ステップ6: スクリプトの設定
編集する powerdmarc_to_splunk.py ファイルを編集し、更新してください:
POWERDMARC_API_TOKEN: PowerDMARC API ベアラートークン
SPLUNK_HEC_URL: Splunk HEC エンドポイント
フォーマット: https://your-splunk-instance:8088/services/collector/event
For Splunk Cloud: https://input-<your-instance>.cloud.splunk.com:8088/services/collector/event
SPLUNK_HEC_TOKEN: ステップ3で作成されたHECトークン
SPLUNK_INDEX: powerdmarc (または選択したインデックス名)
DAYS_TO_FETCH: 取得する履歴データの日数(デフォルト: 1)
ステップ7: スクリプトのテスト
スクリプトを手動で実行し、接続性とデータ取り込みを確認してください:
python3 powerdmarc_to_splunk.py
期待される出力:
============================================================
PowerDMARCとSplunkの統合
============================================================
取得中 2025年1月3日 00:00:00 から 2025年1月4日 00:00:00 までの PowerDMARC ログを取得中...
15件の監査ログエントリを正常に取得しました
15件のイベントをSplunkに送信中...
摂取概要:
送信成功: 15
失敗: 0
合計: 15
============================================================
統合が正常に完了しました
============================================================
自動実行のスケジュール設定
Linux/Unix (cron) 用
crontabを編集する:
crontab -e
1時間ごとに実行するエントリを追加:
0 * * * * /usr/bin/python3 /path/to/powerdmarc_to_splunk.py >> /var/log/powerdmarc_splunk.log 2>&1
または15分ごとに実行:
*/15 * * * * /usr/bin/python3 /path/to/powerdmarc_to_splunk.py >> /var/log/powerdmarc_splunk.log 2>&1
Windows用(タスク スケジューラ)
開く タスク スケジューラ
クリック タスクを作成
設定:
名前: PowerDMARC Splunk 統合
説明: PowerDMARC監査ログの定期的な取り込み
セキュリティオプション: ユーザーがログオンしているかどうかにかかわらず実行する
トリガータブ: クリック 新規
開始:予定通り
設定: 毎日、1時間ごとに繰り返し
アクションタブ: クリック 新規
アクション: プログラムを開始する
プログラム: python.exe
引数: C:\path\to\powerdmarc_to_splunk.py
クリック OK
Splunkにおけるデータ取り込みの検証
ステップ8: Splunkでのデータ検証
移動先 検索とレポート アプリ
次のSPLクエリを実行してください:
index=powerdmarc ソースタイプ=PoweredMARC:監査ログ
| sort - _time
| ヘッダー 20
| テーブル _時間, ユーザー名, アクション, IPアドレス, 作成日時
期待される結果
監査ログエントリには、次のようなフィールドが表示されるはずです:
ユーザー名:操作を実行したユーザー
アクション: 実行されたアクションの説明
ip_address:ユーザーのIPアドレス
作成日時: 監査イベントのタイムスタンプ
イベント構造の例
{
"user_name": "John Doe",
"action": "添付ドメインを更新しました",
"ip_address": "12.111.67.123",
"a_username": null,
"other": null,
"created_at": "2025-01-04 14:29:24"
}
トラブルシューティング
よくある問題
問題: Splunkにデータが表示されない
HECトークンが正しく有効化されていることを確認してください
HECエンドポイントURLがアクセス可能かどうかを確認する
インデックスを検証 powerdmarc が存在し、アクセス可能であることを確認する
ファイアウォールルールを確認し、SplunkへのアウトバウンドHTTPSを許可していることを確認してください
スクリプトの実行ログをエラーについて確認する
問題: SSL証明書エラー
自己署名証明書の場合、 verify=False (本番環境では推奨されません)
または、Splunkに適切なSSL証明書をインストールしてください
問題: PowerDMARC API認証の失敗
APIトークンが有効であり、適切な権限を持っていることを確認する
トークンが期限切れになっていないことを確認してください
APIエンドポイントURLが正しいことを確認してください
問題: スクリプトは実行されるが、ログが取得されない
時間範囲パラメータを確認する
指定された期間の監査ログが存在するかどうかを確認する
PowerDMARC APIドキュメントのパラメータ形式を確認する
次のステップ
この時点で:
PowerDMARC監査ログはSplunkに正常に取り込まれました
以下の操作が可能になりました:
カスタムダッシュボードを作成して可視化する
特定の監査イベントに対するアラートを設定する
PowerDMARCデータを他のセキュリティログと関連付ける
コンプライアンスおよびセキュリティ監視のためのレポートを作成する
脅威検出にSplunkの分析機能を活用する
推奨される機能強化
追加のAPIエンドポイントを追加する: スクリプトを拡張し、DMARC集計レポート、フォレンジックレポート、またはドメインデータを取得できるようにする
チェックポイントロジックの実装: 重複した取り込みを回避するため、最後に正常に実行されたタイムスタンプを保存する
ログ記録の追加: 本番環境向けにローテーション機能付き適切なログ記録を実装する
エラー通知: スクリプトの失敗時にメールまたはSlack通知を設定する
Splunkアドオンとしてデプロイ: 統合機能をSplunk TA(Technology Add-on)としてパッケージ化し、導入を容易にする
セキュリティ上の考慮事項
認証情報を安全に保管する: 環境変数または暗号化された設定ファイルを使用する
SSL検証を有効にする: 常に verify=True を常に使用してください
APIトークンを定期的に更新してください: 認証情報管理のセキュリティベストプラクティスに従う
HECトークンの権限を制限する: 特定のインデックスとソースタイプに制限する
スクリプトの実行を監視する: 失敗した実行や異常に対するアラートを設定する
Splunk アクセス制御の確認: 権限のあるユーザーのみがPowerDMARCデータにアクセスできるようにする
サポートとリソース
PowerDMARC API ドキュメント: https://api.powerdmarc.com/
Splunk HEC ドキュメント: https://docs.splunk.com/Documentation/Splunk/latest/Data/UsetheHTTPEventCollector
Splunk Answers: https://community.splunk.com/