Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Road_to_SRE_NEXT_福岡.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
rsym1290
May 09, 2025
740
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Road_to_SRE_NEXT_福岡.pdf
rsym1290
May 09, 2025
More Decks by rsym1290
See All by rsym1290
APIをリライトした時の失敗談_実行環境の差異が生んだ不具合と教訓.pdf
rsym1290
0
180
技術基盤G_LT会_公開用_.pdf
rsym1290
0
610
サービスを構成する全サーバが トラックに載って 遠くのデータセンターへ旅立ったお話
rsym1290
0
340
4ペタバイトを超えるオブジェクトストレージを ハードウェアからアプリケーションにかけて 運用するノウハウ
rsym1290
2
4.3k
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
340
Building Applications with DynamoDB
mza
96
7.2k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
BBQ
matthewcrist
89
10k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
530
Discover your Explorer Soul
emna__ayadi
2
1.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Designing for humans not robots
tammielis
254
26k
Tell your own story through comics
letsgokoyo
1
1.1k
Embracing the Ebb and Flow
colly
88
5.2k
4 Signs Your Business is Dying
shpigford
187
23k
Transcript
1 スパムメール対策でも可観測性を! rspamdとBigQueryで実現する データドリブンな対策術 三上 烈史(@rsym1290) GMOペパボ株式会社 技術部技術基盤グループ Road to SRE
NEXT@福岡 2025/5/9
2 ⾃⼰紹介 技術部技術基盤グループ エンジニアリングリード 2016年9⽉ 中途⼊社 三上 烈史 Mikami Tsuyoshi ペパボでのニックネームは「れっしー」 由来は名前から
• X(Twitter) : @rsym1290 • Github: @rsym • 趣味:ランニング
3 • 提供している機能の⼀つに「メール」があります • ショップオーナーがショップユーザーと連絡を取るための機能です • 今回の発表ではこのメールの機能を取り上げます ECサイト構築サービス カラーミーショップ
4 アジェンダ 1. スパムメール対策の重要性 2. rspamdの出番 3. BigQueryに蓄積したrspamdのログを可視化 4. スコアベースでのrejectの効果
5. まとめ
スパムメール対策の重要性 5
スパムメール対策の重要性 6 メールサーバの運⽤ではスパムメール対策が重要 spamhaus(代表的なRBL) • スパムメールが配信され続けると • メールサーバのIPレピュテーションの悪化 • RBL(Real-time
Blackhole List)への登録 • メールサーバがRBLに登録されると • 様々なプロバイダ宛のメールが拒否される • ショップオーナー‧利⽤者の間で連絡が取れなくなる
スパムメール対策の重要性 7 スパムメールの基本的な対策 • よくある対策 • SPF/DKIM/DMARCの実装 • ブラックリスト‧ホワイトリストの利⽤ •
全てのスパムメールを防げるわけではない • 例えばアカウントのっとりの場合SPF/DKIMの認証はPASSしてしまう • スパム検知ソフトウェアを利⽤した対策が必要
8 rspamdの出番
rspamdの出番 9 rspamdとは • https://rspamd.com/ • スパムメールのフィルタリングができるOSS • 様々なモジュールを組み合わせてのフィルタリング •
スコアベースのフィルタリング機構により精密なスパム判定
rspamdの出番 10 rspamdのスコアベースのフィルタリング機能 {"ts": <timestamp>, "pid": 3507278, "severity": "notice", "worker_type":
"rspamd_proxy", "id": "ABCDEF", "module": "proxy", "function": "rspamd_task_write_log", "message": "id: <timestamp@送信元ドメイン>, qid: <ABCDEF123456>, ip: xx.yy.zz.ww, from: <送信元アドレス>, (default: T (add header): [19.90/6.00] [PH_SURBL_MULTI(7.50){誘導先:url;送信元ドメイン:dkim;},ABUSE_SURBL(5.00){誘 導先:url;送信元ドメイン:dkim;},RBL_SPAMHAUS_XBL(4.00){xx.yy.zz.ww:from:127.0.0.3;},PHISHING(2.00){偽装元->誘導 先;},MV_CASE(0.50){},XM_CASE(0.50){}, ... ,TO_MATCH_ENVRCPT_ALL(0.00){}]), len: 7427, time: 1042.341ms, dns req: 21, digest: <12345abc67890def12345678abcde123>, rcpts: <宛先アドレス>, mime_rcpts: <宛先アドレス>"} • rspamdのログには判定スコアや判定理由が詳細に記録される • スコアが⼀定以上だとスパム判定のヘッダをメールに付与(add header) • 送信拒否(reject)もできるがデフォルトではnull(=rejectされない)
rspamdの出番 11 rspamdのログを元にBigQueryでスコアを分析できるようにする • スコアベースでスパムメールをrejectしたい • add headerでもメールは配信されるのでIPレピュテーションに影響する • スパムメールはrejectしたいが誤検知によるrejectは回避したい
• ブラックリストベースでのrejectも試したが送信元ドメインの種類が多くて対応が困難 • BigQueryでスコアを分析してスコアベースでのrejectを試みる • rspamdのログ元にBigQuery⽤のスキーマを定義 • fluentdを介して構造化されたrspamdのログデータをBigQueryに転送 • BigQueryに蓄積したデータに基づいてrejectの閾値を探る
12 BigQueryに蓄積した rspamdのログを可視化
BigQueryに蓄積したrspamdのログを可視化 13 ある期間の全メールの判定結果別の推移 • 橙がadd headerで⾚がreject • スコアベースのフィルタで⾚(reject)を増やしたい • この当時の⾚(reject)はブラックリストによるもの
ブラックリストでのreject
BigQueryに蓄積したrspamdのログを可視化 14 スパム判定されたメールのスコアをヒストグラム化 • スパムメールが⼀定のスコアに集中していることがわかる • 該当スコアのrspamdのログを調査したところ送信元がRBLに登録されていることがわかった • このスコア以上のスパムメールをrejectすることにした 横軸は判定スコア(閾値の情報につながるので伏せています)
特定のスコアに集中している傾向
15 スコアベースでの rejectの効果
スコアベースでのrejectの効果 16 rejectを⼊れた⽇から効果を確認 • スコアベースでのrejectを導⼊してから⾚が⼤きく増えていることがわかる • reject導⼊直後が⾚の割合がやたら多い この辺りの時期にスコアベースでのrejectを導入
スコアベースでのrejectの効果 17 スパム判定されたメールだけに絞ってグラフ化 • スコアベースのrejectを⼊れた直後のスパムメールの総件数が多い • 調べたところ直後に特定のプロバイダ宛の⼤量のスパム配信が試⾏されていたことが発覚 • そのスパムメール配信の阻⽌に成功👏 rejectを入れた直後に大量スパム配信が試行されていた
18 まとめ
19 まとめ • rspamdとBigQueryを活⽤したスパムメール対策術を実施 • ログの構造化とBigQueryへの転送&可視化で判断材料を獲得 • データドリブンな対策の効果 • 可視化したデータに基づいたreject設定により効果的なスパム対策を実現
• IPレピュテーション悪化のリスクを低減 • 今後の展望 • 改善はしたものの依然としてスパム対策が必要 • 収集したデータに基づく継続的なチューニングによる精度向上 • GPT Pluginの導⼊&AIを活⽤したスパムメール対策
https://recruit.pepabo.com/info/career/ GMOペパボでは⼀緒に働く仲間を募集しています! 20
21