CyberGlossary

应用安全

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 服务中的路径遍历漏洞。

相关术语