Active Directory (AD) is the default security management system for Windows domain networks. An AD environment naturally describes an attack graph where nodes represent computers/accounts/security groups, and edges represent existing accesses/known exploits that allow the attacker to gain access from one node to another. Motivated by practical AD use cases, we study a Stackelberg game between one attacker and one defender. There are multiple entry nodes for the attacker to choose from and there is a single target (Domain Admin). Every edge has a failure rate. The attacker chooses the attack path with the maximum success rate. The defender can block a limited number of edges (i.e., revoke accesses) from a set of blockable edges, limited by budget. The defender's aim is to minimize the attacker's success rate. We exploit the tree-likeness of practical AD graphs to design scalable algorithms. We propose two novel methods that combine theoretical fixed parameter analysis and practical optimisation techniques. For graphs with small tree widths, we propose a tree decomposition based dynamic program. We then propose a general method for converting tree decomposition based dynamic programs to reinforcement learning environments, which leads to an anytime algorithm that scales better, but loses the optimality guarantee. For graphs with small numbers of non-splitting paths (a parameter we invent specifically for AD graphs), we propose a kernelization technique that significantly downsizes the model, which is then solved via mixed-integer programming. Experimentally, our algorithms scale to handle synthetic AD graphs with tens of thousands of nodes.
翻译:活动目录 (AD) 是 Windows 域网的默认安全管理系统 。 一个 AD 环境自然会描述一个攻击图, 节点代表计算机/ 账户/ 安全组, 边缘代表现有的访问/ 已知开发, 使攻击者能够从一个节点进入另一个节点。 我们受实际的 AD 使用案例的驱动, 我们研究攻击者与一个捍卫者之间的Stackelberg游戏。 攻击者可以选择多个输入节点, 并且有一个单一的目标( Domain Admin ) 。 每个边缘都有一个失败率。 攻击者选择攻击路径, 以最大成功率代表计算机/ 账户/ 安全组。 边缘代表现有的访问/, 使攻击者能够从一个节点进入另一个节点进入另一个节点。 受预算限制。 捍卫者的目的是尽可能降低攻击者成功率。 我们利用一个实用的 Adggnorger 组合来设计可缩略算的算法。 我们建议两种新模式, 将理论固定参数分析与实际的优化精度技术结合起来。 对于小树宽度, 我们提议一个基于树的树分化的动态平整程序, 。 我们提议一个基于动态平流的平级程序, 将一个混合的平流的平级平级平级平级平比 。