
Gmailが「メール送信者のガイドライン」を改訂し、なりすましメールへの対策を強化する旨を発表しています。今までは原則、なりすましメール対策の有無にかかわらず、メールはいちおうは届いていました。しかし今後は、なりすましとみなされたメールは届かなくなる方向に向かいつつあります。
なりすましメールとみなされないようにするために、メール送信者には、「メール送信ドメイン認証」への対応が求められます。メール送信ドメイン認証の技術には、主に以下の3つがあります。
SPFは従来からよく利用されており、DKIMも普及が進んできていましたが、DMARCはまだそれほど広く普及していませんでした。しかし、GmailのガイドラインではDMARCへの対応も求められています。メール送信者の多くは、今回、DMARC対応に初めて直面することになります。
DMARCの設定については、各所で解説記事なども出ていて、情報はそれなりに充実しているように見えます。初心者向けの解説では、以下のように説明されていることがあります。
こうみると、SPF/DKIMが設定できていれば、すぐに対応できそうに見えます。このような説明は間違いとまでは言えないのですが、実際のところ、DMARCの設定には注意点や、検討が必要な点が多くあります。ここでは、そのようなDMARCの注意点について、いくつか見解を述べてみたいと思います。
「DMARCはSPF/DKIMと組み合わせて利用し、それらの判定に失敗した際のポリシーを指定するものである」という説明をよく見かけます。この説明は間違いではありませんが、説明不足です。実は、SPF/DKIMで認証に成功していても、DMARC自体の判定で認証失敗となる場合があるのです。
SPFやDKIMには、メールヘッダのFromのなりすましを防げないという問題があります。
そのため、DMARCでは"Identifier Alignment"という概念を導入し、メールヘッダのFromのなりすましをチェックするようにしました。
d=のドメインが一致しているかチェックするSPFとDKIMが両方使われていれば両方ともチェックします。DKIMが複数設定されていれば、それもすべてチェックします。それらのうち、いずれかでドメインの一致が見られればDMARC Pass、すべてが不一致であればDMARC Failとなります。
DMARCを有効にすると、このAlignmentのチェックが行われるようになります1。SPFとDKIMで認証に成功していたはずのメールが、DMARCを設定したら認証に失敗するようになったという状況があり得るのです。そうならないように、既存メールのAlignmentに問題がないかを事前に確認しておく必要があります。
既存メールのAlignmentを確認する、というのは一見簡単そうです。しかし、企業はさまざまなメールを送信しています。たとえば、Webサービスを運用する企業であれば、以下のようなメールを送信していることでしょう。
多くの場合、これらすべてのメールには同一のFromドメインが使用されています。DMARCポリシーの設定はDNSのTXTレコードで行いますが、1つのドメインに対して設定できるポリシーは1つだけです。つまり、あるドメインにDMARCポリシーを設定すると、そのドメインがFromになっているメール全てに同じポリシーが適用されることになります。
しかし、SPFやDKIMの設定はメールの種類によって異なります。たとえば、カスタマーサポート管理のためのSaaSを導入している場合、顧客の問い合わせへの返信はそのSaaSサービスのシステムを経由して送られ、DKIM署名もそのSaaSサービスによって行われます。他のメールとはDKIMの設定が異なるため、そのサービスから送られるメールだけがDMARC Failとなる可能性があります。
実際に過去にあった例として、とある企業がDMARCポリシーを設定したところ、ほとんどのメールは問題なかったものの、カスタマーサポートツールで管理されていた問い合わせ返信メールだけが認証に失敗する状態になったことがありました。顧客からの問い合わせの中には、重大で緊急性の高いものも含まれます。その返信が迷惑メール扱いされ、顧客から「重要事項なのに返信が遅い」と誤解されれば、信用を大きく損なってしまうでしょう。
このように、メールはさまざまなシステムを通じて送られるため、その一部だけにAlignmentの問題が発生することがあります。しかし、DMARC設定はドメイン全体に及び、Alignmentに問題があるメールだけを対象外にすることはできません。対象外にしたければ、そのメールのFromを別ドメインのものにしなければなりません。
幸い、DMARCには、既存メールの状態を確認する準備期間として利用できる運用モード(p=none)が用意されています。十分な準備期間を設けて、その期間中にDMARCレポートを確認することで、Alignmentの問題を確認することができるでしょう。
DMARC設定について書かれた文書では、たいてい、DMARCレポートを受け取って確認することが強く推奨されています。Gmailの「メール送信者のガイドライン」でも、DMARCレポートを受け取ることが推奨されています。
ドメインから送信されたメールまたはドメインから送信されたと思われるメールを監視できるように、DMARC レポートを設定することをおすすめします。DMARC レポートは、ドメインになりすましている可能性のある送信者を特定するのに役立ちます。
レポートを受け取らないように設定することも可能ですが、その場合、認証の失敗に気づけません。また、DMARCポリシーはDNSに設定され全世界に公開されるため、なりすましメールを送信しようとする攻撃者は、事前にDMARCポリシーを調査し、レポートを受け取らないドメインを狙い撃ちするかもしれません。そのような理由もあり、基本的にはレポートを受け取ることが推奨されています。
DMARCのレポートには、以下の2種類があります。
rua=で指定したアドレスに送られてくるruf=で指定したアドレスに送られてくる(かも)実際に受け取ってみると、まず、Failure reportのほうはそもそも送られてきません。仕様では規定されているものの、悪用される懸念もあることから2、実務上はほとんど使われていないようです。
Aggregate feedback reportは実際に送られてきます。初心者向けの解説記事では「レポートを確認しましょう」などと簡単に書かれていることが多く、中身に触れられていないことが多いのですが、実際に送られてくるのは以下のようなものです。
レポートのボリュームはメール送信の規模によります。メール送信数が少なければ、人間が直接XMLを読んでも対応できるでしょう。しかし、規模が大きいサービスでは、数十のサービスから、それぞれ数万行のXMLファイルが送られてくることもあります。それが毎日届くのです4。人間が直接読んで確認することは、全く不可能とまでは言いませんが、現実的であるとはお世辞にも言えないでしょう。
大規模サービスでDMARCレポートをまともに扱おうとするなら、集計・解析を行う仕組みの導入が事実上必須となります5。DMARCの設定を行う際には、レポートを扱う仕組みについても検討しておく必要があります。
DMARC設定について書かれた文書を見ると、「最初はp=noneで良い」という旨のことが書かれていることがほとんどです。このp=の値は、DMARCの認証に失敗したメールに対し、どのように扱ってほしいかを指定するものです6。認証失敗メールに対する処理は2通りあります。
処理はこの2通りですが、ポリシーとして指定できる値はもう一つあります。
p=noneは「特別な処理をしない (nospecific action be taken)」という意味です。「検疫も拒否もせずに受け取る」という意味ではないことに注意してください。基本的には、DMARCポリシーが存在しない場合と同じ処理が行われることが期待されます。SPF/DKIMの認証に失敗していれば、受信側のポリシーによって検疫されることがほとんどでしょう。
要するにこの場合、DMARCの認証は機能しません。ただし、rua=を指定すればDMARCレポートを受け取ることはできますので、何もしたくないがレポートだけは受け取りたい、という場合に利用できます8。先にも触れたとおり、DMARCの導入時には既存のメールに問題が起きないか調査する必要があるため、その準備期間として利用できます。
p=noneのままにしておくことは推奨されていません。確認を終えたらp=quarantineに変更し、それでも問題がなさそうであればp=rejectに変更することが推奨されています。設定を変更する際にはpct=パラメータを設定し、より厳しい設定を適用するメールの割合を徐々に増やしいてくやり方が推奨されています。
p=rejectにしない運用を続けた場合、なりすましメールは受信者に届いてしまうことに注意してください。DMARCを設定するのは、(実際のところは「Gmailがやれと言うから仕方なく……」が本音でしょうけれども、本来の建前としては)自社のドメインがなりすましメールに悪用され、それが受信者に届くことを防ぐためです。その目的を果たすためには、最終的にp=rejectを設定する必要があります。p=rejectを設定すると、なりすましメールの到達が抑制され、迷惑メール報告率を下げる効果も期待できます。
つまり、DMARCは一度設定したらそれで終わりではない、ということです。メールに問題がないかレポートを常に見て、問題がなさそうであれば設定を変えていく、という運用が求められているのです。
DMARCについて、DNSを設定すれば終わりだと思っていた方もいらっしゃるのではないでしょうか。メール配信の量が少ない組織であればその通りかもしれませんが、規模の大きい組織では、考えること、対応が必要なことがたくさんあります。あらためて、ここまで述べてきたことを簡単にまとめておきます。
結論を一口で言えば、世間で思われているよりもはるかに面倒なので覚悟しましょう、ということになります。Gmailのなりすましメール対策が強化されるのは2月からだと言われており、残された期間はそれほど長くありません。その後も、DMARCとは長い付き合いになるかもしれません。この記事をきっかけに、DMARCの運用についていろいろと考えを巡らせていただければ幸いです。
ri=を設定することでレポート配信のスパンを変更することもできます。とはいえ、いずれにせよ大量のレポートを見なければならないことには変わりません。↩p=の指定が必須です(RFC 7489 6.3. General Record Formatに the "v" and "p" tags MUST be present と記述されています)ので、p=noneを明示的に指定する必要があります。しかし実は、p=がなくrua=が指定されている状態でもp=noneとみなして動作することになっていたりします(6.6.3. Policy Discoveryの 6. を参照)。↩© Bengo4.com, Inc. 2005
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。