asdfghjkltygh/defcon-boiling-frog

GitHub: asdfghjkltygh/defcon-boiling-frog

针对AWS ASG、Kubernetes HPA等云端自动扩缩容系统的决策边界提取工具,揭示确定性过滤器的安全漏洞及差分隐私防御方案。

Stars: 0 | Forks: 0

# 温水煮青蛙 **提取云端自动扩缩容决策边界** DEF CON 33 // 工具发布 ## 攻击原理 每一个云端自动扩缩容器,每一个 Kubernetes HPA,每一个运行确定性过滤器的 Datadog 监控器,此刻都在向你泄露其决策边界。 在阈值 x 1.005 处进行一次探测。过滤器每次都会产生相同的输出。你提取出边界,在真实流量高峰期间将负载保持在略低于边界的位置,看着对方的基础设施瘫痪。或者将负载保持在略高于边界的位置,用幽灵实例消耗他们的云账单。 这就是温水煮青蛙攻击。它对所有的 SMA(简单移动平均)、所有的卡尔曼滤波器、所有的静态边距都有效。100% 的成功率。零检测风险。悄无声息。 ## 漏洞范围 任何基于确定性过滤的遥测数据进行阈值违规决策的系统。具体包括: - **AWS Auto Scaling Groups** 配合 CloudWatch CPU 告警(默认配置)。`PutMetricData` 允许你注入自定义指标。告警基于固定数量的周期评估静态阈值。一次探测即可映射出边界。 - **Kubernetes HPA** 使用 `metrics-server` 的 CPU/内存目标。HPA 控制器使用简单的比率比较当前利用率与期望利用率。确定性的。可提取的。 - **Datadog Monitors** 对任意指标设置阈值告警。查询、比较、告警。管道中没有任何噪声。 - **Prometheus Alertmanager** 使用 PromQL 阈值规则。`avg_over_time(cpu_usage[5m]) > 0.8` 是确定性的,相同的输入产生相同的输出。 - **PagerDuty** 基于阈值的事件规则。确定性评估,无抖动。 如果原始遥测数据与决策之间的过滤器满足 `f(x) = f(x)`(每次都一样),你就可以提取出边界。这涵盖了所有上述系统。 ## 现有工具现状 云红队工具(Pacu, Stratus Red Team)专注于 IAM 错误配置、凭证盗窃和服务利用。没有人针对自主基础设施代理的决策逻辑。自动扩缩容器的阈值不是你可以从 API 读取的配置项;它是过滤器管道的一种涌现属性。没有 `aws autoscaling describe-threshold` 这种命令。 这是一个新的攻击面:遥测到决策的管道本身。该工具提取的是不存在于任何配置文件、任何 API 响应、任何 IAM 策略中的信息。 ## 快速开始 ``` # 安装 make install # 运行 exploit 演示(约 2 分钟,terminal-friendly) make demo # 运行完整评估(6 个图表,2 个 metric 表,burn rate 分析) make run ``` 需要 Python 3.8+ 以及 `requirements.txt` 中的包。 ## 关键数据 | 指标 | 确定性过滤器 | 部署 DP-Governor 陷阱后 | |--------|----------------------|----------------------| | 探测成功率 | 100% (每次必中) | 82.6% +/- 10.8% | | 每次探测暴露率 | 0% (不可检测) | 17.4% | | 存活 5 次探测的概率 | 100% | ~38.5% | | 误触发 | 0% | <0.001% | | 漏报率 | 0% | 0% | ## 演示内容 从攻击者视角看到的六个阶段: 1. **目标锁定** -- 对 AWS Auto Scaling Group 的 CPU 遥测数据进行侦察 2. **执行攻击** -- 在阈值 x 1.005 处注入探测 3. **载荷投递** -- 针对所有确定性过滤器完全提取边界 4. **陷阱触发** -- 目标激活 DP-Governor;攻击开始失败 5. **暴露率分析** -- 200 次探测的蒙特卡洛模拟:你的隐蔽性呈几何级数下降 6. **行动评估** -- 陷阱增加了亚毫秒级延迟且零附带损害 ## 陷阱原理(致数学极客) 一个差分隐私调控器会让边界变得具有概率性。你的探测只有约 83% 的时间能成功,而不是 100%。剩下的约 17% 呢?你注入的读数会 hit SOC 日志,而代理却什么都不做。你获得零信息并暴露了行动掩护。 假设映射边界需要五次探测。到了第五次探测,有超过 60% 的概率 SOC 已经在调查你了。更宽的卡尔曼边距只是移动了终点线。差分隐私把终点线变成了雷区。 ## 仓库结构 ``` defcon-boiling-frog/ boiling_frog_exploit.py Main PoC (~2500 lines) requirements.txt Python dependencies Makefile install / run / demo / clean EXPLOIT_WALKTHROUGH.md Offensive walkthrough DEFENSE.md Blue team mitigations assets/ Generated plots and CSVs data/ Downloaded NAB trace cache ``` ## 会议资料 - [漏洞利用演示](EXPLOIT_WALKTHROUGH.md) -- 分步攻击指南 - [视频演示](https://youtu.be/2MHVeOF3rCI) -- 攻击演示的终端录像 - [形式化证明 (PDF)](https://github.com/asdfghjkltygh/paranoid-agent/blob/main/whitepaper.pdf) -- 致数学极客 ## 为什么这很重要 自动扩缩容器阈值一旦被攻破,意味着攻击者控制了你的基础设施何时扩缩容。在流量高峰期间将负载保持在阈值 - 0.1%:你的用户会收到 503 错误,而扩容器却无动于衷。在非高峰期间将负载保持在阈值 + 0.1%:你要为 24/7 运行的幽灵实例买单。攻击者只需一次无声的探测即可提取边界,而你的确定性过滤器每次都会给他们相同的答案。 没有日志条目。没有警报。过滤器完全按设计工作。 ## 局限性 - **需要遥测注入。** 如果攻击者无法影响代理读取的指标(例如,没有 `PutMetricData` 权限,无法产生负载),则攻击不适用。 - **假设过滤器管道是确定性的。** 已经在扩缩容决策中添加随机抖动的系统(在生产环境中很少见,但确实存在)具有一定的抵抗力。 - **亚毫秒级系统超出范围。** HFT 引擎和内联数据包检查器运行在即使 0.2ms 也至关重要时间尺度上。本工具针对具有 5秒 到 5分钟 轮询间隔的基础设施代理。 - **多变量交叉相关。** 如果目标同时监控多个相关指标,在一个指标上注入探测而不匹配其他指标可能会被检测到。 ## 许可证 MIT
标签:Auto Scaling, AWS, CloudWatch, Datadog, DEF CON, DoS, DPI, EDoS, HPA, Waymore结果处理, Web截图, 云基础设施, 侧信道攻击, 决策边界提取, 反向工程, 容器安全, 弹性计算, 监控绕过, 经济拒绝服务, 自动扩缩容, 自定义请求头, 资源耗尽, 逆向工具, 遥测数据注入, 阈值探测