【51CTO.com快译】您是否听说过鱼叉式捕鱼(spearfishing)?它是一种针对特定公司或人群的,以窃取敏感信息或控制网络为目的的,电子邮件类欺骗攻击。根据一项最新的研究表面,每年发生在全球各处的,针对各类企业的黑客攻击事件中,有95%都与鱼叉式捕鱼有关。
上图展示了2020年第一季度,全球范围内受到网络钓鱼攻击次数最多的国家排名信息。其中,委内瑞拉因有20.53%的网络用户受到了网络钓鱼攻击,名列这张表单榜首。该表中的数据来自根据美国国家统计局(https://www.statista.com/statistics/266362/phishing-attacks-country/)。
当然,近年来,随着鱼叉式网络钓鱼等各类攻击的日益增多,企业开始更加关注手头上应用程序和软件产品的安全态势。他们在开发安全可靠的软件应用的同时,希望能够避免由于某些无形和有形的错误,而导致最终产品出现重大的安全缺陷。因此,为了及时发现应用程序中存在的漏洞,以及缩小易受攻击面,我们需要通过模拟黑客、及其行为,来开展频繁且彻底的渗透测试,发现目标IT环境中的潜在安全漏洞,进而予以整改。
渗透测试的目标
总体而言,渗透测试(或称Pen testing)是为了发现风险和漏洞,通过深入检测与挖掘目标在任何合法攻击形式下,可能受到的危害程度。通常,渗透测试会涉及到针对服务器、网络、防火墙、主机等硬件,以及各种软件,识别与发现知名漏洞,并评估其实际威胁的程度。
除了确定目标之外,渗透测试方法还可以被用于评估系统中存在的可疑后门机制,提高应对不同类型的意外、或恶意攻击的能力。因此,企业可以从如下方面受益于渗透测试:
- 通过检测各类漏洞可能产生的影响,将其汇总产生报表。
- 检查最新控制措施的配置与执行情况,确保其实施的有效性。
- 调动人员、软硬件资源,通过开发管控措施,来加固应用程序、基础设施、以及流程中的弱点。
- 在用户输入端执行全面的模糊测试,以衡量应用程序输入验证控件的有效性,并确保只接受经过“消毒”过滤的输入值。
- 可以发现不同团队在入侵响应上的不足,进而通过改进内部事件响应流程,提高安全事件的响应效率。
渗透测试的频率
渗透测试的频率取决于许多因素,包括:行业类型、网络技术、以及法规合规等方面。通常情况下,如果发生以下任一情况,我们都应立即安排执行渗透测试:
- 网络或基础设施发生重大变化
- 刚打上了安全修补程序
- 增添了新的应用程序或基础设施
- 更改了办公室的位置,以及对应的网络
- 新颁布了行业法律与法规
- 新的威胁或漏洞被媒体披露
如何执行渗透测试?
我们可以通过如下三种方法,开展系统性的渗透测试:
- 自动渗透测试
- 手动渗透测试
- 自动+手动渗透测试
渗透测试的不同阶段
就像网络攻击有着既定的先后步骤那样,渗透测试也可以被分为不同的阶段。其中,每个阶段都有一个特定的目标,并为下一个阶段的攻击做好准备:
1.关键信息的收集
在这个研究阶段,软件测试(QA)人员可以从外部了解目标公司及其员工信息。如果是黑客的话,则会利用在线工具,或是其他类似的网络资源,来扫描并测试目标网站。
2.枚举和识别
在这个阶段,软件测试人员会深入研究目标网络,尽可能地搜索可能受到影响的服务、开放的端口、以及应用程序。根据已征得同意的渗透测试类型与程度,测试人员会收集并识别出目标企业的关键信息,进而发现环境中的切入点和漏洞。
3.漏洞扫描
通过前期的研究与准备,性能测试团队将在这个阶段采取手动与自动相结合的方式,扫描目标网络上的风险和漏洞。测试人员可以主要针对如下常见方面与部分,开展计划与测试:
- 业务关键资产
- 技术数据
- 客户数据
- 员工数据
- 对内部威胁和脆弱性的特定分类
- 外部威胁–网络协议、端口、网络流量、Web应用程序等
- 内部威胁 - 供应商、员工、管理层等
QA工程师通常会使用漏洞扫描器,来检测漏洞,并对其所构成的安全威胁进行记录。之后,QA测试人员将验证发现到的漏洞是否确实可能会被利用。全部的漏洞列表将在渗透测试结束的报告阶段被提交。
4.确定最佳攻击方法
所有前期准备工作都已准备就绪,QA专家将在这一阶段决定攻击面分析的最佳方式,通过评估风险和漏洞被利用的可能性,最终协同整个渗透测试团队制定出一整套攻击的完整方案。
5.渗透和利用
前一个阶段制定好的行动计划,会在这个阶段被实施到已发现的漏洞上,以开展获取敏感信息,发动DoS攻击,破坏目标系统的网络资源等攻击操作。具体而言,我们在这个测试阶段可以采取如下受控制的常见攻击策略:
- 物理攻击
- 网络攻击
- Web应用攻击
- Wi-Fi攻击
- 社会工程学
- 零日利用
- 基于内存的攻击
道德黑客还将记录和重新评估那些已被利用威胁或漏洞,在此基础上深入研究哪些攻击可能成为重要业务单元的最大隐患和风险点。最后,在利用阶段,这些道德黑客应也该清楚地分析出一旦此类重要单元被利用后,会产生何种后果。
6.风险分析和建议
上面五个阶段的主要目标是获悉和记录可能受到攻击的系统组件。为了保护它们所对应的有形、无形的,物理与信息的资产价值,QA测试人员要进行深入的风险分析。在此基础上,他们试着拟定包含了减少和修复目标环境安全漏洞和威胁的可行性建议。
值得注意的是,一旦测试完成,QA专家应及时、主动地清理被测环境,重新恢复和配置他们在测试期间所获取的准入权限,并通过必要的手段,阻止将来未授权访问的发生。
7.报告准备与目标
报告的编制应首先从总体性能测试流程开始,然后才是风险与漏洞对分析。报告中,我们需要对重要的风险与漏洞设定优先级,以便整改团队能够按照由高到低的顺序,依次进行跟踪和解决。当然,如下方面也需要被体现在报告中:
- 清晰地罗列出报告的要点,分门别类地展示测试中的发现
- 每个阶段都应列举出在渗透测试期间所收集的数据
- 对所有已识别的风险和漏洞提供完整的描述
- 完整地阐述管理意图和修复建议
- 声明该报告针对的是目标系统的当前态势,并提议持续进行安全性测试
渗透测试的不足
虽然优点居多,但是渗透测试也存在着如下客观上的缺点和潜在影响:
- 渗透测试可能会使系统陷入故障状态,甚至会导致系统的崩溃
- 测试的时间有限,且测试费用比较高
- 被测数据容易出现错误、损坏、甚至被“污染”
- 时间紧、任务急,有可能导致测试的范围受限,进而忽略了某些重要的部分和区域
渗透测试开源(免费)工具:
- Wireshark - http://www.wireshark.org/
- Nessus - http://www.wireshark.org/
- OpenSSL - http://www.openssl.org/
- Nmap - http://nmap.org/
- Metasploit - http://www.metasploit.com/
小结
目前,云服务技术的发展为黑客和攻击者提供了各种各样的工具和资源,使得他们能够毫不费力地侵入各个系统和网络,给企业的商业信誉、资产和服务造成巨大的损失。渗透测试不仅仅是一个基本的测试过程,它也可以被视为一种预防性的方法,用来发现和检测各种安全缺陷和不同症状,进而将系统的潜在安全风险消减在未然。
原文A Complete Guide to the Stages of Penetration Testing,作者: Niranjan Limbachiya
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】