1. Bandit(Python)、Brakeman(Ruby)、gosec(Go)的多语言 SAST
请说明 Bandit(Python)、Brakeman(Ruby)、gosec(Go)等语言级 SAST 工具的特点,以及多语言环境下如何组织 SAST 扫描?
- 各语言对应 SAST 工具的定位
- 语言级工具与通用工具的区别
- 多语言仓库的 SAST 编排
Bandit 是 Python 的 SAST 工具,聚焦于常见安全模式(如 eval、subprocess、pickle、危险函数调用);Brakeman 针对 Ruby/Rails,专门检测 Rails 常见的注入、XSS、CSRF、不安全配置等;gosec 针对 Go,检测命令注入、内存安全、明文传输等。它们都是"语言原生"的规则化扫描器,能针对该语言生态的框架陷阱给出精准提示。多语言单仓库中,应在 CI pipeline 内按语言分别驱动对应工具,把结果统一聚合到 SARIF 等格式。
语言级工具深入框架语义,误报通常低于通用工具;但覆盖面受限于该语言。多语言工程应"语言工具 + 通用工具"组合,按语言分派扫描任务。