Jelly:Node.js 和 TypeScript 程序的静态分析利器

Jelly:Node.js 和 TypeScript 程序的静态分析利器

jellyJavaScript/TypeScript static analyzer for call graph construction, library usage pattern matching, and vulnerability exposure analysis项目地址:https://gitcode.com/gh_mirrors/jel/jelly

项目介绍

Jelly 是一款专为 Node.js 和 TypeScript 程序设计的静态分析工具。它能够执行以下任务:

  • 调用图构建:自动生成程序的调用图,帮助开发者理解代码的执行流程。
  • 库使用模式匹配:识别和分析程序中使用的库及其使用模式,确保代码的正确性和一致性。
  • 漏洞暴露分析:检测潜在的安全漏洞,帮助开发者提前发现并修复问题。

Jelly 的设计灵感来源于 JAM、TAPIR 和 ACG 等先进技术,并结合了近似解释和间接边界等创新方法,使其在处理复杂代码时表现出色。

项目技术分析

Jelly 的核心技术包括:

  • 流不敏感的控制流和指针分析:通过这种分析方法,Jelly 能够高效地处理代码中的控制流和指针操作,生成准确的调用图。
  • 访问路径跟踪:Jelly 使用访问路径来跟踪库的使用情况,确保分析的全面性和准确性。
  • 近似解释:通过近似解释技术,Jelly 能够在保证分析效率的同时,减少静态分析的不确定性。
  • 间接边界:通过设置间接边界,Jelly 能够有效地控制分析的复杂度,避免过度分析导致的性能问题。

项目及技术应用场景

Jelly 适用于以下场景:

  • 代码审计:在代码审计过程中,Jelly 可以帮助审计人员快速生成调用图,识别潜在的安全漏洞。
  • 库迁移:在进行库迁移时,Jelly 可以分析新旧库的使用模式,帮助开发者快速定位受影响的代码。
  • IDE 服务:Jelly 可以集成到 IDE 中,为开发者提供实时的代码分析和建议,提升开发效率。

项目特点

Jelly 具有以下显著特点:

  • 高效性:基于流不敏感的控制流和指针分析,Jelly 能够在短时间内处理大规模代码。
  • 灵活性:支持多种分析模式,包括静态分析、动态分析和近似解释,满足不同场景的需求。
  • 可视化:Jelly 提供了丰富的可视化工具,帮助开发者直观地理解代码结构和分析结果。
  • 易用性:通过简单的命令行接口,开发者可以轻松上手,快速进行代码分析。

结语

Jelly 作为一款强大的静态分析工具,不仅能够帮助开发者提升代码质量,还能有效降低安全风险。无论你是代码审计人员、库迁移工程师,还是 IDE 开发者,Jelly 都能为你提供有力的支持。立即体验 Jelly,开启你的代码分析之旅吧!


参考文献

  1. Benjamin Barslev Nielsen, Martin Toldam Torp, Anders Møller: Modular call graph construction for security scanning of Node.js applications. Proc. ISSTA 2021: 29-41
  2. Anders Møller, Benjamin Barslev Nielsen, Martin Toldam Torp: Detecting locations in JavaScript programs affected by breaking library changes. Proc. ACM Program. Lang. 4(OOPSLA): 187:1-187:25 (2020)
  3. Asger Feldthaus, Max Schäfer, Manu Sridharan, Julian Dolby, Frank Tip: Efficient construction of approximate call graphs for JavaScript IDE services. Proc. ICSE 2013: 752-761
  4. Mathias Rud Laursen, Wenyuan Xu, Anders Møller: Reducing Static Analysis Unsoundness with Approximate Interpretation. Proc. ACM Program. Lang. 8(PLDI): 194:1-194:24 (2024)
  5. Madhurima Chakraborty, Aakash Gnanakumar, Manu Sridharan, Anders Møller: Indirection-Bounded Call Graph Analysis Proc. ECOOP 2024: 27:1-27:27

jellyJavaScript/TypeScript static analyzer for call graph construction, library usage pattern matching, and vulnerability exposure analysis项目地址:https://gitcode.com/gh_mirrors/jel/jelly

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

崔锴业Wolf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值