基于文件实时监控系统提高网站安全性的研究

2012-07-03 02:12边金良丁喜纲
制造业自动化 2012年6期
关键词:备份安全性监控

边金良,丁喜纲

(青岛酒店管理职业技术学院,青岛 266100)

1 概述

随着计算机普及以及网络技术的发展,越来越多的单位都拥有了自己的网站,网站作为一个应用平台,在产品介绍、电子商务、游戏和社交等方面扮演了重要的角色。网站的各种应用在体现重要作用和重要价值的同时,也日益成为黑客攻击的目标;与此同时,随着各种攻击工具在互联网的广泛传播,黑客技术的门槛越来越低,网站被挂马和被入侵等现象已屡见不鲜。2010年CNCERT监测发现境内被篡改网站数量为34845个[1]。目前网站面临的常见威胁主要有。

1.1 网站挂马

网站挂马,简单地讲是在正常网页代码中人为增加一段恶意脚本代码,这段脚本通常是利用iframe或者script标签嵌入一个指定网站中含有的恶意代码,这段脚本可以位于正常网页代码的任何部分,尤其是头部或底部。这段恶意代码的嵌套,是攻击者在获取网站的WebShell后,针对访问率较高(index、login、default等) 或者全部的网页,利用批量挂马工具或手工往其中加入。如〈script src=http://q.bz.se/function.js/script〉。

一旦浏览者打开被挂马页面时,该页面就会直接访问潜入标签所指定的恶意脚本的网站,这样不仅可以增加该网站的访问量,实现挂马利益链;更有甚者,直接使浏览者下载恶意脚本指定的文件。

1.2 SQL注入

SQL作为一种国际标准的数据库查询语言,在各种应用程序环境中具有广泛的应用。而SQL注入的原理,就是攻击者在客户端提交特殊符号的代码,达到欺骗服务器的目的,从而能够破解网站数据库的表名、字段名和管理员的用户名和密码,最终或者网站后台管理员的身份,进行恶意的行为。

SQL注入的主要原因是由于网站页面的脚本程序与数据库进行交互式审核不严,造成供给者有机可乘,通俗的来讲就是网站由于编写者的原因造成的漏洞。

2 文件实时监控的意义

网站是由各种各样的文件组成,包括动态页面(jsp、asp、php)和静态页面(html、htm、shtml)文件组成,而文件是信息的主要载体,在网站安全方面,应该说对文件的保护显得至关重要,要保证文件的删除、增加和修改等操作都有严格的监控,通过监控实现文件的保护,提高网站的安全性。

通常,安全监控的对象可分成两类:操作和信息[2]。其中,操作主要是指用户人为产生的操作行为,而信息则主要是指系统的文件和文本信息[3]。

由于目前网站的建设几乎都是由动态网站构成,构成网站的主要文件只有几个,而网页内容则全部是从数据库提取。如http://www.XXX.com/showproduct.aspx?id=10,该网页显示某个产品,它实际的操作是从数据库中取出id=10的产品记录,然后用showproduct.aspx这个文件显示。这样即使该公司有多种产品,也不需要多个文件,只要一个文件即可。而网站挂马往往就是修改这个文件,在这个文件内容里添加恶意脚本,因此当该文件被修改后,文件的可定会发生变化,通过文件的变化产生通知,从而使得网站管理员能够及时知道网站正在面临的风险。由此可见对网站目录文件的实时监控对于保证网站信息的安全性具有重要意义。

3 文件实时监控系统的实现

3.1 文件实时监控实现的思路

1)对要检测的网站目录进行初始化

初始化主要做两方面的工作:(1)将网站目录文件备份至另外一个安全目录中,该备份目录的作用是当文件实时监控系统监控到文件进行了变动后,就将备份目录的同名文件还原回来;(2)为网站目录中的每一个文件进行逐个扫描,生成初始的文件信息表,包括文件名、物理路径、文件内容、文件的大小等信息,该表是为今后监控文件的大小进行比对,要注意的是该初始化信息不包括增长的目录,比方说上传的图片目录等。

2)文件的删除与恢复

文件监控系统实时对网站目录进行监控,当发现文件的大小、文件内容或者数量发生变化,系统就对发生变化的文件进行恢复,对大小发生变化的文件用备份的文件进行恢复,对多出来的文件进行删除。这样可以保证网站在运行过程中始终都保持在初始时的状态。

3.2 文件实时监控的关键技术

1)监控策略与性能的优化

对网站目录文件进行实时监控的频率,是决定文件监控实时性与占用服务器资源多少的决定性条件[4]。监控的频率也就是多长时间运行一次监控程序,监控频率过高,网站的安全性增加,但是占用的服务器系统资源必然会多;监控的频率过低,网站的安全性就降低,占用服务器系统资源就少。因此,一个好的监控系统应该能制定灵活的配置策略,以此来调度监控系统的执行。系统的调度可以采用实时监控,即连续不断地对网站文件进行扫描检查,也可以设置一定的时间间隔运行。

2)文件内容比较的签名算法

MD算法的作用是不定长度的信息,经过算法压缩以后,加密成一个固定长度的信息。这一输出可以被看作是原输入的摘要值(Message Digest),如果是两个不同的信息则加密后的结果(摘要值)必然不同,这也是MD算法得名的原因。由于加密前的信息有时比加密后的信息要长,这种签名算法可能会出现不同的输入但输出相同的可能。MD5是由Ron Rivcst设计的散列函数系列的第5个。然而对于信息摘录函数而言,给定一个输出,要求出一个输入以产生相同的输出,这种情况是计算不可行的。MD5以一种充分而复杂的方式将各比特弄乱,每个输出比特都受到每一个输入比特的影响[5]。

在文件实时监控系统的实现中只需要比较文件的内容是否一致,而不用考虑文件内容的哪一部分发生了变动。

3.3 文件实时监控的具体实现

1)选择的开发语言

系统采用C#语言编写,以SQL Server为数据库进行数据的存储。

2)系统初始化的实现

根据上面的论述,系统初始化,主要是设置系统监控的目录以及获取要监控目录的文件信息,包括文件的大小、创建时间和文件的加密后的内容等,并将信息保存到数据库中。程序界面如图1所示。

图1 系统初始化界面

初始化后,数据库中数据的信息如图2所示。

图2 初始化后的数据信息

3)文件的实时监控

文件的实时监控是要在特定的时间间隔内,依次扫描监控目录的文件,界面如图3所示。

图3 设置监控的频率

监控的频率通过Timer设置完成,系统主要完成以下的操作:

(1)如果该文件在数据库中不存在,则直接删除;

(2)如果该文件的大小、修改时间和文件内容中的任何一样与数据库该文件初始化信息中不符,则将备份的文件还原;

(3)如果网站目录的文件被攻击者或者系统的还原部分直接删除了,可在数据库中对扫描到的文件做一个标记,最后遍历数据库,如果有没有做过标记的记录,则直接从备份的文件中还原。

4)部分代码

4 网站安全的其它建议

文件实时监控系统的实现,能够实时监控网站目录文件免受攻击者的改变,这只是从一方面提高了网站的安全性。为了进一步加强网站的安全性,笔者从多年的经验出发,提出以下的建议:

1)尽量采用ODBC数据源,不要使用连接字符串

设计网站时一般是将连接数据库的字符串保存到网站的配置文件中,连接字符串都长包括服务器的名称、数据库的名称、用户名和密码。但是如果该配置文件的内容被窃取,那么数据库都将会处于危险的状态中。因此,配置ODBC数据源方法,即可实现数据库与网站的分离,达到安全的进一步提高。

2)为防止SQL注入,尽量采用存储过程

动态网站往往都要对数据库进行填、删、改、查的操作,而往往SQL注入是发生在查询语句中。因此,在数据库中建立存储过程,通过存储过程来完成对数据的操作。使用存储过程,不仅可以将用户和数据分开的方法,而且维护调试方便,也就比较了在网页文件中直接使用SQL语句,从而保证SQL注入的发生。

5 结束语

系统通过对网站文件进行实施监控,通过实践调度、加密技术保证了网站文件被篡改时能即使恢复,使用灵活方便,在预防网页挂马方面以及网站安全性的提高起到很大的作用。

[1] CERNET/CC.2010年中国互联网网络安全报告[R/OL].2011-04-22.http://www.cert.org.cn/articles/docs/common/2011042225342.shtml.

[2] 王云维.基于文件管理的网站安全动态监控的研究[D].北京: 北京工业大学, 2010.

[3] 于扬, 杨泽红, 贾培发.计算机安全监控系统的关键技术研究 [J].计算机工程, 2007, 33(24): 146-152.

[4] 赵君辉, 徐琨.网页监控与恢复系统的设计与实现 [J].北方交通大学学报, 2002, 26(1): 36-37.

[5] 曾鸣,赵荣彩,姚京松,王小芹.基于特征提取的二进制代码比较技术 [J].计算机工程与应用, 2006(22): 8-11.

猜你喜欢
备份安全性监控
两款输液泵的输血安全性评估
VSAT卫星通信备份技术研究
新染料可提高电动汽车安全性
The Great Barrier Reef shows coral comeback
某既有隔震建筑检测与安全性鉴定
创建vSphere 备份任务
加强广播电视信息安全性的思考
你被监控了吗?
Zabbix在ATS系统集中监控中的应用
旧瓶装新酒天宫二号从备份变实验室