在当前数字化环境中,IT的一个里程碑式增长便是公司组织和企业数字化。为了扩大市场范围和方便业务,许多组织都在转向互联网。这导致了一股新的商业浪潮,它创造了网络空间中的商业环境。通过这种方式,公司和客户的官方或机密文件都可以上传到互联网上,方便用户随时访问。
通常情况下,网站会受到保护而免遭黑客攻击,但保存、保护机密文件和知识产权仍需要强大的安全保障。这种安全保障是为了抵御来自黑客的网络攻击或网暴。在这种情况下,Web渗透测试是安全专业人员用来防止此类网络入侵的最佳工具之一。
1.什么是网络渗透测试?
渗透测试是针对计算机系统进行的一种模拟网络攻击,目的是为了寻找可能被利用的漏洞。这是一项自我评估测试,用于评估计算机系统和网络中可被利用的漏洞。
网络渗透测试是一种网络评估工具,被网络安全专业人员用来评估现有网络安全工具的完整性和有效性。这是一项对现有网络安全实施构成威胁的风险因素所进行的详细安全评估。通过对公司的数字资源和网络进行分析和扫描,网络渗透测试能够检测出任何存在的漏洞。一旦发现漏洞,就会对其进行检查,以确定黑客是否可以通过渗透测试利用这些漏洞。
Web渗透测试针对的是基于Web的客户端应用程序,它涵盖了当今企业组织使用的大多数应用程序。由于Web应用程序的广泛使用,Web渗透测试是任何网络安全解决方案的关键组成部分。这是因为这些基于网络的应用程序可以让黑客访问个人身份信息(PII)—知识产权、受保护的健康信息,以及不想被访问的保密网络和资源。这使得对基于网络的客户应用程序受到攻击的威胁变得非常严重。
由于基于Web的应用程序越来越容易受到外部攻击,所以经常对网络安全的实施进行评估非常重要。组织如何对一次成功渗透做出的反应,可以发现运营层面和组织架构层面上的缺陷,而这些缺陷在受到攻击前就能得到修复。
2.网络渗透测试基础
Web渗透测试的方法和工具有很多种。网络安全专家偶尔会在沙箱环境中的服务器上使用黑客随手可用的间谍软件。有时,专家可能会对当前活跃系统进行渗透测试,以评估其普遍存在的弱点。由于可以使用的方法范围广泛,所以很难简化Web渗透测试的流程。以下是三种类型的网络渗透:
(1)黑盒测试
这种渗透测试发生在网络安全专家和测试人员对目标事先不了解的情况下。在渗透测试过程中,测试人员要了解目标,评估系统和应用程序,找出缺陷并尝试利用这些缺陷。这种黑盒测试的优势在于能够精确模拟网络攻击过程。测试人员必须像一个不怀好意的参与者那样与目标战斗,并透露重要信息。黑盒渗透测试有一个缺点,那就是需要花费大量的时间和精力。黑盒测试比其他测试范围更广,但它的缺点是耗时费力。
(2)白盒测试
在白盒测试中,专家事先了解公司的网络状况和弱点。与黑盒测试相比,白盒测试更为常见,用于检查特定的缺陷所带来的风险。白盒测试不像黑盒测试那样费劲,因为测试人员被授权访问目标系统的可用信息。白盒测试的一个优势是它们能够集中并能准确地检测出漏洞。
(3)灰盒测试
就如黑白组合会产生灰色一样,灰盒测试结合了黑盒和白盒测试。这里,渗透专家通常对目标有一些了解,但没有获得白盒测试那样详细的信息。在渗透测试开始之前,公司可能会提供基本的信息,这些信息通常也可以被黑客获得。每种测试方法针对的是基于客户和安全审核员的不同功能,相比较而言,黑盒测试是模拟真实的黑客攻击,它可以提供有关公司漏洞如何在外部被评估和利用的重要信息;白盒测试非常彻底,可以用来渗透测试所有客户端的Web程序。
3.网络渗透测试方法
正如渗透测试的方式不同,为评估系统而部署这些测试的方法也不同。这就是为什么确定所有人使用的通用渗透测试方法具有挑战性。相反,一般的Web渗透方法可以描述部署Web渗透测试的步骤。
这些方法包括侦查、扫描、漏洞评估、漏洞评估和访问、维护与报告。
(1)侦查
网络渗透测试一般是以侦查为起点,在侦查过程中,测试人员对目标了解地越多越好。这包括公司运营、系统和组织结构的详细情况。具体而言,需要收集网络拓扑、用户帐户、操作系统和应用程序等信息以及其他相关数据。这些信息可以对潜在攻击途径提供预见性洞察。
在网络渗透测试类型(如白盒渗透测试)中,侦查可能受到限制甚至完全忽略,通常在部署时充分了解目标和与所有与测试本身有关的数据。在黑盒渗透测试中,侦查阶段通常比较繁琐和耗时,因为它可能需要大量的信息收集方法,包括社会工程学。
侦查可以采用主动侦查或被动侦查。如果是通过对目标系统进行攻击而收集到的信息,这类信息普通公众无法获得,则是主动侦查;如果收集到的信息是对公众已经公开过的,则为被动侦查。
(2)扫描
扫描阶段是获取目标系统信息后的下一步。扫描过程包括检查目标是否存在漏洞。使用不同的工具和策略,实现这一点方法很多。这一阶段的目的是识别任何可能让测试人员轻易访问系统或数据的漏洞。
一般情况下,所有开放端口都会被识别并检查,因为开放端口是黑客侵入系统的入口。漏洞扫描还可以作为全面安全评估的一部分,其目的是一样的:揭露任何弱点。但在渗透测试前,它将不会显示漏洞造成的威胁。
(3)漏洞评估
这一阶段与扫描阶段类似,但会做更多的工作。在这里,所有侦查和扫描阶段收集到的数据会被用来检测潜在的漏洞,并检查黑客是否可以利用这些漏洞。该阶段的评估在与其他渗透测试阶段合并时尤为重要。
(4)开发利用
当系统中的缺陷被评估之后,测试人员会尝试通过漏洞访问系统或者数据,这被称为开发利用阶段。这些漏洞通常是由于没有足够的补丁管理或者软件过时而导致的,这使得黑客可以无缝访问敏感系统。通过集中攻击服务器漏洞,测试人员尝试使用工具访问互联网应用或者机密数据,以模拟真实的攻击。
利用漏洞是非常微妙的,因为会绕开系统的安保机制,所以测试人员必须小心不让系统受到破坏。这一阶段不应局限于单一的攻击策略或方法。由于许多应用程序、网络和设备都连接在互联网中,所以开发利用阶段采用了许多不同的方法和技术。
(5)访问、维护和报告
在模拟攻击漏洞之后,发布详细报告之前维护访问权限是Web渗透测试的最后一步。渗透测试人员可能会评估他们是否能够在一段时间内访问重要数据或系统而不被发现。在这一阶段,测试人员可以尝试增加系统的访问权限,以便访问附加的系统或数据;这将有助于更广泛地评估。本阶段提供安全响应、访问控制流程、系统恢复能力等重要信息。
在完成所有阶段之后,测试人员要撰写一份记录渗透测试过程和结果的报告。详细报告包括技术风险和影响评估,补救措施和专业建议。然后用它作为指导来改进系统安全体系结构。
4.网络渗透测试的好处
- 防御网络攻击
- 预防代价高昂的安全事件
- 遵守法律法规
- 有助于理解网络防御的潜力
- 拿走竞争对手的谈判筹码
- 让网络安全专业人员了解最新趋势和技术
5.结论
对于依赖于 IT相关产品和解决方案的许多组织和企业来说,系统不安全是一个巨大的隐患。
如果每个渗透测试都采用不同的方式,那么它的部署方法尽可能考虑全面。测试的深度和广度取决于所想达成的渗透目的。一般而言,我们的目的就是找出可以利用的漏洞并解决这些漏洞,从而防止网络攻击。
原文链接:https://hackernoon.com/the-importance-of-web-penetration-testing
译者介绍
刘涛,51CTO社区编辑,某大型央企系统上线检测管控负责人,主要职责为严格审核系统上线验收所做的漏扫、渗透测试以及基线检查等多项检测工作,拥有多年网络安全管理经验,多年PHP及Web开发和防御经验,Linux使用及管理经验,拥有丰富的代码审计、网络安全测试和威胁挖掘经验。精通Kali下SQL审计、SQLMAP自动化探测、XSS审计、Metasploit审计、CSRF审计、webshell审计、maltego审计等技术。
我有话说: