关于Domain-Protect
Domain-Protect它是一种强大的子域名安全保护工具,可以帮助大多数研究人员更好地保护他们的网站,以抵抗子域名接管攻击。该工具支持以下两个目标:
- 扫描一个AWS组织中的Amazon Route53,并获取有安全问题的域名记录,然后尝试进行域名接管检测;
- 可以通过Domain Protect for GCP检测Google Cloud DNS域名存在安全问题;
子域名检测功能
扫描Amazon Route53以识别:
- 缺少S3源的CloudFront发行版的ALIAS记录;
- 缺少S3源的CloudFront发行版的CNAME记录;
- 有接管漏洞ElasticBeanstalk的ALIAS记录;
- 托管区域注册域名缺失;
- 易接管的子域名;
- 易被接管的S3ALIAS记录;
- 易被接管的S3CNAME记录;
- Azure资源中存在安全问题CNAME记录;
- 缺少Google云存储Bucket的CNAME记录;
可选的额外检测
默认情况下,这些额外的检测功能是关闭的,因为它们可能会导致扫描大型组织Lambda例如,缺乏扫描Google云存储Bucket的A记录。如果需要启用,请在你身上tfvars文件或CI/CD 创建以下管道Terraform变量:
通知
- 通过扫描到的每种类型的漏洞Slack通知 ,枚举账号名称和漏洞域名;
- 订阅SNS主题,发送JSON电子邮件通知格式,包括账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账户名、账ID域名存在安全问题;
工具要求
- 需要AWS组织内的安全审计账户;
- 组织中的每一个AWS所有账户都有相同名称的安全审核只读角色;
- 针对Terraform状态文件的Storage Bucket;
- Terraform 1.0.x;
获取工具源码
大多数研究人员可以通过以下命令将项目源代码克隆到当地:
工具使用
- 以下列命令形式替换Terraform状态S3 Bucket字段(TERRAFORM_STATE_BUCKET);
- 复制项目中的本地测试tfvars.example,重命名并删除.example后缀;
- 输入组织相关细节;
- 在你的CI/CD管道中输出Terraform变量;
AWS IAM策略
项目提供最小特权访问控制AWS IAM策略样例:
- domain-protect audit policy
- domain-protect audit trust relationship
- domain-protect audit trust relationship with External ID
- domain-protect deploy policy
截图用于工具
部署到安全审计账户:
扫描整个AWS组织:
通过Slack或电子邮件接收提醒消息:
扫描任务由笔记本电脑手动执行:
项目地址
Domain-Protect:【GitHub传送门】