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 函数的参数值,并将参数值赋给一个临时变量;然后获取变量的的字符串长度,通过多个