如何使用Domain-Protect保護(hù)你的網(wǎng)站抵御子域名接管攻擊
關(guān)于Domain-Protect
Domain-Protect是一款功能強(qiáng)大的子域名安全保護(hù)工具,可以幫助廣大研究人員更好地保護(hù)自己的網(wǎng)站抵御子域名接管攻擊。該工具支持實(shí)現(xiàn)以下兩個(gè)目標(biāo):
- 掃描一個(gè)AWS組織中的Amazon Route53,并獲取存在安全問題的域名記錄,然后嘗試執(zhí)行域名接管檢測;
- 可以通過Domain Protect for GCP檢測Google Cloud DNS中存在安全問題的域名;
子域名檢測功能
掃描Amazon Route53以識別:
- 缺少S3源的CloudFront發(fā)行版的ALIAS記錄;
- 缺少S3源的CloudFront發(fā)行版的CNAME記錄;
- 存在接管漏洞的ElasticBeanstalk的ALIAS記錄;
- 缺少托管區(qū)域的已注冊域名;
- 易被接管的子域名;
- 易被接管的S3ALIAS記錄;
- 易被接管的S3CNAME記錄;
- Azure資源中存在安全問題的CNAME記錄;
- 缺少Google云存儲Bucket的CNAME記錄;
可選的額外檢測
這些額外的檢測功能默認(rèn)是關(guān)閉的,因?yàn)榭赡茉趻呙璐笮徒M織時(shí)會導(dǎo)致Lambda超時(shí),比如說掃描缺少Google云存儲Bucket的A記錄。如需啟用,請?jiān)谀愕膖fvars文件或CI/CD管道中 創(chuàng)建下列Terraform變量:
- lambdas = ["alias-cloudfront-s3", "alias-eb", "alias-s3", "cname-cloudfront-s3", "cname-eb", "cname-s3", "ns-domain", "ns-subdomain", "cname-azure", "cname-google", "a-storage"]
通知
- 針對掃描到的每種漏洞類型通過Slack通知 ,枚舉出賬號名稱和漏洞域名;
- 訂閱SNS主題,發(fā)送JSON格式的電子郵件通知,其中包含帳戶名、帳戶ID和存在安全問題的域名;
工具要求
- 需要AWS組織內(nèi)的安全審計(jì)賬號;
- 在組織中的每個(gè)AWS帳戶都具有相同名稱的安全審核只讀角色;
- 針對Terraform狀態(tài)文件的Storage Bucket;
- Terraform 1.0.x;
工具源碼獲取
廣大研究人員可以通過下列命令將該項(xiàng)目源碼克隆至本地:
- git clone https://github.com/ovotech/domain-protect.git
工具使用
- 以下列命令形式替換Terraform狀態(tài)S3 Bucket字段(TERRAFORM_STATE_BUCKET);
- 針對本地測試,拷貝項(xiàng)目中的tfvars.example,重命名并去掉.example后綴;
- 輸入你組織相關(guān)的詳情信息;
- 在你的CI/CD管道中輸出Terraform變量;
AWS IAM策略
針對最小特權(quán)訪問控制,項(xiàng)目提供了AWS IAM策略樣例:
- domain-protect audit policy
- domain-protect audit trust relationship
- domain-protect audit trust relationship with External ID
- domain-protect deploy policy
工具使用截圖
部署至安全審計(jì)賬號:
掃描整個(gè)AWS組織:
通過Slack或電子郵件接收提醒消息:
通過筆記本電腦手動執(zhí)行掃描任務(wù):

項(xiàng)目地址
Domain-Protect:【GitHub傳送門】