应用安全
SAST(静态应用安全测试)
别称: 静态分析, 白盒测试
定义
在不执行代码的前提下,对源代码、字节码或二进制进行自动化分析,以发现注入、不安全 API 或弱加密等安全缺陷。
SAST 工具将代码解析为中间表示(AST、控制流图、数据流图等),并通过规则或污点分析检测与 CWE 对应的不安全模式。由于不执行代码,SAST 可以自然地集成到 IDE、pre-commit 钩子和 CI/CD 流水线中,甚至能够分析尚未发布的代码。SAST 擅长发现确定性缺陷(SQL 注入、XSS 汇点、硬编码密钥、弱加密),但容易产生误报且难以发现仅在运行时显现的问题,因此通常与 SCA 和 DAST 搭配使用。常见工具包括 Semgrep、GitHub CodeQL、SonarQube、Checkmarx 与 Fortify。
示例
- 在每个 Pull Request 上使用 Semgrep 配合 OWASP Top 10 规则集进行扫描。
- 使用 GitHub CodeQL 在合并前检测某 Java 服务中的路径遍历漏洞。
相关术语
DAST(动态应用安全测试)
对运行中的应用进行黑盒安全测试,通过网络发送请求并观察响应,以发现仅在运行时才暴露的注入、认证缺陷与配置问题。
IAST(交互式应用安全测试)
通过在应用内部植入探针,在测试或流量驱动下实时观察代码执行,从而进行安全测试的方法。
SCA(软件成分分析)
对应用使用的开源与第三方组件进行自动化分析,识别已知漏洞、许可证风险以及过时或高风险依赖。
Secure Coding
Secure Coding — definition coming soon.
DevSecOps
一种将安全责任融入 DevOps 流程的文化与实践,使团队能够持续、高效地交付安全的软件。
OWASP Top 10
OWASP Top 10 — definition coming soon.