LoginSignup
5
7

DMARCレポートたちを可視化する

Posted at

はじめに

毎日届くたくさんのDMARCレポートたち。
XMLファイルを1つ1つ確認していくのは心が折れます。
そんな時、これら膨大なファイル群をローカルにて可視化できる OSS を見つけたので使ってみました。

簡単に説明すると3つのコンテナの集まりです。

  • parsedmarc:DMARCレポートを解析する
  • Elasticsearch:解析されたレポートを保存する
  • Grafana:保存されたレポートを可視化する
git clone git@github.com:debricked/dmarc-visualizer.git

まずはこのリポジトリをクローンします。
使い方については、公式ブログ を含め探せば見つかるので割愛します。
ただ、このままでは正常に動かなかったのでいくつか変更を加えます。

元のリポジトリに加えた変更

dmarc.sample.iniの複製

まずはparsedmarcのサンプル設定ファイルがあるので、それをコピーして同階層に配置します。中身はサンプルのままで問題ありません。

cp parsedmarc/parsedmarc.sample.ini parsedmarc/parsedmarc.ini

No module named 'msgraph' の対応

準備ができたところでコンテナ群を立ち上げます。

docker compose up

ですが、parsedmarcのコンテナで、ModuleNotFoundError No module named 'msgraph'というエラーが発生してしまいます。
これに関しては、こちらの記事を参考に修正させていただきました。

Grafana のバージョンを上げる

これで無事に全てのコンテナが立ち上がるのですが、localhost:3000にアクセスしてみると、一部グラフが表示されていません。GrafanaInvalid interval specified, must be non-null and non-emptyというエラーが出て、SPFアライメントやDKIMアライメントがどれだけ満たされているかを示す円グラフが表示できていませんでした。
これに関しては、こちらのissueを参考に修正させていただきました。

可視化されたDMARCレポートたち

いろんな受信メールサーバーからDMARCレポートが届いています。
スクリーンショット 2024-02-03 13.51.49.png

SPFアライメントを満たせている割合が少ないですね...
スクリーンショット 2024-02-03 13.50.39.png

メールの送信元をドメインやIPアドレスごとに降順で見ることもできます。
スクリーンショット 2024-02-03 13.55.12.png

おわりに

元のリポジトリに修正を加えたコードはここに置いています。

この OSS のおかげで綺麗に可視化できたわけですが、毎日大量に届くDMARCレポートたちをいちいちダウンロードしてfiles配下に配置するのは面倒な作業でした。
そこで番外編ですが、Gmailに届くDMARCレポートたちをGoogle ドライブに毎日自動で保存するスクリプトが便利でした。
以下の記事を参考にさせていただきました。

パソコン版ドライブ をダウンロードすることで以下のようなことができるようになります。

  • クラウドに保存されているファイルをパソコンで直接開く
  • 容量を使用せずにパソコンのファイル システムでファイルを表示、整理
  • パソコンから Google ドライブにフォルダを同期する
    • 同期すると、ファイルがクラウドからダウンロードされ、パソコンのハードドライブからアップロードされます。
    • 同期が完了すると、パソコン内のファイルとクラウド上のファイルが一致します。
    • ファイルは最新に保たれ、アクセスできる状態になっています。変更内容はすべてのデバイスに適用されます。

これを利用して、Google ドライブからdmarc-visualizer/files配下にDMARCレポートたちをコピーします。

スクリーンショット 2024-02-03 9.57.27.png

これでfiles配下へのコピーが一段と楽になりました!
可視化したDMARCレポートたちの結果を見て対応を進めていこうと思います。

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7