薛永大
中国民航大学电子信息工程学院 天津 300300
随着国民经济和网络基础设施的进一步发展和完善,网民数量大幅增加,互联网络已经深入到我国社会生活的各个层面。根据国家互联网应急中心(CNCERT/CC)2011年9月发布的《CNCERT互联网安全威胁报告》,仅2011年9月,境内感染网络病毒的终端数约为626万个,境内被篡改网站数量为2227个,其中被篡改的政府网站数量为181个。另据中国反钓鱼网站联盟(APAC)发布的消息,联盟累计认定并处理钓鱼网站66360个。各种网页木马和网络钓鱼诈骗行为严重危害了网络用户的个人隐私和财产安全。
为了保证互联网服务的安全,迫切需要对网络中的网页木马和钓鱼网页进行实时的检测和防御。这可以通过在网络运营商的服务端对恶意网页的访问进行阻断来实现。通过在运营商网络接口处部署检测引擎,获得网页的信誉信息,当用户访问恶意网页时,业务监控网关可以根据网页的信誉信息拦截恶意网页,从而保障用户的安全。基于此,本文设计了一个网页信誉引擎,可以实现对挂马网页和钓鱼网页的检测,输出网页的信誉信息。
木马程序是指表面上有某种有用的功能,实际上隐含恶意代码的计算机程序,通常依附在其它有传播能力的病毒上或者通过人工植入的方式传播,进驻宿主机器,接受植入者的指令,搜集用户隐私信息,进行盗号等危险操作。
网页挂马是指攻击者在窃取获取网站或者网站服务器的部分或者全部权限后,在网页文件中插入木马程序,这些木马主要是利用系统漏洞及第三方软件漏洞,用户访问被挂马的页面时,如果系统没有更新木马中利用的漏洞补丁,则会执行木马程序。
网络钓鱼主要是指利用互联网进行的一种欺诈行为。它通过社会工程学或欺骗技术诱骗用户提供其个人账户和密码等个人隐私资料,获得用户的某种身份信息,进而窃取用户的个人财产。
网络钓鱼的种类多种多样,但是就其攻击手法而言,可以将其实施过程分为诱骗阶段和信息获取阶段,在诱骗阶段,攻击者通常使用邮件或即时通讯软件向用户发送中奖等虚假信息诱导用户点击链接,这个链接通常指向攻击者精心设计的一个仿冒品牌网站,当用户输入个人账户密码等信息时,就会导致信息泄露。
系统目标是实现对互联网上网页的检测,检测网页是否挂马,是否是钓鱼网页,输出网页的信誉结果,以提供给网关设备对恶意网页实时阻断,保障互联网用户的安全。
系统的输入是来自互联网的镜像流量,检测的网页主要针对HTTP访问业务,由于基于HTTP协议传输的文件可能有多种格式,网马和钓鱼检测模块可以根据其主要针对的文件类型进行任务分流,实现对分析任务的检测,并且将检测结果输出到数据库,具体来说要完成以下功能需求:
(1) 对镜像网络流量中的 HTTP数据流还原出文件及其对应信息。
(2) 深度识别还原出的文件类型,根据检测模块配置的检测类型调取相关模块检测。
(3) 检测模块实现对任务的检测功能,并返回检测结果。
(4) 检测结果按照需要反馈至数据库。
针对上一节的功能需求,把系统按照功能需求划分为流量还原模块、任务识别分发模块、检测模块、结果接收反馈模块和数据库这五部分,整个系统的流程框图如图1所示。
现网的镜像流量经流量还原模块还原出使用HTTP协议传输的文件和其对应的信息,经由任务识别分发模块识别任务类型并调用合适的检测模块进行分析,检测模块把任务的分析结果发送给结果接收和反馈模块,该模块连接数据库并把结果更新到数据库中。
图1 系统流程框图
还原模块由数据包获取子模块抓取镜像来的 TCP流量数据包,识别承载在TCP流量上的应用层数据,提取出HTTP协议传输的文件和其对应信息。
基于HTTP协议可以传输多种类型和大小的文件,还原后的文件中可能包含许多无效的文件,例如,访问网站错误时的响应码页面、word文档和大小为几百字节的文件,这些网页没有实际的检测意义,并且频繁的文件读写工作加大还原模块的负荷,影响其处理性能。因此,在还原模块采用了根据文件类型、后缀名和文件大小的过滤机制,只有同时满足这三种过滤条件,才会保存。用户可以根据自身的网络模型,配置适合自身环境的过滤区间,通过这种处理方式,减少还原模块的压力。
任务识别分发模块是一个调度模块,此模块主要进行检测任务的分配,每个检测模块的检测类型用户可以通过配置文件配置。
模块首先遍历还原所保存文件的信息,根据信息将文件加载到内存,放入到缓存队列里面,然后删除信息文件,打开样本任务,判断其类型,根据配置文件的内容,调用合适的分析模块扫描。
调度规则为:如果一个检测任务只是一个分析模块的检测类型,则调用该模块进行扫描;如果同时是两个分析模块的检测类型,先调用网马检测模块扫描,如果扫描结果不是正常网页,则返回结果,扫描流程结束;如果扫描结果是正常网页,再调用钓鱼检测模块扫描。
此模块设计使用黑名单库和网马特征库相结合的方式检测网页木马,黑名单库中包含确知的挂马网页对应URL。系统采用的黑名单匹配基于这样一个思想:对于一个网页,如果其对应的URL或网页内链接的URL在黑名单库中,就判定其为挂马网页。网马特征库由木马的特征规则构成,每一条特征对应一个威胁值。
网马检测模块的处理,首先从任务分发模块获得检测任务,再对输入文件进行HTML解析,提取JS脚本及URL链接,解密经过加密的JS脚本。然后进行黑名单匹配,如果匹配上黑名单就返回结果,流程处理结束;如果没有匹配上,就进行子链接的匹配,如果此次匹配上,也返回处理结果,流程结束;没有匹配上,就进行特征码匹配检测,匹配上多条特征规则,就把相应的威胁值相加,整个流程处理完毕,返回检测结果。
钓鱼模块从任务识别分发模块获取任务后,首先进行域名的白名单匹配,如果匹配上白名单就返回检测结果,如果没有匹配上域名白名单,再进行域名黑名单过滤,如果匹配上黑名单,反馈检测结果,如果没有匹配上域名黑名单,再进行钓鱼模板库匹配,将匹配结果反馈给结果发送模块。
此模块主要负责缓存检测模块上报来的结果信息,连接数据库,把结果信息更新到数据库中的相关表项中。
当接收线程收到检测结果后,把结果插入接收队列,查找缓存中是否有该结果中 URL的信息,如果没有就加入缓存,同时发送结果至数据库中;如果缓存中已有该 URL的结果,就比较 URL状态是否改变,如果有变化就更新本地缓存信息,同时更新数据库中URL的状态,如果URL状态没有变化,则不做更新。
针对日益严峻的网络安全形势,本文研究和设计了一个基于HTTP协议还原的网页信誉的检测系统,在对功能需求分析的基础上,把整个系统分解为流量还原、任务识别分发、分析检测和结果接受反馈这几个功能相对独立的子模块,并对各子模块的关键数据处理流程进行了详细设计,并对方案的可行性进行了分析。
在研究设计的过程中,有一些问题值得进一步研究:1)木马特征库和钓鱼模板库是静态特征码匹配检测中的关键部分,面对新的攻击手段和伪装技术,不断更新、积累更多的木马检测特征和钓鱼模板是提高检测准确率、减少漏报和误报的基础;2)流量还原模块为检测系统提供输入,在网络传输中由于网络的延迟或路由器的限制,有大量的超时重传报文、多线程下载和高并发连接的数据传输,这些都对还原模块提出了更高的要求,需要持续的关注研究。
[1]国家互联网应急中心CNCERT互联网安全威胁报告[R].2011.
[2]罗守山,陈萍,皱永忠.密码学与信息安全技术[M].北京:北京邮电大学出版社.2009.
[3]李顺东,覃征,贾晓琳等.一种特洛伊木马的检测算法[J].小型微型计算机系统.2003.
[4]戴敏,黄亚楼,王维.基于文件静态信息的木马检测模型[J].计算机工程.2006.
[5]张慧琳,诸葛建伟,宋程昱等.基于网页动态视图的网页木马检测算法[J].清华大学学报.2009.
[6]杜跃进.在线身份窃取攻击[J].网络安全技术与应用.2005.
[7]倪天华,朱程荣.网络钓鱼防御方法研究[J].计算机技术与发展.2008.
[8]张卫丰,周毓明,许蕾,徐宝文.基于匈牙利匹配算法的钓鱼网页检测方法[J].计算机学报. 2010.
[9]成都市华为赛门铁克科技有限公司.钓鱼网页检测方法及设备.中国.CN201010620647.6[P].2011.