AWS 安全三件套:WAF、Shield 与 OWASP Top 10 通俗指南
乔文飞 Lv8

学习 AWS WAF、AWS Shield 和 OWASP Top 10 的过程中整理的笔记,尽量用通俗语言解释每个概念,适合对云安全感兴趣但还没深入了解的开发者。

AWS 安全三件套学习笔记

AWS WAF · OWASP Top 10 · AWS Shield — 通俗易懂版


一、先搞清楚”攻击”是什么

在学防护之前,先理解我们在防什么。

常见攻击类型

攻击名称 通俗解释 危害
DDoS 一万台机器同时刷你的网站,服务器被压垮 网站瘫痪,正常用户无法访问
SQL 注入 在输入框里填恶意代码,骗数据库执行 数据泄露、数据被篡改
XSS 把恶意脚本植入网页,攻击访问者 用户 Cookie 被盗、账号被劫持
供应链攻击 在第三方库或工具中植入恶意代码 大规模感染,难以察觉
暴力破解 用脚本不停尝试密码 账号被入侵

二、AWS Shield — 防洪水

是什么

专门用来抵御 DDoS 攻击的服务。

DDoS 就像餐厅突然涌入一万个假顾客,把座位占满,真实顾客进不来。Shield 的作用就是在门口识别并驱散这些假顾客。

两个版本

Shield Standard(免费)

  • 所有 AWS 用户自动启用,无需配置
  • 防护网络层(L3)和传输层(L4)的常见攻击
    • SYN Flood:伪造大量连接请求耗尽服务器资源
    • UDP Flood:发送大量无效数据包占满带宽
    • 反射攻击:利用第三方服务器放大攻击流量
  • 覆盖 CloudFront 和 Route 53

Shield Advanced(付费,约 $3000/月)

  • 在 Standard 基础上增加:
    • L7 应用层防护(HTTP Flood、CC 攻击)
    • 实时攻击可视化,看到攻击正在发生
    • 24/7 SRT 专家团队支持,攻击时可以联系 AWS 专家
    • 费用保护:DDoS 导致账单飙升可申请抵免
    • WAF 免费集成

防护的资源

资源 Standard Advanced
CloudFront
Route 53
ALB / NLB
EC2 弹性 IP
Global Accelerator

防护层次图

1
2
3
L7 应用层  ──  HTTP Flood、CC 攻击        ← Shield Advanced + WAF
L4 传输层 ── SYN Flood、TCP 耗尽 ← Shield Standard & Advanced
L3 网络层 ── UDP Flood、IP 碎片攻击 ← Shield Standard & Advanced

什么时候用 Advanced

  • 业务对可用性要求极高(金融、电商、游戏)
  • 担心 DDoS 攻击导致 AWS 账单暴涨
  • 需要专家实时介入处理攻击

三、AWS WAF — 防坏请求

是什么

WAF = Web Application Firewall,Web 应用防火墙。

如果说 Shield 防的是”请求的量”(洪水),WAF 防的是”请求的质”(坏人混进来)。

WAF 就像一个检查员,每个请求进来都要过一遍:这个请求正常吗?有没有夹带恶意内容?

核心概念

1
2
3
4
5
Web ACL(访问控制列表)
└── 规则组(Rule Group)
└── 规则(Rule)
├── 匹配条件(什么样的请求?)
└── 动作(怎么处理?)

动作类型:

  • Allow — 放行
  • Block — 拦截,返回 403
  • Count — 只计数,不拦截(用于观察阶段)
  • CAPTCHA — 弹出验证码

💡 建议:新规则先用 Count 模式跑一段时间,确认不会误伤正常用户,再切换到 Block。

可以挂在哪里

  • CloudFront(推荐,离用户最近)
  • Application Load Balancer(ALB)
  • API Gateway
  • AWS AppSync

AWS 托管规则集(开箱即用)

不用自己写规则,AWS 提供现成的规则集:

规则集名称 防护内容
AWSManagedRulesCommonRuleSet 通用 Web 攻击(必开)
AWSManagedRulesSQLiRuleSet SQL 注入攻击
AWSManagedRulesKnownBadInputsRuleSet 已知恶意输入模式
AWSManagedRulesBotControlRuleSet 爬虫和机器人
AWSManagedRulesAmazonIpReputationList 已知恶意 IP
AWSManagedRulesAnonymousIpList 匿名代理、VPN、Tor

常用自定义规则

速率限制(防暴力破解)

1
2
条件:同一个 IP,5 分钟内请求超过 100 次
动作:Block

IP 白名单(只允许指定 IP 访问)

1
2
条件:源 IP 不在白名单列表中
动作:Block

地理位置限制

1
2
条件:请求来自某些国家
动作:Block

注意:WAF 有容量限制

每个 Web ACL 默认上限是 1500 WCU(Web ACL Capacity Units),每个规则有自己的 WCU 消耗,规则越复杂消耗越高。


四、OWASP Top 10 — 最危险的 10 类漏洞

是什么

OWASP(开放全球应用安全项目)是一个非营利安全社区,每隔几年发布一次 Top 10 Web 安全风险榜单,汇总全球真实漏洞数据,相当于安全界的”年度通缉令”。

这份榜单已成为行业标准,很多企业的安全合规要求直接引用它。

版本说明

版本 状态
OWASP Top 10 2025 ✅ 当前最新版
OWASP Top 10 2021 上一版,仍广泛引用
OWASP Top 10 2017 已过时

2021 vs 2025 排名对比

排名 2021 版 2025 版
A01 访问控制失效 访问控制失效(不变)
A02 加密失败 安全配置错误(上升 ↑)
A03 注入攻击 软件供应链失败(新晋 🆕)
A04 不安全设计 加密失败(下降 ↓)
A05 安全配置错误 注入攻击(下降 ↓)
A06 易受攻击的过时组件 不安全设计(下降 ↓)
A07 身份认证失败 身份认证失败(不变)
A08 软件和数据完整性失败 软件和数据完整性失败(不变)
A09 安全日志与监控失败 安全日志与告警失败(不变)
A10 SSRF 异常条件处理不当(新晋 🆕,SSRF 并入 A01)

2025 版 Top 10 详解


A01 — 访问控制失效 ⚠️ 连续两版排名第一

是什么: 用户能访问他不应该访问的功能或数据。2025 版还将 SSRF 并入此类。

两种常见形式:

  • 垂直越权:普通用户访问到管理员功能
  • 水平越权:用户 A 能看到用户 B 的订单

真实案例: 把 URL 里的 user_id=123 改成 user_id=124,就看到了别人的数据。

SSRF(现归入此类): 攻击者骗服务器访问内部地址。在 AWS 上可通过 SSRF 访问 EC2 元数据接口(169.254.169.254),窃取 IAM 临时凭证。

防护方法:

  • 服务器端严格校验权限(不能只靠前端隐藏按钮)
  • IAM 最小权限原则
  • AWS 上强制启用 IMDSv2,防止 SSRF 获取元数据
  • JWT Token 中嵌入用户身份,后端每次验证

A02 — 安全配置错误(从 A05 升至 A02)

是什么: 服务配置不当,留下漏洞。2025 版排名大幅上升,反映云环境下配置错误越来越普遍。

常见错误:

  • S3 存储桶设置为公开可读
  • 生产环境开着调试模式,报错信息暴露代码细节
  • 云服务使用默认账号密码没修改
  • 开了很多不需要的端口和服务

防护方法:

  • AWS Security Hub 自动检测配置问题
  • AWS Config Rules 持续监控资源配置
  • 定期做安全审计

A03 — 软件供应链失败 🆕(2025 新晋,直接进入第三)

是什么: 你依赖的第三方代码、工具、库被篡改或含有漏洞,导致你的系统也被攻击。这是 2025 版最大的变化,社区投票中有 50% 的人把它列为第一。

真实案例:

  • SolarWinds(2019):供应商软件更新被植入后门,约 18000 家机构受影响,包括美国多个政府部门
  • Log4Shell(2021):Java 日志库 Log4j 漏洞,攻击者发送一条特殊日志即可远程执行代码
  • Bybit 被盗(2025):通过供应链攻击盗走 15 亿美元加密货币

防护方法:

  • 维护 SBOM(软件物料清单),追踪所有直接和间接依赖
  • 只从官方可信来源获取组件,优先使用签名包
  • 使用 AWS Inspector 扫描漏洞,ECR 开启镜像扫描
  • CI/CD 流水线加强访问控制,做到职责分离(写代码的人不能直接推送到生产)
  • 使用分阶段发布(金丝雀发布),避免供应商被入侵时全量受影响

A04 — 加密失败(从 A02 降至 A04)

是什么: 敏感数据没有加密,或者用了弱加密。

常见错误:

  • 数据库里存明文密码
  • 用 MD5 / SHA1 哈希密码(已被破解)
  • 接口用 HTTP 而不是 HTTPS 传输

防护方法:

  • 密码用 bcrypt 哈希存储
  • 全站强制 HTTPS
  • AWS 上用 KMS 加密敏感数据,S3 / RDS 开启静态加密

A05 — 注入攻击(从 A03 降至 A05)

是什么: 攻击者把恶意代码混进输入,骗程序执行。

SQL 注入例子:

1
2
3
4
5
6
-- 正常查询
SELECT * FROM users WHERE name = '张三'

-- 攻击者输入:张三' OR '1'='1
SELECT * FROM users WHERE name = '张三' OR '1'='1'
-- 结果:返回所有用户数据!

防护方法:

  • 使用参数化查询(Prepared Statement),永远不拼接 SQL 字符串
  • AWS WAF 开启 SQLi 规则集
  • 输入内容严格校验和过滤

A06 — 不安全设计(从 A04 降至 A06)

是什么: 系统设计阶段就有安全缺陷,不是代码写错了,而是根本没考虑安全。

例子: 密码找回功能用”密保问题”,问题太简单,攻击者猜得出来。

防护方法:

  • 设计阶段做威胁建模(想清楚攻击者会怎么利用你的系统)
  • 遵循最小攻击面原则

A07 — 身份认证失败(位置不变)

是什么: 登录和会话管理有漏洞,导致账号被入侵。

常见问题:

  • 允许弱密码(123456)
  • 没有 MFA(多因素认证)
  • 登录失败次数不限制,可以无限暴力破解
  • Session Token 不过期

防护方法:

  • 强制强密码 + MFA
  • AWS Cognito 内置登录保护
  • WAF 速率限制防暴力破解
  • Secrets Manager 管理密钥,定期自动轮换

A08 — 软件和数据完整性失败(位置不变)

是什么: 代码或数据在传输/更新过程中被篡改,但没有验证。

常见场景:

  • 从不可信的 CDN 加载第三方脚本
  • CI/CD 流水线没有校验构建产物的完整性
  • 不安全的反序列化(接收外部数据直接反序列化执行)

防护方法:

  • 使用 AWS CodeArtifact 私有包仓库
  • 对关键软件包验证签名
  • 维护 SBOM(软件物料清单)

A09 — 安全日志与告警失败(位置不变)

是什么: 没有足够的日志,攻击发生了都不知道,事后也无法溯源。

后果: 攻击者可能已经潜伏数月,你毫无察觉。

防护方法:

  • AWS CloudTrail:记录所有 API 操作(谁、什么时间、做了什么)
  • CloudWatch:设置异常告警
  • AWS GuardDuty:机器学习自动检测威胁行为
  • AWS Security Lake:集中存储和分析安全日志

A10 — 异常条件处理不当 🆕(2025 新晋,替换 SSRF)

是什么: 程序遇到异常情况时处理不当,导致崩溃、泄露信息或出现安全漏洞。

常见问题:

  • 报错信息把数据库结构、堆栈信息直接返回给用户
  • 异常发生时”失败开放”(fail open):本应拒绝的操作,因为出错而意外放行
  • 未捕获的异常导致程序进入未知状态,被攻击者利用

真实例子: 登录接口报错时返回 User not found in database: users_v2 table,攻击者由此得知数据库表名。

防护方法:

  • 对用户只显示通用错误信息,详细错误只写进日志
  • 每个可能出错的地方都要有明确的错误处理逻辑
  • 异常时”失败关闭”(fail closed):不确定的情况下默认拒绝
  • 设置全局异常处理兜底,防止漏网之鱼

五、三者关系总结

1
2
3
4
5
6
7
你的应用

├─ 遭受大流量攻击(DDoS) → AWS Shield 来防

├─ 请求内容有恶意(注入/XSS等) → AWS WAF 来挡

└─ 应用本身有漏洞 → 参考 OWASP Top 10 来修
AWS Shield AWS WAF OWASP Top 10
性质 AWS 服务 AWS 服务 安全标准/指南
防什么 DDoS 大流量攻击 恶意 HTTP 请求内容 应用层漏洞
在哪里生效 网络边缘 HTTP 请求检查 代码和架构层面
需要写代码吗 不需要 配置规则即可 需要开发时注意

六、快速上手建议

基础配置(适合大多数项目)

  1. Shield Standard — 已自动开启,不用管
  2. WAF 挂到 API Gateway 或 CloudFront,开启这两个托管规则集:
    • AWSManagedRulesCommonRuleSet
    • AWSManagedRulesSQLiRuleSet
  3. CloudTrail 开启,保留操作日志
  4. 开发时 对照 OWASP Top 10 2025 检查自己的代码

进阶配置(高安全要求项目)

  • WAF 加速率限制规则,防暴力破解
  • 如果后端 API 在 Cloudflare 之后,设置 IP 白名单只允许 Cloudflare IP 段访问
  • 强制启用 IMDSv2,防止 SSRF 窃取 EC2 元数据凭证
  • 开启 GuardDuty 自动威胁检测
  • 维护 SBOM,定期扫描依赖漏洞(对应 OWASP A03)
  • 考虑 Shield Advanced(业务可用性要求极高时)

基于 OWASP Top 10:2025 整理,参考官方文档:https://owasp.org/Top10/2025/

  • 本文标题:AWS 安全三件套:WAF、Shield 与 OWASP Top 10 通俗指南
  • 本文作者:乔文飞
  • 创建时间:2026-05-26 08:00:00
  • 本文链接:http://www.feidom.com/2026/05/26/aws-waf-shield-owasp-top10/
  • 版权声明:本博客所有文章为作者学习笔记,有转载其他前端大佬的文章。转载时请注明出处。