符运辉
摘要:现阶段绝大多数违法犯罪活动依托境外网站实施,因此国际出入口具有大量违法网站相关数据,为了提高有关部门网络安全监测力度,针对国际口HTTP POST报文数据进行监测,通过自动数据训练、学习,提取违法网站的行为特征,实现报文数据的自动分类识别,积累违法网站行为库;同时,结合搜索引擎报送的定制化分类结果数据、网马识别信息,进行综合分析、深度挖掘,实现情报线索由人工挖掘向系统自动产生的转变,为构建主动发现、主动出击的情报导侦工作体系提供技术支撑。
关键词:HTTP POST报文数据分析;自动分类识别;违法网站行为库;自定义关键词库;
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2019)03-0003-03
进入21世纪后,随着计算机和网络的普及,网络犯罪呈现井喷之势。据统计,近年来,利用计算机和网络的犯罪以每年30%的速度递增,每年给我国带来的直接经济损失过亿,有近2/3的网络用户曾成为网络犯罪的牺牲品。网络犯罪给人民正常生活带来巨大危害,为国家造成了巨大损失,严重影响社会安定团结。
计算机网络犯罪具有隐蔽性、技术性、复杂性、跨国性、对象广泛等特点,各类技术手段获得多种数据来源,将海量数据中的有价值数据进行分类识别所需要的技术条件、硬件要求都比较高,耗费人力物力极大。目前相关部门掌握了海量报文数据,但由于情报挖掘的自动化方式的缺失,从中自动产生有价值的情报信息较为困难。
针对有关部门获取的HTTP POST数据进行训练、分类、识别,自动分类筛选出网络攻击、淫秽色情、网络赌博等违法犯罪相关数据,结合搜索引擎报送的违法网页数据、网马识别信息等,经过线索分析预警,进一步关联碰撞、统计分析,自动整理发现违法犯罪情报线索,从而实现从数据到线索的转变,提高主动侦察、主动打击的能力。
本文所研究的专用脚本发现算法,根据已有的报文,分析出报文中的关键参数与报文专用非专用类型信息的关联,提取出专用脚本关键词库(已有自定义的关键词库),使用词库实现相关算法对报文是否专用进行判断,并给出判断的把握程度,实现数据自动归类。
1 HTTP POST报文预处理
1)原始输入为post报文与标签,标签为post报文所屬域名的类型,post报文内容如下:
使用消息摘要算法输出作为该报文的唯一标识。根据报文的标识可统计报文在不同网站的使用情况判断报文是否为专用报文。若报文2.1在已搜集的数据中,标签值为1的网站中使用了400次,标签值为2的网站中使用了100次,由于400/500>70%(在本项目中,一个报文若稳定的出现在某一类型网站中超过70%比例,则该脚本将被为该类型专用报文),该报文为类型1的专用报文。
3)根据以上所叙述内容,可以报文为输入,得到以下结构的数据:
表2中第一列为报文的标识,第二列为报文的关键字集合,第三列为专用标签,1表示该报文为专用报文,0表示非专用报文。根据专用报文信息提取专用脚本常用词库,首先统计所有脚本中的关键字出现次数按从大到小提取前6000个关键字,而后根据专用脚本中出现次数排序取前4000个关键字,4000个关键字作为专用报文字典。
根据专用报文字典,将每一条报文映射成一个向量。假设字典为:
某一条报文的关键字集合为as ks heart,那么该条报文映射成的向量为:
向量中的每一列都对应着字典中的一个字,报文中存在该关键字则填1,否则填0。将表格2专用信息中所有报文转换为向量后,即可用于学习算法训练模型。表6 图片开运算效果
2 学习算法
每个报文的向量维度在本项目中均为4000维,即专用脚本词库中常用词的数目,第三列中1表示专用,0表示非专用。得到该数据后即可用以训练机器学习模型并用以预测。在本项目中使用了30000报文用以训练,专用脚本和非专用脚本比例为1:1,10000报文用以测试分类模型的效果。专用脚本与非专用脚本比例为3:2。表现较好的模型为逻辑回归模型、支持向量机模型、随机森林模型,以下为其具体评价指标。
3 项目文件说明
1)在specialScriptDetection文件夹下,有extractKeyWord.py和main.py两个文件。extractKeyWord.py主要任务为根据表2专用报文信息生成表3学习算法的输入,文件中包含两个函数get_wordbag、script2vec。Get_wordbag以表2为输入,生成专用脚本关键词库,以下为该函数输入输出的形式。
2)script2vec函数的输入是get_wordbag函数输出的专用脚本关键词库与表格2.2中所提的关键字集合列。关键词库与关键字集合均以字符串列表的形式传入。输出表格3.1中所提的报文向量。Main.py文件包含了书写的学习模型类mlclf,该类初始化使用报文向量和标签,并将数据分割为3:1作为训练数据和测试数据,成员函数包含调用第三部分所提模型的代码,一经调用会使用75%的数据用以训练,25%的数据用以测试模型的效果,并将效果打印在命令行中。若需要获取一个报文预测结果的把握程度,可以使用model.predict_proba(script_vector)获取相应的把握信息,model是各种模型的代指,在本项目中model为{lr,svc,rf}中的元素。
4 总结与展望
本文通过对逻辑回归、支持向量机和随机森林三种模型测试,依次对捕获的http post报文进行了预处理,其准确率达到83%-85,召回率达到了87%-88%。进一步提高了机器学习的准确,减少了大量人工对数据的一一分析处理。实现情报线索由人工挖掘向系统自动产生的转变,为构建主动发现、主动出击的情报导侦工作体系提供技术支撑。
参考文献:
[1] 吕国英,任瑞征.算法设计与分析[M].清华大学出版社,2009.
[2] 成洪静,陈立潮,张英俊,等.基于SVM的多分类器构造算法的研究[J].计算机技术与发展,2008.
[3] [沙特]M.H Alsuwaiyel.算法设计与分析[M].方世昌,译.电子工业出版社,2005.
[4] 严蔚敏,吴伟民.数据结构[M].清华大学出版社,1997.
[5] 杨启帆,方道元.数学建模[M].杭州:浙江大学出版社,1999.
[6] 赵静,但琦.数学建模与数学实验[M].北京:高等教育出版社,2010.
[7] 孙强. 基于ASP.NET 的专题网站的研究与设计[D]. 东北师范大学,2006.
[8] 周佩德.数据库原理及应用[M].北京:电子工业出版社,2004.
【通联编辑:唐一东】