AWS GuardDuty
AWS GuardDuty 是亚马逊云科技的 7×24 威胁检测服务,用机器学习 + 威胁情报实时分析 VPC 流量、CloudTrail 操作、S3 访问、IAM 行为、容器调用,发现正在发生的攻击或异常。TT API 全网关接入 GuardDuty,攻击信号秒级告警;与 Inspector 的漏洞扫描共同构成主动 + 被动双层防御。本文讲清楚 GuardDuty 在 TT API 安全体系里的角色。
一、GuardDuty 是什么
它和 Inspector 有什么不同
| 维度 | Inspector | GuardDuty |
|---|---|---|
| 时机 | 漏洞被利用前(pre-exploit) | 异常正在发生时(runtime) |
| 方式 | 静态扫描资源配置和依赖 | 动态分析流量和行为 |
| 输入 | EC2 / ECR / Lambda 资产清单 | VPC Flow Logs、CloudTrail、DNS 查询、S3 访问、IAM 操作 |
| 输出 | "你这台机器装的 OpenSSL 有 CVE" | "有 IP 正在对你 API 做凭据爆破" |
简单说:Inspector = 体检报告,GuardDuty = 心电监护。
它分析什么
GuardDuty 默认接 4 类数据源,全部由 AWS 内部采集,不需要在我们服务器上装任何 agent:
- VPC Flow Logs —— 进出 VPC 的网络包元数据(不含 payload)
- CloudTrail Management + Data Events —— 所有 AWS API 调用记录
- DNS Logs —— VPC 内所有 DNS 查询
- S3 Data Events —— S3 桶的读写访问
可选加挂的高级数据源:
- EKS Audit Logs —— Kubernetes API 调用
- Runtime Monitoring —— EC2 / 容器内进程行为(轻量 agent)
它检测什么类型的威胁
GuardDuty 内置 100+ 种探测器,覆盖:
- 凭据滥用 —— 异常区域登录、临时凭据被异地使用、root 账户活动
- 数据外泄 —— 大批量 S3 下载、从不常见地理位置访问数据
- 网络扫描 / 爆破 —— 来自已知恶意 IP 的探测、SSH 暴力破解
- 加密货币挖矿 —— EC2 实例向已知矿池发起连接
- 横向移动 —— EC2 之间异常的 SSH / RDP 流量、容器逃逸尝试
- C2 通信 —— 与已知命令控制服务器的连接
二、我们如何用 GuardDuty
全账户启用
我们 AWS 主账户和所有 region 默认全部开 GuardDuty,包括上面列的高级数据源:EKS 审计和 Runtime Monitoring。
威胁分级与响应
| 严重度 | GuardDuty 评分 | 响应路径 |
|---|---|---|
| High | 7.0 – 8.9 | 立即触发 PagerDuty 值班告警,< 15 分钟人为介入 |
| Medium | 4.0 – 6.9 | 1 小时内安全工程师 review,确认后开 incident |
| Low | 0.1 – 3.9 | 进入每日安全 digest,批量处理 |
自动化处置示例
部分高置信度威胁会自动隔离,不等人介入:
- 已知矿池连接 → 立即从 SG 黑名单该出向 IP
- 异地 root 登录尝试(地理 + 时间双异常)→ 立即冻结该 IAM 用户 + 触发告警
- 容器内执行已知恶意命令 → 立即停止容器、保留快照供取证
自动化处置都有人工 review 路径——出错可以回滚,但 95% 的高置信度告警事实证明确实是攻击。
与 Inspector 的协同
某些威胁是 GuardDuty 和 Inspector 联手发现的:
- GuardDuty 检测到 某 EC2 在向外发包(疑似被入侵)
- Inspector 当前记录 这台 EC2 上有一个未修复的 Critical CVE
- 结论:该 CVE 已被利用,立即隔离 + 取证
这条联合判定大幅提升告警的可操作性——不只是"有动静",而是"有动静 + 入口已知"。
三、这转化为你的什么承诺
1. 异常窗口期可量化
我们对自己基础设施的内部承诺:
- High 级威胁 —— 检测到 < 15 分钟人为响应
- 数据相关事件 —— 即使尚未确认是真实泄露,也在 24 小时内通报受影响账户
- 重大事件 —— 控制台「公告」栏发布脱敏复盘
2. 主动 + 被动双层防御
第三方网关常见的安全姿态是"WAF + DDoS + 偶尔的 pentest"——全被动。我们 Inspector(找漏洞) + GuardDuty(找异常),覆盖 pre/in/post 三个时间点。
3. 不需要相信我们的"内功"
GuardDuty 是 AWS 托管服务,规则库和威胁情报由 AWS 安全团队维护,不依赖我们自己写规则。换句话说:保护你的不是我们的安全水平,而是 AWS 的安全水平——这条更可靠。
常见疑问
GuardDuty 看得到我的请求内容吗?
看不到。GuardDuty 接的 VPC Flow Logs 只有元数据(源/目 IP、端口、字节数、时间戳),不含 payload。CloudTrail 也只是 AWS 控制面 API 调用记录。你的 prompt / response 内容 GuardDuty 完全看不到,也不会进它的分析管道。
误报多吗?
GuardDuty 的官方 false-positive 率 < 1%。我们用了大半年下来,High 级告警里大概 5-10% 是误报(典型场景:合规扫描厂商扫我们,被识别成爆破)。所有 High 告警都有人工 review 步骤,误报会 mute 该规则的具体上下文。
如果发生真实安全事件,多久通报?
< 24 小时确认事件 + 评估范围。若涉及用户数据,会单独邮件 + 控制台公告通知受影响账户。复盘报告(脱敏版)通常在事件解决后 5 个工作日内挂到「公告」栏。
为什么不用 Datadog / Wiz 这类第三方?
我们用 GuardDuty 是因为它和 AWS 同账户体系——数据不离开 AWS 网络。Datadog / Wiz / Sysdig 是好工具,但它们要把日志拷贝到第三方平台,这本身就引入了一个新的攻击面。GuardDuty 的代价是规则不能完全自定义,但综合判断利大于弊。