3-渗透测试介绍

1、安全目标

  • 先于攻击者发现和防止漏洞出现
    • 攻击型安全:在系统正式上线前,用攻击的手段去探测攻击系统,发现漏洞,提前修复好。
    • 防护型安全:例如:关闭不必要的端口、服务,将攻击面降到最低,从防守的角度去建设安全。弊端:没有办法防护所有层面,即防护不够全面。投入巨大、周期很长、效果甚微、脆弱。

2、渗透测试工作的意义

  • 尝试挫败安全防御机制,发现系统安全弱点
  • 从攻击者(黑客)的角度思考,测量安全防护有效性
  • 证明安全问题的存在,而非破坏
  • 道德约束
  • 法律

3、渗透测试标准

PTES:前期交互阶段
         前期交互阶段通常是与客户组织进行讨论,来确定渗透测试的范围和目标。这个阶段最为关键的是需要让客户组织明确清晰地了解渗透测试将涉及哪些目标。选择更加现实可行的渗透测试目标进行实际实施。(若系统太大,则需要拆分成多个应用系统,分别对各个应用系统进行渗透测试)

PTES:情报搜集阶段
         在情报搜集阶段,需要使用各种可能的方法来收集将要攻击的客户组织的所有信息,包括邮箱地址、DNS地址、近期公司动态、使用社交媒体网络、Google Hacking技术、目标系统踩点等等。作为渗透测试人员,最重要的一项技术就是对目标系统的探查能力,包括获知它的行为模式、运行机理,以及最终可以如何被攻击。

         在情报搜集阶段中,通过逐步深入的探测,来确定在目标系统中实施了哪些安全防御措施。例如,一个组织在对外开放的网络设备上经常设置端口过滤,只允许接收发往特定端口的网络流量,而一旦在白名单之外的端口访问这些设备时,那么就会被加入黑名单进行阻断。通过这种阻断行为的一个好方法是先从所控制的其他IP地址来进行初始探测,而这个IP地址是预期就会被阻断或者检测到的。当在探测web应用程序时,这个方法非常适用,因为一些保护web应用程序的web应用防火墙通常也会在探测请求数量超过一定阈值后对IP进行阻断,使得无法再使用这个IP发起任何请求。

PTES:威胁建模阶段
         威胁建模主要使用在情报搜集阶段所获取到的信息,来标识出目标系统上可能存在的安全漏洞与弱点。在进行威胁建模时,确定最为高效的攻击方法、所需要进一步获取到的信息,以及从哪里攻破目标系统。

PTES:漏洞分析阶段
         在漏洞分析阶段,综合从前面的几个环节中获取到信息,并从中分析和理解哪些攻击途径回事可行的。特别是需要重点分析端口和漏洞扫描结果,获取到的服务“旗帜”信息,以及在情报搜集环节中得到的其他关键信息。

 PTES:渗透攻击阶段
         渗透攻击在实际情况下往往没有所预想的那么“一帆风顺”,而往往是“曲径通幽”。最好是在基本能够确信特定渗透攻击会成功的时候,才真正对目标系统实施这次渗透攻击,当然在目标系统中很可能存在着一些没有预期到的安全防护措施,是的这次渗透攻击无法成功。在尝试要触发一个漏洞时,应该清晰地了解在目标系统上存在这个漏洞。

PTES:后渗透攻击阶段
         后渗透攻击阶段从已经攻陷了客户组织的一些系统或取得域管理权限之后开始。后渗透攻击阶段将以特定的业务系统作为目标,识别出关键的基础设施,并寻找客户组织最具价值和尝试进行安全保护的信息和资产,当从一个系统攻入另一个系统时,需要演示出能够对客户组织造成最重要业务影响的攻击途径。

         在后渗透攻击阶段进行系统攻击,需要投入更多的时间来确定各种不同系统的用途,以及它们中不同的用户角色。

PTES:报告阶段
         报告是渗透测试过程中最为重要的因素,使用报告文档来交流在渗透测试过程中做了哪些,如何做的,以及最为重要的----客户组织如何修复所发现的安全漏洞和弱点。

         当在编写和报告发现时,需要站在客户组织的角度上,来分析如何利用发现来提升安全意识,修补发现的问题,以及提升整体的安全水平,而并不仅仅是对发现的安全漏洞打上补丁。

         所撰写的报告至少分为摘要、过程展示和技术发现这几个部分,技术发现部分将会被客户组织用来修补安全漏洞,但这也是渗透测试过程真正价值的体现。例如,在客户组织的web应用程序中找出了一个SQL注入漏洞,渗透测试者会在报告的技术发现部分来建议客户对所有的用户输入进行检查过滤,使用参数化的SQL查询语句,在一个受限的用户账户上运行SQL语句,以及使用定制的出错消息。最可能导致SQL注入漏洞的根本原因是使用了未能确保安全性的第三方应用,在报告中也要充分考虑这些因素,并建议客户组织进行细致检查并消除这些漏洞。

4、渗透测试项目

  • 渗透测试范围(若系统太大,则需要拆分成多个应用系统,分别对各个应用系统进行渗透测试)
  • 获取授权(获得客户的渗透、攻击授权,使渗透/攻击合法)
  • 渗透测试方法
    • 是否允许社会工程学(是否包含敏感)
    • 是否允许拒绝服务攻击

5、渗透测试误区

  • 扫描器就是一切( Burpsuite、Skipfish等)
    • 忽略业务逻辑中的漏洞

猜你喜欢

转载自blog.csdn.net/python_jeff/article/details/120304495