2023年《软件漏洞快照》报告 三年来10类最常见的Web和软件应用漏洞分析 CyRC 本报告由新思科技安全测试服务部与新思科技网络安全研究中心(CyRC)联合编制 |2 漏洞概述7 安全问题详解9 易受攻击的第三方库的危险14 启发和建议15 synopsys.com 目录 概述1 这些测试中发现的安全问题1 高危和超危漏洞2 定义漏洞的严重级别3 新思科技安全测试服务概述3 新思科技安全测试详解5 渗透测试5 DAST6 MAST6 概述 在编写该《软件漏洞快照》报告时,新思CyRC的研究人员和新思安全测试服务部的顾问使用了三年来对商业软件系统和应用进行测试的匿名数据。 新思科技测试发现了仍对Web和软件应用安全造成重大威胁的已知漏洞,尤其是以下几类最常见的漏洞: •信息披露/泄露和隐私 •配置错误 •传输层保护不足 这些测试凸显出易受攻击的第三方库带来的持续危险,以及软件开发环境对强大的软件供应链安全的需求—在软件开发中,超过90%的软件包含开源代码。下面的数据还显示了将应用安全测试扩展到基本静态分析之外的价值。 如果您是软件安全项目的负责人,那么,深入了解软件风险可以帮助您制定更有效的安全改进策略。如果您是从战术的角度考虑安全问题,则可以使用本报告中的信息来展示需要通过第三方协助以扩展安全测试的业务案例。 测试中发现的安全问题 在2020年,97%的测试发现了漏洞。到2021年,这一比例降至95%,而2022年进一步降至83%。我们收集的三年数据显示,92%的测试在目标应用中发现了漏洞。 总体漏洞的持续减少是一个令人鼓舞的迹象,说明开发团队在编写无误代码方面取得了进步,而且诸如代码审查、自动测试和持续集成等实践也有助于减少常见的编程错误。 此外,编程语言和集成开发环境(IDE)的发展也为开发者提供了一些内置的检查和工具,可以帮助他们及时发现并修复错误,避免造成严重问题。对于一些受欢迎的开源项目,许多社区也加强了代码审查,提高了代码质量标准。 然而,对于一些不太受关注或者已经过时的开源项目,就没有这么幸运了。据一些报告显示,在2022年维护的Java和JavaScript开源项目中,有近20%的项目已经停止了维护,使得这些项目面临漏洞以及被利用的风险。 发现漏洞的测试占比 97%95% 83% 202020212022 synopsys.com|1 高危和超危漏洞 在这三年中,27%的测试发现了高危漏洞,6.2%的测试发现了超危漏洞。其中,跨站脚本(XSS)在新思科技的多年测试中一直都是最常见的高危漏洞之一。同样,2020到2022年间,SQL注入一直位列最常见的超危漏洞之首。 按年份细分,我们发现在2022年的测试中,高危漏洞相比2021年略有增加(25%vs.20%),相比2020年略有减少(25%vs.30%),但超危漏洞(6.7%)均高于2021年(4.5%)和2020年(6.1%)。 许多中危、高危和超危漏洞都需要多层测试才能被发现。 这些数字反映出,高危和超危漏洞过去几年一直都在增加,并在2022年达到了历史最高水平。在2022年报告的CVE中,约有80%属于中危或高危漏洞,有16%属于超危漏洞。虽然开发团队的努力使总体漏洞数量减少,但数据表明,许多中危、高危和超危漏洞都需要更强有力的测试才能被发现,如渗透测试。 超危 28% 54% 77% 高危 38% 46% 63% 中危 60% 64% 72% 202220212020 2020至危20漏2洞2年的间占,比高危和超 25% 高危漏洞 20% 30% 2022 2021 2020 超危漏洞 6.7%4.5%6.1% 图1.与原始测试相比,后续重复测试中发现的漏洞的减少情况(百分比) 图1说明了动态测试,比如一些类型的渗透测试和动态应用安全测试(DAST),是对静态应用安全测试(SAST)的有效补充。通过对一些重新测试进行抽样检查(即对安装了特定修复包的软件进行快速验证),我们发现在这三年期间,客户的超危、高危和中危漏洞都在逐年减少。例如,2022年检测到的中危漏洞减少了60%,高危和超高危漏洞分别减少了38%和28%。 2022 2021 2020 synopsys.com|2 定义漏洞的严重级别 漏洞的严重级别根据CVSSv3标准评定,反映了漏洞对网络安全构成的风险。超危漏洞的CVSS分数在9.0到10.0之间,而且有已经公开或正在被攻击者使用的漏洞或存在安全缺陷的代码,例如命令、代码和SQL注入漏洞。 本次研究涉及的行业 软集件成和相联关网服、务系、计统 高危漏洞的CVSS分数在7.0到8.9之间,通常比超危漏洞更难被利用。但是,考虑到存在此类漏洞的应用/系统的业务关键性和威胁环境等因素,高危漏洞也需要及时检查和修复。 随着越来越多的攻击者开始使用自动化漏洞利用工具,可以在几秒钟内攻击数千个系统,尤其是考虑到超过一半的漏洞在披露后一周内即被利用,因此,高危和超危漏洞必须在发现后及时修复。 应用中的安全或漏洞问题不仅会影响组织机构本身(或其客户)的业务运营,而且还会影响整个软件开发生命周期乃至整条软件供应链。 事实上,新思科技《2023年全球DevSecOps现状调查》报告指出,超过80%的受访者表示,解决严重的安全/漏洞问题已对其组织的2022-2023软件交付计划产生了影响。 新思科技安全测试服务概述 开发团队必须以训前练所有未素有的的技速术度人构员建严越重来不越足复。杂的软件,但 虽然属于不同的行业和组织,但新思科技安全测试服务部的所有客户都有一个共同需求—扩大测试 31% 29% 12% 8% 4% 6% 算机和电子 金融服务和保险 商业服务 制批发造和、运分输销和储存、 医疗保健 其他* 的覆盖范围。他们要求开发团队以前所未有的速度构建越来越复杂的软件,但却面临训练有素的技术人员严重不足的问题,尤其是在软件安全方面。 *包括旅游和休闲、教育、公用事业行业和公共部门。 本报告所涉及行业的三年平均值(2020至2022年) synopsys.com|3 新思科技在一份关于影响软件安全的策略、工具和实践的报告中指出,在1,000名受访者中,超过33%的受访者表示,安全培训不足是主要障碍,紧随其后的是安全人员短缺(31%)。这33%的受访者还表示,外部顾问正在帮助其组织进行安全测试。 委托第三方安全测试人员,从客观的角度评估组织机构的安全状况,这是非常有益的。事实上,《软件安全构建成熟度模型(BSIMM)报告》指出,在参与BSIMM项目的组织中,有超过88%聘请外部渗透测试人员来增强其安全活动,以帮助他们发现内部测试可能遗漏的问题,找出安全实践中的薄弱点。 即使您认为贵组织的安全测试覆盖范围足够,可能也需要对内部测试进行验证,确保内部安全控制是有效的。或者,您可能需要根据法规、客户或其他强制性要求而必须开展第三方评估。例如,PCIDSS4.0第11项对定期开展渗透测试提出了明确要求。需要进行正式审计的商户和所有服务提供商都必须满足这项要求。 《健康保险可携带性与责任法案》(HIPAA)要求医疗从业者采取技术措施保护电子健康信息的机密性和安全性。虽然HIPAA没有明确规定必须进行渗透测试或漏洞扫描,但明确规定相关组织机构必须开展风险分析,这就意味着这些组织机构必须对其安全控制措施进行测试。 HIPAA在“评估”部分特别提到了“定期技术和非技术评估”的方法。在其HIPAA指南中,美国国家标准与技术研究院(NIST)建议在合理和适当的情况下,应通过联合开展外部和/或内部渗透测试来满足这些技术评估要求。 在金融服务领域,金融业监管局(FINRA)为金融机构制定了网络安全规则,并建议定期以及在重大事件发生后开展渗透测试,例如,在公司的基础设施或访问控制机制发生重大变化之后。《格雷姆-里奇-比利利法案》(GLBA)明确要求金融机构自2022年起(最晚到2023年6月)每年开展渗透测试和漏洞扫描,作为其安全活动的一部分。 新思科技报告显示 超过33% 在出1,,0安00全名培受训访不者足中是,的主受要访障者碍指 超过31% 的受访者比指较出严,重缺的乏问安题全人员是 synopsys.com|4 新思科技安全测试详解 新思科技测试是模拟真实世界的攻击者对运行中的应用进行探测,包括“黑盒”和“灰盒”测试,其目的是找出漏洞,然后根据需要进行分类和修复。黑盒测试从局外人的角度评估测试目标的安全状况,灰盒测试则是模拟有凭证的认证用户—本质上是在黑盒测试的基础上增加更深入的洞察。这些测试主要针对Web(82%)和移动(13%)系统/应用,也涵盖少量的网络(3.0%)和源代码(2.0%)系统/应用。 渗透测试 66%的测试是渗透测试—对计算机系统进行授权的模拟攻击,以评估其安全性。渗透测试人员使用与攻击者相同的工具、技术和过程来探索和展示系统中弱点对业务的影响。渗透测试检查系统是否足够强大,能否抵御来自不同位置(认证和非认证)以及各种系统角色的攻击。 外部渗透测试通常是为了满足行业法规和标准,还能带来一些额外的好处,例如客观评估贵组织的安全状况,以及准确模拟外部攻击者可能利用的潜在威胁和漏洞等。 全面的渗透测试方法对于优化风险管理至关重要。新思科技的渗透测试可能覆盖以下目标: •Web应用。测试人员检查安全控制的有效性,寻找隐藏的漏洞、攻击模式,以及可能导致Web应用被攻破的任何其他安全缺口。 –移动应用/设备。测试人员采用自动测试和手动测试相结合的方式,在移动设备上运行的应用二进制文件和相应的服务器端功能中寻找漏洞。服务器端的漏洞可能包括会话管理、加密问题、身份验证和授权问题,以及其他常见的Web服务漏洞。应用二进制文件中的漏洞可能包括身份验证和授权问题、客户端信任问题、安全控制配置错误和跨平台开发框架问题。 –网络。这类测试旨在发现外部网络和系统中的重大安全漏洞。测试人员根据测试用例清单中的内容,对加密的传输协议、SSL证书范围和管理服务的使用等进行测试。在这三年开展的所有渗透测试中,有2.7%是网络安全渗透测试。 –API。测试人员结合使用自动和手动测试技术,对OWASPAPISecurityTop10清单中的十大严重问题进行测试,包括对象级授权失效、用户认证失效、数据暴露过度和缺乏资源/速率限制等。 过去三年开展的测试类型 66% 渗透测试 15%DAST 13%MAST synopsys.com|5 专业渗透测试人员像对手一样思考和行动,为渗透测试引入了必要的人为因素,可以通过分析数据来确定攻击目标、测试系统和网站,这些都是按脚本执行测试的自动测试解决方案无法做到的。此外,有些漏洞是无法通过自动测试工具轻松检测到的,需要人工审查才能被发现。例如,手动测试是检测不安全直接对象引用(IDOR,允许攻击者访问未授权数据的问题)的唯一有效方法。 DAST 动态应用安全测试(DAST)占到三年中开展的测试总数的15%。DAST是一种应用安全(AppSec)测试方法,测试人员对运行中的应用进行检查,但不了解应用在系统级别的内部交互或设计,也没有访问或查看源程序的权限或能力。这种黑盒测试从外到内观察应用,检查其运行状态,并观察其对测试工具发起的模拟攻击的响应,据此来判断应用程序是否存在漏洞,以及是否有可能遭受真正的恶意攻击。 DAST旨在发现意料之外的结果或输出,以防其被攻击者用来攻破应用。由于DAST工具没有关于应用或源代码的内部信息,因此只能像外部黑客一样发动攻击—使用同样有限的应用相关知识和信息。 DAST解决方案可以发现难以通过其他安全测试检测到的运行时漏洞,例如身份验证和服务器配置错误、代码注入、SQL注入和跨站脚本错误。 正如本报告前面提到的那样,有时候,全面了解软件安全状况必须借助人工审查。新思科技的DAST评估含手动测试,以发现开箱即用工具通常无法发现的漏洞,