一个Web服务器,从上到下可以分为上中下三层。最低层为操作系统层,如Windows或者Linux操作系统;中间层是Web服务程序、数据库服务等通用组件;最上面一层是与内容和业务相关的网页程序。只要这三层架构中,任何一层出现问题就可能会导致整个网站的安全受到威胁。为此我们在部署Web服务器安全策略的时候,决定不能够只关注上层的Web服务程序,而应该构建一个立体的Web防护网。
一、每一层都可能存在安全漏洞
在这里笔者要告诉大家一个非常不幸的消息。在Web服务器的三层架构中,任何一层都有或大或小的漏洞。在操作系统层面,无论采用Windows操作系统还是采用Linux操作系统,都不时的会有黑客可以远程利用的安全漏洞被发现。相比之下,Linux操作系统要比Windows操作系统安全一点。而中间层,如IIS、ASP、SQLServer也不时的有“漏洞门”的问题。最上层的网页程序,漏洞更是不少。如著名的SQL注入式攻击漏洞就是出现在网页程序层中。
虽然现在有比较多的安全防护产品,但是比较可惜的是,他们往往都只是针对一个特定的层面。或者说目前很多Web网站的防护技术并不过硬。如不少企业在Web服务器外面都会部署一个防火墙。但是因为针对Web服务器的攻击,很多是直接对应用层的漏洞发起的攻击行为,他们可以直接通过80端口来完成攻击的行为。在这种情况下,即使采用了防火墙也无济于事。当任何一层被攻破,那么其它两层即使保护的再好,最后的结果都只有一个,那就是失败。
总之,Web服务器的每一层都存在着比较严重的漏洞。如果要确保Web服务器的安全,那么必须要构建一个立体的防护网。
二、利用IPS构建一个立体的Web防护网
IPS(入侵防御系统)是一个集成入侵防御与检测、病毒过滤、带宽管理和URL过滤等功能的一个综合性的防御系统。对于Web服务器来说,其基本上涵盖了上中下三个层面的内容。为此借助IPS技术,就可以为Web服务器构建一个立体的Web防护网。
众所周知,防火墙等设备,其主要关注的是网络层的基础安全,而不会涉及到应用层。而像SQL注入式攻击等等基本上都发生在应用层。为此对于Web服务器的安全贡献不是很大。而IPS技术与防火墙不同,其可以深入到应用层面。IPS防御系统会检测从报文头到报文负载的每一个字节,将数据流流与攻击特征字节进行对比,从而有效的发现隐藏在正常数据流中的攻击报文。可见通过IPS系统可以为Web服务器构建一个立体的防护网。
IPS防御系统的理论知识大家可以去查看具体的书籍,这不是笔者这里要重点讨论的内容。笔者这里需要强调的是,在部署IPS系统时需要注意的内容。
三、IPS选购时要选品牌、看技术实力
IPS与普通的安全产品不同,其核心的内容就是技术。具体的说,就是检测引擎。虽然现在市面上提供IPS产品的厂商有很多。但是根据笔者的了解,其效果是层次不齐。有些IPS产品,虽然打着ISP旗号,但是基本上起不到IPS的功能。这主要是因为检测引擎等核心技术,各个厂商都非常的看重。有些技术实力稍微薄弱一点的企业,就无法研发完善的检测引擎。而由于缺乏这个核心的技术,则IPS功能就只成了一个摆设。
为此企业在选购IPS防御系统的时候,主要需要关注的是厂商的技术实力。简单的说,就是需要选品牌的。国内在这一块做的不错的,主要有联想与华为等几家厂商。如联想的检测引擎,会对网络数据包进行收集和检测分析,并能够依据设定的安全策略对违反预设策略的事件实施阻断或者限制的操作。同时实时的向LEMSServer(相当于是一个日志服务器) 传送报警信息和事件过程记录。华为公司的IPS检测系统,采用的是其自主研发的FIRST(基于精确状态的全面检测)检测引擎。这个检测引擎集成了多项检测技术,实现了基于精确状态的全面检测。
笔者仔细研究过这两家企业的IPS防御系统。发现确实能够对Web服务器的安全起到不可替代的作用。而且两家厂商的技术实力都比较雄厚,为此对于检测引擎的升级也比较快。能够在最短的时间内,发现可疑的攻击行为。
四、IPS选购时需要关注其涉及的层面
在文章一开始,笔者就谈到过,Web服务器从上到下可以分为三层。如果任何一层出现漏洞,那么都会给服务器带来致命的打击。为此我们在选择IPS防御系统的时候,也需要关注,其选择的产品到底是否能够对这个三个层面构成一个立体的防御体系。
如针对Web网页程序的攻击,管理员需要评估产品是否会分析网页程序ud每一个HTTP请求,并根据常见的网页漏洞原理对每个客户端提交的HTTP请求进行攻击特征匹配。如果发现有可疑的请求,能够自动将攻击报文阻断并报警。
而对于中间层来说,需要IPS防御系统能够分析跟踪Web服务器中间层组建的攻击特点以及常见的漏洞,并在IPS系统中实现核心的防护措施。如对于SQLServer数据库服务器来说,IPS系统需要根据已有的信息,来判断SQLServer服务器是否存在可以被攻击的漏洞等等。
对于底层的操作系统来说,需要IPS系统能够对其提供防护。如系统需要分析常见操作系统的每一个可以被远程利用的漏洞,分析漏洞的原因和利用这个漏洞发生攻击的常见手段。并从历史的攻击案例中分析出攻击的特征。然后将这个结果与现有的数据流进行匹配,以判断是否有可以的攻击行为。
在选型时,安全技术人员需要评估IPS能否在以上三个层面提供足够安全的技术保障。如果不能股从技术层面进行测试的话,那么至少要看看其是否通过了相关的国际认证。如对于操作系统层的防火,可以考察其是否通过了微软的MAPP认证。因为只要通过了这个认证,那么厂商就可以提前获得微软的漏洞信息(在微软正式发布漏洞声明之前)。对于安全防护来说,有时候时间就是生命。提早一步知道系统的漏洞,那么就可以在攻击者发起攻击之前就采取防护措施。
另外有些厂商提供的IPS防御系统,其关注的内容并不是很全面。如只管住中间层和Web网页程序层的内容。他们认为操作系统层的安全可以有系统管理员来负责或者由微软的Update服务来实现。虽然这也有一定的道理,但是其会增加管理人员的工作量。需要同时从多个平台上来可以Web服务器的安全。这不是很理想。
五、根据Web服务器的规模来选择不同规格的产品
Web服务器是一个很特殊的应用。其客户多则有上亿,而少则可能只有几百个(如一个B/S架构的OA应用)。这就对IPS的选型提出了一个额外的挑战。因为所有的通信都需要经过IPS系统的检测。为此对于其性能肯定会造成一定程度的影响。
当Web服务的并发性访问数量比较高时,这个负面影响会非常的严重。此时对于IPS服务器就需要采用比较高的配置,以缩短检测过程所占用的时间。而对于规模比较小的应用,其流量本身就不是很大,此时采用的配置可以底一点。毕竟一分钱一分货。高配置与低配置在最后的结果上可能没有多少的差异,但是在性能上会相差很多。当然在价格上,也是一个天上、一个地下。
总之,在选择IPS防御系统的时候,要根据自己企业的Web规模来选择合适的规格。此时主要是从IPS的吞吐量,即性能角度进行考虑。一个基本的原则,就是尽可能的减少由于采用了IPS系统而给用户带来的负面影响。