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 标签.
   293   294   295   296   297   298   299   300   301   302   303