[发明专利]一种Node.js代码安全检测方法及系统在审
申请号: | 202210279951.1 | 申请日: | 2022-03-21 |
公开(公告)号: | CN114912110A | 公开(公告)日: | 2022-08-16 |
发明(设计)人: | 刘奇旭;陈文岗;靳泽;刘清越;李香龙;刘潮歌;谭儒 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F40/30;G06F40/284 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 李文涛 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 node js 代码 安全 检测 方法 系统 | ||
本发明提出一种Node.js代码安全检测方法及系统,涉及计算机网络安全领域,对待检测的程序代码及其所使用的第三方库代码进行TypeScript化处理,并将处理后的程序代码打包为单文件形式的程序代码;将打包后的程序代码编译为抽象语法树,并对程序代码中的动态特性进行静态化处理;将静态化处理后的抽象语法树编译为中间表示,标记入口函数、危险函数及无害化处理函数;对标记后的中间表示构建值流图,在图上进行双向污点分析,搜索潜在风险利用路径。本发明弥补了现有检测方法不能检测出控制流和数据流较为复杂中代码的安全风险的缺陷,有效地提高了Node.js代码的安全性。
技术领域
本发明涉及计算机网络安全领域,具体涉及一种基于静态分析的Node.js代码安全检测方法及系统。
背景技术
随着互联网的发展,编程语言JavaScript在现代Web世界中扮演越来越重要的角色,Node.js技术的出现使得原本只能运行在浏览器上的JavaScript也可以运行在服务器端。但相比Java等其他Web后端语言的使用者,相当一部分Node.js的使用者没有接受过系统的Web后端开发训练,安全意识较差,导致很多基于Node.js的软件项目的安全性得不到保障。Node.js官方包管理平台npm上的软件库的安全漏洞数量也呈逐年上升趋势。
开发人员需要针对用户输入进行完备的安全过滤才能避免这些漏洞的产生,但是随着程序复杂性的提升,开发人员并不能保证测试的完备性,这时需要借助漏洞扫描器或者静态代码安全分析工具。现有针对Node.js代码的安全检测方法和工具主要包括:利用ESLint等代码风格检查工具中内置的安全规则对代码进行特定的语法检查;利用semgrep和nodejsscan这样的Node.js专用安全检查工具对代码文本进行模式匹配;利用SonarJS这样的JavaScript商用程序分析产品在抽象语法树层面对Node.js代码进行静态分析。
前两类解决方案的缺陷是缺少对语义信息的检查,并严重依赖模式匹配规则,无法检测出控制流和数据流较为复杂的代码的安全风险。而第三类解决方案在抽象语法树上构建控制流与数据流,算法复杂度较高,检测时间较长,检测效率较低。
发明内容
针对上述问题,本发明提出了一种基于静态分析的Node.js代码安全检测方法及系统,增加了中间表示层面的控制流信息以及数据流信息作为Node.js代码安全检测的主要特征,以解决现有技术无法检测出控制流和数据流较为复杂的Node.js代码中安全风险及检测效率低的问题,有效地提高了Node.js代码的安全性。
为了达到达到上述目的,本发明采取的具体技术方案是:
一种Node.js代码安全检测方法,包括以下步骤:
1)对待检测的程序代码以及该程序代码中所使用的第三方库代码进行TypeScript化处理,并利用代码打包器将处理后的程序代码打包为单文件形式的程序代码;
2)将打包后的程序代码编译为抽象语法树,并在抽象语法树上对程序代码中的动态特性进行静态化处理;
3)将静态化处理后的抽象语法树编译为中间表示,并按照预定义的规则在中间表示上标记入口函数、危险函数及无害化处理函数;
4)对标记后的中间表示构建值流图,并在值流图上进行双向污点分析,搜索潜在风险利用路径。
进一步地,步骤1)对待检测的程序代码进行TypeScript化处理的步骤包括类型推导和推导失败部分函数改写;对第三方库代码进行TypeScript化处理的步骤包括类型声明搜索、类型推导和推导失败部分函数改写。
进一步地,步骤2)将程序代码编译为抽象语法树的步骤包括词法分析、语法分析和语义分析,上述步骤主要通过TypeScript编译器实现。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210279951.1/2.html,转载请声明来源钻瓜专利网。