SPFレコードとは?その仕組みと設定方法

SPFレコードを確認する

SPFの定義

SPF (Sender Policy Framework) は、メール認証プロトコルであり、フィッシング攻撃を阻止するために使用される電子メールのサイバーセキュリティの一部です。これにより、あなたのドメインに代わって誰がメールを送信できるかを、組織が指定することができます。一般的なフィッシング攻撃では、脅威アクターが送信者アドレスになりすまして、公式の企業アカウントや被害者が知っている人物のように見せかけるため、送信者を指定できるSPFは有効な機能です。

SPFレコードとは?

ドメインネームサービス(DNS)サーバーに追加されるSPFレコードは、受信者のメールサーバーに届いたメッセージが、正規の送信者IPアドレスから送信されたものか、フィッシングキャンペーンとして送信されたものなのかを知らせます。SPFレコードは、メールセキュリティに不可欠な要素であり、意図した被害者にフィッシングメールが届かないようにするための手段を管理者に与えます。

SPFレコードの必要性

SPFレコードとは、組織の公式メールサーバーのIPアドレスと、あなたのビジネスの代わりにメールを送信できるドメインを含むDNSエントリのことです。SPFは、サイバー犯罪者があなたのドメインを偽装することを阻止し、スパムフィルタがそのドメインをブラックリスト化する可能性を低くします。このように評価が向上することで、正当なメールの配信可能性が向上します。サードパーティのメールシステム(Google Suiteなど)を使用してメールを管理している場合は、送信者があなたのビジネスを代表してメッセージを送信することが承認されていることを、受信側のメールサーバーに伝えるSPFレコードが必要です。SPFレコードがない場合、受信者のメールサーバーは、そのメッセージがフィッシング攻撃である可能性を受信者に警告することがあります。一部のビジネス用メールサーバーでは、システムがメッセージを拒否するか、受信者の迷惑メールフォルダに直接送信するため、受信者がメッセージを受け取ることができない場合があります。

多くの受信者は受信トレイのスパムメッセージを読まないため、意図した受信者に到達できないビジネスは、顧客や潜在的なリードとのコミュニケーションが困難になります。大規模なメールシステムの多くは、すでにSPF検出機能を備えているため、すべてのドメイン所有者は、メールメッセージが受信者の受信トレイに届くように、時間をかけてDNSサーバーにレコードを追加する必要があります。Google、Hotmail、Yahooなどの個人のサードパーティーメールシステムは、すでにSPFレコードを組み込んでいるので、個人のメールアカウントにレコードを追加する必要はありません。

SPFレコードの仕組み

すべてのドメインは、ユーザーがブラウザウィンドウに入力するドメイン名にWebサーバーのIPアドレスをリンクするDNSサーバーを使用しています。あなたのDNSサーバーに追加されたレコードは、サーバーIPと名前(例:mydomain.com)を一致させるために連絡する必要があるWebブラウザまたは他のサービスを許可しますが、DNSサーバーは、いくつかの異なる種類のレコードをホストすることができます。SPFレコードは、認証されたメールサーバーのIPアドレスをリストアップしたTXTエントリです。SPFエントリには、メール送信を許可された1つまたは複数のIPアドレスを登録することができます。

正当なユーザーがメッセージを送信し、SPFレコードが利用可能な場合、受信者の電子メールサーバーはDNSルックアップを実行してTXTエントリを見つけ、送信者のサーバーIPが送信者ドメインの認可されたIPアドレスのリストに一致するかどうかを判断します。SPFレコードが見つからない場合、送信者のメールメッセージは、認証失敗の意味である「soft fail」または「hard fail」を受け取る可能性があります。メールサーバーの管理者は、メッセージがユーザーの受信トレイに到達するためのルールを定義します。「soft fail」は、意図した相手に届くかもしれませんが、セキュリティ設定によっては、受信側のメールサーバーによって拒否される可能性もあります。「hard fail」は、受信者の迷惑メールフォルダに送られるか、サーバーが単にメッセージを拒否して削除する可能性もあります。

電子メールのセキュリティは、受信者と送信者が適切な設定とフィルターを取り入れることに基づいています。受信者のメールサーバーは、SPFレコードのないメッセージをブロックしたり、何らかの障害レベルを返すメッセージを拒否したりするような高レベルのセキュリティを持っているかもしれません。送信者は、受信者のメールサーバーによってフラグが立てられることを避けるために、常にSPFレコードを持つ必要があります。

SPFレコードとヘッダー

SPFレコードは、単なるIPアドレスだけではありません。SPFレコードは、送信者IPが認可されたIPアドレスのリストに一致しない場合の対処を受信者サーバーに指示します。IPアドレスにはIPv4とIPv6があるため、SPFレコードで両方のバージョンを定義することができます。各メールメッセージには、メールメッセージの先頭に表示される可視ヘッダーと、隠れた技術的ヘッダーの2つの「ヘッダー」が含まれています。それぞれのヘッダーには、「送信元」のメールアドレスが含まれています。可視ヘッダー(別名「ヘッダーfrom」または「フレンドリーfrom」)と、メールの隠れた技術的ヘッダーに含まれる「エンベロープfrom」アドレス(別名「Return-Path」または「mfrom」)です。それぞれのヘッダーがどのようなものか、以下に例を示します。

可視ヘッダー:

ヘッダーfrom

隠れた技術的ヘッダー:

エンベロープfrom

SPFレコードの他の例としては、以下のようなものがあります。

v=spf1 ip4:48.213.51.127 ip6:2a05:d018:e3:8c00:bb71:dea8:8b83:851e include:authorized-domain.com -all

 

上記のSPFレコードの各コンポーネントを分解すると、最初のコンポーネントである「v-spf1」は、SPFエントリのバージョンを示しています。バージョンは、今のところ常にSPF1となり、受信者のメールサーバーがSPF情報を提供するTXTレコードを識別するための方法を提供します。

「ip4」と「ip6」の項目は、許可されたメールサーバーのIPv4アドレスとIPv6アドレスです。複数のIPアドレスを記載する場合は、各IPアドレスをスペースで区切り、ip4 または ip6 というプレフィックスとコロンを使用します。例えば、以下のSPFレコードは、2つのIPv4アドレスを認可されたサーバーとして定義しています。

v=spf1 ip4:48.213.51.127 ip4:31.217.43.153 ip6:2a05:d018:e3:8c00:bb71:dea8:8b83:851e include:authorized-domain.com -all

 

「include」ディレクティブは、定義されたサードパーティードメインがあなたの組織に代わってメールを送信できることを示します。例えば、サードパーティプロバイダーを使用してバルクマーケティングメールを送信するとします。このサードパーティメールプロバイダーをSPFレコードに含めることで、受信者のメールサーバーがメッセージを拒否したり、迷惑メールフォルダに入れたりすることがなくなります。

最後に、「-all」ディレクティブは重要で、送信者が認可されたIPアドレスを使用していない場合に使用するポリシーを、受信者サーバーに指示します。「-all」ディレクティブは、受信者サーバーにフラグを 「fail」に設定するよう指示します。他に2つのオプションがあります。「∼all」ディレクティブは「soft fail」となり、受信者の受信箱に届きますが、悪意のあるメッセージである可能性があるという警告が残されます。「+all」ディレクティブは、あらゆるセキュリティ制限を回避して、受信者サーバーにメッセージを「pass」に設定するよう指示します。後者の設定は、安全でないポリシーとみなされるため、避ける必要があります。

SPFレコードの設定方法

SPFレコードをどのように設定するかは、DNSホストによって異なります。ドメインレジストラのDNSサーバーを使用する場合、レジストラには通常、DNSエントリを追加および削除するためのダッシュボードがあり、そのダッシュボードで、SPFレコードを追加します。

最初のステップは、SPFレコードを作成することです。これまでの例をテンプレートとして使用し、独自のものを作成することができます。IPアドレスを自社のものに変更し、外部のメールサービスがあなたのビジネスを代表してメッセージを送信しない場合は、サードパーティドメインを削除してください。SPFレコードを作成したら、DNSサーバーに公開する準備は完了です。

SPFレコードはTXTエントリで、DNSプロバイダーはダッシュボードでこのエントリタイプを選択することができます。通常、DNSサーバーはサードパーティプロバイダー、レジストラ、またはドメインをホストしている会社を通じて利用できます。サポートが必要な場合、ほとんどのホストプロバイダーは、DNSエントリなどの重要な設定に関するサポートを提供しています。

DNSエントリを追加するには、DNSサーバーをホストしているプロバイダーに移動し、DNS設定に作成したレコードをコピーして貼り付け、レコードタイプにTXTが選択されていることを確認してください。レコードを保存した後、インターネット上で変更が反映されるまで、最大72時間かかる場合があります。新しい設定をテストする前に、必ずこの点を考慮してください。

メールプロバイダーから受信者にメッセージを送信することで、新しい変更点をテストすることができます。例えば、Google Suiteを使用していて、ドメインのSPFレコードを追加した場合、ビジネスアカウントから個人アカウントにメッセージを送信してテストすることができます。SPFルックアップの結果を判断するには、メールヘッダーを確認する必要があります。

例えば、Gmailのヘッダーは、返信アイコンの横にあるその他アイコンをクリックし、「メッセージのソースを表示」メニューオプションをクリックすることで表示できます。ヘッダーウィンドウが開き、ヘッダーの上部にSPFルックアップの結果が表示されます。次の画像は、Gmailの例です。

SPFルックアップの結果

SPFレコードがパスしているため、このメッセージはGmailで正当なメールとみなされ、受信者の受信トレイに届いたことに注目してください。SPFに失敗したレコードは、迷惑メールフォルダから探すことができ、Gmailが警告メッセージでラベル付けしていることに気づくでしょう。

フィッシング攻撃は脅威アクターにとって主要な手段であり続けるため、SPFレコードやその他のメールセキュリティは、悪意のあるメッセージを受信した際にユーザーに警告を発するのに役立ちます。SPFレコードを使用すると、攻撃者はあなたのドメインを利用して、狙った被害者に対してフィッシングキャンペーンを仕掛けることができなくなります。これにより、あなたのビジネスの評判と、ユーザーが被害者になることを防ぐことができます。

多くの企業は、従業員や消費者を対象とした電子メール詐欺のトレーニングに投資しています。しかし、このような投資にもかかわらず、BEC(Business Email Compromise): 信頼できる企業のIDになりすまし、従業員を騙す、高度な標的型かつ少量の攻撃やクレデンシャルフィッシング詐欺に騙される人が後を絶ちません。そして、これらの攻撃は効果的です。ベライゾンによると、フィッシングメールの30%は標的となったユーザーが開封し、そのうちの12%は悪意のある添付ファイルをクリックしています。

なりすましメールに対する防御は、人ではなく、メール認証が常に第一線であるべきです。SPFは、受信箱に届く前に悪質なメッセージを識別してブロックすることで、標的となる受信者の当て推量を排除します。しかし、SPFだけでは、従業員や顧客を狙ったフィッシングメールをブロックするには十分ではありません。それにはいくつかの大きな課題があります。

精度: あなたのブランドに代わってメールを送信するベンダーは、頻繁に変更され、数も増えます。 これらの変更をリアルタイムで把握できなければ、 SPFレコードは古くなってしまいます。

耐性: SPFは、メールプロバイダーが配信の判断に使用する多数のシグナルのひとつです。 SPFが失敗したとしても、メールがブロックされることを保証するわけではありません。

免責: メールが転送されると、SPFレコードは壊れてしまいます。

保護: SPFは、ユーザーがメールクライアントに表示される「ヘッダーfrom」アドレスが詐称されないように保護するものではありません。サイバー犯罪者は「エンベロープfrom」アドレスに所持しているドメインを含めることでSPFを通過することができ、目に見えるFromアドレスに正規のブランドのドメインを偽装することができます。

幸いにも、他のメール認証技術でこういった欠点を補うことができます。