渗透测试的意义
渗透测试是站在第三者的角度来思考企业系统的安全性的,通过渗透测试可以发觉企业潜在却未纰漏的安全性问题。企业可以根据测试的结果对内部系统中的不足以及安全脆弱点进行加固以及改善,从而使企业系统变得更加安全,减低企业的风险。
渗透测试的分类
渗透测试按照渗透的方法与视角可以分为以下三类:
黑盒测试
黑盒测试(Black-box Testing)也称为外部测试(External Testing)。采用这种方式时,渗透测试团队将从一个远程网络位置来评估目标网络基础设施,并没有任何目标网络内部拓扑等相关信息,他们完全模拟真实网络环境中的外部攻击者,采用流行的攻击技术与工具,有组织有步骤地对目标组织进行逐步的渗透和入侵,揭示目标网络中一些已知或未知的安全漏洞,并评估这些漏洞能否被利用获取控制权或者操作业务资产损失等。
黑盒测试的缺点是测试较为费时费力,同时需要渗透测试者具备较高的技术能力。优点在于这种类型的测试更有利于挖掘出系统潜在的漏洞以及脆弱环节、薄弱点等
白盒测试
白盒测试(White-box Testing)也称为内部测试(Internal Testing)。进行白盒测试的团队将可以了解到关于目标环境的所有内部和底层知识,因此这可以让渗透测试人员以最小的代价发现和验证系统中最严重的漏洞。白盒测试的实施流程与黑盒测试类似,不同之处在于无须进行目标定位和情报收集,渗透测试人员可以通过正常渠道向被测试单位取得各种资料,包括网络拓扑、员工资料甚至网站程序的代码片段,也可以和单位其他员工进行面对面沟通。
白盒测试的缺点是无法有效的测试客户组织的应急响应程序,也无法判断出他们的安全防护计划对检测特定攻击的效率。优点是在测试中发现和解决安全漏洞所花费的时间和代价要比黑盒测试少很多。
灰盒测试
灰盒测试(Grey-box Testing)是白盒测试和黑盒测试基本类型的组合,它可以提供对目标系统更加深入和全面的安全审查。组合之后的好处就是能够同时发挥两种渗透测试方法的各自优势。在采用灰盒测试方法的外部渗透攻击场景中,渗透测试者也类似地需要从外部逐步渗透进目标网络,但他所拥有的目标网络底层拓扑与架构将有助于更好地决策攻击途径与方法,从而达到更好的渗透测试效果。
渗透测试的流程
这个标准可以在任意环境中进行富有成果的渗透测试,它由渗透测试的7个阶段组成:
前期交互
在进行渗透测试之前,渗透测试团队需要与客户就渗透测试目标、渗透测试范围、渗透测试方式(白盒、黑盒、灰盒以及是否涉及社会工程学、DDOS等)、服务合同等细节进行商议,达成一致协议。
该阶段是之后进行渗透测试的基础与关键所在。
信息收集
在确定了渗透测试目标以及范围之后,接下来就需要进入信息收集阶段。在这个阶段,渗透测试人员需要使用各种公开的资源尽可能的获取与测试目标相关的信息。可以借助互联网进行信息收集,比如说:官方网站、论坛、博客等渠道。同时也可以借助各大搜索引擎来获取相关信息,比如说:Google、Baidu等。同时也可以借助Kali Linux中的一些工具来对DNS信息、注册人信息、服务信息、WAF信息等进行收集。在这个阶段收集到的信息越充分对之后的渗透测试越有利,渗透测试的成功率也大大提高。
威胁建模
在完成了对目标系统的信息收集工作之后,接下来就是威胁建模阶段了。在这个阶段渗透测试团队需要聚集在一起就获取到的信息进行分析并且做出攻击的规划。这是渗透测试过程中非常重要但是又很容易被忽略的一个关键点。在这个过程中必须要理清思路,确定出最有效、最可行的攻击方案。
漏洞分析
在确定了最可行的攻击方案之后,接下来就需要考虑如何获取目标系统的访问控制权限。这个阶段也被称为漏洞分析阶段。
在这一个阶段,渗透测试人员需要综合分析之前信息收集阶段所获取到的信息,特别是系统类型、系统开启的服务、漏洞扫描的结果等信息,通过可以获取的渗透代码资源找出可以实施渗透攻击的攻击点,并在测试过程中进行验证。在这一阶段渗透测试人员不仅需要验证系统是否存在已知的漏洞,同时也需要去挖掘系统一些潜在的漏洞,并且开发出相应的漏洞利用代码。
渗透攻击
在仔细检查和发现目标系统中的漏洞之后