Slide 1

Slide 1 text

Tomohisa Oda, Researcher and Software Engineer at Sakura Internet Research Center Presented at JPAAWG 7 th General Meeting on Nov 1 1 , 2 0 2 4 透過型SMTPプロキシによる 送信メールの可観測性向上: Update Edition

Slide 2

Slide 2 text

https://tomohisaoda.com • 福岡在住 🍜 • さくらインターネット研究所、 COGNANOに所属 • Goのローカルコミュニティ Fukuoka.goを主催 • Weight Trainingとテニスが趣味 Tomohisa Oda / @linyows

Slide 3

Slide 3 text

はじめに • 本発表は今年初めに開催された「さくら の 夕 べ in 福岡」での発表の更新版 • 「さくらの 夕 べ in 福岡」での発表は、 「さくらのナレッジ」にて 文 字起こしさ れ記事になっている • 現地参加できずにこの資料をご覧になる 方 は記事を読むとよいかも https://knowledge.sakura.ad.jp/ 3 7 1 1 1 / さくらのナレッジに本発表記事がある

Slide 4

Slide 4 text

Outline 1 . メールシステムの現状 2 . メールホスティングの事情と課題 3 . 透過SMTPプロキシによる送信メール可観測性向上の提案 4 . 既存 手 法との定量 比 較 5 . 今後の課題

Slide 5

Slide 5 text

Outline 1 . メールシステムの現状 2 . メールホスティングの事情と課題 3 . 透過SMTPプロキシによる送信メール可観測性向上の提案 4 . 既存 手 法との定量 比 較(New!!!) 5 . 今後の課題

Slide 6

Slide 6 text

メールシステムの現状

Slide 7

Slide 7 text

複数のプロトコルと多くのサーバーコンポーネントが必要 メールを送信して相 手 が受信するまでの全体像

Slide 8

Slide 8 text

メール受信におけるセキュリティの問題 • メールの送信者は正しいか? • 通信途中で盗聴や改ざんはされていないか? • 正しいメールを迷惑メールとして受信してる? • 送信者はなりすましをしていないか? • 中継サーバでメールを盗聴されていないか? • 送信ドメイン認証(SPF、DKIM、DMARC) • 経路暗号化(TLS、MTA-STS、DANE) • 転送対応(SRS、ARC) • ブランド表 示 (BIMI) • エンドツーエンド暗号化(S/MIME、PGP) GmailやOutlook使っていれば何も考え(ry

Slide 9

Slide 9 text

複数のプロトコルと多くのサーバーコンポーネントが必要 メールを送信して相 手 が受信するまでの全体像

Slide 10

Slide 10 text

長 い年 月 をかけメールセキュリティを向上中 互換性維持を考慮する歴史的経緯とはいえ、複雑すぎますね… CA

Slide 11

Slide 11 text

受信メールに対する信頼性の低下 メールInboxは未読で溢れている • メール配信が安価なマーケティングツールとなっていて、 大 量の広告メールがメールInboxを占有している • 利 用 しているサービスのセキュリティインシデントにより、 自 分のメールアドレスが流出しており、 大 量のスパムメール を受信する • そもそも、Instagram, X, TikTok, LINE, Discord, LINEとい ったSNSやメッセージプラットフォームで 生 活しているので メールに問題があっても問題とは思わない 9 8 7 , 6 5 4 1 , 2 3 4 , 5 6 7

Slide 12

Slide 12 text

スパムメール対策 受信サーバにおける 一 般的なスパム対策の分類 • 解析 ・ フィルターの活 用 (SpamAssassin, Amavis … ) • 送信元 ・ 受信者管理の活 用 (DNSBL, Reputation, Allowlist/Denylist) • メール流量制御の活 用 (IP Throttling, Tarpit) • 再送要求の活 用 (Greylisting) • セッションフィンガープリントの活 用 (商 用 製品など) • チャレンジ応答の活 用 (商 用 製品など)

Slide 13

Slide 13 text

GmailとYahoo!のスパムメールの削減施策 2024年2 月 1 日 から以下の要件を満たす必要がある • SPF, DKIMの認証 • IPの逆引き • TLSによる接続 • メッセージフォーマット準拠 RFC 5 3 2 2 5 , 0 0 0 /daily以上送信の場合 • 送信ドメイン認証 • ワンクリック配信解除 RFC 8 0 5 8

Slide 14

Slide 14 text

共有メールホスティングの事情と課題

Slide 15

Slide 15 text

共有メールホスティングのビジネスモデル • メールホスティングは、テナントに対して 仮想的に分割された物理サーバリソースを 提供する • テナントは複数のドメインを設定し、それ に紐づくメールアカウントを使 用 する • 1つの物理サーバに多くのテナントを収容 することでサービス提供を安価にしている example.com info@ hello@ postmaster@ … example.jp example.org example.net example.us example.gov … { マルチテナントのためのリソース隔離と権限分離が重要

Slide 16

Slide 16 text

共有メールホスティングの構成 MUA(Mail user agent)からのメール送信を受け付けるMSA(Mail submission agent)が複数ある場合にIPv 4 アドレスの削減や運 用 の集約のため にリレーサーバを 用 いるケースを想定 メール送信にフォーカスした話 MSA 1 MSA 2 MU 3 MTA 1 MX for example.com MX for example.net MX for example.jp MUAs

Slide 17

Slide 17 text

共有メールホスティングの事情 • ドメイン単位にIPv 4 を割り振ることはできな いため、メール送信に使 用 するIPは集約したい • 集約しすぎるとIPに起因するスロットリングな どの影響範囲が 大 きくなる • 送信メールキューも同時に集約するとキュー滞 留時に影響範囲が 大 きくなり運 用 が 大 変になる • つまり、メールキューは分散しIPは適切な分量 に集約するのが良い example.com example.jp example.org example.net example.us example.gov xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy example.com example.jp example.org example.com example.jp example.org メール送信にフォーカスした話

Slide 18

Slide 18 text

コンテナ化でIP集約とメールキュー分散を実現する xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy example.com example.jp example.org example.net example.us example.gov 「精緻に制御可能な恒常性のある 高 集積マルチアカウント型のメール基盤(DICOMO 2 0 1 8 )」

Slide 19

Slide 19 text

各MTAの可観測性が低いという課題 • MTAが分散することで出 力 するログを集約しパースすることによってメールシステム 全体で何が起きているか把握出来るようにはなる • 一方 で受信サーバによるTarpitやThrottling のようなSMTPコマンドレベルの変化を検 知することはできない • そして、過去に何が起きていたかを確認することはできても、リアルタイムに問題を検 知して修復することは不可能 • 例えばThrottlingが発 生 していることを検知し、発 生 の引き 金 となったドメインの送 信をブロックし、他のドメインの送信に使うIPを付け替えるといった運 用 の 自 動化な どを 行 える環境にしたい

Slide 20

Slide 20 text

透過型SMTPプロキシによる 送信メールの可観測性向上を提案

Slide 21

Slide 21 text

• 透過型のプロキシなのでメールキュ ーは管理しない • 各コンテナMTAでキューを分散し て管理する • SMTPプロトコルレベルのログを DBに保存し何が発 生 しているかリ アルタイムで検知できるようにする • 同 一 ホストのためコンテナMTAと プロキシ間はTLSを使わない コンテナホストに透過型SMTPプロキシを導 入 する xxx.xxx.xxx.xxx example.com example.jp example.org example.net example.us example.gov Proxy DB 外部25番ポートへのパケットを全てプロキシへ転送

Slide 22

Slide 22 text

透過型SMTP送信プロキシ: WARP https://github.com/linyows/warp • 一 般的なSMTPプロキシは受信 用 で送信に使えるものが 見 あたらないためGoで 自 作 • MTAプロセスの25番宛先のパケットをiptablesでDNATし、本当の宛先をgetsockopt(2) にオプション引数を渡すことで変換前のアドレスを取り出している • 透過型なので同 一 ホストでなく別ホストであってもルーティングを書けば導 入 可能 • 相 手 MXからのEHLOレスポンスに含まれるSTARTTLSを削除してMTAに返却しプロキシは 相 手 MXとTLS接続する • フックイベントを作っているのでプラグインから追加の処理が可能 • カナリアリリースによる本番導 入 と検証は済み

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

取得できるデータ例 MySQLとSQLiteのプラグイン では、Connectionsテーブル とCommunicationsテーブル があり、SMTPのやりとりが後 者にレコードとして保存される

Slide 25

Slide 25 text

検証環境での事例 SMTPセッション数10で100通を 大手 メールサービス宛に送る実験 1 . 同時最 大 接続数制限に引っかかった 4 5 1 4 . 7 . 6 5 2 The mail server [xxx.xxx.xxx.xxx] has exceeded the maximum number of connections. 2 . レピュテーションの低さから受信拒否の判断をされた 5 5 0 - 5 . 7 . 1 [xxx.xxx.xxx.xxx] Our system has detected that this message is likely suspicious due to the very low reputation of the sending domain. To best protect our users from spam, the message has been blocked.

Slide 26

Slide 26 text

検証環境での事例 SMTPセッション数10で100通を 大手 メールサービス宛に送る実験 3. 実験途中からMAIL FROMとRCPT TOの間で20秒ほどの応答遅延が観測された

Slide 27

Slide 27 text

既存 手 法との定量 比 較

Slide 28

Slide 28 text

既存 手 法のリレー 方 式と透過型プロキシで性能 比 較 集約サーバにWarpを使うパターンとPost fi xを使うパターンで 比 較した MSA 1 MSA 2 MU 3 Warp or Post fi x MX 1 for example.com MX 2 for example.net MX 3 for example.jp MUAs

Slide 29

Slide 29 text

実験した内容 以下の3種類の実験を 行 った 1 . 送信メールキューが滞留した状態を再現しメールレイテンシーの変化を 比 較 2 . メールを 大 量に送信して集約サーバにおけるリソース消費の 比 較 3 . 受信サーバが 行 う同時接続数の制限状態を再現し、複数のMSA(テナント) から同 一 ドメインに対して送信し、送信量の変化を 比 較

Slide 30

Slide 30 text

Warp or Post fi x MUAs 再現にはPost fi xのqmgr_message_active_limitを20000から200にした MX 1 for example.com MX 2 for example.net MX 3 for example.jp MSA 1 MSA 2 MU 3 Tarpit 1 0 1 , 0 0 0 1 0 1.送信メールキューの滞留再現しレイテンシーを 比 較

Slide 31

Slide 31 text

Post fi xはキュー滞留の影響から受信レートが下がりdeferredが増加している 1.送信メールキューの滞留再現しレイテンシーを 比 較

Slide 32

Slide 32 text

1.送信メールキューの滞留再現しレイテンシーを 比 較 Return-Path: X-Original-To: [email protected] Delivered-To: [email protected] Received: from mail1.example.jp (1-2-0-192.example.jp [192.0.2.1]) by mx1 (Postfix) with UTF8SMTPS id D791E825DA6 for ; Sun, 25 Aug 2024 08:38:42 +0000 (UTC) Received: from msa2.example.com (2-2-168-192.example.com [192.168.2.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by mail1.example.jp (Postfix) with UTF8SMTPS id EF56C1B00B7E for ; Sun, 25 Aug 2024 16:59:53 +0900 (JST) Received: from localhost (unknown [172.18.0.1]) by msa2.example.com (Postfix) with UTF8SMTP id 36D07825EAC for ; Sun, 25 Aug 2024 07:59:12 +0000 (UTC) From: [email protected] To: [email protected] Date: Sun, 25 Aug 2024 16:59:11 +0900 Subject: Experiment: Case 1 - 361d42cbeac2b6b2aafb937f9247f25d2282283f This is a test mail. End-to-End Latency Relay Latency 結果:Warpの場合はキュー滞留の影響を他のテナントの送信に波及しない

Slide 33

Slide 33 text

Warp or Post fi x MUAs Nは3から10秒ごとに6まで増加させて送信(1,000>10,000>100,000>1,000,000) MX 1 for example.com MX 2 for example.net MX 3 for example.jp MSA 1 MSA 2 MU 3 2. 集約サーバのリソース消費を 比 較 1 0 n 1 0 n 1 0 n

Slide 34

Slide 34 text

2. 集約サーバのリソース消費を 比 較 メールを転送するのとパケットを転送する違いからDisk I/Oに顕著な差が出た CPU usage Memory usage Disk I/O usage

Slide 35

Slide 35 text

Warp or Post fi x MUAs 再現にはMX 1 のsmtpd_client_connection_count_limitを50から10に変更 MX 1 for example.com MX 2 for example.net MX 3 for example.jp MSA 1 MSA 2 MU 3 1 0 4 1 0 4 1 0 4 3. 同時接続数制限を再現しテナントごとの送信量の 比 較

Slide 36

Slide 36 text

3. 同時接続数制限を再現しテナントごとの送信量の 比 較 結果:Warpの送信完了は短いが送信流量のコントロールをしないことによる送信量の偏りが発 生

Slide 37

Slide 37 text

透過型SMTPプロキシの定量評価については来 月 の 「インターネットと運 用 技術シンポジウム (IOTS 2 0 2 4 )」 で研究報告として論 文 掲載予定

Slide 38

Slide 38 text

今後の課題

Slide 39

Slide 39 text

実運 用 に向けての課題 • MTA-STSやDANEなどへの対応:送信先である外部MXとTLS通信するのは透過型SMTPプロキシにな るため、経路暗号化強制のための実装が必要である • 3つ 目 の実験により分かったSMTPコネクションの公平性への対応:同 一 宛先への送信は複数IPでラ ウンドロビンし同時接続数の制限を受けないようにすることや、同じMSAがSMTPセッションを使い 続けないようにあえて切断するなどを検討する • 複数IP対応:内部レピュテーションによるものや受信サーバレスポンス変化によるものによって複数 IPの使い分け機能を追加する • メールフォーマットの緩和:現状RFCに準拠していないメールは送信できないため、ある程度緩和す る • メトリクス対応:Observability製品と連携できる機能を実装する さまざまな機能が不 足 しているためたくさん実装が必要

Slide 40

Slide 40 text

謝辞: 本研究は JSPS科研費20K 1 1 7 9 1 「軽量コンテナによる 大 規模 高 集積メールホスティング基盤における送信機能の 高 機能化」の 助成を受けたものです。