欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

初次了解 CyberBattleSim

最编程 2024-10-01 07:07:18
...

现在许多企业都在使用AD域服务进行管理,我们现在通俗理解里面蕴含着许多重要资产。

对于这个东西有下列的描述:

1、攻击他能够获得用户权限

2、里面存在许多的计算机资产,当攻击者攻击其中的一台机器,可以通过某种手段在域中的环境横向移动。

3、这玩意存在于内网中。

大概的描述就是上面的了,网上的解释我看不懂,我现在觉得他是一个类似管理资源的应用,存放在域控主机上,然后这个攻击者需要通过横向移动来控制到这个主机。

所以微软的365 Defender团队就发布了这个开源的人工智能攻防对抗模拟工具。项目专注于对网络攻击后横向移动阶段进行威胁建模,用于模拟抽象企业网路环境中运行的自动化代理的交互。(自动化代理可以模拟一些人工行为,自动化执行一些行为。)

项目调用了基于python的Open AI Gym接口使用强化学习训练自动化Agent。

技术使用了DQN模拟攻击方和防御方,部署了一些经典的漏洞、脆弱性的资产。不同的服务器资产被攻取可以获得到不同的分数。跟强化学习的思想结合起来,可以获得到一个最佳的攻击路径、攻击手法和防御策略。在这个过程中通过变换不同的防守策略、网络拓扑,可以得到很多的副本,从而进一步的训练攻击者和防守方的策略。(我们知道强化学习需要给智能体的行为给定一个评分,然后让这个智能体最后得到高分。那么我是说,当然他会向着得分最高的目标,这里当然是域控主机。我的意思是,,如何设置智能体的行为是需要细致考虑的,比方说,选取了什么漏洞,这个漏洞是否可行,使用过后是否会被系统检测出来。在这里是有一套复杂的设置)

再者,作为防御方,我们想要对系统进行威胁建模,但是就我所知道的,威胁建模对于建模的人来说,建模是挖掘威胁的工具,我们在进行建模前是不知道威胁是什么的,那么强化学习需要设置对智能体设置行为规范,让他去学习,从而去发现潜在的威胁。看上去是不是有点冲突,不过仔细想想是我搞混了威胁建模的概念(写的比较绕了,其实需要区别的是威胁建模不是挖创新型的0day,而是去根据已经有的资料去查询系统,在这个层面其实看起来是可以使用强化学习的。但是我总觉得在这个层面上,需要对智能体的行为不要设置需要多样性一点,要是设置的太具体,宏观,我觉得就简化了攻击方式,也就是量化智能体行为细度需要做一些研究)