渗透测试(Penetration Testing)作为网络安全防范的一种新技术,对于网络安全组织具有实际应用价值。但要找到一家合适的公司实施渗透测试并不容易。
渗透测试是专业服务
渗透测试是为了证明网络防御按照预期计划正常运行而提供的一种机制。不妨假设,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具,以确保所有补丁都已打上。如果你早已做到了这些,为什么还要请外方进行审查或渗透测试呢?因为,渗透测试能够独立地检查你的网络策略,换句话说,是给你的系统安了一双眼睛。而且,进行这类测试的,都是寻找网络系统安全漏洞的专业人士。
渗透测试有时是作为外部审查的一部分而进行的。这种测试需要探查系统,以发现操作系统和任何网络服务,并检查这些网络服务有无漏洞。你可以用漏洞扫描器完成这些任务,但往往专业人士用的是不同的工具,而且他们比较熟悉这类替代性工具。
渗透测试的作用一方面在于,解释所用工具在探查过程中所得到的结果。只要手头有漏洞扫描器,谁都可以利用这种工具探查防火墙或者是网络的某些部分。但很少有人能全面地了解漏洞扫描器得到的结果,更别提另外进行测试,并证实漏洞扫描器所得报告的准确性了。
如何进行渗透测试
有些渗透测试人员通过使用两套扫描器进行安全评估。这些工具至少能够使整个过程实现部分自动化,这样,技术娴熟的专业人员可以专注于所发现的问题。如果探查得更深入,则需要连接到任何可疑服务,某些情况下,还要利用漏洞。
商用漏洞扫描工具在实际应用中存在一个重要的问题:如果它所做的测试未能获得肯定答案,许多产品往往会隐藏测试结果。譬如,有一款知名扫描器存在这样的缺点:要是它无法进入Cisco路由器,或者无法用SNMP获得其软件版本号,它不会做出这样的警告:该路由器容易受到某些拒绝服务(DoS)攻击。如果不知道扫描器隐藏了某些信息(譬如它无法对某种漏洞进行测试),你可能误以为网络是安全的,而实际上,网络的安全状况可能是危险的。
除了找到合适工具以及具备资质的组织进行渗透测试外,还应该准确确定测试范围。攻击者会借助社会工程学、偷窃、贿赂或者破门而入等手法,获得有关信息。真正的攻击者是不会仅仅满足于攻击某个企业网络的。通过该网络再攻击其它公司往往是黑客的惯用伎俩。攻击者甚至会通过这种方法进入企业的ISP。
为了从渗透测试上获得大价值,应该向测试组织提供尽可能详细的信息。这些组织同时会签署保密协议,这样,你可以更放心地共享策略、程序及有关网络的其它关键信息。
还要确定的是,哪些系统需要测试。虽然你不想漏掉可能会受到攻击的某个系统,但可能仍想分阶段把渗透测试外包出去,以便每个阶段专注于网络的不同部分。
你还应该制订测试准则,譬如说:渗透测试人员可以探查漏洞并进行测试,但不得利用,因为这可能会危及到你想要保护的系统。
此外,你还要提供合适的测试途径。如果你想测试在非军事区(DMZ)里面的系统,好的测试地方是在同一个网段内测试。让渗透测试人员在防火墙外面进行测试听起来似乎更实际,但内部测试可以大大提高发现防火墙原本隐藏的服务器安全漏洞的可能性。因为,一旦防火墙设置出现变动,有可能暴露这些漏洞,或者有人可能通过漏洞,利用一台DMZ服务器攻击其它服务器。还记得尼姆达病毒吗?它是首次攻击得逞后、利用一台Web服务器发动其它攻击的。
以外部需要访问的Web或应用服务器为例,你应该考虑与渗透测试人员共享这些应用的源代码,如果测试涉及这些脚本或程序的话。没有源代码,很难测试ASP或CGI脚本,事先认定攻击者根本不会看到源代码是不明智的。Web服务器软件里面的漏洞往往会把脚本和应用暴露在远程攻击者面前。如果能够获得应用的源代码,则可以提高测试该应用的效率。毕竟,你出钱是为了让渗透测试人员查找漏洞,而不是浪费他们的时间。
安全审查的一部分
渗透测试旨在证明,网络防御机制的运行与你认为的一样良好。往往系统和网络管理员视审查人员或渗透人员为敌人,但实际上他们却是朋友。到位的渗透测试可以证明你的防御确实有效,或者查出问题,帮助你阻挡未来攻击。出钱请自己知道的人来发现网络中的漏洞,总比让自己不知道的人发现漏洞好得多。
渗透测试可以用来向第三方,譬如投资方或者你的管理人员提供网络安全状况方面的具体证据。事实上,你知道网络中存在的漏洞可能已有一段时日,但无法说服管理人员分配必要资源以补救漏洞。光靠自己,网络或安全管理员的意见往往不会被董事会采纳。如果外面的顾问赞同你的评估,或许会有奇迹出现。
有关渗透测试的合同或工作说明应该包括你从所得报告中想要获得的各个方面。如果你请人进行有限的测试,得到的只是计算机生成的报告。而渗透测试的真正价值在于由报告所衍生出的分析。进行测试的一方会详细介绍发现结果,并说明其重要性。在有的地方,测试人员还会提议采取何种补救方法,譬如更新服务器、禁用网络服务、改变防火墙规则等等。
如今,大多数攻击进行的是基本的漏洞扫描,如果攻击得逞,目标岌岌可危。如果攻击者企图对你站点进行漏洞扫描,他会获得大量的防火墙日志消息,而监控网络的任何入侵检测系统(IDS)也会开始发送有关当前攻击的警报。如果你还没有试过,不妨利用漏洞扫描器结合IDS对网络来一番试验。别忘了首先获得对方的许可,因为,运行漏洞扫描器会使IDS引发警报。
渗透测试也许是你的网络防御工具箱当中的重要武器之一。应该视之为各种安全审查的一部分,但要确保审查人员胜任这项工作。