37%网站在使用已知漏洞的JavaScript库!

Npm blog中一篇文章称现代JavaScript项目的通常都有依赖700-1200个包。因此,这些大型项目的开发人员在线查看漏洞公告是不实际的。当然这也是软件组合分析工具极其有必要和有用的地方。


现在,应该没有任何JavaScript程序员会选择自己从头到尾编写程序了吧?如今,开源的JavaScript库怎么也有上千种了,相比通过创建调用单个函数,采用JavaScript库几行代码实现功能显然更加简单高效。

但是,世界上没有任何白来的午餐,使用JavaScript虽然简单,但是其可能具有安全漏洞,构建的网站更易受攻击。据相关机构的研究:超过37%的网站都至少使用了一个具有已知漏洞的库。

JavaScript中的常见安全漏洞包括跨站点脚本,跨站点请求伪造和缓冲区溢出。跨站点脚本允许攻击者将恶意代码注入信任的网页,然后将恶意代码传递给查看该站点的用户。跨站点请求伪造允许攻击者利用用户的浏览器在其他站点上执行操作。当攻击者发送数据太大而不能保留缓冲区时,会发生缓冲区溢出,从而将数据写入缓冲区之外,并允许攻击者插入恶意代码,损坏数据或崩溃应用程序。

IDC研究总监Arnal Dayaratna表示 “JavaScript生态系统没有一个强大的框架来记录库中的漏洞并记录其影响,所以也没有可供开发人员访问的已知漏洞的列表。CVE网站上曾有JQuery漏洞目录,这是一个目前常见的安全漏洞的目录。但是,Angular没有出现在CVE上;,而是使用了GitHub CHANGELOG来报告安全漏洞。由于每个库都会以不同的方式来处理安全信息,开发人员无法统一获得JavaScript库漏洞的安全更新。

Npm blog中一篇文章称现代JavaScript项目的通常都有依赖700-1200个包。因此,这些大型项目的开发人员在线查看漏洞公告是不实际的。当然这也是软件组合分析工具极其有必要和有用的地方。

软件组成分析工具通过分析代码,挑选出易受攻击的组件,加快检测网站漏洞的过程,并减少人为错误的风险。Forrester分析师Amy DeMartine表示:大多数提供软件组成分析工具的公司都提供主动式警报,用户不必时时关注,当你使用的组件版本发布了新的漏洞是,它会自动提醒你。

根据东北大学的研究发现,数据较集中的网站使用的库的版本往往比最新版本要早1177天,所以想要切换到更新版本需要花费一些时间,只有进行了行测试才能确保最新版本与现有应用程序或站点。而且不断更新到新版本不仅会花费开发人员很多时间,同时也不一定能够确保现有网站免受漏洞的影响。

Dayaratna表示如果这是一个易受攻击的网站,那么将不会有人来访问它,所以为了一个安全的网站花费再多都是值得的。

阅读余下内容

发表评论

电子邮件地址不会被公开。 必填项已用*标注


京ICP备12002735号