microsoft / microsoft/CyberBattleSim

Internal Node Id Dependent on Order of Action Execution

Open
#117 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
Jupyter Notebook
Stars
1.8k
Forks
286
Avg merge
4h 35m
Merged PRs (30d)
12

Description

The order of vulnerability execution defines the order that __discovered_nodes are added internally. There is functionality in place that uses this integer value for downstream tasks. (1, 2, 3, 4, etc)

This also means that the action masking is dependent on the order of vulnerability execution (repro)

Doesn't that mean that during training, the state-action value approximations are based on an integer encoding that changes according to the order of actions at every reset? Checkpointing or transfer learning would also suffer.

For ports, local/remote vulnerabilities, etc you use model.Environment.identifiers when retrieving via integer encoding, so they're fixed.

Let me know if you need any clarification, or if I'm missing something here.

Thanks!

Contributor guide

No contributing guide indexed for this repository

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.

Research direction

Start in cyberbattle/_env/cyberbattle_env.py at the referenced uses of __discovered_nodes and compare them with model.Environment.identifiers. Run the linked internal_id_error.ipynb reproduction and compare resets with different vulnerability execution orders; done should establish whether internal IDs and action masking remain consistent for training and checkpoint or transfer scenarios.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter-notebook, python
Domain
backend, machine-learning
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.