TimothyCorrado/identity-attack-surface
GitHub: TimothyCorrado/identity-attack-surface
基于 Gmail API 的云原生身份暴露扫描器,通过风险评分和别名隔离降低账户接管风险。
Stars: 0 | Forks: 0
# 云身份攻击面扫描器
这是一个专注于身份攻击面发现、别名隔离以及使用 FIDO2 硬件安全密钥部署抗钓鱼认证的安全项目。
```
flowchart LR
A[Gmail API] --> B[Exposure Scanner]
B --> C[Risk Scoring Engine]
C --> D[Alias Generator]
D --> E[Cloudflare Email Routing]
E --> F[Identity Isolation]
```
## 为什么存在此项目
电子邮件身份是现代账户接管的主要切入点。
本项目演示了如何:
- 使用 Gmail API 发现身份暴露
- 使用安全聚焦的评分机制对暴露风险进行排名
- 使用自定义域名生成隔离别名
- 减少攻击面并改善身份隔离
- 使用容器化和云 IAM 原则进行安全部署
这反映了现实世界中的 SaaS 和云身份保护工作流程。
## 架构
**数据流**
Gmail API → 暴露扫描器 → 风险评分引擎 → 别名生成器 → 安全操作
**组件**
| 组件 | 功能 |
|---|---|
| gmail_scanner.py | 从 Gmail 提取账户暴露信息 |
| rank_exposures.py | 对暴露风险进行评分 |
| alias_generator.py | 创建隔离别名 |
| notifier.py | 安全警报逻辑 |
| Dockerfile | 容器化执行 |
| Cloudflare Email Routing | 别名身份隔离 |
## 示例输出
domain,max_risk,recommended_alias
robinhood.com,100,robinhood@corradosec.com
paypal.com,70,paypal@corradosec.com
microsoft.com,85,auth-microsoft@corradosec.com
## 演示的安全原则
**身份隔离**
每个服务使用唯一的别名:
service@domain.com
防止横向账户接管。
**最小权限**
Gmail API 使用只读权限范围:
gmail.readonly
**密钥管理**
使用 .gitignore 排除敏感凭据。
**云原生设计**
容器化部署于:
- Google Cloud Run
- Azure Container Apps
- AWS ECS
## 威胁模型
**威胁:** 通过暴露的主邮箱进行账户接管
**攻击链:**
1. 身份在数据泄露中暴露
2. 攻击者枚举 SaaS 账户
3. 发起密码重置
4. 邮箱接管 → 完整身份泄露
**缓解措施:**
别名隔离阻断攻击链。
## 展示的技能
### 身份与访问管理 (IAM)
- 基于域名的电子邮件别名隔离
- 身份攻击面枚举和风险分类
- 分层身份架构设计
### 认证安全
- FIDO2 硬件密钥部署 (YubiKey 5C NFC)
- Passkey 和抗钓鱼 MFA 实现
- SMS MFA 弃用和恢复模型加固
### 云安全
- Cloudflare 身份和 DNS 安全加固
- 域名基础设施保护
- 应用于生产账户的零信任身份原则
### 威胁建模
- 凭据填充风险缓解
- SIM 交换攻击缓解
- 钓鱼攻击防御架构
- 身份爆炸半径缩减
### 安全工程
- 安全架构文档编写
- 部署规划和验证
- 身份恢复和灾难恢复设计
### 工具与技术
- Cloudflare
- FIDO2 / WebAuthn
- YubiKey 硬件认证
- Google Password Manager
- GitHub
- Python (身份扫描器)
## 项目状态
基于硬件的认证部署正在进行中。
有关完整的架构和部署详细信息,请参阅 `/identity` 文件夹。
## 安全样本数据
参见:
sample_output/
已排除真实的个人暴露数据。
## 未来增强
- Cloud Run 自动化扫描
- SIEM 集成
- 风险仪表板
- 身份暴露警报
- 企业 IAM 集成
## 快速开始
### 使用 Docker 运行
构建容器:
```
docker build -t identity-scan .
```
在演示模式下运行(无需凭据):
```
docker run --rm -e DEMO_MODE=1 identity-scan
```
通过 Gmail 集成运行(本地安全模式):
```
docker run --rm -v "%cd%\secrets:/secrets:ro" -v "%cd%\output:/app/output" -e GMAIL_TOKEN_PATH=/secrets/token.json identity-scan
```
需要本地 Gmail API 凭据(不包含在仓库中)。
### 不使用 Docker 在本地运行
安装依赖:
```
pip install -r requirements.txt
```
运行排名:
```
python rank_exposures.py
```
生成别名:
```
python app/alias_generator.py
```
## 作者
Timothy Corrado
网络安全专家
## 免责声明
本项目仅用于防御性安全和教育目的。
标签:Cloudflare, Docker, EASM, FIDO2, Gmail API, JSONLines, MITRE ATT&CK, NIDS, Python, 别名生成, 安全防御评估, 容器化, 无后门, 暴露面扫描, 请求拦截, 账户接管防护, 身份安全, 身份隔离, 逆向工具, 邮箱路由, 钓鱼防护, 零信任, 风险评分