Page 302 - 《软件学报》2021年第9期
P. 302

2926                                 Journal of Software  软件学报 Vol.32, No.9,  September 2021

         4    HADMW 检测方法

         4.1   检测方法流程
             根据上述提出的 12 个页面特征、6 个 JavaScript 函数参数特征和 7 个 Web 会话特征,结合机器学习,我们
         提出了融合多种特征的恶意 URL 检测方法.恶意 URL 检测方法的整体示意图如图 9 所示:首先,通过数据采集
         器模拟客户端环境,自动化地对存活的待检测网站发起会话通信,记录整个会话过程中关键函数代码的执行和
         页面重定向跳转过程等信息,将其保存在本地会话日志记录中;根据待检测网站的页面源代码和会话日志记录,
         分别提取页面特征、JavaScript 函数参数特征和 Web 会话流程特征,并对待检测网站的特征进行标准化处理,
         得到待检测网站的特征组合序列;然后将其输入到已经经过训练的分类器模型中进行检测,得到待检测网站的
         分类结果.



















                                      Fig.9    Diagram of detection approach
                                          图 9   整体检测方法示意图

             为了尽最大化地触发恶意 URL的攻击,诱导恶意 URL 发送包含恶意代码的页面,我们配置客户端请求的用
         户代理字段,模拟了 10 种经常被攻击的客户端环境,包括 Windows XP、Windows7 操作系统搭配 Internet
         Explorer 6.0,7.0,8.0 版本浏览器、Chrome 45.0.2623.87 版本浏览器、MacOSX 10_6_8 操作系统搭配 Safari 5.1.1
         版本浏览器和 Linux 系统搭配 Chrome 45.0.2623.87 版本浏览器.这些模拟客户端环境覆盖了大多数正常用户的
         常用客户端环境.相比于使用真实客户端环境进行动态检测,我们使用模拟的浏览器环境解析和执行页面代码.
         我们将提取的页面特征、JavaScript 函数参数特征和 Web 会话特征组成待检测网站的特征组合序列.如果恶意
         URL 针对不同类型的客户端环境响应不同的代码,则在不同环境下会得到不同的特征组合序列.因此,每个待检
         测网站在 10 种模拟客户端环境下共生成 10 条特征组合序列.我们认为:有任一种客户端环境的特征组合序列
         被分类器判断为恶意 URL,就将待检测网站分类到恶意 URL 集合.
         4.2   特征提取方法
             为了准确地提取到本方法提出的页面特征、JavaScript 函数参数特征和 Web 会话流程特征,我们使用了开
         源客户端框架 Thug     [19] .Thug 是一款低交互式客户端采集器,旨在模拟浏览器的行为以检测恶意内容,可以对页
         面重定向跳转行为进行跟踪,同时对会话过程中的服务器响应头等内容进行记录.
             (1)  改写扩展 Thug
             我们关注在代码动态执行过程中 JavaScript 关键函数的参数值,因此我们在 Thug 提供的开放接口的基础
         上,分别对动态执行函数、动态生成函数、escape 和 unescape 函数进行定制化改写,实现在动态调用 JavaScript
         函数的过程中记录和匹配函数的参数.如图 10 所示是改写动态执行函数 eval 的代码:首先,根据规则重新定义
         eval 函数,获取传入 eval 函数的参数值,并将参数值赋给一个临时变量;然后获取变量的的字符串长度,通过多个
   297   298   299   300   301   302   303   304   305   306   307