渗透测试工作流程
渗透测试与其它评估方法不同。通常的评估方法是根据已知信息资源或其它被评估对象,去发现所有相关的安全问题。渗透测试是根据已知可利用的安全漏洞,去发现是否存在相应的信息资源。相比较而言,通常评估方法对评估结果更具有全面性,而渗透测试更注重安全漏洞的严重性。渗透测试通常有七个阶段,如下所示本文选自Android渗透测试入门教程大学霸:
q 前期交互阶段:该阶段通常是用来确定渗透测试的范围和目标的。
q 信息收集阶段:在该阶段需要采用各种方法来收集目标主机的信息,包括使用社交媒体网络、Google Hacking技术、目标系统踩点等。
q 威胁建模阶段:该阶段主要是使用信息收集阶段所获取到的信息,来标识出目标系统上可能存在的安全漏洞与弱点。
q 漏洞分析阶段:在该阶段将综合从前面几个环节中获取到的信息,从中分析和理解那些攻击途径是可行的。特别是需要重点分析端口和漏洞扫描结果,截取到服务的重要信息,以及在信息收集环节中得到的其它关键信息。
q 渗透攻击阶段:该阶段可能是在渗透测试过程中最吸引人的过程。然而在这种情况下,往往没有用户所预想的那么一帆风顺,而往往是曲径通幽。在攻击目标主机时,一定要清晰地了解在目标系统上存在这个漏洞。否则,根本无法攻击成功。
q 后渗透攻击阶段:该阶段在任何一次渗透过程中都是一个关键环节。该阶段将以特定的业务系统作为目标,识别出关键的基础设施,并寻找客户组织最具价值和尝试进行安全保护的信息和资产。
q 报告阶段:报告是渗透测试过程中最重要的因素,使用该报告文档可以交流渗透测试过程中做了什么、如何做的以及最为重要的安全漏洞与弱点。
1.2.2 渗透测试类型
到现在为止,大家已经对渗透测试的基本技术流程与环节有了一个初步的了解。接下来介绍一下渗透测试的两种基本类型,分别是黑盒测试和白盒测试。白盒测试有时也被称为“白帽子”,是指渗透测试者在拥有客户组织所有知识的情况下进行的测试;而黑盒测试是指对攻击主机一无所知的攻击者所进行的渗透测试。两种测试方法都拥有它们自己的优点和弱点。下面分别介绍详细介绍这两种类型。
1.白盒测试
使用白盒测试,需要和客户组织一起工作,来识别出潜在的安全风险,客户组织将会向用户展示它们的系统与网络环境。白盒测试最大的好处就是攻击者将拥有所有的内部信息,并可以在不需要害怕被阻断的情况下任意地实施攻击。而白盒测试的最大问题在于无法有效地测试客户组织的应急响应程序,也无法判断出它们的安全防护计划对检测特定攻击的效率。如果时间有限,或是特定的渗透测试环节如信息收集并不在范围之内的话,那么白盒测试是最好的渗透测试方法。
2.黑盒测试
黑盒测试与白盒测试不同的是,经过授权的黑盒测试是设计成为模拟攻击者的入侵行为,并在不了解客户组织大部分信息和知识的情况下实施的。黑盒测试可以用来测试内部安全团队检测和应对一次攻击的能力。
黑盒测试是比较费时费力的,同时需要渗透测试者具备更强的技术能力。它依靠攻击者的能力通过探测获取目标系统的系统。因此,作为一次黑盒测试的渗透测试者,通常并不需要找出目标系统的所有安全漏洞,而只需要尝试找出并利用可用获取目标系统访问权代价最小的攻击路径,并保证不被检测到。
不论测试方法是否相同,渗透测试通常具有两个显著特点。
q 渗透测试是一个渐进的并且逐步深入的过程。
q 渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。
1.2.3 法律边界
当实施渗透测试时,获取准确的书面授权是非常重要的事情。如果不清楚的话,可能导致用户面临法律诉讼的问题,更有可能为此锒铛入狱。所以,这里简单介绍一些需注意的法律边界问题。如下所示本文选自Android渗透测试入门教程大学霸:
q 测试的目的是什么?
q 测试预计的时间范围是多少?测试中有什么限制,如什么时候可以进行测试?
q 你的客户指定漏洞评估和渗透测试的区别吗?
q 你在此次扫描测试过程中会和IT安全团队合作吗?你需要测试它们的能力吗?
q 可以在渗透过程中使用社会工程学攻击吗?可以使用拒绝服务攻击吗?
q 你能够使用一些物理安全测试方法来测试那些安全服务器、敏感数据存储、或其他能够物理接触的设备吗?例如,撬锁、仿冒一些员工获得进入大楼的权限、或是进入那些普通人员通常不能单独访问的区域。
q 你是否被允许查看网络文件,或者在测试之前告知网络架构来加速测试过程?如果不明白这一点,可能会影响你得到测试结果的价值。但是在绝大多数业务中,这类企业信息不会像用户想象的那么容易得到。
q 允许用户检查的IP范围是什么?没有经过正式允许的扫描和测试是法律所不允许的。用户必须尽力弄清属于客户的网络范围和设备,否则可能会陷于法律指控的危险之中。
q 公司的物理位置在哪里?如果允许使用社会工程学攻击,那么这个信息对测试人员非常重要。因为这能够保证用户身处被测试的建筑物当中。如果时间允许,你应该让客户指定。尽管他们认为自己的位置信息是保密或者难以发现的,但是你却能够轻松地从公开渠道获取上诉的信息。
q 如果测试时遇到一个问题,或测试的最初目标已经达到,你应该做什么?你是否会继续检查,以发现更多入口或结束测试?这个问题非常重要,它关系到客户为什么要进行一次渗透测试这一首要问题。
q 用户需要注意不同国家对信息系统制定的法律不同。在针对渗透测试的法律上,不是所有国家的法律都是相同的。
q 一旦通过漏洞攻击了系统,进一步拓展是否需要获得其他许可?这在对分段的网络进行测试时非常重要。客户可能不会想到,你能够通过内网一台主机作为支点来进一步渗透内网。
q 怎样处理数据库?是否允许你添加记录、用户等信息?
在渗透测试时,用户需要做一个列表,列出根据客户要求需要测试的内容。大部分数据可以从客户那里直接收集,但是还有一些数据需要你们团队进行处理。如果担心法律问题,建议用户咨询一下法律顾问以确保对渗透测试的合法性有一个完全了解本文选自Android渗透测试入门教程大学霸。