チケットの送信 マイチケット
ようこそ
ログイン  会員登録

PowerDMARCとSplunk - 統合ガイド

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: 専用インデックスを作成する

  1. 設定に移動 設定 → インデックス

  2. クリック 新しいインデックス

  3. 設定:

    • インデックス名: powerdmarc

    • インデックスデータ型: イベント

    • アプリ: 検索(またはお好みのアプリ)

    • その他の設定はデフォルトのままにするか、保存要件に基づいて調整してください

  4. クリック 保存

ステップ2: HTTPイベントコレクター(HEC)を有効にする

  1. 設定に移動 設定 → データ入力

  2. クリック HTTPイベントコレクター

  3. クリック グローバル設定

  4. 設定:

    • すべてのトークン: 有効

    • SSLを有効にする: 有効 (推奨)

    • HTTPポート番号: 8088 (デフォルト)

  5. クリック 保存

ステップ3: HECトークンの作成

  1. 設定 → データ入力 → HTTPイベントコレクター 設定 → データ入力 → HTTPイベントコレクター

  2. クリック 新規トークン

  3. トークン設定を構成する:

    • 名前: PowerDMARC_Integration

    • ソース名の上書き: powerdmarc:api

    • 説明: PowerDMARC監査ログ取り込み用トークン

  4. クリック 次へ

  5. 入力設定:

    • ソースタイプ: 選択 自動

    • 索引: 選択 powerdmarc (または利用可能なインデックスを含む powerdmarcを含む利用可能なインデックス)

    • デフォルトインデックス: powerdmarc

  6. クリック レビュー

  7. クリック 送信

  8. 重要: トークン値を直ちにコピーして保存してください(後から取得することはできません)


統合スクリプト設定

ステップ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 ファイルを編集し、更新してください:

  1. POWERDMARC_API_TOKEN: PowerDMARC API ベアラートークン

  2. 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

  3. SPLUNK_HEC_TOKEN: ステップ3で作成されたHECトークン

  4. SPLUNK_INDEX: powerdmarc (または選択したインデックス名)

  5. 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) 用

  1. crontabを編集する:

crontab -e


  1. 1時間ごとに実行するエントリを追加:

0 * * * * /usr/bin/python3 /path/to/powerdmarc_to_splunk.py >> /var/log/powerdmarc_splunk.log 2>&1


  1. または15分ごとに実行:

*/15 * * * * /usr/bin/python3 /path/to/powerdmarc_to_splunk.py >> /var/log/powerdmarc_splunk.log 2>&1

Windows用(タスク スケジューラ)

  1. 開く タスク スケジューラ

  2. クリック タスクを作成

  3. 設定:

    • 名前: PowerDMARC Splunk 統合

    • 説明: PowerDMARC監査ログの定期的な取り込み

    • セキュリティオプション: ユーザーがログオンしているかどうかにかかわらず実行する

  4. トリガータブ: クリック 新規

    • 開始:予定通り

    • 設定: 毎日、1時間ごとに繰り返し

  5. アクションタブ: クリック 新規

    • アクション: プログラムを開始する

    • プログラム: python.exe

    • 引数: C:\path\to\powerdmarc_to_splunk.py

  6. クリック OK


Splunkにおけるデータ取り込みの検証

ステップ8: Splunkでのデータ検証

  1. 移動先 検索とレポート アプリ

  2. 次の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の分析機能を活用する

推奨される機能強化

  1. 追加のAPIエンドポイントを追加する: スクリプトを拡張し、DMARC集計レポート、フォレンジックレポート、またはドメインデータを取得できるようにする

  2. チェックポイントロジックの実装: 重複した取り込みを回避するため、最後に正常に実行されたタイムスタンプを保存する

  3. ログ記録の追加: 本番環境向けにローテーション機能付き適切なログ記録を実装する

  4. エラー通知: スクリプトの失敗時にメールまたはSlack通知を設定する

  5. 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/

A
アヤンはこのソリューション記事の著者である。

役に立ったと思いますか? はい いいえ

フィードバックを送信する
お役に立てず申し訳ありません。この記事を改善するために、ご意見をお聞かせください。