一、概念(什么是渗透测试)
渗透测试(Penetration Testing)是由具备高技能和高素质的安全服务人员发起、并模拟常见黑客所使用的攻击手段对目标系统进行模拟入侵。
渗透测试服务的目的在于充分挖掘和暴露系统的弱点,从而让管理人员了解其系统所面临的威胁。
渗透测试工作往往作为风险评估的一个重要环节,为风险评估提供重要的原始参考数据。
二、渗透测试的必要性
渗透测试是脆弱性评估的一种很好的补充。同时,由于主持渗透测试的测试人员一般都具备丰富的安全经验和技能,所以其针对性比常见的脆弱性评估会更强、粒度也会更为细致。
另外,渗透测试的攻击路径及手段不同于常见的安全产品,所以它往往能暴露出一条甚至多条被人们所忽视的威胁路径,从而暴露整个系统或网络的威胁所在。 最重要的是,渗透测试最终的成功一般不是因为某一个系统的某个单一问题所直接引起的,而是由于一系列看似没有关联而且又不严重的缺陷组合而导致的。
三、渗透测试的好处
明确安全隐患点
渗透测试是一个从空间到面再到点的过程,测试人员模拟黑客的入侵,从外部整体切入最终落至某个威胁点并加以利用,最终对整个网络产生威胁,以此明确整体系统中的安全隐患点。
提高安全意识
如上所述,任何的隐患在渗透测试服务中都可能造成“千里之堤溃于蚁穴”的效果,因此渗透测试服务可有效督促管理人员杜绝任何一处小的缺陷,从而降低整体风险。
获得渗透测试报告
报告包括:
漏洞详细描述(测试范围、过程、使用的技术手段以及获得的成果);
漏洞详细解决方案;
通过专业的渗透测试报告,为用户提供当前流行安全问题的参考。
四、渗透测试服务范围
范围主要包括了操作系统、应用系统、WEB程序和网络设备。
操作系统包括:
Windows、发行版Linux、AIX、Solaris、FreeBSD等主流系统。
应用系统包括:
Oracle、MySQL、MSSQL、Sybase、DB2、Informix等主流数据库,Apache、IIS、Tomcat、Weblogic等主流WEB服务器,FTP、DNS等主流应用服务器。
WEB程序包括:
ASP、PHP、JSP、.NET、Perl、Python、Shell等语言编写的WEB程序。
网络设备包括:
常见厂商的路由器、交换机等设备。
五、渗透测试的服务方式
根据测试的位置不同可以分为内部测试和外部测试;根据测试的方法不同分为黑盒测试和白盒测试两类。
内部测试
内部测试是指经过用户授权后,测试人员到达用户工作现场,根据用户的期望测试的目标直接接入到用户的办公网络甚至业务网络中。这种测试的好处就在于免去了测试人员从外部绕过防火墙、入侵保护等安全设备的工作。一般用于检测内部威胁源和路径。
外部测试
与内部测试相反,测试人员无需到达客户现场,直接从互联网访问用户的某个接入到互联网的系统并进行测试即可。这种测试往往是应用于那些关注门户站点的用户,主要用于检测外部威胁源和路径。
黑盒测试
黑盒测试是指测试人员对除目标系统的IP或域名以外的信息一无所知的情况下对系统发起的测试工作,这种方式可以较好的模拟黑客行为,了解外部恶意用户可能对系统带来的威胁。
白盒测试
白盒测试则是指测试人员通过用户授权获取了部分信息的情况下进行的测试,如:目标系统的帐号、配置甚至源代码。这种情况用户模拟并检测内部的恶意用户可能为系统带来的威胁。
六、渗透测试流程
明确目标
分析风险,获得授权
信息收集
漏洞探测(手动&自动)
漏洞验证
信息分析
利用漏洞,获取数据
信息整理
形成报告