【THM】Red Team OPSEC(红队作战安全)-红队
本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/opsec
本文相关内容:了解如何将作战安全(OPSEC)流程应用于红队。
简介
作战安全(OPSEC-Operations Security)是美国军方创造的一个术语,在网络安全领域“OPSEC是一个系统化的过程,旨在将威胁防护措施前置,更早识别和保护敏感和关键信息, 并消除对手获取这些信息的能力。这一过程包括以下五个步骤:识别关键信息、分析威胁、分析漏洞、评估风险以及应用适当的对策”(蓝队视角)。
我们也可以从红队的角度研究作战安全(OPSEC)的定义:作为红队成员,我们的潜在对手包括蓝队和第三方,蓝队之所以被认为是我们的对手,是因为我们的目标是攻击他们受雇监视和防御的系统;红队与蓝队之间的攻防演练通常可用于帮助目标组织了解给定的环境中存在哪些安全威胁,并能让蓝队在真正的恶意网络攻击发生时更好地为安全防御做好准备;作为红队成员,即使我们是在遵守法律并得到授权的前提下在规定的范围内攻击目标系统,也不能改变我们将攻击蓝队所防守的目标并试图规避他们的安全控制的事实,简而言之——蓝队想保护他们的系统,而红队想渗透进去。
拒绝任何潜在的对手收集关于我们的技术能力和行为意图的信息对于维持OPSEC至关重要,OPSEC是一个识别、控制和保护与我们的活动计划和活动执行有关的任何关键信息的过程。对于防守方而言:诸如洛克希德·马丁网络杀伤链以及MITRE ATT&CK等框架可以帮助防御者识别对手试图实现的目标,其中MITRE ATT&CK框架可以说是报告和分类对手的战术、技术和程序(TTPs)的前沿,它提供了一个公开可访问的知识库,能够作为公开可用的威胁情报和事件报告的主要数据来源。
OPSEC流程可分为五个步骤:
- Identify critical information——识别关键信息
- Analyse threats——分析威胁
- Analyse vulnerabilities——分析漏洞
- Assess risks——评估风险
- Apply appropriate countermeasures——采取适当的对策
作为红队成员,如果你的对手(红队的对手是蓝队)发现你正在用Nmap扫描他们的网络,那么他们应该很容易就能发现你所使用的IP地址是什么,如果此时你还使用了相同的IP地址来托管钓鱼网站,那么蓝队将这两个安全事件联系起来并将其归因于同一行动者并不十分困难。
OPSEC并不是一个解决方案,也不是一套规则,OPSEC是一个五步流程,主要用于阻止对手获取任何关键信息(下一小节会进行定义);在下文中,我们将深入研究OPSEC的每一步流程,并了解如何将OPSEC作为红队操作的一部分来进行改进。
OPSEC-关键信息识别
从红队的视角来看:红队成员认为值得保护的关键信息主要取决于操作和使用的资产或工具,这些关键信息可能包括但不限于红队的行为意图、技术能力、活动内容和限制边界等;笼统的说,在OPSEC中,所谓的关键信息就是那些一旦被蓝队获得,就将阻碍或降低红队完成任务的可能性的任何信息。
为了确定关键信息,红队需要使用对抗性方法,并且弄清楚自己的对手(在这种情况下,对手是蓝队)想要了解关于红队的任务目标的哪些信息;如果获得这些关键信息,那么蓝队则会在攻防演练中处于一个较为稳固的地位,从而将有力挫败红队的进攻。虽然关键信息不一定是敏感信息,但是,一旦泄露这些信息给蓝队,则可能会危及红队的计划实现,下面是一些关键信息示例(红队视角):
-
红队已经了解到的客户信息:贸然共享你的红队团队所发现的员工姓名、角色和基础设施等特定于客户的信息是不可接受的,分享这类信息应保持在需要知道的基础上,因为该分享行为可能会损害红队操作的完整性;根据最小特权原则(PoLP-Principle of Least Privilege)的规定——任何实体(用户或进程)必须只能访问执行其任务所需的信息,而这个PoLP也应该应用于红队所采取的每一个步骤中。
-
红队信息:如身份、活动、计划、能力和限制,蓝队可以使用这些信息来更好地准备应对红队的攻击。
-
战术、技术和程序(TTP-Tactics, Techniques, and Procedures):红队将使用TTP来模拟真实的网络攻击者。
-
红队所使用的OS(操作系统)、云托管服务提供商或C2框架:假设红队正在使用Pentoo进行渗透测试,如果防守者已经知道了这一点,那么蓝队就可以密切关注那些将会暴露操作系统为Pentoo的日志记录;虽然其他攻击者也有可能会使用Pentoo来发动攻击,但是,如果不是必要的话,就没理由公开你所在的红队所使用的操作系统。
-
你所在的红队将使用的公有IP地址:如果蓝队成功获取了此类信息,那么他们就可以通过阻止与红队的IP地址相关的所有入站流量和出站流量来快速缓解攻击,而红队则需要弄清楚到底发生了什么。
-
你所在的红队已经注册的域名:域名在网络钓鱼等攻击中扮演着重要角色,如果蓝队找到了红队将用于发起攻击的域名,那么他们就可以简单地阻止或破坏红队所使用的恶意域名来抵消红队的攻击。
-
红队所托管的网站:如用于模拟的钓鱼网站。
答题
tips:完成模拟示例并提交flag。
OPSEC-威胁分析
在我们确定了关键信息之后,我们接下来需要分析威胁,在OPSEC中,威胁分析是指识别潜在的对手以及他们的行为意图和技术能力;根据美国国防部(DoD)的作战安全(OPSEC)计划手册,威胁分析旨在回答以下问题(蓝队视角):
- Who is the adversary?——对手是谁?
- What are the adversary’s goals?——对手的目标是什么?
- What tactics, techniques, and procedures does the adversary use?——对手所使用的TTPs(战术、技术和程序)是什么?
- What critical information has the adversary obtained, if any?——对手已经获得了哪些关键信息(如果有的话)?
红队的任务是模拟实际的网络攻击,以便蓝队能够在攻防演练中发现其缺点(如果有的话),并更好地准备面对即将到来的威胁。蓝队的主要目标是确保组织的网络和系统的安全性,因此蓝队的意图很明确,他们想把红队挡在他们所保护的网络之外。考虑到红队要完成的任务,蓝队可以被认为是红队的对手,因为这两个团队的目标是相互冲突的,我们还应该注意到,蓝队的技术能力在一开始可能并不能知道。
在实际的攻防演练中,还可能存在恶意的第三方参与者,他们也许会有不同的行为意图和技术能力,因此他们也可能会影响红队所进行的操作。第三方参与者可以是一些能力较弱的人,他们会随机扫描系统,以寻找容易获得的果实,比如未打补丁的可利用服务器;第三方参与者也可以是针对目标公司或目标系统的其他强大的攻击团队。基于恶意的第三方参与者的行为意图和技术能力,他们也将会成为红队在攻防演练中的对手之一。
以下是关于红队在攻防演练中的对手情况:
我们认为任何有意图和能力采取行动阻止我们完成操作的对手都属于威胁的范畴:
threat = adversary + intent + capability
换句话说,一个没有明确行为意图或技术能力的对手不会对我们的目的构成任何威胁。
OPSEC-漏洞分析
在识别关键信息和分析威胁之后,我们就可以开始OPSEC的第三步:分析漏洞。本小节所说的漏洞分析不应该与网络安全领域常见的漏洞概念相混淆,此处的分析漏洞指的是分析是否存在OPSEC漏洞——当对手可以获得关键信息、分析调查结果并以影响你的计划的方式采取行动时,那么就存在OPSEC漏洞。
为了更好地理解与红队相关的OPSEC漏洞,我们可以假设以下例子(红队视角):你使用Nmap发现目标子网上的活动主机,并在活动主机上找到开放的端口;你发送各种钓鱼电子邮件,并将受害者引向你所托管的钓鱼网页;你正在使用Metasploit框架以试图利用某些软件的漏洞——以上这些是三个独立的红队活动,但是,如果你使用相同的IP地址来执行这些不同的红队活动,则会导致红队行动存在OPSEC漏洞。通常而言,一旦检测到任何敌对/恶意活动,蓝队就将采取对应的行动,例如暂时或永久地阻止和威胁相关的源IP地址;因此,如果红队只使用一个IP地址开展活动,那么只要这个源IP地址被蓝队阻止,则所有使用该IP地址的其他红队活动则都会失败。
在红队活动中,OPSEC漏洞的另一个例子是——用于存储从网络钓鱼受害者处所接收的数据的数据库不安全。如果这个数据库没有得到适当的保护,则可能会导致恶意的第三方破坏红队操作,并可能导致敏感数据被窃取,然后恶意的第三方就能将这些数据用于攻击客户的网络。在这个例子中,红队活动最后会导致客户的登录名和密码等敏感信息被泄露,而无法达到通过红队演练以帮助客户保护其网络安全的真实目的。
松懈的OPSEC也可能会导致红队活动中存在一些不那么复杂的OPSEC漏洞。例如,考虑这样一个情况——你所在的红队的其中一个成员使用社交账号在社交媒体上发布消息,而在这些消息中又透露了客户(红队演练中的客户)的名字;如果蓝队监测到该情况,就可以追踪红队成员的社交账号,这将促使蓝队更多地了解你所在的红队团队以及你们团队可能使用的攻击方法,从而能够让蓝队更好地准备应对预期的渗透尝试。
答题
阅读本小节内容,并回答以下问题。
OPSEC-风险评估
我们完成了OPSEC中的漏洞分析,现在我们可以进行OPSEC的第四步:进行风险评估。
NIST将风险评估定义为“识别信息系统运行时对组织运作(包括任务、职能、形象、声誉)、组织资产、个人、其他组织和国家所造成的风险的过程”,在OPSEC中,风险评估需要了解事件发生的可能性以及发生该事件的预期成本,因此,这涉及到评估对手利用OPSEC漏洞的能力。
一旦确定了风险级别,就可以考虑采取适当的对策来降低风险,关于对策,我们需要考虑以下三个因素:
- 能够降低风险的应对措施(对策)的有效性。
- 将采用应对措施(对策)的消耗成本与被利用的OPSEC漏洞所造成的影响进行比较。
- 探究所采用的应对措施(对策)会向对手泄露信息的可能性。
让我们回顾一下前一个小节中的第一个例子——红队成员基于同一个公有IP地址使用Nmap扫描目标网络、使用Metasploit框架进行漏洞利用、托管钓鱼网站页面;从红队的视角来看,我们可以分析得出这是一个OPSEC漏洞,因为这使得蓝队更加容易地通过检测一个红队活动来阻止前述例子中的三个红队活动。现在让我们来继续评估一下这种OPSEC风险,要评估与OPSEC漏洞相关的风险,我们需要先了解蓝队检测到一个或多个此类活动(前述例子中的红队活动)的可能性,在没有获得有关对手(此处指蓝队)技术能力的一些信息之前,我们无法回答这个问题。让我们考虑以下情况——假设客户有一个安全信息和事件管理(SIEM)系统,这个SIEM系统将允许蓝队实时监控和分析网络上的不同来源的与安全相关的事件;那么作为红队,我们可以预想到SIEM系统将很简单地完成针对可疑活动的检测并能将前述例子中的三个安全事件联系起来,所以在这种情况下,红队将评估这个OPSEC风险为高级别。另一方面,如果我们知道蓝队只有最少的资源来检测安全事件,那么作为红队,我们就可以将与此OPSEC漏洞(指前述例子中的OPSEC漏洞)相关的风险评估为低级别。
让我们继续回顾前一个小节中的第二个例子——红队使用了不安全的数据库(该数据库用于存储从钓鱼页面接收到的数据)。根据几个研究小组使用蜜罐收集到的数据,我们可以预想到存在各种恶意机器人会主动针对互联网上的随机IP地址;因此,安全性较弱的系统被恶意第三方发现和利用只是时间问题。也就是说:如果红队使用了不安全的数据库系统来存储数据(此处指的是在攻防演练中和客户有关的数据),那么相关的OPSEC风险应该被评估为高级别。
答题
阅读本小节内容,回答以下问题。
OPSEC-应对措施
OPSEC的最后一个步骤是——采用适当的应对措施。美国国防部作战安全(OPSEC)计划手册指出“应对措施旨在防止对手发现关键信息,这些措施包括向对手提供关于关键信息或关键技术指标的替代解释(欺骗),或者拒绝来自于对手的收集系统的访问。”
再次让我们回顾一下在漏洞分析一节中给出的两个例子:
在第一个例子中,假设场景是红队成员基于同一个公有IP地址运行Nmap、使用Metasploit框架、托管钓鱼页面,对于红队而言这是一个OPSEC漏洞。我们(红队)可以采取的对策似乎很明显,红队只需要为每个活动使用不同的IP地址即可;这样,我们就可以确保即使因为其中一个活动而被检测到的公有IP地址被阻止,其他红队活动也可以不受影响地继续进行。
在第二个例子中,假设场景是红队使用了不安全的数据库,而这个数据库用于存储从钓鱼页面接收的数据,对于红队而言这也是一个OPSEC漏洞。从风险评估的角度来看,我们(红队)认为这是高风险的,在这种情况下,适当的对策是确保数据库得到充分的保护,保证只有经过授权的人员才能访问数据即可。
OPSEC示例
在本小节中,我们将通过示例来应用OPSEC流程,重点会关注与红队活动相关的关键信息的不同示例,完整的OPSEC步骤如下:
- Identify critical information——识别关键信息
- Analyse threats——分析威胁
- Analyse vulnerabilities——分析漏洞
- Assess risks——评估风险
- Apply appropriate countermeasures——采取适当的对策
关键信息——红队所使用的程序/操作系统/虚拟机
- 关键信息:我们在此所讨论的是红队所使用的程序、操作系统(OS)和虚拟机(VM)。
- 威胁分析:在红队演练过程中,我们(红队)会连接不同的服务,而这些目标服务器可能会记录我们正在使用的程序的名称和版本、操作系统版本、虚拟机主机名等信息;与此同时,蓝队正在寻找目标网络上的任何恶意或异常活动。
- 漏洞分析:如果为给定红队活动所选择的操作系统过于独特,则蓝队可以更容易地将相关活动与红队的操作相联系起来,这一点同样适用于使用主机名突出的虚拟机;例如,在物理笔记本电脑和物理台式机所组成的目标网络中,如果有一个主机名为
kali2021vm
的新主机加入,那么蓝队应该很容易发现它。 - 风险评估:OPSEC风险主要取决于我们(红队)所连接的服务,例如,如果我们启动一个VPN连接,那么目标VPN服务器则将记录大量关于我们的信息(这同样适用于我们可能连接到的其他服务)。
- 可以采取的对策:如果红队所使用的操作系统是不常见的,那么红队可以对此做出必要的改变,以伪装成其他的操作系统。对于虚拟机和物理主机而言,可以将主机名更改为不显眼的或与客户命名约定一致的名称,因为你(红队成员)应该不会希望像
AttackBox
这样的主机名出现在目标的DHCP服务器日志中;对于程序和工具而言,红队成员应该尝试了解每个工具会在目标的服务器日志上留下什么样的特征。
示例:假设你使用Nmap来探测目标web服务器,并且你在运行Nmap扫描时使用了-sC
参数选项,那么这将会被远程web服务器记录下对应的User-Agent;如果你在运行给定的Nmap脚本时没有设置HTTP用户代理,目标系统上的日志则可能会记录包含Nmap脚本引擎(Nmap Scripting Engine
)的用户代理。作为红队成员,我们可以使用Nmap的--script-args http.useragent="CUSTOM_AGENT"
选项来缓解相关的OPSEC问题。
答题
tips:完成模拟示例并回答问题。
红队视角的OPSEC流程示例:
以上模拟示例的完整答案如下:
- 4 5 2 3 1
- 1 5 4 3 2
- 5 2 4 3 1
- 2 3 1 5 4
完成模拟示例之后,我们将得到一个flag:
小结
在本文中,我们已经讨论了如何将OPSEC流程应用于红队行动,对于红队而言,OPSEC流程有以下五个关键要素:
- 识别关键信息:关键信息包括但不限于红队的行为意图、技术能力、活动内容和限制边界等。
- 分析威胁:威胁分析指的是识别潜在的对手及其行为意图和技术能力。
- 分析漏洞:当对手可以获取关键信息、分析调查结果并能以影响你的计划的方式采取行动时,那么就存在OPSEC漏洞。
- 评估风险:风险评估需要我们了解事件发生的可能性以及发生该事件的预期消耗成本。
- 采取适当的应对措施:应对措施旨在防止对手探测到关键信息,这些措施包括提供给对手关于关键信息或技术指标的另一种解释(欺骗),或者拒绝来自于对手的收集系统的访问。
OPSEC是一个起源于军方,并能应用于军队之外的概念,本文主要讨论了如何将其应用于红队行动中,此外,OPSEC也不难应用到其他领域,如市场营销领域或工业领域等。OPSEC将有助于防止潜在的对手把碎片化的信息拼凑在一起,从而能够有效地阻止对手采取相关的行动。