不安全的 API 或库

OWASP 类别: MASVS-CODE:代码质量

概览

使用不安全的 API 或库会大大降低应用程序的安全性。这些依赖项中的任何一个的安全漏洞都可能使攻击者利用多种途径实施各种攻击,例如中间人 (MitM) 攻击和远程代码执行 (RCE)。

当开发人员未将安全评估和漏洞测试集成到软件开发生命周期 (SDLC) 中,或在某些情况下未为应用程序依赖项实施自动更新策略时,就会出现实施不安全依赖项的威胁。

依赖项利用通常从分析应用程序二进制文件 (.apk) 开始,以搜索存在漏洞的库。此时,会执行开源情报 (OSINT) 以挖掘先前发现的可能可利用的漏洞。然后,攻击者可以利用公开披露的漏洞信息(例如常见漏洞和披露 (CVE))来执行进一步的攻击。

影响

成功利用不安全的依赖项会导致各种攻击,例如远程代码执行 (RCE)、SQL 注入 (SQLi) 或跨站点脚本攻击 (XSS)。因此,总体影响直接与第三方软件引入的漏洞类型以及攻击者可以利用的漏洞类型相关。成功利用存在漏洞的依赖项可能导致数据泄露或服务不可用,这可能会对声誉和经济营业额造成重大影响。

缓解措施

纵深防御

请注意,下面列出的缓解措施必须结合使用才能确保更强大的安全态势并减少应用程序的攻击面。应始终根据具体情况评估确切的方法。

依赖项漏洞评估

在开发生命周期的开始实施依赖项验证,以检测第三方代码中的漏洞。此阶段会在生产环境中推出之前测试非内部构建的代码是否安全。可以通过在软件开发生命周期中实施静态应用程序安全测试 (SAST) 和动态应用程序安全测试 (DAST) 工具来补充验证,从而提高应用程序的安全性。

持续更新依赖项

始终注意持续更新代码中嵌入的任何依赖项。为此,建议实施自动更新,以便在第三方组件发布新的安全补丁时将其推送到生产环境。

执行应用程序渗透测试

定期进行渗透测试。这类测试旨在发现可能影响专有代码和/或第三方依赖项的任何已知漏洞。此外,安全评估通常会发现未知漏洞(0 天漏洞)。渗透测试对开发人员很有帮助,因为它们可以为他们提供应用程序当前安全状况的快照,并帮助他们优先处理必须解决的可利用安全问题。

资源