本文关键词:网页防篡改 事件触发 文件防护 Inotify机制
导语
随着互联网的发展,网站在信息传递中扮演着越来越重要角色,已经渗透到了我们的社会各个角落。网页的地位也得到了空前的提高,对一个企业对一个政府机构网页无异于自己的门面。虽然目前已有防火墙、入侵检测等安全防范手段,但各类Web应用系统的复杂性和多样性导致系统漏洞层出不穷、防不胜防,黑客入侵和篡改页面的事件时有发生。针对这些情况,网页防篡改系统应运而生。经过多年的发展,网页防篡改系统采用的技术也在不断的发展和更新,到目前为止,网页防篡改技术已经发展越来越成熟。但网页防篡改技术本质是防止网站后台文件被恶意篡改,所以网页防篡改技术就成了网站后台文件的专属“锦衣卫”。
网页防篡改技术
目前网页防篡改技术主要有三种。
第一种是客户端轮询技术。用一个网页读取和检测程序,以轮询方式读出要监控的网页,与真实网页相比较,来判断网页内容的完整性,对于被篡改的网页进行报警和恢复。无法阻止公众访问到被篡改网页,它只能在被篡改后一段时间发现和进行恢复,因此公众有很大可能访问到被篡改网页。
第二种是事件触发技术。将篡改监测的核心程序通过文件底层驱动技术应用到检测文件系统中,通过事件触发方式进行自动监测,对文件夹的所有文件内容,对照其底层文件属性,经过内置散列快速算法,实时进行监测,若发现属性变更,通过非协议方式、纯文件安全拷贝方式将备份路径文件夹内容拷贝到监测文件夹相应文件位置。通过底层文件驱动技术,整个文件复制过程为毫秒级,使得公众无法看到被篡改页面(被篡改后立马被恢复),其运行性能和检测实时性都达到最高的水准。利用操作系统的文件系统或驱动程序接口,在网页文件的被修改时进行合法性检查,对于非法操作进行报警和恢复。
第三种是驱动拦截,通过内核模块hook系统调用进行篡改行为拦截。目前防护能力最强的是驱动拦截方式,而在控制面需要在云主机中安装应用层Agent对内核模块进行管控,实现对云主机后台文件的实时防护及告警。
天翼云网页防篡改技术介绍
- 技术概述
目前天翼云网页防篡改功能采用的是事件触发技术。主要应用了Linux/Windows平台下Inotify机制。inotify是一种强大的、细粒度的、异步的文件系统事件监控机制,linux/windos内核加入了inotify支持,通过inotify可以监控文件系统添加、删除、修改等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况。inotify可用于检测单个文件,也可以检测整个目录。当检测的对象是一个目录的时候,目录本身和目录里的内容都会成为检测的对象。可以使用select/poll/epoll这些接口来监听,当有事件发生时,inotify文件描述符会可读。
此种机制的出现的目的是当内核空间发生某种事件之后,可以立即通知到用户空间。方便用户做出具体的操作。
其具体操作流程,如下图1:
图1
第一步:添加防护规则,添加要防护的网站目录或文件;
第二步:开启防护程序,进行实时防护;
第三步:实时监测文件是否被篡改。
- 整体实现流程
目前天翼云网页防篡改功能整体分为三个模块——前端、中间端、后端。当用户购买网页防篡改相关服务后,就可以对其名下主机进行网页防篡改功能的相关配置与防护了。
- 前端。用户选择所要配置的主机,然后通过WEBUI前端配置相应的规则:选择黑白名单模式、防护目录、备份目录、防护的文件类型(如.jsp、.html等等)、忽略文件类型、忽略的文件目录等。然后将规则下发到中间端服务器上。
- 中间端。中间端收到WEBUI前端发过来的消息后,将相应的消息格式化,变成底层所能解析的json串:
{
"check_enable": 1," //是否开启防护
"backup_path":"/tmp/backup", //备份目录
"protect_dir":["/tmp/111"], //防护目录
"ignore_dir": ["/tmp/111/aaa"], //忽略子目录
"ignore_file_type": ".txt$|.log$|.js$" //忽略文件类型
}
- 后端。当主机agent(运行网页防篡改功能的进程)收到中间端发过来的消息后,按照指令进行相关操作——是否开启防护、备份防护目录里的所有文件、正在表达式解析(防护忽略文件类型)、Inotify相关接口初始化等等。然后开始进行实时防护。
- 进行防护
当防护目录下某一被防护的文件被增删改后,inotify接口就会捕捉到相应的消息,此
时就会将被恶意篡改(增删改)的文件删掉。如果是修改或删除,就将备份目录下的对应原始文件恢复到原目录下,同时给出修改或删除告警信息;如果是增加,则直接进行相应的删除动作,同时给出修改或删除告警信息。
天翼云网页防篡改优缺点
- 优点
天翼云网页防篡改功能采用的是事件触发技术,能够实时地监控被防护的目录和文件,稳定、可靠,相比轮询机制技术占用系统资源少。目前市面上大部分同类竞品用的也是此种技术。
- 缺点
事件触发技术缺点非常明显,主要是占用存储空间。每一天防护规则下发后,都需要
将防护目录下的所有文件进行一次备份,在文件被恶意增删改后,在备份目录中找到应用的原始目录进行恢复。因此,当防护目录下文件过多过大时,相对应的备份空间将是一个很大的挑战。
- 展望
由于网页防篡改所采用的事件触发技术缺点非常明显,经过调研,目前有一种比较先进的技术——内核态阻挡技术。这种技术是对受到防护的目录或文件操作进行鉴别,当被防护的文件受到恶意增删改时,内核直接对这些操作进行阻断,不需要进行任何备份和恢复。内核态阻挡技术目前在较高的linux内核版本(5.x.x及以上)中支持,在较低版本中不支持。所以希望在不远的将来,能将此种技术运用到我们天翼云网页防篡改功能中。