应用层攻击:缓冲区溢出、TOC/TOU、后门、提权(Application Attacks)
来源:Chapter 21 · Application Attacks 域:Domain 8 Security and Risk Management(安全与风险管理) 模板:原书定义+对比表 / 真实案例 / 考试怎么考
① 一句话秒懂
糟糕的编码留下”门缝”:输入不校验 → 缓冲区溢出;检查与使用的空档 → 竞态;留后门 → 绕过认证;拿到普通账号 → 提权成管理员。
② 原书核心定义 + 对比表
四类应用攻击:
| 攻击 | 成因 | 后果 |
|---|---|---|
| Buffer Overflow(缓冲区溢出) | 未校验输入长度,写入越界内存 | 崩溃 / 执行攻击者命令 |
| TOC/TOU(检查-使用竞态) | 检查与使用间被替换对象 | 用伪对象骗过程;race condition |
| Backdoor(后门) | 未文档化的命令序列 | 绕过访问控制 |
| Privilege Escalation(提权) | rootkit 等提普通→管理员 | 全面控制 |
缓冲区溢出三必查:① 输入不超缓冲区大小;② 类型合法(字母不进数字变量);③ 不越参数范围。多数靠补丁缓解 → 系统及时更新至关重要。
TOC/TOU 别名:TOCTTOU / race condition;归为”状态攻击(state attacks)”——攻击时序与状态转换。
③ 生活类比(精炼)
缓冲区溢出像小盒子塞进大物件,挤坏隔壁;TOC/TOU 像验完身份证、进门前一瞬被换人(你和门卫的空档被钻);后门像开发商偷偷留的”万能钥匙”;提权像从普通员工卡刷成老板权限。
④ 真实案例
- CGI 快速 Web 开发:用 CGI 等语言赶工,程序员常不做边界检查 → 缓冲区溢出高发,凸显”及时打补丁”价值。
- Siemens 逻辑炸弹(2019):承包商在软件埋逻辑炸弹,定期让系统坏,逼公司回雇他——虽非本小节但说明恶意开发风险;提权/后门同理需防。
⑤ 相关概念梳理 + 对比表
Rootkit:利用已知 OS 漏洞,把普通用户一提成为 root/admin;自由可得。
Fileless malware / 恶意脚本:PowerShell/Bash 脚本自动化提权与 C2 接入,常无文件落地。
防御核心:开发者须对一切用户输入做边界检查;保持补丁更新可挡几乎全部 rootkit。
⑥ 考试怎么考(题干样式 + 常见混淆项)
- 题干:”Attack exploiting gap between check and use of a resource?” → 答 TOC/TOU (race condition)。混淆:不是 buffer overflow。
- 题干:”Undocumented command sequence bypassing access controls?” → 答 Backdoor。混淆:与 logic bomb 不同,backdoor 是访问旁路。
- 题干:”Overflow caused by not validating input length is?” → 答 Buffer overflow。混淆:常需补丁缓解。
- 题干:”Gaining admin from standard account via rootkit is?” → 答 Privilege escalation。
⑦ 自测(改编自原书 Review Questions,附解析)
- 检查资源状态与真正使用之间被攻击者替换对象,称为?
- A. 缓冲区溢出
- B. TOC/TOU 竞态条件
- C. 后门
- D. 提权
- 答案:B。解析:time-of-check to time-of-use,又称 race condition / 状态攻击。
- 未文档化的命令序列可绕过正常访问控制,这是?
- A. 逻辑炸弹
- B. 后门
- C. 蠕虫
- D. rootkit
- 答案:B。解析:backdoor 是隐秘访问旁路;rootkit 是提权工具,非同概念。
- 防范缓冲区溢出的首要开发措施是?
- A. 关闭网络
- B. 对所有用户输入做边界/类型校验
- C. 仅用解释型语言
- D. 删除日志
- 答案:B。解析:开发者须确保输入不超缓冲、类型合法、不越参;多数溢出靠补丁缓解。