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