您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 网络/安全 > 正文

30年的安全专家讲述成长之路:从黑客到渗透测试人员

发表于:2017-12-24 作者:佚名 来源:安全加

我从事计算机安全工作已经超过30年,没有任何工作比专业 渗透测试 (或称道德黑客行为)更具挑战性和乐趣。你将因合法侵入计算机或设备而获得报酬,同时不会给你带来任何坏处。如果你破解了当前的防御措施,就给了客户一个机会,在攻击者发现之前进行修复漏洞。如果你什么漏洞都没找到,客户甚至会更高兴,因为他们可以宣称他们的产品“安全到甚至有偿的黑客都不能攻破”。双赢!

这并不是说道德黑客行为总是很容易。这并不容易(但你也不一定要有高智商)。在不同的情况下,也有一些看似不可逾越的挑战。如果你想要有偿地追逐技术前沿并侵入事物,渗透测试就是你梦寐以求的工作。

从黑客到渗透测试人员

一、从黑客到渗透测试人员

任何黑客都必须经过一些共同的步骤,以成为一个道德黑客。最低限度就是,确保你从恰当的人那里拿到入侵的书面许可。对专业的渗透测试人员,不违法是最重要的。所有的道德黑客都都应遵循道德准则,来指导他们所做的一切。认证道德黑客(Certificated Ethical Hacker,CEH)考试的创建者EC理事会(EC-Council)拥有最好的公共道德准则之一。

二、道德黑客行为的步骤

1. 范围和目标设定

任何专业渗透测试人员都必须记录商定的范围和目标。下方是你需要问的、关于范围的问题:

  • 测试范围内有哪些电脑资产?
  • 是包含所有计算机,还是特定的应用或服务、特定操作系统平台、或移动设备和云服务?
  • 范围是否只包括特定的电脑资产,比如web服务器、SQL服务器、某个主机操作系统级别的所有计算机?包括网络设备吗?
  • 渗透测试能否包含自动漏扫扫描?
  • 是否允许进行社会工程?如是,允许用何种方法?
  • 渗透测试允许在哪些日期进行?
  • 是否有些天或有些小时不应该进行渗透测试(以避免任何意外停机或服务中断)?
  • 测试人员是否应尽力避免造成服务中断?模拟真实攻击者能导致的问题(包括服务中断)是否是测试的关键部分?
  • 渗透测试是黑盒测试(指渗透测试人员对涉及的系统或应用的内部细节几乎没有了解)还是白盒测试(测试人员了解目标系统的内部信息,可能涉及相关的源代码)?
  • 计算机安全防护人员会被告知进行渗透测试吗?或者测试的一部分就是看看防护人员能否注意到安全测试?
  • 专业攻击者(即红队)是否应该在不被防护人员(蓝队)发现的前提下攻入目标?或者他们应该使用真实入侵者可能采用的正常方法,来看看是否触发现有的检测和预防措施?

下方列出关于渗透测试目标的问题:

  • 仅仅是为了表明你可以侵入一个目标或者设备?
  • 拒绝服务(DoS)是否被视为目标之一?
  • 对特定电脑的访问或者数据泄露是否是目标的一部分?或者仅仅是为了获取足够的访问权限?
  • 在测试结束时,应该提交什么作为测试文件的一部分?是否应该包含所有成功和失败的黑客方法,或者仅仅记录最重要的黑客攻击?需要详细到什么程度,是每次键盘和鼠标操作,或者仅仅是概要说明?黑客行为是否需要录屏或截屏?

在进行任何渗透测试之前,对范围和目标进行详细描述并达成一致,这非常重要。

2. 选择恰当的 渗透测试工具

渗透测试人员通常有一套一直使用的、标准的黑客工具。但他们可能需要根据工作需要寻找和积累不同的工具。比如,如果渗透测试人员被要求攻击SQL服务器并且没有相关经验,他们可能要开始研究和测试不同的SQL攻击工具。

大多数渗透测试人员都是从专门用来进行渗透测试的Linux操作系统“distro”开始的。用于黑客行为的Linux distro已存在多年,但现在Kali distro是渗透测试人员喜欢的最流行的工具(您可以参考 渗透测试人员入门, 如何配置Kali Linux直接用于工作 )。黑客工具成千上万,包括几乎每个测试人员都用到的一堆stalwarts。

黑客工具最重要的一点是,确保其不能含有 恶意软件 或者用来黑使用者的其他代码,这点比质量和适用性更重要。绝大多数可以在互联网上获得的黑客工具,特别是免费工具,都包含恶意软件或者隐藏后门。通常你可以信任最常用的黑客工具,比如Nmap,但最好的渗透测试人员会编写和使用自己的工具,因为他们不相信别人写的任何东西。

3. 发现:了解你的渗透目标

每个渗透测试人员都会通过尽可能地了解渗透目标来开展资产攻击(此处不讨论 社会工程 技术)。他们想知道IP地址、操作系统平台、应用、版本号码、补丁级别、公布的网络端口、用户,以及可以导致漏洞利用的任何其他信息。渗透测试人员在一个资产上花了几分钟时间,还看不到任何明显的潜在漏洞,这种情形很少见。最起码,即使看不到明显的东西,也可以利用发现的信息进行持续分析和攻击尝试。

4. 利用:侵入目标资产

这就是道德黑客获取报酬的方式——“侵入”。通过在“发现”阶段找到的信息,渗透测试人员需要利用漏洞来获取越权访问(或者导致拒绝服务,如果目标如此的话)。如果黑客无法侵入一个特定资产,他们必须尝试范围内的其他资产。就我个人来说,如果进行了仔细的发现工作,那我总是能找到可以利用的漏洞。在安全防护人员按照测试报告修复漏洞之前,我没听说有任何专业安全测试人员无法侵入目标资产。我相信有些渗透测试人员并不总是能找到漏洞并完成任务,但如果你足够仔细地完成了发现阶段的工作,利用阶段的工作并不像很多人觉得的那样难。与天赋相比,一名优秀的渗透测试人员或者黑客具有的更多是耐心和细心。

根据漏洞和利用情况,现有的访问权限可能需要“权限提升”,以将普通用户的访问权限变成更高的管理权限。如果最初的漏洞利用未能给攻击者带来足够高的访问权限,可能需要进行第二次漏洞利用。

根据范围覆盖情况,可以通过漏洞利用或扫描软件来自动发现漏洞。漏洞扫描软件常常能发现漏洞,但不能利用它们来获得越权访问。

接下来,渗透测试人员要么处于最终目标位置并对目标进行商定的操作,或者利用现在可以访问的电脑来进一步接近他们的最终目标。渗透测试人员和安全防护人员将这种操作叫做“ 横向移动 ”或“垂直移动”,取决于攻击者是在相同级别的系统内移动或者是向外移动到无关的系统。有时候专业渗透测试人员的目标达成必须经过验证(例如揭示系统秘密或者保密数据),或者仅仅证明如何能够完成就足够了。

5. 记录渗透测试工作

最后,专业渗透测试人员必须撰写并提交商定的报告,包括测试发现和结论。

三、渗透测试工作复杂并不断演变

像其他所有IT安全学科一样,专业渗透测试正日益成熟。对仅仅表现出技术实力而不具有专业性和老练度的独行黑客,需求正在下降。雇主正在寻找全能的专业黑客——不管是实际操作还是所使用的工具方面。

1. 更好的工具包

渗透或漏洞测试软件一直是道德黑客工具包的一部分。很可能的是,客户已经在定期地运行这两类软件的一种或两种。渗透测试最令人兴奋的发展之一就是工具,工具基本上做了从发现到利用的所有工作。

这类工具的一个例子是开源的Bloodhound。Bloodhound允许攻击者以图形方式查看 AD活动目录 网络上不同计算机之间的关系。如果你输入了期望的目标,Bloodhound可能帮你迅速查看多个攻击该目标的黑客路径,通常还能找到你不知道的路径。我已经看到了很高级的用途:渗透测试人员仅仅输入了起点和终点,Bloodhound和少量脚本就完成了其他所有工作,包括从头到尾所需要的所有黑客步骤。当然,商业化渗透测试软件在更早以前就具有了这样的复杂功能。

2. 一图胜千字

曾经,为了向高管层推销防御措施,渗透测试人员会攻击高管层或者向他们展示文件。今天,高管层想看幻灯片、视频或动画,展示特定黑客攻击是如何在他们的环境中进行的。他们不仅仅用这些材料来向其他高管推销特定防御措施,还将其作为员工 安全意识 教育的一部分。

3. 风险管理

仅仅将发现的漏洞清单交给客户并认为任务完成,这是不够的。不,现在的专业渗透测试人员必须跟IT管理团队合作,以找出最大和最可能的威胁。渗透测试人员现在是风险管理团队的一部分,帮助他们有效地降低风险,而不仅仅是减少漏洞。这意味着,通过向管理层和安全防护人员展示最可能发生的事情以及发生的方式,道德黑客产生了更多价值,而不仅仅是一次性地展示真实入侵者不太可能采用的攻击。

4. 培训和认证

现在,人们可以通过多种途径成为专业渗透测试人员,有大量的课程和认证。这些课程通常会在专家老师的指导下,让学生在精致的模拟实验室中接触不同的黑客工具。毕业或获得认证的学生往往成为一个更大的渗透测试人员社区的一份子,继续接受教育,并回馈社会。

专业渗透测试不适合所有人。它需要你成为若干不同技术和平台的大半个专家,以及具有打破常规界限、侵入事物的内在渴望。如果你有这样的渴望,并且能遵循法律和道德准则,你也可以成为一个专业的黑客。