如何利用注射技术攻击邮件服务器(4)
来源:51CTO 时间:2008-08-12 11:29:00
六、防御措施
与其它允许用户(攻击者)注入数据的漏洞的防御措施相似,Webmail应用的保护需要运用其开发队伍提供的各种保护措施。但是,为了降低攻击者利用这些类型弱点的可能性,邮件服务器管理员必须采用更恰当的安全措施以实现深度防御。下面,我们介绍一些有效对付这些类型的攻击的措施。
(一)输入数据验证
应用程序用到的所有输入数据,包括非用户直接提供的数据和应用程序内部使用的数据,都必须进行无害化处理,删掉所有可能被恶意使用的字符。在利用数据进行任何操作之前,必须进行合法性检验。如前所述,在执行一个新的IMAP/SMTP命令时,要求前面的命令必须用CRLF结束。为了确保无法注入额外的命令,您可以在将其传递给邮件服务器之前删除输入数据中的这类字符。
(二)IMAP/SMTP服务器的配置
如果只有通过webmail应用程序才能访问邮件服务器的话,这些服务器必须对国际互联网是不可见的。除此之外,还要对这些服务器进一步加固,比如禁用非绝对必要得命令等等。从而使邮件服务器注射攻击的影响降低到最小程度。
(三)应用程序防火墙
如果我们已经用其它的保护系统部署了一个应用程序防火墙,那么可以添加一条规则,来过滤有邮件服务器注射缺陷的参数,从而防止这些命令被注入到邮件服务器中。比如,可以将ModSecurity用作应用程序防火墙。根据前面介绍的SquirrelMail示例,可以添加如下规则:
SecFilterSelective "ARG_mailbox" "\r\n"
这会过滤掉参数“mailbox”中注入的序列。
七、总结
本文通过两种Webmail应用程序,SquirrelMail和Hastymail,详细介绍了对具有邮件服务器注射漏洞的服务器的攻击技术。然而,任何使用SMTP和IMAP协议的应用程序,甚至Webmail应用类型之外的应用程序也都面临这种攻击的威胁。最后,介绍了针对这种攻击的防御措施。