2024 年、最近また活発化されているフィッシングですが、多くの場合、フィッシングサイトへのアクセスやフィッシングメールからの誘導によって被害にあうのですが、大抵はアドレスのみ間違えといったところから問題に発展するケースが多いはずです。
しかしながら、手の込んだケースでは、ドメイン情報を詐称して本物のドメインの裏に紐づく値を変更し、あたかも本物と間違えるような方法で攻撃をしてきます。
それを防ぐための手段として、 DNSSEC というものがあるのですが、この機能を利用してメールを受信する仕組みである SMTP DANE with DNSSEC が Microsoft 365 で利用できるようになりました。
DANE とは DNS based Authentication of Named Entities の略で名前の通り DNS を使ったドメイン名の認証方式です。 DNSSEC の証明書を使うことで騙りを阻止するということですね。
この機能の使い方は以下の Learn を見ていただくとわかるのですが、事前の設定を行っておく必要があります。またその結果として、 mx レコードに登録する値が .mail.protection.outlook.com から.mx.microsoft に進化する形になるので、どういった形で設定するのか試してみました。
まずはいくつかの PowerShell を実行します。
Exchange Management SDK を最新版にしてから対応をするとよいでしょう。
利用するコマンドレットは以下のものとなっています。
流れとしてはこんな感じでインストールとなります。
Install-Module -Name ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement
私の場合、古いモジュールがあったので、 Import 時に利用するモジュールのバージョンを指定しました。
Import-Module ExchangeOnlineManagement -Version 3.5.1
その後接続ですね。
Connect-ExchangeOnline -UserPrincipalName 管理者のUPN
続いて機能の有効化です。
これは登録しているドメイン単位に実行することになります。
Enable-DnssecForVerifiedDomain -DomainName ドメイン名
成功すると Success の表記と共に、設定すべき MX の値が出てきます。このアドレスが .mx.microsoft というドメインになっているというわけですね。
Microsoft 365 管理センター上で流れを見てみましょう。
https://admin.microsoft.com/?source=applauncher#/Domains
設定前は MX が .mail.protection.outlook.com となっています。
設定後は .mx.microsoft になっていますね。エラーとなっているのは DNS サーバー側の値を修正できていない状態だからです。
ちなみに 2 つのレコードを同居させると、こんな感じに怒られます。
この時点で以下のサイトでメールの接続チェックを行うと、 DNS が切り替わっていないため古い設定を通っての接続となりました。
https://testconnectivity.microsoft.com/tests/O365InboundSmtp/input
その後 DNS を整理したところ、エラーも消えました。
もちろんですが、接続確認も .mx.microsoft になっていますね。
これで DNSSEC の設定が完了しました。
続いてこれを使って SMTP DANE を行えるように設定していきます。
PowerShell を打っていきましょう。
Enable-SmtpDaneInbound -DomainName ドメイン名
Success と出れば成功です。
この状態で DANE のテストを行ってみます。
https://testconnectivity.microsoft.com/tests/O365DaneValidation/input
DANE の検証選択してドメイン名を入力してみましょう。
一部でエラーが出ていますが、検証できているレコードもありますね。
おそらくまだプレビューなので、一部のレコードで検証しきれない状態があるのかもしれません。
ちなみにまだ日本語の Learn には更新が反映されていなかったので、日本語環境で設定するのはもう少し待ったほうが良いのかも知れません。
音楽:Jig