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