限制暴露的信息
通过我们的实例处理SSH和MySQL服务后,只有Web服务仍暴露着。按理说,外界通过标准的HTTP TCP端口80,完全可以访问该服务;我们无法把该服务隐藏在一个不同的端口后面,也无法限制对该服务的访问。我们唯一的选择就是,关于它的信息尽量少透露。
按照上一个实例,Apache版本是Apache httpd 2.2.22((Debian))。这为攻击者提供了大量的信息:Web服务器名称、版本、甚至还有操作系统。你可以限制这些信息,只需更改Apache配置,并且将服务器权标设置为ServerTokens ProductOnly。之后,当你再次运行扫描时,你会看到版本信息只有Apache httpd。
就算我们使用那个基本的Nmap实例,也能获得除版本之外的更多信息。就Apache而言,Nmap还显示了OPTIONS报头被允许;http方法方面没有什么限制 :|_http-methods: No Allow or Public header in OPTIONS response (status code 200)。从安全的角度来看,将允许的HTTP方法限制在你网站真正需要的几种方法很重要,因而为攻击者提供了较少的办法。
比如说,TRACE HTTP方法回应用户输入。很显然,这项特性适用于调试,但是在生产环境的Web服务器中不需要。TRACE方法被某些攻击所采用,因为可以允许访问敏感信息,所以它应该几乎总是被禁用。实际上,大多数普通的Web服务器应该只支持两种HTTP方法:GET和POST。为了禁止其余方法,请使用Apache命令limitexcept,就像这样:
Order deny,allow
Deny from all
隐藏服务器权标,并禁止不需要的联系方法,这开了个好头,但还远远不够。还需要应用防火墙,这种防火墙提供了更全面深入的保护。几乎所有可以公共访问的服务都有这样一种防火墙解决方案。以Apache为例,请查阅文章《如何借助ModSecurity保护你的Web服务器》(http://www.openlogic.com/wazi/bid/188075/)。
仔细检查Nmap的输出,对任何公共暴露的服务进行类似的处理。你应该能够挫败通常的一般性的非针对性攻击,这类攻击随机地扫描互联网,查找过时或配置不当的软件。
借助Nessus,更深入地分析渗透测试
Nmap功能强大,让你可以对自己的环境进行一番严格的渗透测试,但是用起来不如一些更高级的安全漏洞扫描工具来得容易,功能也不如它们全面。比如说,Nessus是一款商用安全漏洞扫描工具,允许家庭用户有限地免费使用。想在BackTrack中开始使用它,你得先注册领取一个许可证密钥,按照官方的Nessus on BackTrack指南(http://www.tenable.com/blog/enabling-nessus-on-backtrack-5-the-official-guide)里面描述的几个预备步骤即可。
一旦你在BackTrack中让Nessus设置并运行起来,可以通过能够在https://localhost:8834访问的直观的Web界面来控制它。Web界面让你很容易配置渗透测试;一旦配置完毕,可以生成界面专业的报告。
Nessus可以检测所有暴露层面上的50000余个安全漏洞,这些暴露层面从配置不当的服务,到过时软件,不一而足。一旦它检测出了安全漏洞,就会报告所有的相关信息;最为重要的是,还会建议采用什么样的解决办法。这为你节省了时间,确保你遵守解决问题的最佳实践,并确保你符合最高的安全标准。
Nessus是企业用户最青睐的渗透测试解决方案。不过,Nmap依然是网络扫描领域的瑞士军刀,因为它为探测网络环境提供了一条最快捷、最简单的路径,又不必束缚于许可证、花费大量资金。
无论你选择哪个应用程序,最重要的事情就是明白远程安全这个概念。不要暴露没必要的服务,也不要暴露没有明确要求的任何信息。这应该可以确保你不会吸引可能利用零日漏洞的四处横行的安全威胁。