Web应用程序行为提取方法和恶意行为检测方法转让专利
申请号 : CN201510881765.5
文献号 : CN105488398B
文献日 : 2018-06-15
发明人 : 毛剑 , 陈岳 , 史福田 , 伍前红 , 刘建伟 , 田文倩
申请人 : 北京航空航天大学
摘要 :
权利要求 :
1.一种Web应用程序行为提取方法,其特征在于,包括以下步骤:
Web应用程序行为记录模块拦截JavaScript函数,并提取待测Web应用程序的行为记录,其中,所述行为记录包括所述待测Web应用程序调用的所述JavaScript函数的名称、接收参数和函数调用栈信息;
将所述待测Web应用程序的行为记录发送到恶意行为检测模块,并将所述待测Web应用程序的行为记录写入行为日志文件,所述的Web应用程序行为提取方法还包括:
行为绘制模块根据所述待测Web应用程序的行为记录统计所述函数的调用次数和HTML元素访问次数,并根据所述函数的调用次数和HTML元素访问次数绘制待测Web应用程序实时行为图表,以实时显示所述待测Web应用程序的行为记录。
2.根据权利要求1所述的Web应用程序行为提取方法,其特征在于,在Web浏览器的popup页面中绘制所述待测Web应用程序实时行为图表。
3.根据权利要求1所述的Web应用程序行为提取方法,其特征在于,所述提取所述待测Web应用程序的行为记录包括:将待拦截的所述JavaScript函数重命名;
定义新函数,所述新函数与重命名前的所述JavaScript函数同名;
在所述新函数中加入代码以获取所述JavaScript函数的名称和所述函数的接收参数;
利用所述JavaScript函数的错误处理机制获取所述函数调用栈信息。
4.根据权利要求1或3所述的Web应用程序行为提取方法,其特征在于,所述JavaScript函数位于Web浏览器中。
5.一种通过权利要求1所述的Web应用程序行为进行恶意行为检测方法,其特征在于,包括以下步骤:获取所述待测Web应用程序的行为记录;
获取预先确定的恶意行为模式库,恶意行为检测模块将所述待测Web应用程序的行为记录与所述恶意行为模式库中的每个恶意行为模式进行匹配,并将匹配成功的所述待测Web应用程序的行为记录确定为异常行为;
获取预先确定的正常行为模式库,恶意行为确认模块将所述异常行为与所述正常行为模式库中的每个正常行为模式进行匹配,并将匹配失败的所述异常行为确定为疑似恶意行为;
如果所述疑似恶意行为的数量超过预设阈值,则发出恶意行为告警,
其中,所述恶意行为模式为在恶意行为发生时,被调用的当前JavaScript函数的名称和所述当前JavaScript函数的父函数的名称组成的字符串对,其中,所述父函数为直接或间接调用所述当前JavaScript函数的函数;
所述正常行为模式为在正常行为发生时,被调用的当前JavaScript函数的名称和所述当前JavaScript函数的各级父函数的名称组成的字符串组,其中,在所述字符串组中,后一个字符串代表的函数为前一个字符串代表的函数的父函数。
6.根据权利要求5所述的通过所述Web应用程序行为进行恶意行为检测方法,其特征在于,还包括:判断所述待测Web应用程序的疑似恶意行为是否为恶意行为,如果所述待测Web应用程序的疑似恶意行为不是恶意行为,则将所述疑似恶意行为加入所述正常行为模式库。
7.根据权利要求5所述的通过所述Web应用程序行为进行恶意行为检测方法,其特征在于,如果所述待测Web应用程序的行为记录中的JavaScript函数的名称和所述恶意行为模式中的所述当前JavaScript函数的名称相同,并且根据所述行为记录中的函数调用栈信息确定的所述JavaScript函数的父函数与所述恶意行为模式中所述当前JavaScript函数的父函数的名称相同时,则所述待测Web应用程序的行为记录匹配成功,否则所述待测Web应用程序的行为记录匹配失败;
如果所述异常行为在所述待测Web应用程序的行为记录中的JavaScript函数的名称和所述正常行为模式中的所述当前JavaScript函数的名称相同,并且根据所述行为记录中的函数调用栈信息确定的所述JavaScript函数的各级父函数与所述正常行为模式中所述当前JavaScript函数的各级父函数的名称相同时,则所述异常行为匹配成功,否则,所述异常行为匹配失败。
说明书 :
Web应用程序行为提取方法和恶意行为检测方法
技术领域
背景技术
Sheets,层叠样式表)等)编写的、在浏览器环境中运行的并用于支撑Web服务的应用软件。
以Web浏览器作为客户端的Web应用程序,可以方便地部署到各种平台,如Windows(视窗操
作系统)等桌面平台,以及Android(一种主要用于移动设备的操作系统)等移动平台。由于
Web应用程序使用简便且功能丰富,现在的电子邮件、电子商务、在线词典等应用基本都基
于Web应用程序来完成,使得它成为了人们日常生活中非常重要的部分。
行为,便可有效地检测出其中的恶意行为。
中。并且,该方法所提取的Web应用程序行为仅限于单个的JavaScript函数调用的信息,并
没有实现对Web应用程序行为的全面监控,无法实现对复杂的Web应用程序行为的分析。
发明内容
程序行为的全面监控,有助于实现对恶意行为的检测。
中,所述行为记录包括所述待测Web应用程序调用的JavaScript函数的名称、接收参数和函
数调用栈信息;将所述待测Web应用程序的行为记录发送到恶意行为检测模块,并将所述待
测Web应用程序的行为记录写入行为日志文件。
发送到恶意行为检测模块,同时将上述行为记录写入行为日志文件,由此,可避免对Web浏
览器源代码的修改,实现简单且适用性较好,同时通过提取函数调用栈信息,能够获取多个
被调用的函数之间的关系,从而实现了对Web应用程序行为的全面监控,有助于实现后续对
恶意行为的检测。
数和HTML元素访问次数绘制待测Web应用程序实时行为图表,以实时显示所述待测Web应用
程序的行为记录。
JavaScript函数同名;在所述新函数中加入代码以获取所述JavaScript函数的名称和所述
函数的接收参数;利用所述JavaScript函数的错误处理机制获取所述函数调用栈信息。
为模式库,恶意行为检测模块将所述待测Web应用程序的行为记录与所述恶意行为模式库
中的每个恶意行为模式进行匹配,并将匹配成功的所述待测Web应用程序的行为记录确定
为异常行为;获取预先确定的正常行为模式列表,恶意行为确认模块将所述异常行为与所
述正常行为模式列表中的每个正常行为模式进行匹配,并将匹配失败的所述异常行为确定
为疑似恶意行为;如果所述疑似恶意行为的数量超过预设阈值,则发出恶意行为告警。
后将异常行为与正常行为模式进行匹配,以进一步确定出疑似恶意行为,当疑似恶意行为
过多时,可发出告警,由此,通过本发明实施例的Web应用程序行为提取方法所提取的Web应
用程序行为进行恶意行为检测,能够结合多个被调用的函数之间的关系,有效检测出诸如
探测攻击等攻击效果较为隐蔽的恶意行为,从而大大提高了恶意行为检测的准确性。
述疑似恶意行为加入所述正常行为模式列表。
中,所述父函数为直接或间接调用所述当前JavaScript函数的函数;所述正常行为模式为
在正常行为发生时,被调用的当前JavaScript函数的名称和所述当前JavaScript函数的各
级父函数的名称组成的字符串组,其中,在所述字符串组中,后一个字符串代表的函数为前
一个字符串代表的函数的父函数。
函数调用栈信息确定的所述JavaScript函数的父函数与所述恶意行为模式中所述当前
JavaScript函数的父函数的名称相同时,则所述待测Web应用程序的行为记录匹配成功,否
则所述待测Web应用程序的行为记录匹配失败;如果所述异常行为在所述待测Web应用程序
的行为记录中的JavaScript函数的名称和所述正常行为模式中的所述当前JavaScript函
数的名称相同,并且根据所述行为记录中的函数调用栈信息确定的所述JavaScript函数的
各级父函数与所述正常行为模式中所述当前JavaScript函数的各级父函数的名称相同时,
则所述异常行为匹配成功,否则,所述异常行为匹配失败。
附图说明
具体实施方式
图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
数和函数调用栈信息。
JavaScript函数重命名;定义新函数,新函数与重命名前的JavaScript函数同名;在新函数
中加入代码以获取JavaScript函数的名称和函数的接收参数;利用JavaScript函数的错误
处理机制获取函数调用栈信息。其中,JavaScript函数位于Web浏览器中。
名调用JavaScript函数时,可令Web应用程序调用新函数,同时,在新函数中根据
JavaScript函数的函数名调用JavaScript函数,从而可避免影响函数的正常功能。实现上
述步骤的代码如下:
给原JavaScript函数,并令该新函数返回原JavaScript函数的返回值,从而保证原
JavaScript函数的功能不受到影响。
括已有的HTML元素和之后新创建的HTML元素,其示例代码如下:
“arguments”变量转为数组,使得数组的每个元素都存放一个传入参数的值,之后再将这些
值转换为字符串并连接起来,组成一个完整的字符串,以便于记录。其示例代码如下:
函数的错误处理机制获取函数调用栈信息具体包括:首先定义一个try块(一种监视所有可
能发生异常的代码),在其中故意触发一个错误,如访问没有事先定义的变量,然后在对应
的catch块(一种处理异常的代码)中读取该错误所提供的当前函数调用栈信息,最后将函
数调用栈信息转为字符串并写入行为记录。其示例代码如下:
content_script.js脚本中实时读取待测Web应用程序的行为记录,从而进行实时恶意行为
检测。
施例中,以Chrome浏览器为例,在运行Chrome浏览器时加上--enable-logging参数,可令
Chrome浏览器将控制台中的内容写入Chrome浏览器用户数据目录下的chrome_debug.log
文件中。
发送到恶意行为检测模块,同时将上述行为记录写入行为日志文件,由此,可避免对Web浏
览器源代码的修改,实现简单且适用性较好,同时通过提取函数调用栈信息,能够获取多个
被调用的函数之间的关系,从而实现了对Web应用程序行为的全面监控,有助于实现后续对
恶意行为的检测。
用程序行为提取方法,还包括了将待测Web应用程序的行为记录显示出来的步骤。具体地,
图2中的行为绘制模块可根据待测Web应用程序的行为记录统计函数的调用次数和HTML元
素访问次数,并根据函数的调用次数和HTML元素访问次数绘制待测Web应用程序实时行为
图表,以实时显示待测Web应用程序的行为记录。
用次数和HTML元素访问次数数据传递到Web浏览器扩展的popup.js脚本中。在本发明的实
施例中,可将Web浏览器扩展的content_script.js脚本作为中间桥梁,将数据从Web应用程
序内部传递到浏览器扩展的popup.js脚本。因此具体传递过程可如下述步骤a和b。
HTML元素),用该计数HTML元素的属性值来记录所对应的JavaScript函数的名称和该函数
的调用次数。函数调用次数的统计过程示例代码如下:
及该元素的成员函数被调用的次数。其中,该HTML元素的唯一编号是在行为记录的提取过
程中根据该元素被加入DOM(Document Object Model,文档对象模型)的次序进行顺序编号
所得到的。该元素的标签名e即是
、等HTML元素标签名。在此可将某个HTML元素被访问一次定义为该HTML元素的某个成员函数的被调用一次,因此成员函数被调用的总次数
就是对应的HTML元素访问次数。
script.js脚本返回的数据。其示例代码如下:
时间,则每个表格元素表示一段时间内某个函数的调用次数或某个HTML元素的访问次数,
具体可使用表格内部的数字和柱形图像来表示。
与上一次获取的数据的差置于新表格的最右列,这样就实现了整个表格数据随着时间前进
而不断向左平移,从而形成Web应用程序实时行为图表。
60次,1号IMG元素元素访问次数为120次,具体的示例代码如下:
的行为记录。
序本身写入浏览器控制台的内容,可在每条行为记录的开头和结尾均加入标识字符串。因
此最终从chrome_debug.log文件中筛选出上述标识字符串之间的部分,即得到待测Web应
用程序的行为记录。
用程序的行为记录确定为异常行为。
为。
函数为直接或间接调用当前JavaScript函数的函数;正常行为模式为在正常行为发生时,
被调用的当前JavaScript函数的名称和当前JavaScript函数的各级父函数的名称组成的
字符串组,其中,在字符串组中,后一个字符串代表的函数为前一个字符串代表的函数的父
函数。
为记录中的函数调用栈信息确定的JavaScript函数的父函数与恶意行为模式中当前
JavaScript函数的父函数的名称相同时,则待测Web应用程序的行为记录匹配成功,否则待
测Web应用程序的行为记录匹配失败;如果异常行为在待测Web应用程序的行为记录中的
JavaScript函数的名称和正常行为模式中的当前JavaScript函数的名称相同,并且根据行
为记录中的函数调用栈信息确定的JavaScript函数的各级父函数与正常行为模式中当前
JavaScript函数的各级父函数的名称相同时,则异常行为匹配成功,否则,异常行为匹配失
败。
的类别和具体的检测要求等条件来确定,在此不限定为具体数值。
是否为恶意行为(如判断Web应用的源代码是否包含疑似恶意行为对应的恶意行为示例代
码)。如果Web应用程序的确含有告警所述的恶意行为,则可进一步对该Web应用程序进行处
理,如采取相应措施终止程序运行或阻止恶意行为等。
恶意行为,则可判断该待测Web应用程序的疑似恶意行为为正常行为,将其加入正常行为模
式库,能够避免再次将该正常行为误认为是恶意行为。
后将异常行为与正常行为模式进行匹配,以进一步确定出疑似恶意行为,当疑似恶意行为
过多时,可发出告警,由此,通过本发明实施例的Web应用程序行为提取方法所提取的Web应
用程序行为进行恶意行为检测,能够结合多个被调用的函数之间的关系,有效检测出诸如
探测攻击等攻击效果较为隐蔽的恶意行为,从而大大提高了恶意行为检测的准确性。
须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,
除非另有明确具体的限定。
接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内
部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情
况理解上述术语在本发明中的具体含义。
第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示
第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第
一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不
必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任
一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技
术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结
合和组合。
实施例进行变化、修改、替换和变型。