论文网
首页 理科毕业石油矿藏正文

基于云架构的网站防篡改在线检测平台设计与实现

  • 投稿投研
  • 更新时间2015-09-29
  • 阅读量874次
  • 评分4
  • 44
  • 0

陆昊

(上海市信息安全测评认证中心上海 200011)

摘 要 网站篡改是最常见的网站攻击手段之一,一旦发生会严重影响网站运营。针对传统的网站防篡改检测技术的不足,本方案采用了基于云平台的设计方案,并从系统框架、关键技术等方面进行了阐述。通过实验验证,本方案提高了检测识别精准度和速度。同时由于借助了云架构,特别适用于大规模网站群的检测。本文设计的平台既可以为各公司、企业和政府部门的门户网站提供篡改检测服务,也可以为行业主管部门和信息安全监管部门实现管辖区域内各单位门户网站的24小时不间断监控,具有很好的社会效益。

教育期刊网 http://www.jyqkw.com
关键词 网站防篡改,在线检测,云架构设计,信息安全

doi:10.3969/j.issn.1674-7933.2015.05.003

作者简介:陆昊,男,1980 年生,本科,工程师,主要从事及研究领域:信息安全,Email :luhao@shtec.org.cn。

0 引言

网站早已成为政府部门、事业单位、企业用来发布资讯和提供相关的公众服务的重要途径,因此面临着各种来自互联网的威胁。网站篡改属于最常见的网站攻击手段之一,指是恶意破坏或更改网页内容,使网站无法正常工作或出现黑客插入的非正常网页内容的情况。根据国家互联网应急中心发布的年度统计数据,2014年我国境内被篡改的网站数量为36 969个,较2013年的24 034个大幅增长53.8%[1]。由此可见被篡改网站数量一直居高不下,网站篡改带来的危害很大。

传统方式是在应用服务器的部署网页防篡改产品,但是由于此类产品成本较高,部署在网站服务器上也会造成服务器性能损耗,而且改变了网页发布流程,给使用者带来不便,所以具有一定的局限性,不适合大规模网站部署。网站篡改在线检测可以在不增加服务器负载情况下及时发现网站篡改攻击,大大降低网站篡改攻击带来的危害。

目前常见的网站篡改在线检测的方式包括人工检测、页面快照比对、通过木马检测和基于元搜索引擎技术检测等。人工检测是人工定期查看页面情况,劳动强度大,检测周期长。页面快照比对是将检测的网站所有页面通过类似搜索引擎抓取网页快照的方式将网站保存下来,然后设置轮询机制,通过每次访问的结果和快照比对,进行网页是否被篡改的判断,检测效率不高,而且无法区分网站是更新还是遭到篡改,需要人工判断。通过木马检测判断网站是否遭到篡改,是先行对网站进行常见木马、后门程序的进行扫描,按照扫描结果进行筛选,只对中木马和后门的网站进行检测。基于元搜索引擎技术的篡改网站发现是通过集合多个搜索引擎,比如:百度、谷歌、雅虎等,对构造的搜索条件进行查询,比如将“hacked by”作为关键字,对结果进行处理和识别,最终找出被篡改的网站[2]。木马检测和基于元搜索引擎技术主要是对运用在海量网站(比如整个国家和地区内所有网站)的检测中,存在一定的漏报情况,一般只作为网页防篡改检测的辅助手段。

本文针对上述网站防篡改在线检测技术的缺点,结合已有的技术的优点,重点在提高检测效率的同时保证较低的漏报率和误报率方面做出研究,并在实践中进行了初步尝试,供读者参考。

1 网站检测平台的分析与设计

本方案将网站检测平台部署在云平台上,一方面可以将应用开发集中在检测业务本身,数据的备份、扩展和同步,以及安全防护等工作交由更专业的云平台去解决,另一方面监测互联网应用需要有足够的弹性来解决突发需求,使用云方案,可以迅速创建或停用服务器实例来满足运算的弹性需求,节约运维成本。

1.1 系统框架设计

本方案以云平台为基础,划分出四层架构:业务应用层、管理应用层、基础应用层、SaaS层,同时抽象出URL库、特征库为作为数据支撑。设计系统框架示意图见图1。

1.2 技术路径

在具体实现过程中,重点解决了以下三项关键技术:

1) 运用云架构设计提高检测速度和运行稳定性本方案采用Hadoop分布式数据处理架构,借助HDFS(Hadoop Distribute File System,Hadoop文件分布式系统)和MapReduce(映射规约算法)框架构建分布式计算平台[3]。HDFS用于每个网站URL库、特征库和检测样本库的集中管理,为每次检测任务提供数据支持,也为后续的数据挖掘工作做准备。MapReduce负责统一管理平台和各虚拟检测节点之间的调度和监控任务,核心操作是Map(映射)和Reduce(规约)操作。首先根据设定任务由管理单元从URL库中获取待检测的URL序列,任务单元将URL序列平均分解为多个数据片,然后根据任务量建立启动若干个检测节点。然后各VPS节点完成检测任务后将结果交由任务单元进行复制、分组、排序等操作后,执行规约操作,形成最后的检测结果,具体MapReduce调度流程见图2。

这种构架在获得很高的计算能力的同时具备很强的可扩展性和容错性,一旦某一个节点发生故障或者发现节点资源不够可以很快的增加新的虚拟节点。

2) 动态页面的分类特征值提取技术

目前大部分网站均采用动态页面,所有对网站的页面提取必须符合动态页面的特点。曾伟辉提出利用脚本执行引擎采用基于对象的切片算法实现了支持AJAX的网络爬虫系统设计[4]。本方案在此基础上通过在检测节点的浏览器模拟的方式对HTTP的响应报文进行解析,分类提取出网页各元素集合,包括:HTLM文本、JavaScript脚本、CSS样式(文字、字体、样式)以及页面中的对象(Flash、Applet等),然后通过对每个元素使用单向散列函数生成独立的特征值的方式生成特征值集合。

3) 网页篡改识别技术

在检测出页面发生变化后需要判断是网页正常更新还是恶意的篡改行为,因为两者都会导致网站页面各类元素发生变化。结合对笔者工作单位近十年来协助处理的网页篡改真实的安全事件案例记录分析发现恶意的网页篡改通常具有如下特征中的一种或者多种:变化发生时间特征(是否发生在非工作时间、变化发生间隔是否低于平均间隔时间)、对页面的各类元素改动比例较大、变化后的页面变化的文本部分带有“cracked by”等关键字、scr标签发生变化等。在此基础上本文提出基于网页篡改攻击特征的判断网页变动是否属于篡改行为,具体算法如下:

首先根据特征值判断出是否满足各类条件,判断结果为布尔值类型的变量T,例如:如果网页变动时间在非工作时间,时间条件的T值为1,否则为0。然后累加所有T值为1对应条件的权重值Q,最终报警变量Warning的值就是累加的结果。最后根据Warning值的大小判断该次页面变动风险等级(高、中、低)。其中Q值和Warning的报警级别判断阈值可以结合实际运行效果不断调整,通过信息增益率来选择Q值,特别是针对不同类别的网站通过聚类算法(如:K-means算法、SOM算法、FCM算法等)区分Warning的报警级别判断阈值[5]。目前由于网站页面篡改属于小概率事件导致采样存在一定困难,而且每一个类型的检测对象具有不同的特性,所以本方案暂时采用直接赋值的方式,当检测平台的样本量积累到一定量后,对赋值算法部分进行完善。

2 网站检测平台的实现

本方案将网站检测平台部署在云平台上,结合虚拟化技术为每个监控对象分配独立的监控资源,并通过统一的管理平台来实现多虚拟检测节点的调度、监测和数据支持。本方案另外设计了云服务抽象接口层,通过对该层进行适配来确保对主流云服务平台的兼容。

常见的云供应商提供服务器租用主要有两种模式:第一,固定的云服务器租用,与传统的服务器租用无太多区别;第二,采用弹性伸缩服务的服务器租用,用户可以根据业务需求和策略,自动调整其弹性计算的管理服务,即业务增长时自动增加虚拟服务器实例,并在业务下降时自动减少虚拟服务器实例[6]。考虑到网站篡改检测服务工作属于周期性任务,而且需要根据后续检测对象的增加不断增加新的虚拟服务器资源,本方案采取弹性伸缩服务模式。

结合云平台特点,篡改检测平台设计为一个集中部署的管理平台和多个分布式部署的虚拟检测节点的架构。

2.1 管理平台

统一管理平台设计为四层架构:租户服务层、基础服务层、资源管理层和云抽象层,同时设计了资源库、样本库两个数据库和一个应用安全子系统作为业务支撑,功能结构图见图3。

2.2 检测节点

虚拟服务器主要为虚拟化的检测节点,其模块主要包括:页面抓取模块、页面分析模块、特征值处理模块、攻击识别模块和通信模块。其工作原理图如图4所示。

网页抓取模块利用网络爬虫技术根据目标的初始URL对网站结构进行爬行,抓取网站的URL和网页代码。页面分析模块将抓取的内容进行分类,提取出网页各类元素集合,包括:HTLM文本、JavaScript脚本、CSS样式(文字、字体、样式等)、链接、页面中的对象(Flash、Applet等)。特征值处理模块负责依据MD5算法对页面提取结果计算摘要值,实现网页各类元素特征值的生成和页面特征值比对。攻击识别模块将获取特征值比对结果后,按照攻击识别算法完成攻击识别任务,生成报警信息。通信模块负责检测节点和统一管理平台之间的通信,完成指令、检测数据的传递。

3 系统测试及结果分析

本方案是一个可扩展的开放平台,已完成内部测试版本。基于Java开发,所有节点和管理平台均运行于Ubuntu Server 14.04(64位),数据库采用 MySQL5.6.25,JDK版本为1.8.45(64位)。

为了论证平台的设计方案的有效性,我们做了两组实验,分别从检测性能和检测精准度方面进行了测试。选择的检测对象是某一行业内50家单位门户网站,包括3家区级单位、12家镇级单位和35家街道级单位。

3.1 实验一:测试检测性能

方案一:租用选择6台虚拟服务器,每台配置为4核心CPU和4GB内存,网络带宽为峰值100M。其中1台作为主控端,5台作为检测节点,将50个检测对象按照先进先出的策略分配到5个队列中,进行检测。方案二,租用按需服务向云平台为每个检测对象动态申请独立的资源建立VPS虚拟服务器,并行处理,虚拟服务器完成任务后自动注销,释放资源。

实验结果见表1,在单个网站的检测平均耗时指标上方案一和方案二接近。在总体检测耗时指标上,虽然方案一同时开启了5台服务器同时检查,但总体时间仍无法和方案二的全部任务同时开启相比,效率相差将近7倍。而且在方案二的处理过程中由于三家区级单位网站规模较大,在检查到其它节点的检测节点任务完成后将区级网站的检测任务进行的二次分配,进一步缩短了检测时间。

3.2 实验二:测试检测精度

根据实验一中的方案二,对50家单位的网站以1小时为时间间隔进行24小时不间断检测,历时180天,累计共检测283万余页次,实验结果如表2所示。其中检测出页面级的变动6 251次,经平台判定为篡改的次数一共3次。如果通过人工方式,无法对283万页次进行检测,即便是采用机器比对自动检测出页面变化,如果没有采用篡改识别算法,人工对变动情况进行判断将也是个繁琐的过程。采用了篡改识别算法只需要对3条报警级基本较高的记录进行人工复核,经验证3条记录均为有效告警,大大提高了网站检测效率。

4 结束语

网站篡改在线检测平台设计要求高、难度大,同时由于经验、经费和人力等资源限制,本文重点是在解决传统基于客户端的网页篡改检测不足和运用云服务平台的提高大规模网站检测效率做了初步尝试。经测试验证,利用云计算思想改进的网站篡改在线检测平台检测结果更加精确、迅速,具有很强的实用价值。

教育期刊网 http://www.jyqkw.com
参考文献

[1]国家计算机网络应急技术处理协调中心. 2014年中国互联网网络安全报告. http://www.cert.org.cn/publish/main/upload/File/2014%20Annual%20Report.pdf.

[2]诸葛建伟, 袁春阳. 基于元搜索引实现被篡改网站发现与攻击者调查剖析[J].信息网络安全, 2009, (10).

[3]陈康, 郑纬民. 云计算:系统实例与研究现状[J]. 软件学报,2009, (5).

[4]曾伟辉. 支持AJAX的网络爬虫系统设计与实现[D]. 安徽:中国科学技术大学, 2009.

[5]韩慧, 毛锋, 王文渊. 数据挖掘中决策树算法的最新进展[J]. 计算机应用研究, 2004, (12).

[6]李欣琪, 吴杰. 基于Xen虚拟化技术的弹性云架构[J]. 计算机系统应用, 2011, (11).