PowerSPF
上記3プランで、追加料金なくご利用いただけます(ZoneAPEXの場合)。
PowerSPFとは、SPFを強化した機能です。
SPFマクロ機能によってMTAの情報を隠蔽するステルス型のセキュリティにより、DNS Lookup10回の制限を超えるだけでなく、Attack Surface Management(攻撃対象領域管理)の観点からも重要な役割を果たします。
ZoneAPEX(ドメイン本体)でPowerSPFをご利用いただく分には、Plusプラン・Premiumプラン・Platinumプランで追加料金なくご利用いただけます。
サブドメインでもPowerSPFをご利用になりたい場合には、別途追加料金が発生しますので、あらかじめご了承ください。
PowerSPFの仕組み
PowerSPFは、「SPF Flattening」という革新的な機能を備えています。
この機能の理解には、まずSPFのDNS Lookupに関する10回という制限について知る必要があります。
SPFレコードのDNS Lookup制限
SPFレコードには、DNS Lookupが最大10回までという仕様上の制限があります。
自社のメール送信システム(MTA)だけでなく、サードパーティーのメールサービスを使用する場合、この制限を超えることがよくあります。
この制限を超えると、「permerror」というエラーが発生し、10回を超えたところからSPF検証が失敗します。
許可MTAのIPリストの統合
PowerSPFの「SPF Flattening」機能は、許可されたMTAのリストを20分に1回事前に問い合わせてリスト化します。
従来、この問題は、メール管理者の方が手動でincludeの中のIPアドレスを取り出して登録することが行われてきました。
PowerSPFの手法は、MTAのIPアドレスが更新された場合でも、リアルタイムで反映されるため、IPリストは常に最新の状態となります。
この仕組みによって、許可MTAのIPリストは1つだけとなり、DNS Lookupは1回だけで済みます。
SPFマクロ機能によるMTAの隠蔽化
PowerSPFは、2023年夏に仕様を変更し、SPFマクロ機能を使うように実装し直しました。
従来のPowerSPFは、SPFの問い合わせに対して、全てのIPリストを返していましたが、攻撃者にとっては、ドメインのMTAのIPリストを一括で入手できることになります。
そこでWebの隠蔽化と同様に、MTAについても、問い合わせがあったIPについてだけ存在するかどうかを返すことで、MTAのリストを入手できないようにしました。
DNS上では、以下のように登録します。
TXT "v=spf1 include:d5bge7q7zs.powerspf.com -all"
このincludeは、御社専用になります。
この中身は、以下のように記載されています。
"v=spf1 exists:%{i}.d5bge7q7zs.macrospf.powerspf.com -all"
例えば、GoogleのMTA(209.85.97.188)について、問い合わせがあったとしましょう。
すると、以下のように、%{i}の箇所に、当該MTAのIPアドレスが入り、このIPが存在している場合には、52.208.175.186が返されます。
52.208.175.186は、PowerDMARCが管理する実IPアドレスです。
SPFが見ているのは、返るIPの値ではなくDNSの応答結果
ここで誤解しやすい点として、SPFのexistsメカニズムは、返ってくるIPアドレスの値そのものを見ているわけではありません。
見ているのは、DNSクエリが成功して回答が得られたかどうかという、DNSの応答結果(レスポンスコード、RCODE)です。
- 問い合わせたMTAのIPが許可リストに含まれる場合: NOERROR(クエリ成功)でAレコードが返り、SPF的には「match(合格)」と判定されます。
- 含まれない場合: NXDOMAIN、またはNOERRORで回答が0件のNODATAが返り、SPF的には「no match(不合格)」と判定されます。
つまり、52.208.175.186という値の中身自体には意味がなく、SPF検証エンジンもその値を一切見ていません。
「回答が返ってきたかどうか」という存在確認だけを行っている、というのが実際の仕組みです。
※以前は、DNS Lookupのたびに、問い合わせのあったMTAのIPアドレスに応じて異なるAレコードをリアルタイムで生成・返却する実装でした。
2025年4月からは、RFC5737で文書化アドレスとして予約されている192.0.2.0/24レンジの192.0.2.1を固定的に返す実装に変更しました。
これは、以下のような課題があったためです。
- クエリごとに異なるIPのAレコードをリアルタイムで生成・返却しなければならず、DNSサーバーに高負荷がかかる。
- Microsoftなど一部のプラットフォームではDNSキャッシュのTTLが極端に短く、同一のmacroクエリに対して繰り返し短期間で大量のリクエストが発生。
- それにより「NXDOMAIN」や「SERVFAIL」が返ることがあり、SPF評価エラー、または意図せぬ配信ブロックの原因となった。
さらに2026年6月からは、PowerDMARCが管理する実IPアドレスである52.208.175.186(IPv6の場合は2600:1f18:dd1:7300::edeb)を返す仕様に変更されています。
この応答は、問い合わせているMTAのIPアドレスがIPv4かIPv6かに関わらず同じです。
nslookupでは、AレコードとAAAAレコードの両方が返ります。
Aレコードは52.208.175.186、AAAAレコードは2600:1f18:dd1:7300::edebで、いずれもPowerDMARCが管理する実IPアドレスです。
digの場合は、+shortを付けると、存在している場合だけIPが戻り、存在しない場合は無回答です。
- nslookupを使った例
-
$ nslookup 209.85.97.188.d5bge7q7zs.macrospf.powerspf.com Server: 169.254.169.254 Address: 169.254.169.254#53 Non-authoritative answer: Name: 209.85.97.188.d5bge7q7zs.macrospf.powerspf.com Address: 52.208.175.186 Name: 209.85.97.188.d5bge7q7zs.macrospf.powerspf.com Address: 2600:1f18:dd1:7300::edeb
- digを使った例(Aレコード)
-
$ dig +short 209.85.97.188.d5bge7q7zs.macrospf.powerspf.com A 52.208.175.186
- digを使った例(AAAAレコード)
-
$ dig +short 209.85.97.188.d5bge7q7zs.macrospf.powerspf.com AAAA 2600:1f18:dd1:7300::edeb
IPv6のMTA(例: 2607:f8b0:4864:20::431)について問い合わせた場合も、返る値は同じです。
%{i}の箇所に入るMTAのアドレスがIPv4かIPv6かに関わらず、応答するAレコードとAAAAレコードの値は変わりません。
Attack Surface Management (ASM) への貢献
PowerSPFは、メールセキュリティだけでなく、サイバーセキュリティの重要課題であるAttack Surface Management(攻撃対象領域管理)の観点からも極めて有効です。
攻撃者によるサプライチェーンの偵察を防止
従来のSPFレコード(フラット化されたIPリストやincludeの羅列)は、DNSを通じて全世界に公開されています。
攻撃者は、企業のDNSレコードを調査(偵察)することで、「この企業はGoogle Workspaceを使っている」「Salesforceを使っている」「Marketoを使っている」といった利用サービス(サプライチェーン)を特定できてしまいます。
利用しているSaaSやクラウドサービスが特定されると、攻撃者はそのサービスになりすました精巧なフィッシングメール(なりすましメール)を作成し、標的型攻撃を行うリスクが高まります。
ステルス型セキュリティによる防御
PowerSPFのSPFマクロ機能は、問い合わせがあったIPアドレスに対してのみ応答を返す、ステルス型セキュリティの仕組みを採用しています。
これにより、自社が利用している全MTA(送信元メールサーバー)のリストを、攻撃者に一括で把握されることがありません。
攻撃者から見えるのは、個別に問い合わせたIPが許可リストに含まれているかどうかという結果だけであり、全体像を外部から窺い知ることはできません。
このように情報を外部から隠すステルス型セキュリティによって、攻撃の予兆段階である「偵察」を無効化し、組織の攻撃対象領域(アタックサーフェス)を縮小させることができます。
UDPのデータ容量超過の防止
DNSは、基本的にUDPを使います。
UDPは、1パケットあたり512バイトの制限があります。
PowerSPFは、SPFマクロ機能を使うことで、問い合わせがあったMTAが許可リストに含まれているかどうかについてのみ、固定的な短い応答を返すことで、UDPのデータ容量超過を防止します。
もしも、許可リストに存在しない場合は、単純にNXDOMAINかNODATAを返します。
無制限の許可MTAのリスト
メルマガ配信や、SFA、請求書発行など各種SaaSを使っていると、DNS Lookup 10回の制限によって、SPFに登録できるincludeの数に限りがあります。
しかし、PowerSPFは、上述のような仕組みであるため、無制限に許可MTAのリストを登録可能です。
ネストされたincludeのメカニズム上書き機能
SPFレコードを設定する際に見落とされがちな点として、includeを使用して他のドメインを参照している場合があります。
この場合、参照先のドメインがSoftfail(~all)を指定していると、自分のドメインのSPFレコードがHardfail(-all)であっても、その部分はSoftfailとして扱われることになります。
つまり、他のドメインの設定に依存してしまうことで、自分のメールセキュリティが意図せず弱まる可能性があります。
このような状況を防ぐために、PowerSPFは、ネストされたincludeのメカニズム上書き機能を提供しています。
この機能を使用することで、include先がSoftfailであってもHardfailに上書きし、より強固なメールセキュリティを確保することが可能です。
PowerSPFを活用することで、外部ドメインに依存せず、全体のメール認証の一貫性と安全性を保つことができます。
分析
分析機能によって、どのincludeやIPアドレスから、何通のメールが送信されているかを確認できます。
これにより、SPFに記載があっても、使われていないものを検出して削除することが可能です。
診断
診断機能によって、SPFレコードに関連する問題や警告メッセージだけでなく、PowerSPFが自動修正できる場合は修正します。
それをどのように修正できるかについての推奨事項を確認できます。
includeしているサードパーティーのSPFレコードで文法エラーがあると、自社のSPFがPermErrorとなってしまいます。
それを防ぐ上で、PowerSPFの診断機能は、とても重要です。