G.O.S.S.I.P 学术论文推荐 2021-07-13

admin 2021年7月13日14:00:50评论1 views字数 990阅读3分18秒阅读模式

今天推荐的论文是来自ISSTA 2021的论文“Modular CallGraph Construction for Security Scanning of Node.js Applications ”

 

G.O.S.S.I.P 学术论文推荐 2021-07-13


当你使用npm安装1.0.4版本的writex应用时(writex能够将markdown转为latex),npm audit工具会报告5个不同的安全威胁。然而,经过作者手动检查,五个中只有一个是真实存在的,另外四个是无法通过函数调用到达的。因此,在本篇论文中,作者设计了JAM工具,它基于调用图的方法,对Node.js进行扫描,提升npm分析的精准度。

 

首先作者总结了为node.js构建调用图的难点:

  • 代码被分割成模块。如下图,lib1.js对外暴露的模块为filterclient1.js就可以使用require调用该模块

  • 使用了高阶函数。函数可以当作另外一个函数的参数,或者如下图第2行,返回的参数是一个函数。   

    G.O.S.S.I.P 学术论文推荐 2021-07-13

    G.O.S.S.I.P 学术论文推荐 2021-07-13


在本篇论文中,作者构建函数调用图分为以下两个步骤。

  • 第一步,总结每个文件声明的模块。作者记录了以下信息:Loc(源码位置)、Prop(属性)、Var(变量名)、Exp(函数表达式)。给定一个JS文件作为输入,输出文件的模块集合,由函数调用集合、函数返回集合和对象属性集合组成。作者在这里使用了轻量级的静态分析方法。下图为lib2.js实例生成的模块集合。

    G.O.S.S.I.P 学术论文推荐 2021-07-13

  • 第二步是调用图的构建。作者首先总结了上面收集到的模块集合。并使用如下图所示的规则生成调用图,其中前两个规则依赖于对函数调用和对象属性的总结,后面三个规则总结了return的参数为一个函数的调用、函数的参数作为一个函数的调用和对象的属性为一个函数的调用。

    G.O.S.S.I.P 学术论文推荐 2021-07-13

最后,对于node.js中有漏洞的应用,作者检查了是否可以利用上述方法生成的调用图,从程序的入口点精准地访问到这些函数。实验结果表明,对于12个Node.js应用,JAM可以与npm audit报告相同数量的漏洞(8个),且降低了npm audit 81%的错误率;与当前生成调用图的方法js-callgraph相比,Jam具备更高的精度、准确度和更快的分析时间。

G.O.S.S.I.P 学术论文推荐 2021-07-13

G.O.S.S.I.P 学术论文推荐 2021-07-13

论文PDF:

https://dl.acm.org/doi/pdf/10.1145/3460319.3464836

原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 学术论文推荐 2021-07-13

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月13日14:00:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 学术论文推荐 2021-07-13https://cn-sec.com/archives/924279.html

发表评论

匿名网友 填写信息