ODGEN工具在今年的USENIX安全研讨会上介绍

基于图的JavaScript错误扫描仪在Node.js库中发现了100多个零日漏洞

约翰·霍普金斯大学(Johns Hopkins University)的研究人员开发了一种基于图形的代码分析工具,该工具可以检测JavaScript程序中的广泛漏洞。

odgen,该工具是在今年的USENIX安全研讨会上提出的,并解决了一些限制基于图的安全工具在分析JavaScript程序中使用的挑战。

研究人员通过将其应用于数千个Node.js库,证明了ODGEN的有效性,它发现了180零日脆弱性并收到70 CVE。

基于图的方法

基于图形的扫描仪解析源代码文件以构建代表应用程序的不同属性和执行分支的图形结构。然后,该图可用于建模并在源代码中找到漏洞。

事实证明,基于图查询的方法非常有效地检测某些编程语言的漏洞。尤其是一种技术,代码属性图(CPG)已被证明在确保C/C ++和PHP代码方面成功。


推荐的在Bitbucket服务器和数据中心发现的关键命令注射漏洞


受图形方法(尤其是CPG)成功的启发,约翰·霍普金斯大学(Johns Hopkins University)的研究人员试图将其应用于JavaScript。虽然有不同的工具为了在JavaScript代码中找到特定的漏洞,基于图形的工具有望提供一个通用框架来检测各种漏洞。

约翰·霍普金斯大学(Johns Hopkins University)的论文兼计算机科学助理教授Yinzhi Cao说:“如今,JavaScript,尤其是Node.js正在成为一个至关重要的社区。”每日swbeplay2018官网ig

“同时,其中许多NPM软件包在NPM生态系统中维护较少,漏洞很普遍。这就是为什么我们决定进行研究以使生态系统成为更安全的环境。”

但是,他们的最初发现表明,由于该语言的动态结构,CPG在JavaScript中不是很有效,这使得在执行之前对对象关系和程序分支进行解析和分析更加困难。

“ CPG未建模详细的对象关系,包括(i)原型链和(ii)对象级数据流。因此,很难应用CPG检测JavaScript特定漏洞,例如原型污染和内部财产篡改。CAO说:“很难对CPG中的细粒对象级数据流进行建模。”

对象依赖图

在他们的论文中,研究人员建议对象依赖图(ODG)作为一种从JavaScript代码构建图形的新方法。ODG使用CPG的某些组件,例如抽象语法树(AST),并添加了JavaScript特定的功能,包括对象之间的细粒度数据依赖性。因此,研究人员创建了ODGEN,这是一种用于创建和查询ODG的工具。

CAO说:“我们提出的ODGEN抽象解释了JavaScript代码,并生成了所谓的对象依赖图,以捕获包括对象关系在内的动态特征,以便基于图形查询的方法可以轻松获取此类信息并检测漏洞。”


阅读更多最新的Infosec研究新闻


研究人员设计了ODGEN来检测应用程序和包装级别的漏洞。他们在330个有记录的漏洞上测试了该工具,这些漏洞跨越了16个类别,包括跨站脚本((XSS),服务器和客户端请求伪造(SSRF/CSRF),SQL注入,原型污染和指挥注射。

该工具能够以非常高的精度检测13种类型的漏洞,发现330个错误中的302个漏洞。

他们通过爬行300,000个NPM软件包,并使用图形查询来检测查询来扩大测试。ODGEN报告了将近3,000个安全错误,其中研究人员验证了264个属于图书馆,每周下载超过1,000个。他们能够确认并报告180个安全错误,其中许多是在Web应用程序中广泛使用的库中。beplay体育能用吗在发现的漏洞中,分配了70个CVE。

ODGEN表明,要确保开源JavaScript生态系统以及现有工具的适应如何帮助开发确保Node.js库的整体方法。

CAO说,将来,该团队可能会将ODGEN扩展到Web应用程序中使用的其他编程语言,包括PHP和Java。beplay体育能用吗


你可能会喜欢Ethereum Foundation提供100万美元的Bug Bounty支付,并提供了验证迁移乘数