【IT168 专稿】对邮件服务器的攻击形式多种多样:有利用缓冲区溢出漏洞进行的攻击,还有拒绝服务攻击和目录收集攻击等等。加固邮件服务器、使用邮件过滤工具、采用被管理的服务、安装集成软件等措施都可以从不同的侧面终止邮件服务器所受到的攻击。本文对上述这些措施都有具体描述。
加固邮件服务器,首先在它前面安装邮件过滤网络工具,或者使用被管理的邮件过滤服务将有助于减轻来自垃圾邮件发送者和其它途径的攻击。
随着针对最终用户和他们的桌面系统的攻击日渐增多,直接攻击邮件服务器的情况有所减少(虽然这种减少是相对的)。但是,服务器仍然是脆弱的,因为攻击者不断发现微软的EXChange server甚至Sendmail的漏洞。下面来看两个常见的攻击,以及减少或终止邮件服务器遭受这些攻击的方法。
根源:缓冲区溢出漏洞
当一个软件程序,如邮件服务器软件,在一个数据缓冲区中存储了超过最初允许量的更多的数据,并且未曾防备始料未及的输入时,就会发生缓冲区溢出。攻击者可以利用这个缺陷让邮件服务器执行它未计划执行的其它程序。如果邮件服务器的运行享有特权的话,就会危及到整个系统的安全。即便邮件服务器不享有特权,攻击者还是能够危及它的安全,并获得对它的资源的完全控制权限。
虽然缓冲区溢出是由于偶然的编程错误导致的,但是它对于数据完整性而言却是一种很常见的安全漏洞。当发生缓冲区溢出情况时,多余的数据会包含被设计用于触发特定行为的代码,如:向被攻击的服务器发送可能损坏用户文件、修改数据或暴露绝密信息的新指令。
过去攻击者常常利用缓冲区溢出漏洞使蠕虫在因特网上不同的服务器之间穿行,从而证明他们的本领。但是近来,缓冲区溢出漏洞有了更明确的目标。它们让攻击者危及邮件服务器的安全,以便接下来它们能够利用邮件服务器来发送垃圾邮件。
这种攻击会导致两个严重后果。首先,邮件服务器被危及安全意味着攻击者可以阅读公司的来往邮件。结果可能是灾难性的。其次,攻击者可以使用公司的服务器资源发送垃圾邮件。这种情况会给公司带来坏名声,并违反ISP合同,常常意味着服务终止。
加固邮件服务器(以及任何其它公共服务器),防止缓冲区溢出漏洞和其它形式的攻击是非常重要的。还可以采取其它一些保护措施。
应对之一:服务器加固
减少邮件服务器的安全受到威胁的机会的最好方式就是加固邮件服务器本身。在任何情况下,加固都值得努力做出。在加固过的服务器上,特别是那些因特网上的服务器,很少有服务会被漏洞攻击到,那些服务通常是被“区别对待” 的。加固通常需要采取如下措施:
• 从物理上保证计算机的安全;
• 更新操作系统和应用软件;
• 启用日志,记录管理员访问和使用资源的操作;
• 删除不必要的应用程序、服务和工具;
• 启用本地防火墙服务;
• 限制有特权账号的使用。
通过加固服务器,可以大大减少它们的薄弱环节。但仅仅加固邮件服务器通常是不够的。更好的解决方案是在加固服务器的同时,在邮件实际抵达服务器之前提供额外的对邮件通讯的过滤。
可以通过使用网络工具、管理服务和集成到现存的邮件系统(如:微软的EXChange)中的软件来预先对邮件通讯进行过滤。切记防御要分成不同的层次——例如:加固内部邮件服务器,同时为保护周边环境而部署已被供应商加固的网络工具。
应对之二:网络工具
邮件过滤网络工具是部署在内部邮件服务器前面的。这些工具通常提供两种类型的防火墙:包过滤防火墙和应用级防火墙。作为包过滤防火墙的网络工具只允许到邮件服务(如:SMTP,通常是POP3和IMAP)所使用的端口的有效TCP/IP通讯。作为应用级防火墙的工具确保发送服务器正确地使用SMTP,并遵循相关的IEEE Requests for Comments(RFCS)和惯例(如:支持反向DNS设置)。
网络工具由于这样几个原因而不易受到攻击。首先,绝大多数工具都运行在高度定制的操作系统上。这些操作系统已经将绝大多数可能使攻击者立足的额外服务禁止掉了(或者从最开始就专门为工具的使用而对操作系统进行了定制)。
其次,工程师们在加固工具时严格遵守非常好的实践。
最后,一个工具只允许进出邮件服务器的限定类型的通讯(即与邮件传输相关的通讯),甚至这类通讯都要经过仔细的检查。
应对之三:被管理的服务
采用被管理的服务,所有的邮件都先被发送到一个过滤邮件的offsite服务中,这个服务随后将有效的邮件转发到公司的邮件服务器。
要运用这个策略有效地防止直接使用邮件协议的攻击,内部邮件服务器必须只接收被管理的服务发起的连接,而不接收任何其它连接。但是这些服务只对进入的邮件通讯有效。出去的邮件通讯还是直接被发送到因特网上的其它服务器,从而激活使用邮件协议的可能漏洞(例如:在SMTP传输过程中一个接收邮件服务器会攻击发送邮件服务器软件中的缓冲区溢出漏洞)。
应对之四:集成软件
最后,可以安装集成软件来帮助保护邮件服务器。这个安装在本地的软件能防范网络攻击,使服务器更稳固。集成软件通常运行在应用层(即SMTP)来保护服务器免受漏洞攻击。一些集成软件用一个定制的加固版本代替服务器本地的TCP/IP栈。
但是,更为常见的是本地过滤软件和邮件软件合作,而不是在邮件软件和外部系统之间建立一堵墙。当攻击者可以直接访问到邮件服务器时(例如:如果一个内部的可信任的用户发起攻击),采用这种方法的集成软件就能够发挥作用。
应对五:拒绝服务攻击和目录收集攻击
拒绝服务(Denia1 of Service,DoS)攻击会降低目标系统的能力。比方说一个邮件服务器,攻击者试图放慢它或者把它搞瘫痪。攻击者以几种方式发起拒绝服务攻击,包括消耗网络资源和发起目录收集攻击。
当攻击者通过网络资源消耗实施拒绝服务攻击时,攻击常常集中在消耗目标机器的所有可获得的进入连接上。因为SMTP是一个TCP协议,一个成功的漏洞攻击只要求攻击者请求的TCP连接的数目比能够获得的TCP连接数更多。也就是说,攻击者创建比邮件服务器所能处理的连接数更多的指向邮件服务器的连接。这样邮件服务器就不能再接受来自合法的邮件服务器的有效的进入连接了。
几乎找不到什么基于服务器的解决方案能够防止拒绝安全服务攻击。大多数邮件服务器运行在通常用途的操作系统上,这些操作系统不会为防止拒绝服务攻击而做调整。即使在一个加固过的UNIX系统上,要提高服务器耐受大量拒绝服务攻击的能力也需要不同的网络设置。因此,公司通常会购买为发现和防止拒绝服务攻击而特别创建的系统,或能够接受比通常用途的邮件服务器多得多的同时连接的加固的过滤工具。这种过滤设备通常能够更好地发现拒绝服务攻击,并采取防御措施。
目录收集攻击是由垃圾邮件发送者发起的资源密集型攻击,从而为将来发送垃圾邮件确定可用的有效地址。在发生目录收集攻击时,邮件服务器负载会大大增加,影响有效邮件的传输。此外,本地邮件服务器会为无效地址试图向垃圾邮件发送者所使用的From地址返回未送达报告。
返回未送达报告生成另外的外发邮件通讯,消耗昂贵的带宽,进而增加邮件服务器的负载。因为垃圾邮件发送者使用的大多数From地址都是假的,所以传输未送达报告总是超时,要求邮件服务器晚些时候再尝试传输。总之,目录收集攻击是一种代价昂贵的攻击邮件服务器的形式。
遗憾的是,几乎找不到减轻目录收集攻击危险的方法。一种解决方案是使用被管理的服务。通常被管理的服务维护的邮件服务器的数量比一个公司所能提供的邮件服务器的数量要多得多,因此,目录收集攻击并不会在很大程度上影响邮件传输。
另一种解决方案是安装针对这类攻击优化过的前端过滤工具。在工具中维护一份合法邮件用户列表(通过静态列表或轻型目录访问协议访问内部目录),以便过滤器不会将发给无效用户的邮件转运到内部邮件服务器。此外,过滤工具不会生成未送达报告,所以目录收集攻击不会创建额外的出站通讯负载。