第三方库:节省开发时间却导致了安全漏洞
发表时间:2023-11-07 16:03:45
文章来源:炫佑科技
浏览次数:154
菏泽炫佑科技
第三方库:节省开发时间却导致了安全漏洞
如今,许多软件长期使用第三方库,这导致了持续的安全问题。在程序开发设计阶段,开发者往往忽略了第三方库代码的漏洞审查,甚至直接使用了部分资源库(),从根本上缺乏安全审计。
如果库文件易受攻击,任何大量使用它的软件程序都将面临安全威胁。
这种场景在现实世界中已经血脉贲张:比如 GNU Bash 中的心脏出血漏洞()、破壳漏洞()、Java 中的反序列化漏洞()都是真实应用中第三方资源库或应用框架漏洞的典型案例。
根据安全研究
分析,97%的Java程序至少存在一个已知的安全漏洞,高级研究总监Tim表示,“这个问题的原因很清楚,而且不仅限于Java程序”。
此外,据预测,到 2020 年,99% 的可利用漏洞仍将为安全专业人员所知至少 1 年,因此建议组织必须尽快修复这些已知漏洞。这些漏洞很容易被忽视,但修复它们比事后修复它们更便宜、更容易。
它成立于 2006 年,提供*快、*全面的开发安全解决方案,以提高内部开发、采购或外包的应用软件和第三方组件的安全性。目前已获得投资4000万美元。
第三方库:节省开发时间导致安全漏洞
据安全专家介绍,有第三方库
出现安全问题的原因主要有两点:一是开发者可能使用了目前一些安全可靠的第三方库代码,但后期才发现漏洞;此外,开发人员使用了第三方库代码,这些代码本身就存在安全风险,而没有在项目中进行仔细验证。
“虽然每个人都认真对待这种安全威胁,但对于大多数程序员来说,开源库和第三方资源是一把双刃剑,可以节省开发时间并引入安全漏洞。”
是
软件管理工具提供商,提供经过仔细审查的开源代码存储库,并致力于跟踪和监控各个开源代码模块,以减少软件开发过程中的错误以及兼容性和安全问题。到目前为止,它已经获得了7000万美元的投资。
在分析了 25,000 个应用程序后,其中 7% 的应用程序由于使用了不安全的组件而至少存在一个安全漏洞。Index
、Index 和 NuGet 等存储库将帮助开发人员发现他们在软件项目中所需的代码和功能,例如,Java 开发人员可以使用这些存储库或其他可视化数据处理模块中的加密处理功能。
根据 Derek Weeks 的说法,现代软件不再是逐字逐句编写的,无论成熟的应用程序多么新颖和独特,80% 的代码都来自第三方存储库或组件。
同时,他强调,企业对信息系统软件的依赖性将持续增加,但构成软件的关键开源仓库大多没有经过安全审计,存在不同层次的安全问题。
例如,第三方
2015 年,提供自己下载的开源和第三方软件组件的存储库下载量为 310 亿次,而 2014 年为 170 亿次。
在对自身资源库进行安全审计后,发现下载的代码库中有近6.1%存在安全漏洞。
Derek Weeks 声称它比其他存储库管理应用程序做得更好,因为它具有代码管理工具、操作指南和相应的警告,以帮助开发人员避免使用有缺陷的代码。
NTT Com首席顾问Breen表示,有缺陷的代码会在开发过程中造成很多问题,即使整个开发团队都有很强的安全感,也避免少数或少数开发人员在严格的验收期内忽视了对软件中使用的第三方代码的安全审查。
Breen强调,如果一个不安全的组件被应用于另一个大型系统的软件程序使用,这种多路复用*终将导致安全问题的“滚雪球效应”。
*典型的例子是2015年的(--3.2.1 .jar)反序列化漏洞。
根据这项研究,在使用 \ 框架和多个其他库代码的旧版本 Java 程序中,仍然存在 1,300 多个漏洞实例。
开发人员在开发过程中选择了 \ 框架,但他们没有意识到它还包括 ,然后该库被用于数以万计的软件开发项目。
它已成为 Java 程序中*常见的组件。
此外,检测到 300,000 个 Java 程序,其中 25% 没有及时修补,并且存在反序列化漏洞。由于使用了易受攻击的库和框架组件,开发人员*头疼的是如何更新和升级这些应用程序。
“就像汽车制造商在数百万辆汽车中使用的有缺陷的汽车安全气囊一样,当出现问题时,人们通常认为汽车制造商而不是安全气囊制造商应该解决问题第三方库:节省开发时间却导致了安全漏洞,”研究负责人说。
第三方库代码漏洞、加密缺陷和注入漏洞
声称漏洞实例只是冰山一角。对大量易受攻击的应用进行了检测和分析,发现第三方代码缺陷导致的信息泄露漏洞占72%,其次是加密漏洞占65%,*后是注入和跨站点漏洞。
这些问题共同说明了各种软件产品对开源组件的依赖性越来越高,例如,联邦政府在选择开发公司时优先考虑其开源战略。
“使用第三方库不仅减少了开发时间,而且从某种意义上说,提高了软件的安全性和质量水平,并允许开发人员更专注于新功能和特性的架构。
如果使用得当,来自第三方库的代码重用对程序员来说是天赐之物。
出于这些原因,安全专家呼吁软件行业考虑代码安全。该公司甚至发起了“软件生成标准”响应,以标准化开发人员在使用开源框架之前和之后的代码安全审查,并使那些使用具有漏洞清单的程序的人更容易进行安全更新。
根据调查,16 个程序组件中至少有 1 个存在漏洞。Weeks认为,问题可能是由于一些开发人员的否认或无知,他们选择了一些不安全的程序组件。
洛根总统说:“如果在托管存储库中发现一些恶意或有缺陷的代码库自动化软件开发,我们会及时通知和警告用户。我们会扫描存储库中的二进制漏洞,但不会对所有托管代码进行安全审查。
第三方存储库平台:我们只负责托管
接受记者采访的几家第三方仓库负责人表示,它们只是一个类似于云存储服务的平台,提供公共或私有内容的存储和共享,并不限制用户托管代码。
这些第三方存储库
领导者认为,避免软件漏洞的主要责任应该在于开发人员,而不是第三方存储库平台。如果你想写出好的、无漏洞的代码,你首先必须从这些安全的存储库中学习。
是一个源代码托管站点,它使用 Git 作为分布式版本控制系统,具有商业计划和免费帐户。其营销经理 Rahul 声称:“家得宝和木匠之间的关系就像木匠对开发人员的关系,我们有各种各样的工具可以让开发人员更容易更好地使用托管代码。
提供一系列代码缺陷检测工具,如依赖链安全审查;此外,它还允许团队软件项目开发和简化的同行评审机制;其次,流水线模式还可以帮助开发人员提高代码质量。
是*大的开源存储库,目前,它托管着 4900 万个公共和私人项目,拥有 1800 万用户。
根据其安全主管 Shawn 的说法,托管代码没有审查或警告,用户可以根据需要使用 、 和 Code 等第三方工具对代码进行动态或静态分析。
“许多托管项目都存在安全隐患,我们只能尽量保持整个存储库的安全,同时让用户知道他们需要什么样的代码审查工具。”从项目的角度来看,安全性不是开发人员的主要责任。
据估计,只有少数用户在使用代码安全审查工具。
其他第三方存储库平台告诉作者,他们故意不干涉,部分原因是他们没有审查代码的技术技能,部分原因是他们认为这不是他们的工作。他们指出,代码中的缺陷是开发人员的所有代码,甚至是一些旧的程序组件。
用自动扫描技术弥补它?
解决开源库安全根本原因的一种方法是在软件开发早期使用自动代码漏洞和配置审查扫描工具。
据估计,到 2019 年,超过 70% 的企业开发活动将集成自动安全审查扫描工具,高于目前的 10%。Node .js
开源基金会建立了 Node .js
项目,致力于推动 Node .js 平台的健康发展,目标是为开发者提供发现和披露 Node .js 系统漏洞的机制。
根据 Node.js 的官方介绍,除了开发者的主动发现外,该项目还包括一些漏洞数据库和不同社区交易所的漏洞审查和披露。
“这与安全专家无关,而是关于我们如何定义软件需求和授权开发,在这种情况下,解决方案的核心是软件开发方面,需要引入一些新的方法论概念,”魏文德说。
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等