Web安全(中)---被动类安全产品技术分析

Web安全---被动类安全产品技术分析
Jack zhai
 
一、 Web 安全产品分析
围绕 Web 服务的安全,产品可以说五花八门,最基本的是接入网入口的 UTM 网关,其中 IPS 功能与防 DDOS 功能是 Web 服务器系统级入侵的直接防护,但 UTM 是通用的边界安全网关,非“专业的” Web 入侵防护,一般作为安全的入门级防护,这里不细说。这里主要分析专为 Web 服务开发的安全产品,大概有下面几方面的产品:
 
1、 网页防篡改产品:
防护未知攻击是难的,但看好我自己的“家底”是相对容易的。因此,人们最先想到的就是网页防篡改技术,保持自己的“纯洁”,起码对社会不会造成大危害。网页被篡改产品出现在 Web 早期,几经风雨,各厂家技术逐渐统一。网页防篡改技术的基本原理:是对 Web 服务器上的页面文件 ( 目录下文件 ) 进行监控,发现有更改及时恢复。所以该产品实际是一个“修补”的工具,不能阻止攻击者的篡改,就来个守株待兔,专人看守,减少损失是目标,防篡改属于典型的被动防护技术。
网页防篡改产品的部署:建立一台单独的管理服务器 (Web 服务器数量少可以省略 ) ,然后在每台 Web 服务器上安装一个 Agent 程序,负责该服务器的“网页文件看护”,管理服务器是管理这些 Agent 看护策略的。
我们先分析一下“页面文件看护”技术的变迁:
a)         第一代技术,把 Web 服务器主目录下的文件做一个备份,用一个定时循环进程,把备份的文件与服务使用的文件逐个进行比较,不一样的就用备份去覆盖。网站更新发布时,则同时更新主目录与备份。这种方法在网站大的情况下,网页数量巨大,扫描一遍的时间太长,并且对 Web 服务器性能也是挤占。
b)         第二代技术,采用了 Hash 算法,对主目录下的每个文件做 Hash ,生成该文件的“指纹”,定时循环进程直接计算服务用文件的 Hash 指纹,然后进行指纹核对,指纹一般比较小,比较方便;指纹具有不可逆的特点,不怕仿制。
c)         第三代技术,既然网站上页面太多,三级以下页面的访问量,一般使用呈指数级下降,没人访问当然也不会被篡改,在这些页面重复扫描是不划算的。改变一下思路:对文件读取应该没有危险,危险的是对文件的改写操作。若只对文件被改变时才做检查,就可以大大降低对服务器资源的占用;具体做法是:开启一个看守进程,对 Web 服务器的主目录文件删改操作进行监控,发现有此操作,判断是否有合法身份,是否为授权的维护操作,否则阻断其执行,文件不被改写,也就起到了网页防篡改的目的。这个技术也称为事件触发防篡改。
这种技术需要考验对服务器操作系统的熟悉程度,但黑客也是高手,你的看护进程是用户级的,黑客可以获得高级权限,绕过你的“消息钩子”,监控就成了摆设。
d)         第四代技术,既然是比谁的进程权限高,让操作系统干这个活儿,应该是最合适的,黑客再牛也不可能越过操作系统自己“干活”。因此,在 Windows 系统中,提供系统级的目录文件修改看护进程 ( 系统调用 ) ,防篡改产品直接调用就可以了,或者利用操作系统自身的文件安全保护功能,对主目录文件进行锁定 (Windows 对自己系统的重要文件也采取了类似的防篡改保护,避免病毒的侵扰 ) ,只允许网站发布系统 ( 网页升级更新 ) 才可以修改文件,其他系统进程也不允许删改。
这个方法应该说比较彻底,但可以看出,以后防篡改技术将成为操作系统的“专利”了,安全厂家实在是不愿意看到的。好在目前 Linux 还没有支持。
网页防篡改系统可以用于 Web 服务器,也可以用于中间件服务器,其目的都是保障网页文件的完整性。
网页防篡改对保护静态页面有很好的效果,但对于动态页面就没有办法了,因为页面是用户访问时生成的,内容与数据库相关。很多 SQL 注入就是利用这个漏洞,可以继续入侵 Web 服务器。
到目前为止,很多网页防篡改产品中都提供了一个 IPS 软件模块,用来阻止来针对 Web 服务的 SQL 注入、 XML 注入攻击。如国内厂家的 WebGuard iGuard InforGuard 等产品。
 
2、Web 数据库审计产品:
有效恢复是安全保障的一个很重要的理念。我们提到动态网页的防护难点是用数据库现场生成的,因此对数据库的修改就变得很关键, Web 数据库审计产品的目的就是对数据的所有操作进行记录,当发现问题时,这些操作可以回溯。打个比方,你在游戏中的装备被别人给“划走”了,过了一周,你发现了,但一周中,游戏在继续,你的装备有很多新动态,合理与不合理变化交织在一起。此时,若管理人员知道确定是“某人”的篡改,就可以把他的动作进行“逆向”操作,你的游戏仍可以继续,不受影响;若通过协商,需要恢复到篡改前的某个状态,则在数据库中先取得篡改前最近一次的备份数据,再使用数据库的审计记录,一直“操作”到篡改前的状态,游戏就可以继续了。这种技术与数据库的实时同步备份技术是类似的。
Web 数据库审计的目的与通常的安全审计产品的不同,取证与重现过程是第二位的,而对数据的可回溯操作是第一位的,有人理解为数据恢复是数据备份与容灾系统的工作,其实只是其中的一个方面,对整个数据库应该是这样的,但对单个用户的数据的恢复是这里的审计来解决的。这里的审计有些像数据库的操作日志,但需要关联到操作的账户,后者是操作者是身份。
当然数据的操作量很大,全部记录需要很大的数据空间,所以, Web 服务中重要数据库操作才进行详细审计,审计的目的是为了运营状态的可恢复。常见的 Web 审计数据:
²  帐户操作:涉及权限的改变
²  运营操作:涉及“财与物”的变化
²  维护操作:涉及“特殊权限”人的动作
Web 数据库审计产品一般采用旁路部署,不影响数据库的业务效率。若在业务流量不很大的情况下,可以采用 Agent 的软件方式,但是不建议完全依靠数据库自身的日志功能,因为,入侵者破坏后一定有“抹去痕迹”的步骤,痕迹一般就是系统本身的日志,单独的审计机制保障了日志的完整性。

你可能感兴趣的:(WEB安全,web服务,信息安全,网页防篡改,数据库审计)