背景・目的
セキュリティで分からない用語や考え方を対象として、1記事につき1つテーマを取り上げます。
そのテーマに対して、「何を目的とした技術・対策か」「具体的にはどのようなシーンで役立つか」といった具合に掘り下げしていく形式でアウトプットするものです。
今回のテーマ:SPFレコード判定結果の使われ方
SPF自体はメールなりすまし対策の一環として比較的広く普及していることは知っていましたが、SPFによる判定結果がどのように返されるのか、また実際どのように使われているかあまりイメージがついておらず、今回調べました。
調査メモ
SPFレコードの判定結果データ
SPFレコード問い合わせの結果として返される値は以下の通りです。
| No | 判定結果 | 詳細 |
|---|---|---|
| 1 | pass | SPF認証に成功。送信元IPがSPFレコードに記載されている。 |
| 2 | fail | SPF認証に失敗。送信元IPがSPFレコードに記載されていない。 |
| 3 | softfail | SPFレコードに「~all」が指定されており、送信元IPが記載されていない。 |
| 4 | neutral | SPFレコードが「?all」などで中立を示している。 |
| 5 | none | SPFレコードが存在しない。 |
| 6 | permerror | SPFレコードに構文エラーがある。 |
| 7 | temperror | DNSの一時的なエラーでSPF判定ができなかった。 |
これを見ると、
・SPFレコードを問い合わせし、判定結果がOK or NGで返ってきた場合(No1~4)
・SPFレコードの問い合わせしたものの、判定結果がOK or NGで返ってこない場合(No5~7)
にまずは分けられそうです。個別に見ていきます。
No1:pass、No2:fail
この2つは明確ですね。
No3:softfail、No4:neutral
ともにSPFレコード末尾にallがついている場合です。
No3の"~all"は弱い否定で、「多分なりすましだけど明言はしない」というスタンスで使います。強くなりすましであることを明示する場合は"-all"を使います。
一方、No4の"?all"は「何も判断しません」というスタンスです。このポリシーに基づいて判断された場合は通常通りメール受信されるようです。
No5:none、No6:permerror、No7:temperror
SPFレコードが存在しない、あるいはエラーで判定できない場合なので、そもそも検証自体ができないです。
判定結果に基づくメール処理
受信メールサーバーがSPF判定結果を参照して、対象のメールをどのように処理するか決定します。試しにOutlookでの処理をまとめてみました。ただし実際の処理結果は受信サーバーのポリシー設定によって異なります。
| SPF判定結果 | 受信区分 | 受信サーバー(Outlook)での処理 |
|---|---|---|
| pass | ○ | 正常なメールとして受信トレイに届く。迷惑メール扱いされない。 |
| fail | △ | 迷惑メールフォルダに振り分けられる可能性があるが、必ず拒否されるわけではない。 |
| softfail | △ | 通常は迷惑メールフォルダに振り分けられる。SPFレコードに「~all」があるため、疑わしい送信元と判断される。 |
| neutral | ○ | SPFの影響は小さく、他のスパム判定要素と合わせて判断。通常は受信トレイに届く。 |
| none | △ | SPFレコードが存在しないため、SPFによる評価は行われず、他の要素で判定。迷惑メール扱いされる可能性あり。 |
| permerror | △ | SPFレコードに構文エラーがあるため、failと同様に扱われることが多く、迷惑メールフォルダに振り分けられる可能性あり。 |
| temperror | △ | DNSの一時的なエラーでSPF判定ができなかった場合、failと同様に扱われることが多い。迷惑メールフォルダに入る可能性あり。 |
補足:failで拒否される場合
failも含め、多くの場合は迷惑メールフォルダに振り分ける処理となるようです。
Outlookの場合はメールセキュリティサービスであるExchange Online Protection (EOP)がメール処理をポリシーに基づいて決定するようですが、代表的な拒否パターンとしては以下が挙げられます。
・SPFレコードで"-all"が設定されている場合(=ドメイン保有者がなりすまし可能性の高さを示唆している)
・EOPのポリシーで「ハード拒否」が設定されている(=受信側で拒否するポリシーとしている)
総括等
・SPFレコードの返答結果は大きく7種類。
・判定結果をもとに、受信メールサーバー側のポリシーに基づき処理を決定。
SPFによる判定結果とそれによるメール処理方法を見てきました。
ただSPFだけでは受信側に判定結果は伝えられるものの、ドメイン保有者が「その結果をどう扱うか」まですることはできません。その役割を担うのが"DMARC"ですが、また別の機会に気になる仕様等を調べられればと思います。
ここまでお読みいただき、ありがとうございました。
お気づきの点やもっと知りたい点などございましたら、ぜひコメントいただければ幸いです。