APP下载

一种适合于中小型网站的网页防篡改系统

2020-03-16段尊敬

电脑知识与技术 2020年2期

段尊敬

摘要:企事业单位网站一般搭建在独立的Linux或Windows服务器上,为了保护网站文件不被篡改,需要购买和安装昂贵的商业软件甚至WAF,使得网站安全运维成本很高。该文提出的防篡改系统首先基于事件触发技术和合法性检查,实现了网站文件的被动防护,其次运用蜜罐原理和入侵检索实现了主动防护,具有成本低廉、实时性好和防护能力强的特点,适合于具有一定开发能力的中小型网站管理员使用。

关键词:木马文件;事件触发;网页防篡改;IP屏蔽;蜜罐頁面

中图分类号:TP393.08        文献标识码:A

文章编号:1009-3044(2020)02-0023-02

1 网页防篡改的意义和应对措施

目前,企事业单位网站一般搭建在Windows或Linux服务器上,对web服务器来说,包含的风险不仅是服务器宕机或者网站瘫痪,更严重的是被黑客入侵后上传了木马文件,由于木马文件是可执行文件或具有可执行脚本,能够篡改网站文件使其链接到广告、游戏甚至国外政治敏感站点,所以危害极大。对网站管理者来说,防止木马文件上传和网页被篡改非常重要!

网页防篡改的基本要求是:及时发现和处理上传的木马和被篡改的正常文件。常见的防护措施包括:

(1) 加固服务器安全设置,包括禁止远程操作注册表、禁用CMD命令、开启防火墙等。

(2) 安装安全狗、云盾、防篡改等商业软件或者购买硬件防护设备(WAF)。

两类措施各有不足,第一类措施强化了服务器的安全,但是对HTTP的80端口攻击无能为力,例如SQL注入、XSS攻击等。第二类措施需要购买昂贵的商业产品,不适于资金紧张的中小型网站。

2 本文的防篡改系统设计思路

中小网站管理者缺少足够的资金,无法将安全工作外包或购买安全设备,却往往具有一定的编程能力或者丰富的网站安全经验,本文根据这一情况设计了适合于中小型网站的防篡改系统,根据此设计开发的软件可以24小时运行在Windows或Linux服务器上,以后台服务方式保护网站,设计思路包含两类防护措施。

(1) 文件监听和合法性检查

Windows和Linux系统都提供了文件系统的事件触发机制,当操作系统监听到文件被创建、修改和重命名时,会触发相应事件并调用对应的方法,在方法中执行文件合法性检查,就能实时监测网站文件的变化,实现被动防护[1][2]。

(2) 设计蜜罐页面和入侵痕迹检索

为了进一步提高防护能力,增加了主动防护措施,在网站目录中设计蜜罐页面,“引诱”入侵者访问此页面,从而在日志文件中留下痕迹,通过分析日志检索并屏蔽非法IP。

3 文件监听和合法性检查

3.1 业务逻辑

(1) 对网站文件进行监听

Windows平台可以使用FileSystemWatcher类对指定的文件夹进行监听,也可以使用JNotify包进行监听,由于后者兼容Linux平台,所以建议使用后者,两种监听技术都对文件的内容修改、创建、重命名、删除等事件提供了触发机制,重点监听创建、修改和重命名事件的发生,以下是事件的触发条件、参数和处理方法。

(2) 文件合法性检查

以Create事件为例,检查参数文件是否为木马依赖于网站的配置、运行特征和管理员的安全经验,不同的网站需要设置不同的检查规则,以某中学网站为例,总结并形成如表2所示的几条规则。

规则等级的数值越大表示检验优先级越高,最先检查的是文件上传(创建)时间,因为网站编辑一般在每天6:30~23:00内工作,所以此时间段之外上传的文件违规;其次检查上传文件是否位于UploadFile目录下,位于此目录之外违规;接下来检查上传文件类型是否为动态脚本或可执行文件,若是则违规;最后以文本形式打开文件,检查内容是否含有暗链或非法关键词,若存在则违规。所有规则检查结果为真表示上传文件合法,可以保留在网站上,违反任意一条就视为非法文件进行处理。

(3) 非法文件处理

由于非法文件可能是入侵者上传的,这说明此时的网站很可能已经被黑客攻破,服务器肯定存在漏洞,需要执行以下操作:

1) 加密非法文件并备份到某个隐藏位置后删除此文件。

2) 根据非法文件名称和上传时间,在网站日志中查找来源IP,发现后屏蔽。

3) 发送手机短信给管理员。

4) 将非法文件信息写入自定义日志,以备日后分析服务器漏洞。

3.2 开发实现

上述设计思路已经使用Java语言实现,主要包含以下几个技术要点。

(1) 读取XML配置文件

由于不同网站的配置、运行情况很不相同,所以监听网站前先要读取XML文件初始化参数,包括监听的网站目录、禁止上传的文件类型、日志位置、上传文件所在目录、发送短信参数等。

(2) 监听工具

服务程序使用Java的JNotify组件进行监控,程序运行后调用监控类,监控类继承于JNotifyListener接口,需要开发者重写fileRenamed、fileModified、fileCreated等方法,发生了某个事件就执行对应方法。

(3) 使用Drools引擎实现业务逻辑规则化

文件合法性检查归结为一组业务规则的执行,建议使用Drools引擎来实现业务逻辑的规则化[3][4],开发者可以针对各类触发事件,分别编写出每组业务规则并形成DRL文件,Drools引擎解析、执行文件包含的所有规则,这大大简化了传统的高级语言编程,以表2的时间限制规则为例,只要将它的Salience属性定义为四个规则中的最大值,就可以最先执行,参数6:30和23:00可以在规则中直接修改且不需要重新编译,此规则调用外部java类静态方法检测时间的合法性,这样就将业务逻辑和类库代码分离开了。

(4) IP屏蔽技术

若发现网站被上传了非法文件,可以根据文件上传时间或者事件触发时间在网站日志中查找入侵IP,重点查找POST操作,发现后使用Java语句调用IPTABLES命令实现IP屏蔽。在Windows系统中可以调用IPSEC安全策略中的netsh命令实现IP屏蔽。

(5) 手机短信通知

使用订购的中国移动云MAS服务,可以使用MAS服务提供的接口编写Java短信类,将非法文件的文件名、处理方式和违反的规则名称等参数写入预定义模板发送给网站管理员,实现24小时短信通知。

4 设计蜜罐页面和入侵痕迹检索

4.1 设计蜜罐页面

入侵者为了找到网站漏洞,总是先用工具软件扫描网站,尤其是最常见的登录和管理页面,例如login.asp、index.asp等,这为网站防御提供了一个蜜罐“诱骗”思路[5][6]:将正常使用的后台登录和管理页面重命名隐藏起来,然后在网站根目录下添加login或index等蜜罐页面,这些页面不提供任何服务功能,正常用户应该访问不到,只是是为了引诱入侵者访问。

服务程序定时读取日志文件,每次读取从上次日志结尾开始,利用正则表达式检索访问了蜜罐页面的IP,这些IP一定是尝试入侵者,由于入侵者找到漏洞并成功入侵总是需要时间的,在不严重增加服务器负担的情况下,采用较小时间间隔定时检索日志,可以及时发现大多数入侵企图。

4.2 入侵痕迹的扩展检索

除了发现蜜罐页面的来访IP之外,还可以同时检索SQL注入和XSS入侵痕迹,它们的表现是在GET或POST请求的URL字符串中含有非法字符和单词,包括:

(1) 西文的单引号、双引号、中括号和星号等,重点检查单引号。[7]

(2) select、or、concat、from、union、where、char、group、administrator、count、alert等。

来访的URL字符串都记录在网站日志文件中,为了尽可能发现攻击性URL,建议管理员将待检索的非法字符和单词写成正则表达式去匹配URL,若匹配则说明此URL含有攻击,例如“.*select.*or”表示在URL查找select和or,匹配成功表明此URL存在SQL攻击。

由于SQL的攻击URL复杂多变,管理员需要不断更新,而Drools规则的修改不需要重新编译程序源代码,所以建议将待检索的正则表达式串编入Drools规则,在规则中调用外部类静态方法验证来访URL是否与之匹配。

5 运维和管理

建议以命令行方式在服务器上安装程序和所需的Drools开发包,以后台服务形式24小时伴随网站运行,为了保证服务在线运行,将程序设置为开机启动并定时检查进程是否存在,在Window Server中使用计划任务和PowerShell实现,在Linux系统中使用Crond和Shell实现。

为了有效管理服务器的防篡改系统运行,开发Android手机端App,APP能够基于SSH协议向服务器发送指令,实现以下功能。

(1) 请求并接收服务器端认定的非法文件信息,以供管理员浏览、分析。

(2) 发送文件恢复指令,将误删除的文件恢复到原位置。

(3) 发送IP操作指令,解除误屏蔽的IP。

(4) 定时发送HTTP请求,检查网站是否可以正常访问。

(5) 发送重启网站、重启和关闭服务器的指令。

参考文献:

[1] 吕美敬,周涛,等. 高校网站的网页防篡改问题研究与分析[J]. 网络空间安全,2018,09:35-38.

[2] 冶忠林,王相龙,等. 网页防篡改和自动恢复系统[J].计算机系统应用,2012,21(2):225-228.

[3] 余军阳,曹世华,朱骏,等.基于权重优先的业务规则引擎应用[J].计算机应用,2015(Z1):174-177.

[4] 曾新励.关于Drools规则引擎在业务逻辑处理中的研究[J].工业与信息化,2018(35):99-100.

[5] 楊轶,刘恒驰,等.基于蜜罐的网络防御技术研究[J].网络安全技术与应用,2019,07:20-22.

[6] 杨德全,刘卫民,等.基于蜜罐的主动防御应用研究[J].网络与信息安全学报,2018,04:57-62.

[7] 张勇,安敬鑫,等.基于日志分析和netsh命令的非法IP屏蔽策略[J].网络安全技术与应用,2018,04:16-17.

【通联编辑:代影】