站在攻击者的角度思考问题,可以快速了解企业网络防御的不足之处。网络安全渗透测试的本质是扮演攻击型黑客的角色,对企业的IT资产进行梳理,发现漏洞和攻击路径,从而更好地修复或应对风险。渗透测试的常见类别渗透测试有许多具体类型,大致可分为三大类:网络渗透测试、应用程序渗透测试和社会工程。1.网络渗透测试无线网络渗透测试:这种类型的测试涉及渗透测试人员评估客户定义的无线网络。测试人员将寻找无线加密中的已知缺陷,尝试破解密钥,诱骗用户向攻击者控制的“邪恶双胞胎”接入点或文件夹提供凭证,以及暴力破解登录详细信息。恶意接入点扫描可以通过物理位置和经过身份验证的无线网段测试来完成这些类型的评估,以确定攻击者在成功连接到环境后可以访问的内容。外网渗透测试:在外网渗透测试中,针对面向互联网的资产进行模拟攻击。通常,目标资产由客户提供,但也可以在客户确认的情况下执行“无范围”测试。测试人员将尝试扫描期间发现的任何可利用的漏洞。此外,允许登录的公开服务将容易受到密码猜测攻击,例如暴力破解或密码喷洒。向公众开放的公司网站通常会受到额外的审查,以发现攻击者可以轻易利用的常见Web漏洞。内部网络渗透测试:内部网络测试评估是从获得组织内部网络访问权限的角度进行的,可以提供测试人员与客户员工之间的有益互动,测试人员可以使用客户提供的基础设施,也可以使用自己的基础设施用于远程访问的物理或虚拟远程测试系统。2、应用渗透测试Web应用渗透测试:Web应用渗透测试关注的是通过Web应用呈现给攻击者的攻击面。这些测试类型旨在评估Web应用程序的安全性并寻找攻击性方法来访问敏感数据,或获得对Web应用程序的控制权。在此评估过程中,组织通常会为测试人员提供访问权限以审查整个应用程序。移动应用渗透测试:主要是指通过对已编译的移动应用进行静态分析或动态运行时分析来评估移动应用的安全性。此外,还分析和评估了移动设备参与的通信过程。这通常包括与网页数据或API调用的HTTP连接。厚应用程序渗透测试:在桌面或服务器操作系统(如Linux和Windows)上运行的编译应用程序需要复杂的逆向工程。这种类型的评估将包括反汇编(将计算机代码翻译成普通语言)和反编译应用程序,并在应用程序运行时使用调试器附加到应用程序以进行运行时分析。本测试旨在分析应用程序通信是否以不安全的方式传输敏感信息。3.社会工程攻击测试网络钓鱼:每个组织都可能成为网络钓鱼攻击的目标。这种类型的评估旨在确定组织的用户群对鱼叉式网络钓鱼攻击的敏感性。测试的目的不是评估组织电子邮件保护的有效性,而是确定当邮件绕过这些过滤器时用户将如何反应。这些评估的结果可用于增强组织的反社会工程学意识计划。电话网络钓鱼:测试人员使用来电显示欺骗技术来冒充用户、支持人员或客户。评估旨在说服用户采取一些可能会泄露信息或提供对组织系统的访问权限的操作。许多用户根据电话号码选择信任来电者。一些用户会感知到攻击并以各种方式做出响应,例如咨询安全顾问或在电话后联系信息安全团队。USB令牌注入:用户可能会无意中尝试将USB设备连接到环境中。在这种类型的评估中,测试人员将部署看似普通的USB驱动器并诱使用户将设备插入公司系统。这些USB设备可以是包含建立远程连接的恶意文件的典型驱动器,或者它们可以在连接时执行某些键盘操作。PhishingforSMScollection:此类评估类似于网络钓鱼,但使用的媒介更改为SMS或短消息服务,向用户发送欺诈性消息。与网络钓鱼一样,这些活动将试图让用户访问冒充组织的网站或试图传播恶意特洛伊木马病毒。渗透测试的关键步骤从企业的角度来看,渗透测试的目标是验证现有安全策略的有效性,以识别可能带来潜在风险的缺陷。在渗透测试人员的心目中,他们的目标是实际登录到被测系统和应用程序并尝试进行数据窃取操作。真正的攻击者根本没有攻击范围,可以通过多种方式攻击组织,比如直接攻击暴露在互联网上的业务系统和应用,或者利用员工的一些安全弱点实现入侵。在实施渗透测试服务时,通常需要包括以下关键步骤:1.侦察研究组织给定目标的细节。这通常涉及广泛的OSINT(开源情报),这将在测试人员完成其他阶段时为他们提供帮助。在此阶段生成的信息可能包括但不限于主机名、IP地址、员工姓名和电子邮件地址。2.攻击面枚举此阶段枚举攻击者可以与之交互的元素。在社会工程模式下,攻击的目标可以是服务、Web应用程序、人甚至建筑物。每个可以交互的参数或接口都可以在这个阶段被识别出来。3.漏洞检测漏洞是目标资源中的缺陷。攻击者可以利用现有漏洞造成意想不到的后果,如系统访问、信息泄露或拒绝服务攻击等。在此阶段识别可能被攻击者利用的漏洞。4.渗透攻击这是渗透测试过程中的核心环节。在这个阶段,渗透测试团队需要利用他们发现的目标系统的安全漏洞来实际入侵系统,以获得访问控制或访问更敏感的数据。5.写报告渗透测试完成后,需要将相关数据关联起来,清晰的呈现给客户。该报告应包括渗透测试团队在前几个阶段获得的关键情报信息、检测和发现的系统安全漏洞、渗透攻击成功的过程、造成业务影响后果的攻击路径,同时处于防御状态。站在开发者的角度,帮助他们分析安全防御体系中的薄弱环节、存在的问题,并修复技术方案。6.修复并重新测试当测试结果提交后,下一步就是快速修复组织既定政策和程序中发现的漏洞。在某些情况下,发现的漏洞无法直接修复,但可以通过其他机制解决,例如额外的安全措施或补偿控制。渗透测试人员还可以重新参与以提供补救证据或评估缓解措施的有效性。需要指出的是,这些测试阶段不一定是固定的,渗透测试人员可以根据需要重复前面的步骤。7关于渗透测试的误解定期渗透测试对企业来说非常宝贵,不仅可以发现安全问题,还可以让软件开发人员更好地了解系统的实际运行方式。然而,很多企业在准备制定渗透测试计划时,对渗透测试服务的理解和需求往往与真实的服务状态存在诸多偏差和误解。误解一、渗透测试是为了漏洞评估漏洞评估涉及对已知漏洞的识别和分类,生成需要关注的优先漏洞列表,并推荐修复方法。安全威胁多种多样,不仅限于利用安全漏洞。渗透测试侧重于模拟攻击者的行为。服务完成后,测试人员需要生成一份详细的报告,说明测试过程中安全是如何被破坏的,以达到之前约定的目标(比如破坏工资制度),并提供相应的威胁缓解解决方案。误区二、人工测试将被自动化取代。为实现安全能力测试常态化、持续化,许多企业开始大量采用自动化技术驱动的安全测试方式。但需要指出的是,目前的自动化测试方式大多是安全扫描,不是真正的渗透测试。自动化测试的应用价值不可否认,但真实的攻击行为与机器模拟的入侵有很大的不同。经验、创造力和好奇心是渗透测试的核心,也是专业渗透者所独有的。自动化测试完成后,需要配合人工测试的方式,从攻击者的角度来发现问题。误区三、渗透测试只是用来发现技术缺陷的。渗透测试的目的是发现组织安全防护体系的缺陷。在测试中,测试人员可以应用各种方法,包括社会工程学方法。因此,在渗透测试之前,通常会确定是否需要对一项技术进行专门的安全性评估。在实际应用中,测试工程师可能会被授权做更多的事情,比如扫描社交媒体寻找可利用的信息,或者试图通过电子邮件获取用户的敏感数据,甚至试图欺骗用户获取账户权限等。误区4.渗透测试需要由外部团队完成。渗透测试可以由内部员工、专业服务提供商或其他第三方组织完成。理想情况下,外部测试人员定期审查内部测试人员的工作。误区五:渗透测试只对大型企业有价值如今,一些法规和行业标准明确要求组织定期进行渗透测试。例如,医疗保健提供者需要进行测试以确保他们能够保证医疗数据的安全。同时,任何接受或处理信用卡的企业都必须遵守支付卡行业数据安全标准(PCIDSS)。渗透测试结果有时也被引用作为合规事件处理的证据。误解6.渗透测试总是主动的渗透测试可以是主动的,也可以是被动的。在大多数情况下,组织会主动执行测试以帮助防止违规。然而,测试后取证分析期间的渗透测试也可以帮助安全团队了解发生了什么以及事件是如何发生的,所有这些信息还可以帮助组织防止未来发生类似事件。误区七、渗透测试不会使用DDoS渗透测试人员需要在测试过程中尽量避免影响企业的正常业务。拒绝服务攻击由于其破坏性较大,在渗透测试工作中一般较少使用。然而,在某些情况下,测试人员需要针对具有资源消耗漏洞的特定系统执行拒绝服务攻击,以深入了解攻击范围和影响规模,并制定适当的缓解措施来避免此类攻击。
