DKIMリプレイ攻撃とは?その防御方法
DKIMの仕様を突いた攻撃手法
2023年12月7日
著者: Ahona Rudra
翻訳: 竹洞 陽一郎
この記事はPowerDMARCのブログ記事 What are DKIM Replay Attacks and How to Protect Against Them? の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。
DKIMは、ドメインから送信されるメッセージにデジタル署名を使用することで、メールの認証において重要な役割を果たします。
これにより、正規のソースからのメールが受信者に届く前に改竄されることなく、なりすましの脅威を軽減します。
DKIMリプレイ攻撃では、攻撃者が正当なDKIM署名付きメールメッセージを傍受し、その後、メッセージの内容や署名を変更せずに、意図された受信者または別の対象に対して複数回再送信します。
この攻撃の目的は、DKIM署名によって確立された信頼を利用して、受信者が同じ正当なメッセージの複数のコピーを受け取っていると信じさせることです。
DKIMリプレイ攻撃とは
DKIMリプレイ攻撃は、サイバー攻撃の一種で、脅威となる行為者がDKIMを使用して署名され信頼されたメールを傍受し、その後、同じメールを再送信または「リプレイ」して、受信者にそれが新しく、信頼できるメッセージであると思わせるためのものです。
たとえそれが改竄されていたり有害であったとしてもです。
DKIMリプレイ攻撃の構造を詳しく説明し、緩和戦略について話し合う前に、まずはDKIMの仕組みについて説明しましょう。
DKIMはメールをどのように認証するか?
DKIM(DomainKeys Identified Mail)は、メールメッセージの真正性を検証し、メールのなりすましやフィッシング試みを検出するのに役立つメール認証方法です。
DKIMは送信サーバでメールメッセージにデジタル署名を追加し、この署名は受信者のメールサーバによって検証され、メッセージが転送中に改竄されていないことを保証します。
DKIMは以下のプロセスを活用して機能します。
- 1. メッセージ署名
-
DKIMを使用するドメインからメールが送信されると、送信メールサーバはメッセージに対してユニークな暗号署名を生成します。
この署名は、メールの内容(ヘッダーと本文)および「From」アドレスや「Date」フィールドなどの特定のヘッダーフィールドに基づいています。
署名プロセスには通常、秘密鍵が使用されます。 - 2. 公開鍵の公開
-
送信ドメインは、そのDNS(ドメインネームシステム)レコードに公開DKIMキーを公開します。
この公開鍵は、受信者のメールサーバによって署名を検証するために使用されます。 - 3. メッセージの送信
- DKIM署名を含むメールメッセージは、インターネットを介して受信者のメールサーバに送信されます。
- 4. 検証
-
受信者のメールサーバがメールを受信すると、メールのヘッダーからDKIM署名を取得し、送信者のドメインのDNSレコードで送信者の公開DKIMキーを検索します。
メールの内容と署名が一致すれば、受信者はメールが転送中に改竄されておらず、主張された送信者のドメインから実際に送信されたものであると合理的に確信することができます。 - 5. 合格または不合格
-
検証プロセスの結果に基づいて、受信者のサーバはメールをDKIM検証済みまたはDKIM失敗としてマークすることができます。
DKIMは、送信者のドメインの真正性を検証するメカニズムを提供することにより、フィッシングやなりすましなどのさまざまなメールベースの攻撃を防ぐのに役立ちます。
DKIMリプレイ攻撃はどのように実行されるか?
DKIMリプレイ攻撃では、悪意のある個人がDKIM署名の寛容さを利用してメールの受信者を欺き、有害なコンテンツや詐欺を広める可能性があります。
DKIMリプレイ攻撃がどのように機能するか、ステップバイステップで見ていきましょう。
- 1. DKIM署名の柔軟性
-
DKIMでは、署名ドメイン(メールに署名するドメイン)がメールの「From」ヘッダーに記載されているドメインと異なることが許されます。
これは、メールが「From」ヘッダーで特定のドメインから来たと主張していても、DKIM署名が別のドメインに関連付けられている可能性があることを意味します。 - 2. DKIM検証
-
メール受信者のサーバがDKIM署名付きのメールを受信すると、メールがドメインのメールサーバによって署名されてから変更されていないことを確認するために署名をチェックします。
DKIM署名が有効であれば、メールが署名ドメインのメールサーバを通過し、転送中に改竄されていないことを確認します。 - 3. 高評価ドメインの悪用
-
ここで攻撃が登場します。
攻撃者がメールボックスを乗っ取ったり、ハッキングしたり、高評価(つまり、メールサーバにとって信頼されたソースである)のドメインでメールボックスを作成することに成功した場合、彼らはそのドメインの評判を利用します。 - 4. 初期メールの送信
-
攻撃者は、自分たちがコントロールする別のメールボックスに、高評価のドメインから単一のメールを送信します。
この初期メールは、疑いを避けるために無害であったり、実際に正当であったりすることがあります。 - 5. 再送信
-
次に、攻撃者は記録されたメールを使用して、元々の正当な送信者によって意図されていなかった異なる受信者グループに同じメッセージを再送信することができます。
高評価のドメインからのDKIM署名がそのままのメールは、メールサーバによって正当なメッセージとして信頼される可能性が高く、認証フィルターを迂回することになります。
訳注: 詳解「DKIMリプレイ攻撃」
DKIMリプレイ攻撃の巧妙さを理解するために、以下の点を考慮してください。
- DKIM署名の仕様の穴
-
DKIMはメールヘッダーに複数存在でき、内容を変更せずに転送することで署名が有効に保たれます。
デフォルトでは、ヘッダの一部しか、ハッシュ値の計算に使われません。
これにより、「Date」、「Subject」、「To」、「CC」を変更されても、本文が変更になっていなければ、DKIMは合格します。 - DMARCレポートの盲点
-
攻撃に利用される「踏み台」となる大学のメールアカウントでは、ヘッダーFromやDKIMの鍵が企業のドメインに設定されているため、DMARCが有効であってもRUAレポートには記載されません。
このため、攻撃を見逃すリスクがあります。 - 企業側の誤解
- 企業では、DMARCレポートでDKIMが合格していると報告されるため、Return-Pathのドメインや送信MTAを詳細に分析しない限り、攻撃を見逃す可能性があります。
- アカウント乗っ取りの特定の難しさ
- ダークWebに流出しているアカウント情報を確認しない限り、どのアカウントが乗っ取られているかを判断するのは難しいです。
この攻撃は、DKIMやDMARCを設定しただけでは不十分であることを示しています。
攻撃の特定と対処には、日常的なDMARCレポートの詳細な分析と他のセキュリティ対策の組み合わせが必要です。
踏み台となっているMTAは評価が下がっていくため、IPレピュテーションチェックツールで異常を検出することが可能です。
DKIMリプレイ攻撃を防ぐステップ
メール送信側の戦略
- ヘッダーの過剰署名
-
署名後に「Date」、「Subject」、「To」、「CC」などの重要なヘッダーが追加または変更されないようにするため、これらをハッシュ値を生成する対象に追加して過剰に署名することを検討してください。
この安全策は、悪意のある行為者がこれらの重要なメッセージコンポーネントを改竄するのを防ぎます。 - 短い有効期限の設定(x=)
-
実用的に可能な限り短い有効期限(x=)を設定します。
これにより、リプレイ攻撃の機会のウィンドウタイムを短縮します。
新しく作成されたドメインは、攻撃に対してより脆弱であるため、古いドメインよりもさらに短い有効期限を持つ必要があります。 - タイムスタンプ(t=)とノンスの使用
-
リプレイ攻撃をさらに防ぐために、メールのヘッダーや本文にタイムスタンプとノンス(ランダムな数値)を含めます。
これにより、攻撃者が後の時間に同じメールを再送信することが困難になります。
なぜなら、その値は変更されているからです。 - 定期的なDKIMキーのローテーション
-
定期的にDKIMキーをローテーションし、DNSレコードをそれに応じて更新します。
これにより、侵害されてリプレイ攻撃に使用される可能性のある長期間使用されるキーの露出を最小限に抑えます。
訳注: ダークWebに自社のメールアドレスやそのアカウントのパスワードが出回っていないか確認することも大事です。
メール受信側の戦略
- レート制限の実装
-
受信者は、リプレイされたメールでシステムが溢れるのを防ぐために、受信するメールメッセージに対するレート制限を実装することができます。
これを行うには、特定の送信者から特定の時間枠内に受け入れるメールの数に制限を設けます。 - メール受信者への教育
-
メールの受信者にDKIMの重要性について教育し、受信するメールのDKIM署名を検証するように促します。
これにより、受信者に対する潜在的なリプレイ攻撃の影響を軽減するのに役立ちます。 - ネットワークセキュリティ対策
- リプレイ攻撃に関与している可能性のある既知の悪意のあるIPアドレスやソースからのトラフィックを検出し、ブロックするためのネットワークセキュリティ対策を実装します。
PowerDMARCがDKIMリプレイ攻撃を軽減する方法
ドメイン所有者がDKIMキー管理を簡単かつ効率的に行えるように、当社は包括的なホスト型DKIMソリューションを導入しました。
私たちは、メールの流れとDKIM署名の実践を監視することで、不一致を迅速に検出し、常に攻撃者より一歩先を行くことができます。
当社のダッシュボード上でのレコード最適化は自動で行われ、DNSに複数回アクセスして手動で更新する必要はありません。
PowerDMARCによる自動化に切り替えて、署名の変更、複数のセレクターの処理、DKIMキーのローテーションを手間のかからない方法で行いましょう。
今日サインアップして無料トライアルを試してみてください!