OWASP 类别: MASVS-CODE:代码质量
概述
使用不安全的 API 或库会显著降低应用的安全性。这些依赖项中的任何一个出现安全漏洞,都可能使攻击者利用多种途径进行各种攻击,例如中间人 (MitM) 攻击和远程代码执行 (RCE)。
当开发人员未将安全评估和漏洞测试集成到软件开发生命周期 (SDLC) 中,或在某些情况下未为应用依赖项实施自动更新策略时,就会产生实施不安全依赖项的威胁。
依赖项漏洞利用通常从分析应用二进制文件 (.apk) 以搜索易受攻击的库开始。此时,会执行开放源代码情报 (OSINT) 以发掘以前发现的可能可利用的漏洞。然后,攻击者可以利用公开披露的漏洞信息(例如常见漏洞和披露 (CVE))来执行进一步的攻击。
影响
成功利用不安全的依赖项可能导致各种攻击,例如远程代码执行 (RCE)、SQL 注入 (SQLi) 或跨站点脚本 (XSS)。因此,总体影响与第三方软件引入的漏洞类型以及攻击者可以利用的漏洞类型直接相关。成功利用易受攻击的依赖项可能导致的后果包括数据泄露或服务不可用,这可能对声誉和经济周转造成重大影响。
缓解措施
纵深防御
请注意,以下列出的缓解措施必须组合使用才能确保更强的安全态势并减少应用的攻击面。应始终根据具体情况评估确切的方法。
依赖项漏洞评估
在开发生命周期的开始实施依赖项验证,以检测第三方代码中的漏洞。此阶段会测试在生产环境中推出之前,非内部构建的代码是否安全。可以通过在软件开发生命周期中实施静态应用安全测试 (SAST) 和动态应用安全测试 (DAST) 工具来补充验证,从而提高应用的安全态势。
持续更新依赖项
始终注意持续更新代码中嵌入的任何依赖项。为此,建议实施自动更新,以便在第三方组件发布新的安全补丁时将其推送到生产环境。
执行应用渗透测试
定期进行渗透测试。这些类型的测试旨在发现可能影响专有代码和/或第三方依赖项的任何已知漏洞。此外,安全评估通常会发现未知漏洞 (0 天漏洞)。渗透测试对开发人员很有帮助,因为它们可以为开发人员提供应用当前安全态势的快照,并帮助他们优先处理必须解决的可利用安全问题。