恶意网址甄别中的机器学习特征工程

恶意网址是指恶意种植木马、病毒等恶意程序在网站内,通过伪装的网站服务内容,诱导用户访问该网站,一旦进入这些网站,便会触发网站内种植下的木马、病毒等程序,导致访问者计算机被感染,面临丢失帐号或者隐私信息等危险。因此,恶意网址检测,已经成为机器学习领域一个非常有价值的应用与研究方向。
日前,跨象乘云™ 发布了《恶意网址甄别 - 人工智能垂直领域工程项目案例分享》演示视频。本案例将使用线性插值法、独热编码等手段,对原始数据进行预处理,并通过随机森林算法模型实现恶意网址甄别,最后演示如何通过特征工程,进一步优化模型性能指标,实现规避恶意网址,提升浏览安全。

同时,通过案例演示我们可以了解到,对于恶意网址甄别而言,特征选择往往是非常关键的节点。同时,特征工程也是机器学习以及模式识别领域的关键环节,分类算法模型之间的差异性,对最终任务的影响是要远远小于选择良好特征对最终结果影响。本文就恶意网址甄别,根据《Malicious URL Detection using Machine Learning: A Survey》对常用的恶意网址识别特征进行归纳。

1. 黑名单特征
更改顶级域名
根据IP地址
目录的结构相似性
替换查询字符
模糊匹配
2. 词汇特征
URL长度
主机/顶级域名的长度
特定字符的数量
是否包含IP地址
path长度
文件名长度
传参个数
3. 主机特征
Response Header
IP地址属性
WHOIS信息(域名注册时间、供应商信息等)
地理位置
请求速度
DNS信息
4. 内容/上下文特征
HTML 信息
document长度
平均词长度
单词数量
不同词数量
每行词数量
空字符数量
是否用了字符串连接操作
非对称HTML标签数量
<link href="...">的数量
隐藏对象的数量(例如iframe和div)
iframe的数量
size=0 的 iframe的数量
行数
超链接的数量
JavaScript 信息
eval() unescape() exec() search() 函数的调用数量
保留关键字在字符中比例
长字符串数量
shell 代码展示的概率
字符串直接赋值的数量
JS修改HTML DOM的数量
JS事件的数量
可疑对象的数量
JS代码的Entropy
Visual 信息
文本块相似度衡量
图像相似度衡量(可以是Deep Features + Cosine Similarity)
5. 其他特征
网页PageRank值
敏感词出现次数(例如:“转账”、“汇款”、“支付”等等)
友链
参考链接:
https://arxiv.org/pdf/1701.07179v2.pdf
https://zhuanlan.zhihu.com/p/38470202