应用安全
安全左移(Shift-Left Security)
别称: Shift left, 前置安全测试
定义
把安全活动前移至软件生命周期的早期阶段,使漏洞在进入生产前就被发现并修复的实践。
安全左移基于这样一个事实:缺陷(包括安全缺陷)越靠近引入点修复,代价就越低。具体做法包括:在设计评审中引入威胁建模,在 IDE 与每个 Pull Request 中运行 SAST 和 SCA,在 IaC 应用之前进行扫描,以及在构建期校验依赖和容器镜像。它是对运行时防御的补充而非替代,目的在于减少最终需要由运行时防御处理的问题数量和严重程度。要做好安全左移,需要快速准确的工具、良好的开发体验以及明确的责任归属,否则安全反馈会沦为噪音。
示例
- 为开发者配置 Semgrep 的 pre-commit 钩子,在推送之前看到扫描结果。
- 在 CI 中对 Terraform 运行 Checkov,阻止不安全的云配置。
相关术语
DevSecOps
一种将安全责任融入 DevOps 流程的文化与实践,使团队能够持续、高效地交付安全的软件。
安全软件开发生命周期(SSDLC)
将安全活动嵌入软件交付各阶段(需求、设计、编码、测试、发布与运维)的开发生命周期。
SAST(静态应用安全测试)
在不执行代码的前提下,对源代码、字节码或二进制进行自动化分析,以发现注入、不安全 API 或弱加密等安全缺陷。
SCA(软件成分分析)
对应用使用的开源与第三方组件进行自动化分析,识别已知漏洞、许可证风险以及过时或高风险依赖。
威胁建模
一种结构化分析方法,识别系统的资产、威胁、漏洞与缓解措施,从而在设计阶段构建安全,而不是事后弥补。
Secure Coding
Secure Coding — definition coming soon.