読み込み中…
DMARCレポートとはDMARC は Area-primary を表します完全にメッセージ認証、レポート、および適合性に基づいています。 または、電子メール フィッシング および なりすまし .メール送信時、DMARCによりドメイン所有者は作成することができますSPF などの認証戦略を指定する DNS ファイル (送信者ポリシー フレームワーク) および DKIM (DomainKeys Identified Mail) は、電子メールの信頼性を調べるために荒廃しています。 電子メールがこれらの認証テストに失敗すると、DMARC は受信者の電子メール プロバイダーに、メッセージを隔離するか完全に拒否することによって、メッセージの処理方法を学習するように指示します
フィッシングやスプーフィング攻撃に対抗して保護することに加えて、DMARC はさらに レポーティング機能。 エリアの世帯主は、メール認証の実行に関するレポートと、DMARC テストに合格したメッセージと不合格になったメッセージ、およびこれらのメッセージの送信元のビルドに関するレポートを受け取ることができます。
建設的なDMARC管理のいくつかの重要な部分は以下を含みます:
DMARCの確立ポリシー: これには、ドメインの DMARC ファイルを構成して、認証テストに失敗したメッセージに対処するための許容可能な認証戦略とポリシーを指定する必要があります。 DMARC DNS ファイルの宝物は次のとおりです: v=DMARC1 ; p=拒否; rua=mailto:
これは、DMARC モデル 1 を使い果たすことを指定します。 DMARC テストに失敗すると、電子メールは、どのサプライヤーが DMARC レポートを送信する必要があるかを処理します。
クラウドベースの完全なセキュリティとパフォーマンスの代替オプションの大手プロバイダーとして、Cloudflare は特定の方法で商品を調べています。 私たちはキャッチツールと会社を「ドッグフード」し、業界に乗るためにそれらを使い果たします。 これにより、可能性に影響を与えるよりも早く要因やバグを特定することができます.
Cloudflare Workers は、ビルダーがコードを私たちの世界のコミュニティに乗せることを可能にするサーバーレス プラットフォームです。 2017 年の開始以来、Workers エコシステムは大幅に成長しました。 現在、何百ものビルダーがプラットフォーム上でアプリケーションを構築および展開しています。 Workers エコシステムの機能は、ビルダーが、以前は容量がなかったり、実用的ではなかったりして、可能性に閉ざされていた微妙なアプリケーションを描画できるようにする機能にあります。 労働者は、API の描画、動的な咆哮素材の生成、写真の最適化、スタウチタイム処理への影響、および設計図の作成などのために、もしかすると荒廃するかもしれません。 可能性はほとんど終わりがありません。 老朽化した労働者を電力会社の宝物にする Radar 2.0、または機械パッケージの宝物 ヌー.
- 長すぎないうちに EメールRouting プロダクトが Workers と力を合わせ、Workers スクリプトを介した受信メール の処理。 ドキュメントとして は次のように述べています。 これらの概念は、たまたま電子メールを受信した場合に何が起こるかを解決します。」 ガイドラインと検証済みアドレスはすべて、
API。
単純な電子メール ワーカーがどのように宝物に見えるかを次に示します:
“, “
- “]; if (allowList.indexOf(message.headers.fetch(“from”))==-1) { message.setReject(“現在許可されていない対処” ); } else { await message.ahead(“ “); } }
- メールを取得して抽出する凡例
- 関連する事実を分析プラットフォームに公開する
- 生の凡例を保存する
面白い簡単で、事実ですか?
ビルドで受信メールをプログラムで管理できる柔軟性を備えているため、受信する DMARC 凡例メールをスケーラブルかつ効率的な方法で処理するための適切な方法が宝物に見えました。そして、Workers は、世界中から自由に設定された電子メールを受信するという重労働を制定します。
Eメール ワーカーを使用すると、#1 を問題なく制定できます. 実際には、email() ハンドラーを使用して従業員を開発する必要があります. このハンドラーは受信します SMTP エンベロープ パーツ、電子メール ヘッダーの事前に解析されたモデル、生の電子メール全体を読み取る回覧
#2 については、Workers プラットフォームをさらに詳しく調べる機会があります。 労働者分析エンジン。 事実上、受け入れ可能なスキーマを概説する必要があります。これは、レポート内の最新のものと、後で実行する予定のクエリにそれぞれ依存しています。 その後、GraphQL または
- trivial
ワーカーから R2 へのエントリを取得します。 電子メールからレポートを抽出した後、後世のために R2 に保存する機会があります。
建築
メールワーカーの特徴は当社の電子メール ルーティング製品。 E メール ルーティングの構成要素はすべてのノードで実行されるため、すべてのデータセンターから E メール イングレス BGP プレフィックスをコマンドするため、これらのノードのいずれかが受信メールを転送できます。 電子メール ワーカーへの電子メールの送信は、電子メール ルーティング ダッシュボード内のルールを環境化するのと同じくらい簡単です。電子メール ルーティング コンポーネントがワーカーに導入されるルールに一致する電子メールを受信すると、これは最近のモデルの内部に連絡できます workerd ランタイムであり、さらにすべてのノードで実行されます。 この相互作用を管理する RPC スキーマは、Capnproto スキーマ、および電子メールの体格をストリーミングできるようにします読んだままのエッジワーカー。 従業員のスクリプトがこの電子メールを送信することを決定した場合、Edgeworker は、本物のプット ア マター内で送信された機能を利用して電子メール ルーティングに連絡します。
jsg::約束 ForwardableEmailMessage::ahead(kj::String rcptTo, jsg::Elective<:ref>> MaybeHeaders) { auto req=emailFwdr->forwardEmailRequest(); req.setRcptTo(rcptTo); auto sendP=req.send().then( [](capnp::Response res) ミュータブル { 自動結果=res.getResponse().getResult (); JSG_REQUIRE(result.isOk(), エラー, result.getError()); }); auto& context=IoContext::most modern(); return context.awaitIo(kj::mv(sendP)); } DMARCレポートのコンテキスト内で、受信メールを次のように処理します:
- メールの受信者をキャッチ処理された、これは dil に変更された RUA です 説明した。 RUA は、明確なドメインを参照して、ビルド混合 DMARC 処理フィードバックが報告されることを示す DMARC 構成パラメーターです。 この受信者は、メッセージの「to」属性内に見つかる可能性もあります。
const ruaID=message.to
この時点で、メール全体を arrayBuffer に読み込む必要があります。それを解析するために描写します。 伝説の規模を考えると、自由な労働者のアイデアの境界に乗り込む可能性があります。 このような場合は、Workers Unbound リソース マネキン const rawEmail=異常な Response(message.raw) const arrayBuffer=await rawEmail.arrayBuffer()
- 未加工の電子メールの解析には、とりわけ、その MIME 部分の解析が伴います。 これを実行できるライブラリがいくつかあります。 例として、あなたはおそらく排気することができます
郵便マイム
: const パーサー=珍しい PostalMime.default() const email=await parser.parse(arrayBuffer)
- 電子メールを解析した結果、添付ファイルへのエントリが取得されました。 これらの添付ファイルは、圧縮されている可能性が最も高い DMARC レポートそのものです。 私たちが実行しなければならない主な要素は、圧縮されたフェッチを に格納することです)。 R2
長期保管用。 彼らは、注目を集めるレポートを再処理したり調査したりすることで、しばらくの間有名になる可能性さえあります. これは、R2 バインディングで put() を呼び出すのと同じくらい簡単です。 後で検索しやすいように、凡例のレコードデータを最新の時刻に合わせてディレクトリ全体に展開することをお勧めします。 await env.R2_DMARC_REPORTS.put( `${date.getUTCFullYear()}/${date.getUTCMonth() + 1}/${attachment.filename} `、付属の咆哮素材)
- 添付ファイルの MIME フォームを見つめる必要があります。 DMARC レポートの raw フェッチは XML ですが、圧縮することもできます。 この場合、まずそれらを解凍する必要があります。 DMARC レポーター レコードのデータは、いくつかの圧縮アルゴリズムを使い果たす可能性があります。 どの MIME フォームを排出するかを知るために、MIME フォームを排出します。 ために Zlib
圧縮レポート
pako は、ZIP 圧縮されたレポートの場合、おそらく老朽化している可能性さえあります unzipitは直立の好みです.
- 凡例の生の XML フェッチを受け取った 急速に-xml-パーサー は、それらを解析するのに非常に役立ちました。 DMARC 凡例 XML は次のようになります:
jsg::約束
- メールの受信者をキャッチ処理された、これは dil に変更された RUA です 説明した。 RUA は、明確なドメインを参照して、ビルド混合 DMARC 処理フィードバックが報告されることを示す DMARC 構成パラメーターです。 この受信者は、メッセージの「to」属性内に見つかる可能性もあります。
const ruaID=message.to
リソース マネキン const rawEmail=異常な Response(message.raw) const arrayBuffer=await rawEmail.arrayBuffer()
- 未加工の電子メールの解析には、とりわけ、その MIME 部分の解析が伴います。 これを実行できるライブラリがいくつかあります。 例として、あなたはおそらく排気することができます
- 郵便マイム
- 電子メールを解析した結果、添付ファイルへのエントリが取得されました。 これらの添付ファイルは、圧縮されている可能性が最も高い DMARC レポートそのものです。 私たちが実行しなければならない主な要素は、圧縮されたフェッチを に格納することです)。 R2
- 添付ファイルの MIME フォームを見つめる必要があります。 DMARC レポートの raw フェッチは XML ですが、圧縮することもできます。 この場合、まずそれらを解凍する必要があります。 DMARC レポーター レコードのデータは、いくつかの圧縮アルゴリズムを使い果たす可能性があります。 どの MIME フォームを排出するかを知るために、MIME フォームを排出します。 ために Zlib
- 凡例の生の XML フェッチを受け取った 急速に-xml-パーサー は、それらを解析するのに非常に役立ちました。 DMARC 凡例 XML は次のようになります:
: const パーサー=珍しい PostalMime.default() const email=await parser.parse(arrayBuffer)
長期保管用。 彼らは、注目を集めるレポートを再処理したり調査したりすることで、しばらくの間有名になる可能性さえあります. これは、R2 バインディングで put() を呼び出すのと同じくらい簡単です。 後で検索しやすいように、凡例のレコードデータを最新の時刻に合わせてディレクトリ全体に展開することをお勧めします。 await env.R2_DMARC_REPORTS.put( `${date.getUTCFullYear()}/${date.getUTCMonth() + 1}/${attachment.filename} `、付属の咆哮素材)
圧縮レポート
pako は、ZIP 圧縮されたレポートの場合、おそらく老朽化している可能性さえあります