pub struct ControlGraph { /* private fields */ }Implementations§
Source§impl ControlGraph
impl ControlGraph
pub fn build(snap: &Snapshot) -> Self
Sourcepub fn build_with(snap: &Snapshot, schema: &SchemaMap) -> Self
pub fn build_with(snap: &Snapshot, schema: &SchemaMap) -> Self
ControlGraph::build with a forest schema map, so ACEs on LAPS / gMSA / dMSA
attributes — whose GUIDs differ per forest — become edges too.
Sourcepub fn paths_to_tier0(&self) -> Vec<AttackPath>
pub fn paths_to_tier0(&self) -> Vec<AttackPath>
Every principal that can reach any Tier-0 node, with the cheapest route and the exact steps it walks.
Dijkstra runs backwards from each Tier-0 node over incoming edges, so the recorded predecessor is the next hop forwards — reversing it yields the attacker’s route.
pub fn stats(&self) -> (usize, usize)
Auto Trait Implementations§
impl Freeze for ControlGraph
impl RefUnwindSafe for ControlGraph
impl Send for ControlGraph
impl Sync for ControlGraph
impl Unpin for ControlGraph
impl UnsafeUnpin for ControlGraph
impl UnwindSafe for ControlGraph
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more