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

admin 2021年7月27日14:00:50评论10 views字数 1183阅读3分56秒阅读模式

今天为大家推荐的是来自OOPSLA 2020的一篇论文——“Detecting locations in JavaScript programs affected by breaking library changes”。

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

NPM registry包含了1.2M包,平均每个包依赖大约80个其他包,大多数库会经常更新,增加一些新特性,修复一些bug和安全漏洞等。然而考虑到更新可能会破坏现有的代码,开发者需要查看changelog并手动定位被影响的代码的位置,所以开发者往往不愿意切换到新版本。


现有的工具migrate tools,rxjs-compat,npm audit等都无法很好定位具体受影响的代码位置。在本文中,作者引入了简单的模式语言来表示API access point,并基于静态分析开发了模式匹配工具TAPIR来减少开发者的手工工作。


首先来看一个例子,npm包postal每周超过20,000次的下载量,在2016年,postal决定更新lodash依赖到最新版本,postal的维护者首先意识到lodash库中debounce方法的breaking changes,push了一个patch来更新postal库。随后维护者又发现了其他地方的breaking change,几周后一个使用者又发现了另一个影响postal库的breaking change。在两周后postal的新版本才最终适应新版本的lodash。


上面的例子说明,开发人员只能阅读依赖库的changelogs,找出相关的breaking changes,然后手动修改,这非常花费时间,而且可能会漏掉一些修改。而使用TAPIR工具可以自动列出相关的9个changes,并且只有两个是false positive。

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


作者对10个常用的库,手动分析了changelogs,列出了库中的breaking changes的类别和数量。

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

根据上面的分析,作者设计了一种简单的模式语言来描述发生breaking changes的API access point。在库开发者进行一个重要的更新时,需要按照该模式语言来写更新日志。虽然这增加了库开发者的工作,但是作者提到更新是较少的,且该模式非常容易书写。

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

然后,TAPIR扫描代码,找出和发生breaking change的API access point匹配的表达式。该匹配过程分为别名分析,access paths推断和模式匹配。

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

作者在15个npm包上评估了TAPIR:

  • 该模式语言可以十分简单的表达几乎所有类型的breaking changes


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

  • 可以达到100%的recall,以及较低的false positive


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


论文PDF:

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

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

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月27日14:00:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 学术论文推荐 2021-07-27http://cn-sec.com/archives/924167.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息