CN112685314A - 一种JavaScript引擎安全测试方法及测试系统 - Google Patents

一种JavaScript引擎安全测试方法及测试系统 Download PDF

Info

Publication number
CN112685314A
CN112685314A CN202110006727.0A CN202110006727A CN112685314A CN 112685314 A CN112685314 A CN 112685314A CN 202110006727 A CN202110006727 A CN 202110006727A CN 112685314 A CN112685314 A CN 112685314A
Authority
CN
China
Prior art keywords
corpus
test case
sequence
test
new
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110006727.0A
Other languages
English (en)
Inventor
朱应龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Zhitu Technology Co ltd
Original Assignee
Guangzhou Zhitu Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Zhitu Technology Co ltd filed Critical Guangzhou Zhitu Technology Co ltd
Priority to CN202110006727.0A priority Critical patent/CN112685314A/zh
Publication of CN112685314A publication Critical patent/CN112685314A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种JavaScript引擎安全测试方法及测试系统,涉及算机网络行业安全领域,以解决JS引擎测试安全性低的问题。所述测试方法包括:获取JavaScript测试用例;对所述测试用例进行语法解析,生成语料库;利用所述语料库搭建并训练循环神经网络变分自编码器;利用训练好的所述循环神经网络变分自编码器对隐变量进行处理,生成新语料;将所述新语料组装成为新测试用例;利用所述新测试用例对系统进行安全测试。使用本发明,可以高效生成新的、语法正确率高的JavaScript测试用例,对JS引擎进行安全扫描。

Description

一种JavaScript引擎安全测试方法及测试系统
技术领域
本发明涉及计算机网络行业安全领域,特别是涉及一种基于语法分析技术和变分自编码器的JavaScript引擎安全测试方法及测试系统。
背景技术
作为互联网的主要入口,浏览器的安全漏洞可能会给众多个人及组织造成信息及财产损失。而根据美国国家漏洞数据库(NVD)2017年的统计,浏览器漏洞中43%可归因到浏览器内置的JavaScript引擎(简称JS引擎;是用来执行网页中JavaScript代码的程序)。因此对浏览器的JS引擎进行测试、进而提高其安全系数,对建设安全的互联网环境至关重要。
主要的浏览器JS引擎包括SpiderMonkey(Firefox浏览器),V8(Chrome浏览器;同时也是Edge浏览器的新引擎,以及node.js的引擎),JavaScriptCore(Safari浏览器)和Chakra(曾用于Edge浏览器;安全更新2020/03/09截止)。
针对软件的安全测试技术,按照对目标软件的信息了解程度分为三类:白盒(可以获取源代码),灰盒(无代码,但可以根据文档来部分了解到软件内部构造)和黑盒(只有二进制文件)。白盒测试可以使用的测试手段最多,也有实践证明有效的工具,如AFL(American Fuzzy Lop)。但大多数场景下用户只能获取到二进制文件。黑盒测试技术具有更广的应用场景,因此,本发明讨论的是一种黑盒测试系统。
按照测试用例(提供给目标软件的输入信息)的生成方式,现有的安全测试方法可以分为随机型和结构型两类。在JS引擎测试场景下,随机型方法,即指随机生成内容、长度不同的JS代码,或将正常的JS代码进行随机改动,作为输入提供给JS引擎。结构型,指借助显性的代码构造规则,或者利用神经网络学习器从大量数据中提取的隐性的结构规律,来对已有代码文件进行改动,或生成全新代码文件。
随机型方法,理论上可以覆盖所有的漏洞,但对于JS代码这种具有复杂结构的测试用例,随机生成或改动的文件绝大部分会因为语法错误而在语法检查阶段被JS引擎拒绝,无法触发引擎的深层逻辑,以至于实际不可行。结构型方法,因为尽可能保证通过语法检查,使得扫描效率高,但如果语法规则或者学习器过于准确,也会造成遗漏。因此亟需一种高语法正确率、高安全性的JavaScript引擎安全测试方法。
发明内容
本发明的目的是提供一种JavaScript引擎安全测试方法及测试系统,在语法分析的基础上,结合RNN(RecurrentNeuralNetwork;循环神经网络)对不定长序列的学习能力和VAE(VariationalAuto-Encoder;变分自编码器)输出的多样性,得以生成高语法正确率、高安全性,同时具备多样性的测试用例。
为实现上述目的,本发明提供了如下方案:
获取JavaScript测试用例;
对所述测试用例进行语法解析,生成语料库;
利用所述语料库搭建并训练循环神经网络变分自编码器,得到训练好的循环神经网络变分自编码器;
利用训练好的所述循环神经网络变分自编码器对隐变量进行处理,生成新语料,所述隐变量为输入的随机变量;
将所述新语料组装成为新测试用例;
利用所述新测试用例对系统进行安全测试。
本发明还提供一种JavaScript引擎安全测试方法对应的测试系统,所述系统包括:
测试用例获取模块,用于获取测试用例;
语法分析模块,用于对所述测试用例进行语法解析,生成语料库;
变分学习器模块,用于训练学习器以及根据所述语料库生成新语料;
语料组装模块,用于组装所述学习器输出的所述新语料,得到新测试用例;
扫描及监控模块,用于将所述新测试用例输入所述JavaScript引擎,并监控所述新测试用例的行为是否出现异常。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供一种JavaScript引擎安全测试方法及测试系统,能够解决现有技术中JavaScript引擎测试安全性低的问题,具体是在语法分析的基础上,结合循环神经网络对不定长序列的学习能力和变分自编码器输出的多样性优点,得以高效生成新的、语法正确率高的、不定长度的JavaScript测试用例,采用该测试用例对JS引擎进行安全扫描,符合JS引擎安全测试的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一所提供的JavaScript引擎安全测试方法流程图;
图2为本发明实施例一所提供的循环神经网络变分自编码器训练阶段的结构示意图;
图3为本发明实施例一所提供的循环神经网络变分自编码器生成新语料阶段的结构示意图;
图4为本发明实施例二所提供的JavaScript引擎安全测试系统结构示意图。
符号说明:201:测试用例获取模块;202:语法分析模块;203:变分学习器模块;204:语料组装模块;205:扫描及监控模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种JavaScript引擎安全测试方法及测试系统,在语法分析的基础上,结合RNN(RecurrentNeuralNetwork;循环神经网络)对不定长序列的学习能力和VAE(VariationalAuto-Encoder;变分自编码器)输出的多样性,进而生成高语法正确率、高安全性,同时具备多样性的测试用例,采用该测试用例对JS引擎进行测试,能够提高系统的安全性。
理想的扫描系统,能在保证较高语法正确率的同时,生成尽可能多样化、罕见于常规输入的测试用例。保证语法正确率,要求系统具备先验的语法知识,或者具备能够学习语法知识的能力。为此,可以考虑以AST(Abstract Syntax Tree;抽象语法树)作为整个系统的基础数据结构。作为从代码文件解析而来的树型数据结构,AST消除了代码中对分析无用的字符(括号、换行、空格等),并以节点(包含各元素的名字、类型等全部属性信息)和树的结构(反映计算顺序)来表达代码逻辑,相比源代码本身更便于进行语法分析。将JS代码解析为AST,并以树中元素作为训练数据,借助神经网络学习器较强的表示能力,系统可以学习到正确的语法结构,进而可以在此基础上产生新的测试用例。
利用神经网络生成测试用例的方法,文献中常见的有各类RNN(RecurrentNeuralNetwork;循环神经网络);这是因为RNN适合处理不定长度的序列化数据。但由于RNN是逐单词进行预测(根据给定的第一个词预测第二个词,再根据已有的两个词来预测第三个,以此类推),没有试图对全局特征(句法、语法、所讨论的主题等)进行学习,带来的问题是生成的新测试用例容易出现句法或语法错误。
VAE(VariationalAuto-Encoder;变分自编码器)由编码器,采样器和解码器三部分组成。借助某些简化的假设(表现为“隐变量”的全局特征符合简单的统计分布,如各维度相互独立的高斯分布),VAE可以实现对数据全局特征的编码(编码器),在编码空间进行采样(采样器)后,经过解码过程生成新的数据(解码器)。变分方法作为一种近似推断工具,难以准确学习原数据的分布特征;但这一问题在安全测试场景下,表现为输出更加多样化,反而体现为优势。将RNN作为组成部分的VAE,可以综合二者的优势,用来生成新的、语法正确、不定长度的测试用例,以符合JS引擎安全测试的需求。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
请参阅图1,本实施例提供的一种JavaScript引擎安全测试方法包括:
S1、获取JavaScript测试用例;
本发明的输入数据是测试用例。本实施例中选择的数据集是Github上获取的JavaScript代码(https://www.sri.inf.ethz.ch/js150),以及ECMAScript测试集Test262(https://github.com/tc39/test262)。
S2、对所述测试用例进行语法解析,生成语料库;
语法解析部分可以细分为重命名、解析和转换三步。
1)重命名是指对每个所述测试用例,按照变量和函数名在所述测试用例中的出现顺序,对所述变量和所述函数名进行重命名,得到重命名的测试用例;
为了使模型能够根据前半段序列生成后半段序列,或者从零开始生成新的序列,要求模型能学习到代码前后顺序的通用规律,而训练数据来自不同项目,语料命名没有统一的规律;因此,按照变量和函数名在测试用例中的出现顺序,将变量和函数名进行重命名,具体的,对任意测试用例文件,代码中第一个出现的变量,名字改为v0,第二个为v1,以此类推;第一个出现的函数,在代码中统一改为f0,第二个为f1,等等。
2)解析是指将每个所述重命名的测试用例解析为AST(Abstract Syntax Tree;抽象语法树);
3)转换:将所述抽象语法树拆解为基本语法元素的序列,记为边语料序列。
具体的,将树型的AST拆解为语法基本元素的序列,称为“语料序列”。将AST拆解为由节点类型与节点属性为节点所形成的边,并由预设的遍历顺序(如前序深度优先)存储为“边语料序列”(下简称“边序列”)。每个测试用例都对应这样一个边序列。
至此语法解析部分完成,得到边序列(作为后续步骤所需的“语料”),所述边序列为所述训练变分自编码器的输入序列。
S3、利用所述语料库搭建并训练循环神经网络变分自编码器,得到训练好的循环神经网络变分自编码器;
具体的,搭建并训练一个RNN变分自编码器,结构请参阅图2,首先借鉴单词嵌入(word embedding)的思路,将边序列依次通过一个语料嵌入层并按照语料嵌入层中数字和字符串的对应关系(embedding layer)转换为连续变量;语料嵌入层之后是单层RNN构成的编码器,即,将所述连续变量输入由单层循环神经网络构成的编码器输出隐变量的分布参数(如高斯分布的期望和方差),按照这一分布参数对隐变量进行采样,得到一个多维变量;将所述多维变量输入给同样由单层RNN构成的解码器;解码器输出的是一个数字序列,需要再经过翻译这一步,将数字序列翻译成字符串序列,翻译的过程用到了语料嵌入过程中确定的(数字和字符串)对应关系。即输出序列为一个字符串序列。
训练阶段,在编码器和解码器的每一个时间步,都输入(词嵌入变换后的)边序列。通过调节循环神经网络变分自编码器的模型参数,使损失函数L最小,
L=∑(x,y)l(x,y) (1)
其中,∑(x,y)表示对训练数据全集求和,l(x,y)为每一条数据的损失函数:
l(x,y)=a·ltype(x,y)+lname(x,y) (2)
ltype=-∑j(Tj true *log(Tj pred)) (3)
ltype和lname分别表示节点类型和节点属性的预测错误程度,当预测与实际完全相符时,l为零,否则l大于零;
a是可调参数,用于调节节点类型的预测错误程度和节点属性的预测错误程度的权重,如果需要提高节点属性的预测错误程度的权重,则增大a,如果需要提高节点类型预测错误程度的权重,则减小a;
j表示对所有所述节点类型求和,Tj pred为预测节点类型,Tj true为实际节点类型;
lname=-∑i(Ni true *log(Ni pred)) (4)
i表示对所有所述节点属性求和,Ni pred为预测的节点属性,Ni true为实际的节点属性。
S4、利用训练好的所述循环神经网络变分自编码器对隐变量进行处理,生成新语料,其中,隐变量为输入的随机变量;
请参阅图3,在生成新语料阶段,从隐变量采样开始,具体的,将所述隐变量输入训练好的所述循环神经网络变分自编码器中进行采样得到多维变量;
将所述多维变量输入给由单层循环神经网络构成的解码器后输出数字序列;
根据语料嵌入层所确定的数字和字符串的对应关系,将所述数字序列翻译为字符串序列,即得到新的边序列。
S5、将所述新语料组装成为新测试用例;
具体的,将边语料序列按照所述预设遍历顺序组成抽象语法树,将所述抽象语法树采用escodegen工具恢复为JavaScript代码。
S6、利用所述新测试用例对系统进行安全测试。
本实施例设计的一种JavaScript引擎安全测试方法,通过将测试用例解析为AST(抽象语法树),并以树中元素作为训练数据,借助神经网络学习器较强的表示能力,系统可以学习到正确的语法结构,提高语法正确率,进而可以在此基础上产生新的测试用例。在利用神经网络生成测试用例的方法中,采用RNN(循环神经网络)和VAE(变分自编码器)相结合的方式,可以综合RNN对不定长序列的学习能力和VAE输出的多样性,从而生成高语法准确率,同时具备多样性的测试用例,采用该测试用例对系统进行测试,可以提高系统的安全性。
实施例二
针对上述方法,本发明还公开了一种基于语法分析器和变分学习器的JS引擎安全测试系统,请参阅图4,所述系统包括:
测试用例获取模块201,用于获取测试用例。
语法分析模块202,用于对测试用例进行语法解析,生成语料库。用于解析代码为AST的工具是esprima。
变分学习器模块203,用于训练学习器,及根据语料库生成新语料。学习器用到的硬件信息为:显卡Tesla V100(单核),处理器为Intel Xeon CPU2.00GHz,内存25GB。
语料组装模块204,用于组装学习器输出的新语料,得到新的测试用例。由AST生成代码用到的工具是escodegen。
扫描及监控模块205,用于将测试用例输入JS引擎,并监控其行为是否发生异常。更具体地,调用JS引擎(如事先编译好的SpiderMonkey二进制文件)来运行新测试用例,并捕捉标准错误(stderr);若运行中出现报错(如SIGSEGV),则显示新测试用例定位到一个错误(bug),记录并继续测试;若运行中没有报错,则继续测试。
对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种JavaScript引擎安全测试方法,其特征在于,所述方法包括:
获取JavaScript测试用例;
对所述测试用例进行语法解析,生成语料库;
利用所述语料库搭建并训练循环神经网络变分自编码器,得到训练好的循环神经网络变分自编码器;
利用所述训练好的循环神经网络变分自编码器对隐变量进行处理,生成新语料,所述隐变量为输入的随机变量;
将所述新语料组装成为新测试用例;
利用所述新测试用例对系统进行安全测试。
2.根据权利要求1所述的JavaScript引擎安全测试方法,其特征在于,所述对所述测试用例进行语法解析,生成语料库具体包括:
重命名:对每个所述测试用例,按照变量和函数名在所述测试用例中的出现顺序,对所述变量和所述函数名进行重命名,得到重命名的测试用例;
解析:将每个所述重命名的测试用例解析为抽象语法树;
转换:将所述抽象语法树拆解为基本语法元素的序列,记为边语料序列。
3.根据权利要求2所述的JavaScript引擎安全测试方法,其特征在于,所述将所述抽象语法树拆解为基本语法元素的序列,记为边语料序列具体包括:
将所述抽象语法树拆解为边;
按照预设遍历顺序将所述边存储为边语料序列;所述边语料序列为所述循环神经网络变分自编码器的输入数据。
4.根据权利要求2或3所述的JavaScript引擎安全测试方法,其特征在于,所述利用所述语料库搭建并训练循环神经网络变分自编码器具体包括:
将边语料序列输入语料嵌入层并按照数字和字符串的对应关系转换为连续变量;
将所述连续变量输入由单层循环神经网络构成的编码器得到隐变量的分布参数;
按照所述分布参数对所述隐变量进行采样得到多维变量;
将所述多维变量输入由单层循环神经网络构成的解码器后输出数字序列;
根据所述语料嵌入层所确定的数字和字符串的对应关系,将所述数字序列翻译为字符串序列。
5.根据权利要求1所述的JavaScript引擎安全测试方法,其特征在于,所述得到训练好的循环神经网络变分自编码器具体包括:通过调节所述循环神经网络变分自编码器的模型参数,使得损失函数L最小;
L=∑(x,y)l(x,y) (1)
其中,∑(x,y)表示对训练数据全集求和,l(x,y)为每一条数据的损失函数:
l(x,y)=a·ltype(x,y)+lname(x,y) (2)
ltype=-∑j(Tj true*log(Tj pred)) (3)
ltype和lname分别表示节点类型和节点属性的预测错误程度,当预测与实际完全相符时,l为零,否则l大于零;
a是可调参数,用于调节节点类型的预测错误程度和节点属性的预测错误程度的权重,如果需要提高节点属性的预测错误程度的权重,则增大a,如果需要提高节点类型预测错误程度的权重,则减小a;
j表示对所有所述节点类型求和,Tj pred为预测节点类型,Tj true为实际节点类型;
lname=-∑i(Ni true*log(Ni pred)) (4)
i表示对所有所述节点属性求和,Ni pred为预测的节点属性,Ni true为实际的节点属性。
6.根据权利要求4所述的JavaScript引擎安全测试方法,其特征在于,所述利用所述训练好的循环神经网络变分自编码器对隐变量进行处理,生成新语料具体包括:
将所述隐变量输入所述训练好的循环神经网络变分自编码器中进行采样得到多维变量;
将所述多维变量输入给由单层循环神经网络构成的解码器后输出数字序列;
根据语料嵌入层所确定的数字和字符串的对应关系,将所述数字序列翻译为字符串序列。
7.根据权利要求1所述的JavaScript引擎安全测试方法,其特征在于,所述将所述新语料组装成为新测试用例具体包括:
将边语料序列按照所述预设遍历顺序组成抽象语法树;
将所述抽象语法树采用escodegen工具恢复为JavaScript代码。
8.根据权利要求1-7任一所述的一种JavaScript引擎安全测试方法对应的测试系统,其特征在于,所述系统包括:
测试用例获取模块,用于获取测试用例;
语法分析模块,用于对所述测试用例进行语法解析,生成语料库;
变分学习器模块,用于训练学习器以及根据所述语料库生成新语料;
语料组装模块,用于组装所述学习器输出的所述新语料,得到新测试用例;
扫描及监控模块,用于将所述新测试用例输入所述JavaScript引擎,并监控所述新测试用例的行为是否出现异常。
9.根据权利要求8所述的一种JavaScript引擎安全测试方法对应的测试系统,其特征在于,所述对所述测试用例进行语法解析的工具是esprima。
10.根据权利要求8所述的一种JavaScript引擎安全测试方法对应的测试系统,其特征在于,所述扫描及监控模块具体用于:
调用JavaScript引擎运行所述新测试用例;
若运行中出现报错,则显示所述新测试用例定位到一个错误,记录并继续测试;
若运行中没有报错,则继续测试。
CN202110006727.0A 2021-01-05 2021-01-05 一种JavaScript引擎安全测试方法及测试系统 Pending CN112685314A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110006727.0A CN112685314A (zh) 2021-01-05 2021-01-05 一种JavaScript引擎安全测试方法及测试系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110006727.0A CN112685314A (zh) 2021-01-05 2021-01-05 一种JavaScript引擎安全测试方法及测试系统

Publications (1)

Publication Number Publication Date
CN112685314A true CN112685314A (zh) 2021-04-20

Family

ID=75457273

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110006727.0A Pending CN112685314A (zh) 2021-01-05 2021-01-05 一种JavaScript引擎安全测试方法及测试系统

Country Status (1)

Country Link
CN (1) CN112685314A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385491A (zh) * 2021-12-30 2022-04-22 大连理工大学 一种基于深度学习的js转译器缺陷检测方法

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070107057A1 (en) * 2005-11-10 2007-05-10 Docomo Communications Laboratories Usa, Inc. Method and apparatus for detecting and preventing unsafe behavior of javascript programs
CN102141959A (zh) * 2011-03-15 2011-08-03 中国科学院研究生院 一种受上下文无关文法约束的测试用例生成方法
CN102663296A (zh) * 2012-03-31 2012-09-12 杭州安恒信息技术有限公司 面向网页JavaScript恶意代码的智能检测方法
US20130227354A1 (en) * 2012-02-23 2013-08-29 Qualcomm Innovation Center, Inc. Device, method, and system to enable secure distribution of javascripts
US20130318503A1 (en) * 2012-05-25 2013-11-28 Fujitsu Limited Symbolic execution and automatic test case generation for javascript programs
CN103971054A (zh) * 2014-04-25 2014-08-06 天津大学 一种基于行为序列的浏览器扩展漏洞的检测方法
CN109446079A (zh) * 2018-10-19 2019-03-08 杭州安恒信息技术股份有限公司 一种基于ast突变的浏览器模糊测试方法
CN110334023A (zh) * 2019-06-28 2019-10-15 京东数字科技控股有限公司 一种应用于网站的测试流程确定方法和装置
US20200012662A1 (en) * 2018-07-06 2020-01-09 Capital One Services, Llc Systems and methods for quickly searching datasets by indexing synthetic data generating models
CN110780878A (zh) * 2019-10-25 2020-02-11 湖南大学 一种基于深度学习进行JavaScript类型推断的方法
KR20200048033A (ko) * 2018-10-29 2020-05-08 한국과학기술원 자바스크립트 파일 재작성을 통한 자바스크립트 해석 엔진 테스트 방법 및 장치
KR20200052433A (ko) * 2018-10-29 2020-05-15 한국과학기술원 기계 학습을 이용한 자바스크립트 해석 엔진 테스트 방법 및 장치
CN111581086A (zh) * 2020-04-28 2020-08-25 清华大学深圳国际研究生院 一种基于RankNet的混合软件错误定位方法及系统
US20200320371A1 (en) * 2017-09-28 2020-10-08 D5Ai Llc Training for machine learning systems with synthetic data generators

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070107057A1 (en) * 2005-11-10 2007-05-10 Docomo Communications Laboratories Usa, Inc. Method and apparatus for detecting and preventing unsafe behavior of javascript programs
CN102141959A (zh) * 2011-03-15 2011-08-03 中国科学院研究生院 一种受上下文无关文法约束的测试用例生成方法
US20130227354A1 (en) * 2012-02-23 2013-08-29 Qualcomm Innovation Center, Inc. Device, method, and system to enable secure distribution of javascripts
CN102663296A (zh) * 2012-03-31 2012-09-12 杭州安恒信息技术有限公司 面向网页JavaScript恶意代码的智能检测方法
US20130318503A1 (en) * 2012-05-25 2013-11-28 Fujitsu Limited Symbolic execution and automatic test case generation for javascript programs
CN103971054A (zh) * 2014-04-25 2014-08-06 天津大学 一种基于行为序列的浏览器扩展漏洞的检测方法
US20200320371A1 (en) * 2017-09-28 2020-10-08 D5Ai Llc Training for machine learning systems with synthetic data generators
US20200012662A1 (en) * 2018-07-06 2020-01-09 Capital One Services, Llc Systems and methods for quickly searching datasets by indexing synthetic data generating models
CN109446079A (zh) * 2018-10-19 2019-03-08 杭州安恒信息技术股份有限公司 一种基于ast突变的浏览器模糊测试方法
KR20200048033A (ko) * 2018-10-29 2020-05-08 한국과학기술원 자바스크립트 파일 재작성을 통한 자바스크립트 해석 엔진 테스트 방법 및 장치
KR20200052433A (ko) * 2018-10-29 2020-05-15 한국과학기술원 기계 학습을 이용한 자바스크립트 해석 엔진 테스트 방법 및 장치
CN110334023A (zh) * 2019-06-28 2019-10-15 京东数字科技控股有限公司 一种应用于网站的测试流程确定方法和装置
CN110780878A (zh) * 2019-10-25 2020-02-11 湖南大学 一种基于深度学习进行JavaScript类型推断的方法
CN111581086A (zh) * 2020-04-28 2020-08-25 清华大学深圳国际研究生院 一种基于RankNet的混合软件错误定位方法及系统

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
"Software Vulnerability Detection Using Deep Neural Networks: A Survey", 《PROCEEDINGS ON THE IEEE》, vol. 108, no. 10, 31 October 2020 (2020-10-31), pages 1825 - 1848 *
MSS****: "利用循环神经网络检测web攻击", Retrieved from the Internet <URL:https://xz.aliyun.com/t/2576> *
MYEONGJUN JANG等: "Recurrent neural network-based semantic variational autoencoder for Sequence-to-sequence learning", pages 59 - 73, XP085663289, Retrieved from the Internet <URL:https://www.sciencedirect.com/science/article/pii/S00200255193702786> DOI: 10.1016/j.ins.2019.03.066 *
TIANYA_追心: "JavaScript常见安全漏洞和自动化检测技术", Retrieved from the Internet <URL:https://blog.csdn.net/u011394397/article/details/69389341> *
倪涛等: "基于语料库及语法变异的浏览器Fuzzing安全测试", 《信息工程大学学报》, vol. 19, no. 2018, 31 March 2018 (2018-03-31), pages 369 - 372 *
张聪: "基于循环神经网络的工控网络入侵检测研究", 《中国优秀硕士论文全文数据库 信息科技辑》, no. 2020, 15 March 2020 (2020-03-15), pages 139 - 43 *
杨宇行: "基于深度学习的JavaScript恶意代码检测技术研究与实现", 《中国优秀硕士论文全文数据库 信息科技辑》, no. 2019, 15 August 2019 (2019-08-15), pages 139 - 117 *
龙廷艳: "基于深度学习的JavasScript 恶意代码检测技术的研究与应用", 《中国优秀硕士论文全文数据库 信息科技辑》, no. 2019, 30 September 2019 (2019-09-30), pages 138 - 64 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385491A (zh) * 2021-12-30 2022-04-22 大连理工大学 一种基于深度学习的js转译器缺陷检测方法

Similar Documents

Publication Publication Date Title
US20200293293A1 (en) Pruning Engine
WO2019075390A1 (en) BOX BLACK MATCHING MOTOR
EP3679469A1 (en) Automating identification of test cases for library suggestion models
US11693630B2 (en) Multi-lingual code generation with zero-shot inference
CN111680494A (zh) 相似文本的生成方法及装置
US20210209011A1 (en) Systems and methods for automated testing using artificial intelligence techniques
US9495150B2 (en) Information processing apparatus and method, and computer program product
US11385988B2 (en) System and method to improve results of a static code analysis based on the probability of a true error
US7409619B2 (en) System and methods for authoring domain specific rule-driven data generators
CN117113347A (zh) 一种大规模代码数据特征提取方法及系统
CN113591093A (zh) 基于自注意力机制的工业软件漏洞检测方法
CN112613040A (zh) 一种基于二进制程序的漏洞检测方法及相关设备
CN112035099A (zh) 一种抽象语法树中节点的向量化表示方法及装置
CN115630368A (zh) 基于自然语言处理与深度森林的Java漏洞分类方法
CN112685314A (zh) 一种JavaScript引擎安全测试方法及测试系统
CN115688108B (zh) 一种webshell静态检测方法及系统
CN117093222A (zh) 一种基于改进转换器模型的代码参数摘要生成方法和系统
CN116360794A (zh) 数据库语言解析方法、装置、计算机设备及存储介质
CN113468345B (zh) 基于知识图谱的实体共指检测数据处理系统
Anderson et al. Supporting analysis of SQL queries in PHP AiR
CN112711933B (zh) 一种利用电子表格进行寿险精算模型校验的方法
CN115033884A (zh) 基于危险函数参数依赖的二进制代码漏洞检测方法
CN116821374B (zh) 一种基于情报的事件预测方法
CN117971192B (zh) 一种仿真模型代码生成方法及装置
Matsiievskyi et al. Using Artificial Intelligence to Convert Code to Another Programming Language

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination