Python渗透测试编程技术:方法与实践(第2版)
上QQ阅读APP看书,第一时间看更新

1.1 网络安全渗透测试

在学习这个主题之前,先来了解一下网络安全渗透测试是什么。长期以来,在网络安全从业者的心目中常常会有如下一些错误的观点。

□ 网络安全渗透测试就是漏洞扫描,所以只需要用工具对目标进行扫描操作就可以了。一款功能强大的扫描工具的确可以比人工更快地检测出系统的漏洞问题,因此渗透测试者也都会使用一些工具。但是漏洞扫描仅仅是网络安全渗透测试的一个环节,除此之外,例如目标系统设备的部署问题、使用者的安全意识等都无法通过扫描工具获得。而且单单使用工具进行扫描也无法展示出一个漏洞可能造成的后果。

□ 网络安全渗透测试就是破解。破解还有一个专业的名称,那就是逆向工程。同样,破解也是网络安全渗透测试的一个部分,破解的目的就是发掘系统的漏洞,许多优秀黑客都是以发现了重大的漏洞而著名。但这一点和前面的漏洞扫描一样,只能作为全部渗透测试的一个环节。

□ 网络安全渗透测试就是黑客入侵。这是一个十分普遍的错误观点,黑客入侵是为了实现某种目的,例如窃取信息或者破坏系统,因此只需要找到能实现该目的的一种方法,而渗透测试则需要找出黑客实现目的的所有途径,并且给出可能产生的效果和修复的方案。

可网络安全渗透测试是什么呢?

实际上,网络安全渗透测试严格的定义应该是一种针对目标网络进行安全检测的评估。通常这种测试由专业的网络安全渗透测试专家完成,目的是发现目标网络存在的漏洞以及安全机制方面的隐患并提出改善方法。从事渗透测试的专业人员会采用和黑客相同的方式对目标进行入侵,这样就可以检测网络现有的安全机制是否足以抵挡恶意攻击。根据事先对目标信息的了解程度,网络安全渗透测试的方法有黑盒测试、白盒测试和灰盒测试3种。

黑盒测试也称为外部测试。在进行黑盒测试时,事先假定渗透测试人员先期对目标网络的内部结构和所使用的程序完全不了解,从网络外部对其网络安全进行评估。黑盒测试中需要耗费大量的时间来完成对目标信息的收集。除此之外,黑盒测试对渗透测试人员的要求也是最高的。

白盒测试也称为内部测试。在进行白盒测试时,渗透测试人员必须事先清楚地知道目标网络的内部结构和技术细节。相比黑盒测试,白盒渗透测试的目标是明确定义好的,因此白盒测试无须进行目标范围定义、信息收集等操作。这种测试的目标网络都是某个特定业务对象,因此,相比黑盒测试,白盒测试能够给目标带来更大的价值。

将白盒测试和黑盒测试组合使用,就是灰盒测试。在进行灰盒测试时,渗透测试人员只能了解部分目标网络的信息,无法掌握网络内部工作原理和限制信息。

网络安全渗透测试的目标包括一切和网络相关的基础设施,内容如下。

□ 网络设备,主要包含连接到网络的各种物理实体,如路由器、交换机、防火墙、无线网络接入点、服务器、个人计算机等。

□ 操作系统,是指管理和控制计算机硬件与软件资源的计算机程序,例如,个人计算机经常使用的Windows 7、Windows 10等,服务器上经常使用的Windows 2012和各版本的Linux。

□ 物理安全,主要是指机房环境、通信线路等。

□ 应用程序,主要是针对某种应用目的开发的程序。

□ 管理制度,这部分其实是全部目标中最为重要的,指的是为保证网络安全对使用者提出的要求和做出的限制。

网络安全渗透测试的成果通常是一份报告。这份报告中应当给出目标网络中存在的威胁,以及威胁的影响程度,并给出对这些威胁的改进建议和修复方案。

另外需要注意的是,网络安全渗透测试并不能等同于黑客行为。相比黑客行为,网络安全渗透测试具有以下特点。

□ 网络安全渗透测试是商业行为,要由客户主动提出,并给予授权许可才可以进行。

□ 网络安全渗透测试必须对目标进行整体性评估,尽可能全面分析。

□ 网络安全渗透测试的目的是改善用户的网络安全机制。