kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Azureのサブドメイン乗っ取りを防ぐための検証スクリプトを実行してみる

Azureからこんなメールが来ていて何事かと思いました。

Important security information regarding your organization's subdomain(s)

This email notification has been sent to each Global Administrator(s) and/or Technical Contact of your Azure Active Directory tenant. 

Our security team has identified specific Domain Name System (DNS) subdomains that belong to your organization's Azure Active Directory tenant, that have been left dangling (not mapped to an active Azure resource). We want you to be aware of this issue, as dangling DNS entries can pose a security risk. 

Summary of Issue: 
Dangling DNS starts when custom DNS from your domain's DNS zone is mapped to a DNS CNAME record of an Azure resource that is no longer provisioned, leaving the associated domain "dangling". This dangling DNS entry, also known as a dangling domain, leaves the domain vulnerable to a malicious action known as a subdomain takeover. When a subdomain takeover occurs, a malicious actor takes control of the domain which was previously associated with your deprovisioned Azure resource. By gaining control, malicious actors can intercept traffic intended for that endpoint and/or offer malicious contraband content from that endpoint. The potential impact may vary depending on the architecture of your application. 

ちょっと前話題になったこの件だと思います。

nakedsecurity.sophos.com

MSのセキュリティブログからも案内が出ています。

msrc-blog.microsoft.com

公式のdocsも出ています。

docs.microsoft.com

難しそうに見えるのですが、要はGitHubからPowerShellをダウンロードして実行して確認しましょう、ということなので、やってみます。

github.com

Invoke-WebRequest -Uri "https://raw.githubusercontent.com/Azure/Azure-Network-Security/master/Cross%20Product/Find%20Dangling%20DNS%20Records/Get-DanglingDnsRecords.ps1" -OutFile "Get-DanglingDnsRecords.ps1"

ダウンロードしたPowerShellをとりあえず実行してみます。実行するときにはGlobal Tenant Admin(テナント全体管理者)権限が必要になります。

 .\Get-DanglingDnsRecords.ps1 -FetchDnsRecordsFromAzureSubscription  

f:id:kkamegawa:20201202144705p:plain

とりあえず大丈夫っぽい。実行するときは現在の既定のサインイン情報を使うようで、実行時認証指定できない…のかな?おそらく事前にlogin-azaccountしていればいいのかなと思います。ぜひチェックしておきましょう。