作者: {Zebork}@ArkTeam
原文作者: Staicu C A, Pradel M, Livshits B.
原文标题: Synode: Understanding and Automatically Preventing Injection Attacks on Node.js
原文会议: NDSS 2018
原文链接: https://www.ndss-symposium.org/wp-content/uploads/2018/03/NDSS2018_07A-2_Staicu_Slides.pdf
Node.js 生态系统已经创造了许多的现代应用程序,其中包括服务器侧的 Web 应用程序和桌面应用程序。与浏览器中的 JavaScript 应用程序不同的是, Node.js 应用程序没有浏览器沙箱的保护,可以和操作系统自由交互。因此,针对 Node.js 的注入攻击可以带来重大的损害。本文对 235850 个 Node.js 模块进行了大规模研究,发现数千个模块可能遭受注入攻击,并提出了 Synode ,一种自动化的注入缓解技术。 Synode 结合了静态分析和动态的运行时安全策略,易于部署,不需要对 Node.js 平台进行任何修改,其运行开销也达到了亚毫秒级,并且误报率只有 10% 。
一、JavaScript的应用场景革新和问题
JavaScript 除了驱动了绝大多数运行在浏览器中的 Web 应用程序,还在其他的平台有着革命性的进步。服务器侧 Web 应用程序和桌面应用程序都在越来越广泛地采用 Node.js ;移动应用程序也在越来越多地采用 JavaScript ,甚至操作系统,例如 Firefox OS ,也开始采用 JavaScript 进行开发。
JavaScript 应用场景的革新,也将传统应用场景中 JavaScript 的问题传播到了其他的场景。值得注意的是这种问题是 JavaScript 语言本身在开发中可能导致的脆弱点,而不是简单的将 Web 应用程序的问题传播到其他场景。比如注入漏洞,在移动应用程序和 Node.js 环境中的影响更加严重,而浏览器 Web 应用中的最大问题则是 XSS 。
二、Synode整体框架
Synode 将静态分析和运行时检测结合到一个全自动的方法中,以缓解注入攻击,这是第一个解决 Node.js 中注入攻击的方法。 Synode 的总体思想是防止在注入 API 的注入。 Synode 首先会分析可能流入注入 API 的值,如果没有不受信任的数据可能流入注入 API ,则不需要进行进一步的分析;反之,如果有不受信任的数据可能流入注入点,则需要进行动态的运行时检测。对于运行时检测, Synode 的方法是在静态分析时重写源代码,将检查代码插入到注入点之前,当运行时检测器检测到违反安全策略的值,程序将会终止,以防止注入攻击。
图1 总体框架图
三、静态分析
Synode 的静态分析器首先将传递给注入 API 的值解析为树;然后对树进行分析得到一组模板,这些模板表示传递给函数的可能字符串的值,包括已知和未知部分;最后,基于生成的模板,静态分析器分析注入 API 的每个调用点是否是静态安全的,从而进一步决定是否要插入运行时检测代码。
图2 模板树的几个例子
图3 由模板树得到的模板
四、动态运行时检测
对于无法确定传递给注入 API 的值的调用点,采用动态的运行时检测的机制。运行时检测器分两步实现预期目标。
首先,检测器将静态提取的调用点模板集,转换为表示良性值的一组部分语法树( PAST ),而模板的未知部分,则表示为未知子树;在执行时,检测器将传递给注入 API 的值解析为抽象语法树( AST ),扩展未知子树。在这一步骤中,检测器将强制执行一种策略,使这个 AST 必须能够从至少一个部分语法树中导出,并且这些扩展要在所有可能 AST 节点的允许子集范围内。
五、性能
作者使用了搭载 Intel Core I7(2.10GHz) , 12GB 内存,运行 Ubuntu 14.04 的联想 ThinkPad T440s 笔记本进行测试。
对于静态分析, Synode 成功完成了 15604 个模块中的 96.27% ,平均分析时间是 4.38 秒;对于运行时检测,每一次检测的成本为 0.74 毫秒,在实践中,这一开销通常可以忽略不计。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- SQL注入漏洞的自动化测试:输入变异方法(半机翻有删减)
- Angular 4 依赖注入教程之二 组件中注入服务
- 服务端注入之Flask框架中服务端模板注入问题
- 服务器端电子表格注入 - 从公式注入到远程代码执行
- SQL注入测试技巧TIP:再从Mysql注入绕过过滤说起
- 手机抓包+注入黑科技HttpCanary——最强大的Android抓包注入工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
经济学原理(第7版):微观经济学分册+宏观经济学分册(套装共2册)
曼昆 (N.Gregory Mankiw) / 梁小民、梁砾 / 北京大学出版社 / 2015-5-1 / 128
《经济学原理(第7版):微观经济学分册+宏观经济学分册》是目前国内市场上最受欢迎的引进版经济学教材之一,其最大特点是它的“学生导向”,它更多地强调经济学原理的应用和政策分析,而非经济学模型。第7版在延续该书一贯风格的同时,对第6版作了全面修订和改进。大幅更新了“新闻摘录”“案例研究”等专栏,拓展了章后习题。一起来看看 《经济学原理(第7版):微观经济学分册+宏观经济学分册(套装共2册)》 这本书的介绍吧!