如何执行一个网络渗透测试
一个良好的渗透测试是什么组成的?
虽然执行一个渗透测试有许多明显的优点——执行渗透测试的价值在于它的结果。这些结果必须是有价值的,而且对于客户来说必须是很容易理解的。有一个常见的误解是认为渗透测试只是使用一些时髦的自动化安全工具,并处理所生成的报告。但是,成功执行一个浸透测试并不仅仅是需要安全工具。虽然这些自动化安全测试工具在实践中扮演了重要的角色,但是它们也是有缺点的。事实上,这些工具一直无法真正模拟一个高深攻击者的行为。不管安全工具完成的报告有多么全面,其中总是有一些需要解释的问题。
让我们看看构成一个良好渗透测试的一些关键因素:
•建立参数:定义工作范围是执行一个成功渗透测试的第一步,也是最重要的一步。这包括定义边界、目标和过程验证(成功条件)。
•专业人员:配备技术熟练和经验丰富的咨询人员执行测试——他们了解自己要做什么。换句话说,专业人员与一般人员是不同的。要保证他们是:
o 能胜任的
o经验丰富的
o遵守保密协议
•选择足够的测试集:手工的和自动的都会影响成功/效益之间的最佳平衡。
•遵循正确的方法:这并不是猜谜游戏。所有方面都需要规划、文档化和符合要求。
•结果值:结果应该详细地写入文档,并且要尽力使它们能被客户所理解。不管是技术报告还是执行总结,都需要一些注释。应用安排一些安全咨询人员/测试人员来回复问题或解释结果。
•测试结果与建议:这是渗透测试的一个非常重要的部分。最终的报告必须清晰地说明成果,必须将成果与潜在的风险对应。这应该会附带产生一个基于最佳安全实践方法的修正路线图。
在我们讨论浸透测试中所使用的测试策略和技术之前,让我们先看一些可能很有用的场景:
•建立新的办公室
不管是建立新的公司或增加新的办公点,浸透测试都有助于确定网络基础架构中的潜在漏洞。例如,在增加新办公点时执行内部测试是非常重要的,因为它会检查网络资源的可用性,并检查这些办公点之间传输的流量类型。
•部署新的网络基础架构
每一个新的网络基础架构都应该能模拟黑客行为进行全面的测试。当执行外部测试(预先不太了解基础架构)来保证边界安全性时,我们也应该执行内部测试来保证网络资源,如:服务器、存储、路由和访问设备,在边界受到攻击时仍然是足够安全的,而且基础架构是能够抗拒任何攻击的。
•修改/升级现有的基础架构
修改是不可避免的——可能是软件、硬件或网络设计,由于需要功能改进;修复重大缺陷和/或应用新的需求,都可能引起修改/升级。不管现有的基础架构在什么时候发生变化,它都应该再次测试,以保证不会出现新的漏洞。必要测试的数量取决于基础架构修改的特征和程度。细小的变化,如配置变更为特定规则,将只需要进行端口扫描来保证预期的防火墙行为,而重大的变化,如关键设备/OS版本升级,可能就需要彻底重新测试。
•部署新应用
当基础架构进行彻底测试之后,新的应用(不管是连接Internet的或是在Intranet中)在部署到生产环境之前也都必须进行安全性测试。这个测试需要在“实际的”平台上进行,以保证这个应用只使用预定义的端口,而且代码本身也是安全的。
•修改/升级一个现有应用
随着基本架构发生变化,本质上应用也会发生变化。细小的变化,如用户帐号修改,都不需要测试。但是,重大的变化,包括应用功能变化,都应该彻底重新测试。
•定期重复测试
管理安全性并非易事,而公司不应该认为渗透测试就是所有安全问题的最终解决办法。如果这样认为,那么他们只是相信了假的安全性。对敏感系统定期执行测试来保证不会出现不按计划的变化,一直都是一个非常好的实践方法。