章节摘要:应用是业务逻辑的载体,也是攻击者最终要抵达的地方。本章沿"方法—接口—架构—流水线"四步走:先用安全开发生命周期把安全织进开发方法,再守住 API 这个云时代的承重墙,然后处理无服务器与微服务带来的新信任边界,最后把一切固化为流水线上的自动卡点。读完本章,你应当能为一个云原生应用设计出覆盖全交付流程的安全控制方案。
读完本章,你应当能够:
本章的逻辑主线是"把安全从人搬到流程":方法(SDL)让安全动作有节奏,接口(API)让安全有明确的落点,架构(服务化与函数化)让安全边界重新划分,流水线(CI/CD 卡点)让以上一切自动执行。
金句:应用安全的成熟度,不看写了多少安全代码,看安全动作有多少不需要人记着去做。
四节是"方法—落点—边界—固化"的闭环:SDL 给出安全活动的日历,API 与服务架构指明控制该装在哪,流水线把控制变成不依赖自觉的闸门。5.4 是本章落点,也是全册"可执行"理念在应用域的示范——第二章基线守基础设施,本章卡点守应用交付,两者合起来才是完整的左移。
5.1 方法 5.2 接口 5.3 架构 5.4 固化 ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ 安全有节奏 │ --> │ 控制有落点 │ --> │ 边界重新划 │ --> │ 闸门自动落 │ └────────────┘ └────────────┘ └────────────┘ └────────────┘
前置:第一章威胁底图(应用是攻击变现的最后一跳)、第四章身份与网络(应用身份、服务间通信建立在它们之上)。有开发经验者读来最顺,无编码背景的读者抓住每个控制的"防什么、谁负责"即可。
延伸:流水线卡点产生的告警与拦截记录,是第六章安全监控的重要数据源;软件供应链安全在第八章新兴趋势中还会再登台。考试场景题里,应用域最爱把"正确的控制"藏在时间轴里考——问你在生命周期的哪个点做什么动作,SDL 的节奏感就是答题的坐标系。
问:应用安全与数据安全考的东西是不是重复? 场景互补不重复。数据域问"这份数据该怎么保护",应用域问"代码在处理这份数据时犯了什么错"——同一个泄露事件,数据域的答案是加密与分级没到位,应用域的答案是对象级授权缺失。答题先判断题干问的是"保护方案"还是"代码缺陷",方向对了选项自然分开。
问:SDL 与 CI/CD 卡点是什么关系? SDL 是日历,卡点是其上的自动执行器。需求与设计阶段的安全动作(三问、威胁建模)靠人执行,编码到发布阶段的动作(扫描、审计、检查)由流水线机器执行。两半缺一不可:只有 SDL 没有卡点,规范靠自觉;只有卡点没有 SDL,工具拦不住设计层错误。
易错点:把"漏洞扫描没有发现"当"应用是安全的"。 扫描器只能发现已知模式的技术缺陷,设计缺陷(权限模型不合理、信任边界画错)与逻辑缺陷(业务规则可被滥用)都在扫描盲区里。这也是本册坚持先讲威胁建模(5.1)再讲流水线(5.4)的原因——模型找设计错,工具找代码错,顺序不能反。