【連載第6回】メールセキュリティの基本設定 ― SPF/DKIM/DMARCを正しく設定する
サイバー攻撃の90%以上がメールを起点としています。にもかかわらず、メールセキュリティの基本設定であるSPF/DKIM/DMARCが未設定の中小企業は非常に多いのが現状です。
SPF/DKIM/DMARCとは
この3つは、メールの「なりすまし」を防ぐための仕組みです。
SPF(Sender Policy Framework)
「このドメインからメールを送れるサーバーはこれだけ」とDNSに宣言する仕組みです。宣言されていないサーバーからのメールは、受信側で「なりすましの可能性あり」と判断されます。
DKIM(DomainKeys Identified Mail)
メールに電子署名を付与し、送信後に内容が改ざんされていないことを証明する仕組みです。
DMARC(Domain-based Message Authentication, Reporting and Conformance)
SPFとDKIMの結果を組み合わせて、認証に失敗したメールの扱い(何もしない/隔離/拒否)を指定する仕組みです。
Microsoft 365での設定手順
SPFの設定
DNSのTXTレコードに以下を追加します。
v=spf1 include:spf.protection.outlook.com ~all
他にもメール送信に使っているサービス(HubSpot、SendGridなど)があれば、そのSPFレコードも追加します。
SPFで詰まりやすい点
- 送信元の洗い出しが最大の作業です。 メール配信サービス、MAツール、勤怠・請求書システム、問い合わせフォーム、複合機のスキャン送信など、情シスが把握していない送信元が必ず出てきます。漏らすと、そのサービスからのメールが届かなくなります
includeは10回までという上限があります。 サービスを足し続けると上限に達し、SPF自体が評価されなくなります。上限に近づいたら、統合や整理が必要です~allと-allの違い。~all(ソフトフェイル)は「怪しいが拒否まではしない」、-all(ハードフェイル)は「拒否してよい」の意味です。まず~allで運用し、送信元を出し切ってから-allに進みます- 転送されるとSPFは失敗します。 社員が個人アドレスへ自動転送している場合などに起きます。DKIMは転送でも維持されるため、両方を設定することに意味があります
レコードは1ドメインに1つだけです。 SPFのTXTレコードを2行に分けて書くと不正となり、評価されません。追記する場合は既存の行に include: を足してください。
DKIMの設定
- Microsoft 365管理センター → 「セキュリティ」→「ポリシーとルール」→「脅威ポリシー」
- 「メール認証の設定」→「DKIM」を選択
- 対象ドメインを選択し、「有効にする」をクリック
- 表示されるCNAMEレコード2件をDNSに追加
DMARCの設定
DNSのTXTレコードに以下を追加します(まずは監視モードから)。
_dmarc.example.com TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com"
レポートを1〜2ヶ月監視し、問題がなければ p=quarantine(隔離)、最終的に p=reject(拒否)に段階的に引き上げます。
p=none のまま止まっているのが最も多い状態です。 監視モードは「設定した」ように見えますが、なりすましメールは何も止められていません。DMARCの効果は quarantine 以上で初めて出ます。
引き上げの進め方は次のとおりです。
p=noneでレポートを受け取り、自社ドメインで送信している正規のサービスをすべて特定する- 認証に失敗している正規サービスを、SPF/DKIM側で修正する
- 失敗がほぼなくなったら
p=quarantineに変更する - さらに1〜2ヶ月様子を見て
p=rejectへ
pct タグで対象の割合を絞る方法もあります。 p=quarantine; pct=10 とすれば、対象メールの一部にのみ適用され、影響を小さく確認できます。
レポートの受け皿を用意してください。 rua に指定したアドレスには、各受信事業者からXML形式のレポートが日次で大量に届きます。人が読める形式ではないため、共有メールボックスに溜めて放置されがちです。無料枠のあるDMARC解析サービスを使うか、少なくとも月1回、誰が見るかを決めておく必要があります。
サブドメインも忘れない
_dmarc.example.com の設定は、既定でサブドメインにも継承されます。ただし、使っていないサブドメインからのなりすましを明示的に止めたい場合は sp=reject を指定します。メール配信サービス用のサブドメインを別ポリシーで運用している場合も、この指定が効きます。
送信ドメイン認証だけでは防げないもの
SPF/DKIM/DMARCが守るのは自社ドメインの詐称です。次は防げません。
- 表示名だけを詐称したメール — 送信元アドレスは無関係のフリーメールでも、表示名を「代表取締役 ◯◯」にすればスマホでは見分けにくくなります
- 似たドメインからのメール —
example.co.jpに対するexample-co.jpなど。自社ドメインではないため、自社のDMARCは関与しません - 正規のアカウントが乗っ取られて送られたメール — 認証はすべて成功します。取引先が侵害された場合の請求書詐欺がこの類型です
そのため、受信側の対策も併せて必要です。
- 社外から届いたメールに警告バナーを表示する — Microsoft 365 や Google Workspace のルールで実現できます。表示名詐称に最も効きます
- 添付ファイルとリンクの検査を有効にする — Microsoft Defender for Office 365 や Google Workspace の高度な保護機能
- ユーザーによる外部への自動転送を禁止する — 侵害時に情報が流出し続ける経路になります
- 請求先口座の変更は、メール以外の手段で必ず確認する — 技術で止めきれない部分は業務ルールで塞ぎます
設定後の確認方法
以下の無料ツールで設定を確認できます。
- MXToolbox: SPF/DKIM/DMARCの設定確認
- mail-tester.com: メールの総合スコアチェック
- Google Admin Toolbox: DNSレコードの確認
設定変更後は、実際に自社から外部宛にメールを送って確認してください。 受信したメールのヘッダーで、spf=pass dkim=pass dmarc=pass の3つが揃っているかを見ます。DNSの反映には時間がかかるため、変更直後の確認結果は当てになりません。
主要なメールサービスは、送信元認証の要件を厳しくする方向で更新を続けています。 未設定のままだと、なりすまし対策以前に自社のメールが相手に届かなくなるリスクがあります。営業メールや請求書が届かない形で表面化するため、被害に気づくのが遅れます。
次回は、端末管理とデバイスセキュリティについて解説します。
まとめ
- SPFは送信元の洗い出しが最大の作業。MA・勤怠・請求書システム・複合機の送信が漏れやすい
includeは10回の上限があり、超えるとSPF自体が評価されない- SPFのTXTレコードは1ドメインに1つ。2行に分けると無効になる
- 転送されるとSPFは失敗するがDKIMは維持される。両方設定する意味がここにある
p=noneのままでは何も止まっていない。quarantine以上で初めて効果が出る- 引き上げは正規サービスの失敗を潰してから。
pctで対象割合を絞ると影響を抑えられる rua宛には日次で大量のXMLが届く。解析サービスを使うか、月1回見る担当を決める- 送信ドメイン認証では表示名詐称・類似ドメイン・アカウント乗っ取りは防げない
- 受信側で社外メールの警告バナーを出し、外部への自動転送を禁止する
- 口座変更の連絡はメール以外で必ず確認する。技術で止まらない部分は業務ルールで塞ぐ
- 未設定だと、なりすまし以前に自社のメールが届かなくなるリスクがある
← 前回: 【連載第5回】パスワード管理 | 次回: 【連載第7回】端末管理とデバイスセキュリティ →
まとめ・ご相談
セキュリティ対策の強化をご検討の方は、Security365(セキュリティ運用・SOCライト)をご覧ください。
貴社のIT課題について、まずは60分の無料相談でお気軽にご相談ください。