NuGet是Microsoft支持的 .NET平台机制,用作包管理器,旨在使开发人员能够共享可重用代码。通过NuGet可以很容易的访问到其他开发者发布的软件包,也可以创建、分享或者发布自己的包到NuGet。微软的EntityFramework、ASP.NET MVC等或者一些常用到的第三方软件包:Json.NET、NUnit等都托管到NuGet上。该框架维护着一个包含超过264,000个独特包的中央存储库,这些包被下载超过1090亿次。
鉴于针对软件供应链的网络事件越来越多,迫切需要评估此类第三方模块的任何安全风险并最大程度地减少攻击面。尤其在在开发期间产生的漏洞,60-70%的安全漏洞类型是可以通过源代码静态分析技术检测出来。因此建议企业开发人员在软件开发初期合理利用静态代码安全检测工具结合SCA等工具,对引入自己编写的代码和引入代码进行安全检测,避免无意中将安全漏洞引入软件系统。
第三方软件库实现了开发人员敏捷开发,但存在的安全隐患也是一大问题。近日,安全研究人员通过对托管在NuGet存储库上的现成软件包的分析表明,有51个独特的软件组件容易受到积极利用的高严重性漏洞的攻击,这也再次强调对第三方软件库使用对软件开发构成的威胁。
网络安全研究人员称,在研究中所有确定的预编译软件组件都是7Zip、WinSCP和PuTTYgen的不同版本,这些程序提供复杂的压缩和网络功能,它们会不断更新以改进其功能并解决已知的安全漏洞。但有时会发生其他软件包更新但仍继续使用几年前包含已知漏洞的依赖项情况。
在研究中发现一个下载超过35000次的远程服务器文件管理库“WinSCPHelper ”,使用了一个旧的、易受攻击的WinSCP版本 5.11.2,而今年1月初发布的5.17.10版本解决了一个严重的任意执行漏洞(CVE-2021-3331 ),因此暴露了该包的用户的漏洞。
此外,研究人员发现,从NuGet包中提取的超过50,000个软件组件被静态链接到“zlib”数据压缩库的脆弱版本,导致它们面临若干已知安全问题的风险,如CVE-2016-9840、CVE-2016-9841、CVE-2016-9842和CVE-2016-9843。
一些被观察到有zlib漏洞的包是“ DicomObjects ”和“ librdkafka.redist ”,每个包的下载量都不少于50,000和1820万次。更令人担忧的是,“librdkafka.redist”被列为其他几个流行包的依赖项,包括Confluent的 .NET Client for Apache Kafka ( Confluent.Kafka ),它目前的下载量超过1760万。
开发软件解决方案公司需要更多地意识到此类风险并主动去解决它们。软件开发过程的输入和最终输出都需要检查篡改和代码质量问题。开发初期的代码安全检测可以及时发现并定位缺陷,有助于开发人员及时修改漏洞。安全透明的软件开发流程是实现软件供应链攻击早期检测和预防的基石之一。
参读链接:
https://www.woocoom.com/b021.html?id=53111d1b44d54c2e840123b851029aed
https://thehackernews.com/2021/07/dozens-of-vulnerable-nuget-packages.html
来源:freebuf.com 2021-07-09 09:58:56 by: 中科天齐软件安全中心
请登录后发表评论
注册