First Degree Outbound/Inbound Controls

Open
#117 5 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
30/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
go

Research direction

No files, tests, or entry points are named in the issue; begin by locating the inbound and outbound controls behavior in the BloodHound codebase. Done means users can preview only first-degree inbound or outbound controls in the graph, while retaining the ability to expand groups or explore nested nodes.

Written by the indexing model from the issue text.

Description

enhancement ticketed

Feature Description:

As implemented in earlier versions of Bloodhound, provide the option to display first degree level of outbound or inbound controls, rather than the current "all or nothing" approach. This grants a snapshot to the outbound/inbound controls without the need to draw all nodes.

Current Behavior:

Inbound Controls: Lists all inbound controls, including nested nodes, which can complicate the output and make it difficult to ascertain a valid path.

Outbound Controls: Does not graph anything. Only displays the names of nodes in a small drop down window. Not useful for large datasets containing multiple hundreds/thousands of nodes (as is usually the case).

Desired Behavior:

List only the first level of controls. Will most likely display the nodes with immediate controls or the group objects the source node has controls against. Act as a "preview" to determine if this path is worth exploring more, no need to display all nodes at this point. If path seems viable, groups can then be expanded to reveal nested nodes. More intuitive to idenify paths from Graph rather than from small, compact list.

Use Case:

With current implementation, when selecting a node and selecting "Outbound Controls", it only provides the ability to view all of them in a drop down list, it does not graph it. For example, in a dataset with over 100k nodes, selecting an admin User and selecting "Outbound Controls" displays multiple tens of thousands of node names in a list. This includes first level and transivitive outbound controls. Being able to display only the first level of controls would greatly ease enumeration and path identification.

Dominant language
Go
Stars
3.4k
Forks
376
Avg merge
2d 7h
Merged PRs (30d)
97

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from SpecterOps/BloodHound

All issues in SpecterOps/BloodHound

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.