代码审查、SAST 与 DAST

security OpenTrojan Threat Intelligence

利用代码审查、静态分析(SAST)和动态测试(DAST)发现并修复软件中的漏洞。

快速解答

将 SAST(源代码模式扫描)、DAST(运行时探测)和对高风险变更的人工代码审查相结合,在多个层面捕获漏洞;任何单一手段都会遗漏其他手段能够发现的问题。

定义

SAST 扫描源代码中的已知漏洞模式,DAST 探测运行中应用的可利用行为,而人工代码审查能够捕获自动化工具遗漏的逻辑缺陷。

它是什么

在漏洞被利用前发现缺陷的三种互补方式:SAST 以静态方式分析源代码中的易受攻击模式;DAST 向运行中的应用发送流量以确认可利用行为;人工审查 对高风险逻辑和数据流进行推理。

为什么重要

每种技术都有盲区:SAST 会产生误报但覆盖面广;DAST 能验证真实可达性但需要实时环境;人工审查则贴合业务风险。分层覆盖的效果经度量优于任何单一工具。

它如何工作

  • SAST:通过解析与数据流分析标记注入、不安全接收点(sink)、弱加密(见 security:cryptography)以及损坏的身份认证模式。
  • DAST:在审查环境中对端点进行模糊测试/扫描,查找 OWASP Top 10 类别问题。
  • 审查:将审查重点放在身份认证/授权、输入解析、反序列化和依赖项上(见 security:authentication-authorization、security:http-sessions-cookies)。

检测

  • 将 SAST/DAST 发现映射到 CWE;优先处理涉及身份认证、对象引用和反序列化路径的问题。
  • 安全审查发现若在生产路由上存在可利用的可达漏洞,则视为高危。

缓解

  • 在每次 PR 上运行 SAST/SCA;合并前运行 DAST;对高风险差异要求人工审查(见 security:devsecops)。
  • 按可达性与可利用性进行分级,而不只是依据工具报告的严重程度。

调查

通过复现可达路径(DAST)、阅读易受攻击的源代码(SAST CWE),并对照 CVE 数据确认受影响版本来验证所报告的发现(guides:tool-cve-guide)。

参考资料

还有后续问题?

向 OpenTrojan 证据驱动的助手询问本主题——回答会引用其来源。

就此向 AI 提问 发起调查