开展专业的红蓝演练 ​Part.5:论红队自动化的优劣

  • A+
所属分类:安全文章

开展专业的红蓝演练 ​Part.5:论红队自动化的优劣

开展专业的红蓝演练 Part.1:演练目的及形式

开展专业的红蓝演练 Part.2:红蓝演练的优点及作用

“开展专业的红蓝演练 Part.3:红蓝演练的缺点”

开展专业的红蓝演练 Part.4:论红队的自动化方法

在上一篇文章中,作者提出了三类红队自动化的建模技术,分别是既不利用漏洞也不移动渗透主机的技术、只利用漏洞但不移动渗透主机和既利用漏洞又移动渗透主机的技术,在这三类建模技术中,既利用漏洞又移动渗透主机的建模技术对红队实现自动化最有价值。

那么为什么我们不应该使用现成的免费工具来识别网络中存在的漏洞并进行修复呢?这些技术或工具是否足够好用?这些都是需要回答的问题。这类问题的答案足以说明自动化漏洞利用和移动渗透主机之类的工具只能作为实验室里的存在。尽管这些工具有不少优点,但在攻击性的安全评估中,缺点要远远超过优点。

开展专业的红蓝演练 ​Part.5:论红队自动化的优劣
优点

正如前面所强调的,自动化漏洞利用和移动渗透主机的优势是相当明显的,并且在很大程度上,它的优点都集中于可用性。针对这种技术的可用性评估主要是为了回答两个问题,一个是为什么我们仍然需要一个好的自动化解决方案,第二是为什么漏洞利用框架会继续实现这样的功能。这些技术更适合那些没有财力聘请真正的道德黑客来进行安全评估的客户。其中一些工具可以免费获得并且易于使用。这些工具一般只会在企业组织方便评估的情况下运行,而不像内部有机红色团队或外部渗透测试服务那样列入计划。除了是否会被列入计划外,这种技术还在安全评估耗费的时间方面提供了进一步的好处。无论好坏,与道德黑客可能需要几天或几周的时间相比,自动化技术可以在数小时内对一个组织完成评估。理论上,这些技术可以节省时间和金钱。然而,我们仍然需要深入研究为什么这些具有表面价值的好处在具体实施上可能是不现实的,这也会进一步表明为什么这种工具没有被广泛采用,为什么道德黑客仍然非常受欢迎。

开展专业的红蓝演练 ​Part.5:论红队自动化的优劣
缺点

依据实现,自动化漏洞利用和移动渗透技术的最大弊端是它们对组织的时间和金钱的影响,甚至超过了人类黑客所造成的影响。这就尴尬了。在实践中,使用这些解决方案所带来的理论上的改进是其最大的潜在缺陷。与这些技术相关的危险是由于它们给组织带来成本或风险的能力。这些风险和成本表现为主动和被动两个方面,我们将在下面的章节中详细讨论它们的过度影响。

主动

自动化红队解决方案固有的主动风险是他们可能导致被评估的系统发生故障。从本质上来说,漏洞利用或黑客攻击都是以一种不正常的方式滥用系统,以不正常的方式获得结果。任何攻击尝试都有可能对系统造成负面影响。这可能是轻微的系统处理速度减缓,也可能是灾难性的,例如物理机器被攻击造成永久性损坏。

即使在软件中实施了安全性和健全性的检查,漏洞利用和移动渗透的自动化仍然缺乏人类黑客所具备的判断力。由于自动化本身的执行速度相当快,因此,潜在的有价值的系统、设备或服务可能会以惊人的速度被中断。尽管一个人类黑客可能会用一个危险的漏洞在一个系统中造成崩溃,但是一个自动化脚本可能一瞬间就已经对100个系统利用了相同的漏洞。同样的这类风险也直接导致对使用这种技术的成本效益产生积极影响。企业雇主可以通过不雇用道德黑客来节省金钱,但是节省下来的资金(甚至更多)可能必须直接填补服务不可用,处理损坏的程序或更换损坏的硬件而造成的利润损失,更不用说对公司声誉造成的潜在的不可逆转的影响并最终导致客户流失。

被动

令人惊讶的是,和上面那些主动受到自动化漏洞利用技术造成的风险和成本相比,被动的风险和成本给组织带来的风险更大。自动化技术的供应商,无论是销售漏洞利用框架还是一般的安全软件,都将支持通过购买他们的产品实现成本节约。这类软件通常是用来“取代”某些人员,从而节省了成本。自动化漏洞利用软件可能取代道德黑客;然而,保持最新签名的许可费和订阅费用往往本身就会产生巨大的成本。即使这样,要利用该软件真正意义上提升公司安全状况的方式,也需要使用某种特定工具的经验才可完成。这可能需要公司花钱培训现有的员工,或者雇佣使用经过认证或有经验使用工具的人。在这一点上,自动化漏洞利用软件节省的成本(如果有的话)无疑超过了不雇用攻击性安全人员或服务的所有弊端。

在依赖自动化的所有缺点中,我相信被动引入的风险是对企业组织的最大威胁,因为使用这些工具提供了错误的安全感。正如我们已经提到的那样,公司领导层非常希望削减开支,并使用自动化开发技术来评估他们公司的安全状况。危险的是这样的评估并不能代表真正的攻击者。

让我们假设这样的软件足够好,可以在运行时找到网络中每个系统的每个漏洞。然后,让我们假设安全团队对所有这些威胁进行了充分的补救或缓解。这肯定会使本公司的领导层和安全人员对免受网络威胁更有信心。然而,在接下来的几周中,会发现新的漏洞,或者向公司引入易受旧漏洞攻击的新设备。攻击者利用这些漏洞,在不被注意的情况下破坏了整个系统。这期间发生了什么?

该公司修复了扫描时出现的所有漏洞,但对系统的自动化漏洞利用与恶意攻击者发起并持续攻击是非常不同的。由于这些差异,公司的安全人员不知道如何监控真正的威胁或如何响应攻击活动。更糟糕的是,他们从来没有经历过针对真正的威胁启动事件响应过程,并试图巩固其在公司中的控制。新的漏洞和威胁不断发展,并不断地引入到任何企业组织中。简单地识别和利用系统中的技术漏洞只能评估公司安全部门及其相关责任的很小一部分。

红队与道德黑客合作可以让一个企业组织识别其安全态势的各个方面的缺陷,包括技术、人员和程序问题。他们不仅通过现有的技术来识别问题,而且通过理解组织如何实现安全技术、过程和策略来实现。道德黑客还了解组织内的用户、管理员和管理者对攻击的反应,这是攻击性安全评估中非常宝贵的部分。

开展专业的红蓝演练 ​Part.5:论红队自动化的优劣
相关案例

在本章节的最后,作者列举了四个场景,足以说明自动化漏洞利用工具存在很多弊端,无法和真实的人类黑客相比较。同时,这些弊端确实会让安全人员对公司的安全态势产生错误的安全感。由于篇幅的原因,译者不会将这四个场景案例逐一翻译。仅作重点描述。

场景一:

在某次渗透测试中,评估人员在一台 Linux 主机上发现一个标记为us-west和us-east的别名。这些名称明显是亚马逊 Web 服务(AWS)云托管基础设施区域的通用名称。通过执行一些命令,评估人员发现了目标公司的一台 AWS 跳板机,并在已经拿到权限的主机上发现了云端设备的登陆凭证信息。使用这些信息,评估人员成果了拿到了跳板机的权限,进一步发现目标公司的人员竟然将 AWS 登陆凭证和控制台的管理员凭证保存在了跳板机上。显然,在这种渗透场景中,由于人类能够识别“别名”,才拿到了后续的渗透测试成果。但自动化工具并不能识别“别名”,人类靠直觉认知事物方面要比计算机深入的多。

场景二:

在 AWS 托管的主机上,评估人员在设备的命令历史记录中注意到设备管理员执行 AWS 管理命令时没有提供任何凭据。但一般来说执行 AWS 管理命令肯定是需要密码的。通过执行一些命令,评估人员发现这台主机本身就具有执行 AWS 管理控制台命令的能力。这种权限可以很轻易的破坏整个 AWS 托管数据中心。评估人员通过逻辑分析,决定只按照命令历史中看到的那样尝试执行该命令。事实证明是可行的。管理员的这个设置几乎可以肯定是出于方便而设置的,而不是他的无知。在这种场景下,也许有人会说,有的自动化渗透工具会尝试复制所有的历史命令,但如果没有人类经验和谍报技术的磨练,自动化工具所要完成的任务是相当多的。

场景三:

评估人员注意到在主机本地的端口 8089 上监听了 Splunk forwarder 服务。该服务不会在外部扫描中发现,因为它是在本地监听的,并不能远程访问。评估人员研究此服务的默认凭据,并对本地端口使用 curl 命令测试。凭据是有效的,而且由于服务是在超级用户上下文中执行的,因此可以升级特权,并找到可以用于破坏整个本地网络的管理员访问密钥。评估人员识别本地运行的服务、研究其默认凭证,然后利用服务升级攻击的能力是任何自动化技术都难以复制的。远程自动扫描不会显示任何漏洞,而且使用自动化漏洞利用和移动渗透技术尝试扫描本地访问过的每一个主机时会变得非常麻烦,更不用说存储和尝试利用默认凭证列表了。

场景四:

当拿到权限的主机上,评估人员注意到管理员命令历史记录中有 Git 命令。对于不熟悉这个术语的人来说,Git 是一种代码存储库。评估人员然后尝试访问远程 Git 存储库,并能够拉下其中的所有文件,而无需进一步的身份验证。这些文件包含了大量的明文凭证和网络配置,导致了企业组织的完全破坏。与人类道德黑客不同,前面讨论的自动化技术没有演绎逻辑来识别与 Git 相关的命令,以存储库为目标,仔细查看命名有趣的文件,并将它们拉到本地,进行解压缩,然后找到凭据。

本章中讨论的自动化技术对安全界都是有价值的贡献,无论是在学术方面还是在工业方面,特别是在用于改进人员评估时最有价值。然而,这并不能使它们成为有机红队或其他攻击性安全服务的可靠替代品。在大多数情况下,道德黑客的直觉、逻辑和谨慎,坚定地取代了自动化技术可以提供给企业组织的任何收益。

开展专业的红蓝演练 ​Part.5:论红队自动化的优劣

开展专业的红蓝演练 ​Part.5:论红队自动化的优劣

本文始发于微信公众号(嘶吼专业版):开展专业的红蓝演练 ​Part.5:论红队自动化的优劣

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: