# SAST (Static Application Security Testing) ## Definition SAST tools analyze an application's source code to identify security vulnerabilities without executing the code. They excel at spotting common issues such as SQL injection, cross-site scripting, and buffer overflows. ## Aliases - Static Application Security Testing - White-box testing - Static analysis ## Characteristics - **无需运行代码**:在静态状态下分析源代码 - **白盒测试**:能看到代码内部结构 - **开发阶段适用**:在编码和代码审查时使用 - **速度快**:可以快速扫描大量代码 ## Common Vulnerabilities Detected - SQL 注入(SQL Injection) - 跨站脚本(XSS, Cross-Site Scripting) - 缓冲区溢出(Buffer Overflow) - 硬编码凭证(Hardcoded Credentials) - 不安全的加密使用 - 路径遍历(Path Traversal) ## Tools - [[SonarQube]] — 代码质量和安全分析 - Checkmarx - Veracode - Fortify - Semgrep ## Integration SAST 工具通常集成到: - IDE 开发环境 - CI/CD 构建管道 - 代码审查流程 ## Limitations - 可能产生误报(False Positives) - 无法检测运行时问题 - 需要源代码访问权限 - 不检测配置问题 ## Related Concepts - [[DevSecOps]] — SAST 是其重要组件 - [[DAST]] — 动态应用安全测试(黑盒测试) - [[IAST]] — 交互式应用安全测试 - [[SCA]] — 软件组成分析 - [[Shift-Left-Security]] — SAST 是左移策略的重要工具 ## Sources - [[what-is-devsecops-best-practices-benefits-and-tools]]