Page 298 - 《软件学报》2021年第9期
P. 298
2922 Journal of Software 软件学报 Vol.32, No.9, September 2021
数大于 1;而在客户端环境探测总数上,大约 73%的正常页面都没有进行客户端环境探测,而 50%以上的恶意页
面都会进行环境探测.除此之外,相比于正常页面,恶意页面中还会包含较多的控件标签、触发事件函数和
VBScript 敏感字符串.
因此,我们共选取了 12 个页面特征,这些页面内容特征中包含了相关研究的已有特征和扩充的新特征,见
表 1,其中,以*标注的为 HADMW 扩充的新特征.
Table 1 ESxtractedelected page features
表 1 选取的页面特征
编号 特征名称 特征描述
恶意代码将用户重定向跳转到不同的恶意 URL,实现隐藏恶意服务器.
例如:① 〈meta http-equiv=“refresh”;url=“http://malicious.com”〉;
*
1 客户端重定向总数
② location.href=“http://malicious.com”;
③ window.open(“http://malicious.com”)
攻击者检测用户客户端环境进行差异化的精准攻击,
*
2 客户端环境探测总数
例如,通过 navigator.userAgent 获取环境信息
控件标签常用于引入的包含漏洞的控件对象,
*
3 控件标签总数
例如〈Embed src=“malware.swf” hidden=ture〉
触发事件用于事件发生时执行绑定的代码,触发事件常与恶意函数代码进行绑定
*
4 触发事件函数总数
执行,例如〈source src=“music.mp4” type=“video/mp4” onerror=alert(‘warning!’)〉
VBScript 敏感 IE 浏览器使用范围广且存在较多安全问题,攻击者
5 *
字符串总数 通过恶意 Vbscript 脚本触发特定漏洞进行攻击
字符串操作符 恶意代码使用字符串操作符和操作函数
6
和操作函数总数 对字符串进行拼接和分割实现混淆
7 特殊字符总数 字符串混淆后包含较多的“\x”,“%u”和“|”字符
混淆后的恶意代码使用较多的空格符,空格符占页面比更高,
8 空格符占比平均值
计算会话过程中空格符占每个页面比例的平均值
9 隐藏和小面积标签总数 通过隐藏标签和小面积标签在页面中注入外部恶意代码
10 控件函数总数 恶意代码利用 ActiveXObject 函数创建有漏洞的控件对象
11 页面字符串平均长度 恶意代码经过混淆编码后的恶意代码长度更长
12 包含外部链接标签总数 恶意页面通常使用 iframe 等标签引入外部恶意链接
下面将对这些新特征进行重点解释.
(1) 客户端重定向总数
为了防止被安全软件检测和分析,攻击者通常会在页面中插入重定向跳转的代码,而且利用中转网站多次
的重定向跳转,从而实现隐藏最终的恶意服务器.我们对存活恶意 URL 的页面代码进行人工分析发现,恶意
URL 采用 3 种方式自动重定向跳转,包括恶意代码通过 Meta 标签设置自动刷新 refresh 属性的时间进行自动重
定向、将恶意 URL 的地址赋值给 location 对象的 href 属性以及利用 window.open 函数打开一个新的浏览器窗
口的方式跳转到恶意 URL.这些方式都可以实现自动 d2 将客户端重定向跳转恶意 URL,因此,我们选取客户端
重定向跳转代码使用的总数量作为特征.
(2) 客户端环境探测总数
为了实现精准化攻击特定客户端环境的用户,攻击者会精心构造恶意代码,利用 JavaScript 脚本自带的
“navigator.userAgent”对象和自定义的控件函数来判断用户的环境是否满足攻击条件.恶意代码获取用户的客
户端浏览器版本信息,然后通过多次条件匹配进行判断,只将满足攻击条件的用户强制重定向跳转到真实的恶
意 URL.而对于不满足攻击条件的用户,恶意代码则重定向跳转到其他正常的网站.同时,越来越多的攻击者利
用现有的检测浏览器版本的 JavaScript 库 PluginDetect 对用户的客户端环境进行探测.攻击者利用现有的
JavaScript 库来检测浏览器版本等信息,可以使恶意代码更加容易逃避检测.因此,我们将页面源代码中客户端
环境探测代码使用的总数量作为特征.
(3) 控件标签总数
控件标签是一类用于引入外部控件资源的标签,恶意页面利用控件标签引入包含漏洞的外部控件资源,从
而获取系统的高级权限.我们选取了控件标签的数量作为特征,关注的控件标签包括 Object 标签和 Embed 标签.