6.2 Apache服务器面临的安全问题
为了保护Web服务器不被恶意攻击和破坏,第一步就是要了解和识别它所面临的安全风险。以前,Web站点仅仅提供静态的页面,因此安全风险很少。恶意破坏者进入这类Web站点的唯一方法是获得非法的访问权限。
近年来,大部分Web服务器不再提供静态的HTML页面,它们提供动态的内容,许多Web站点与颇有价值的客户服务或电子商务活动应用结合在一起(这也是风险所在,通常不注意的)。
6.2.1 HTTP拒绝服务攻击者通过某些手段使服务器拒绝对HTTP应答。这使得Apache对系统资源(CPU时间和内存)需求剧增,最终造成系统变慢甚至完全瘫痪。Apache服务器最大的缺点是,它的普及性使它成为众矢之的。Apache服务器无时无刻不受到DoS攻击的威胁。主要包括以下几种形式。
1.数据包洪水攻击一种中断服务器或本地网络的方法是数据包洪水攻击,它通常使用Internet控制报文协议(ICMP)包或是UDP包。在最简单的形式下,这些攻击都是使服务器或网络的负载过重,这意味着黑客的网络速度必须比目标的网络速度要快。使用UDP包的优势是不会有任何包返回到黑客的计算机。而使用ICMP包的优势是黑客能让攻击更加富于变化,发送有缺陷的包会搞乱并锁住受害者的网络。目前流行的趋势是黑客欺骗目标服务器,让其相信正在受到来自自身的洪水攻击。
2.磁盘攻击这是一种更残忍的攻击,它不仅仅影响目标计算机的通信,还破坏其硬件。伪造的用户请求利用写命令攻击目标计算机的硬盘,让其超过极限,并强制关闭。这不仅仅是破坏,受害者会遭遇不幸,因为信息会暂时不可达,甚至丢失。
3.路由不可达通常,DoS攻击集中在路由器上,攻击者首先获得控制权并操纵目标机器。当攻击者能够更改路由器的路由表条目的时候,会导致整个网络不可达。这种攻击是非常阴险的,因为它开始出现的时候往往令人莫名其妙。毕竟,你的服务器会很快失效,而且当整个网络不可达,还是有很多原因需要详审的。
4.分布式拒绝服务攻击最有威胁的攻击是分布式拒绝服务攻击(DDoS)。当很多堡垒主机被感染,并一起向你的服务器发起拒绝服务攻击的时候,你将伤痕累累。繁殖性攻击是最恶劣的,因为攻击程序会不通过人工干涉蔓延。Apache服务器特别容易受攻击,无论是对分布式拒绝服务攻击还是隐藏来源的攻击。为什么呢?因为Apache服务器无处不在。在万维网上分布着无数的Apache服务器,因此为Apache定制的病毒(特别是SSL蠕虫)潜伏在许多主机上;带宽如今已经非常充裕,因此有很多的空间可供黑客操纵。蠕虫攻击利用服务器代码的漏洞,通过SSL握手将自己安装在Apache服务器上。黑客利用缓冲溢出将一个伪造的密钥安装在服务器上(适用于运行低于0.9.6e版本的OpenSSL的服务器)。攻击者能够在被感染的主机上执行恶意代码,在许多这样的病毒作用下,下一步就是对特定的目标发动一场浩大的分布式拒绝服务攻击了。通过将这样的蠕虫散播到大量的主机上,大规模的点对点攻击得以进行,对目标计算机或者网络带来不可挽回的损失。
6.2.2 缓冲区溢出攻击者利用CGI程序编写的一些缺陷使程序偏离正常的流程。程序使用静态分配的内存保存请求数据,攻击者就可以发送一个超长请求使缓冲区溢出。比如,一些Perl编写的处理用户请求的网关脚本。一旦缓冲区溢出,攻击者可以执行其恶意指令。
6.2.3 攻击者获得root权限如果Apache以root权限运行,系统上一些程序的逻辑缺陷或缓冲区溢出的漏洞,会让攻击者很容易在本地获得Linux服务器上管理员root权限。在一些远程的情况下,攻击者会利用一些以root身份执行的有缺陷的系统守护进程来取得root权限,或利用有缺陷的服务进程漏洞来取得普通用户权限,用以远程登录服务器,进而控制整个系统。