-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Eduardo Santos edited this page Dec 10, 2025
·
7 revisions
The MAL Simulator is a tool designed for running simulations on systems modeled in the Modeling Attack Language (MAL).
pip install mal-simulator
To also get ML dependencies (pettingzoo, gymnasium):
pip install mal-simulator[ml]
For additional dev tools:
pip install mal-simulator[dev]
- Use Conventional commits
- The CI pipeline runs
mypyandrufffor linting and type checking, and PRs will only be merged if pipeline succeeds.
A mal_simulator.MalSimulator can be created to be able to run simulations.
The MalSimulator can be given a settings (mal_simulator.MalSimulatorSettings)
through the parameter 'sim_settings'. Giving sim_settings is optional, otherwise default settings are used.
settings = MalSimulatorSettings(
# Default values
uncompromise_untraversable_steps: bool = False
ttc_mode: TTCMode = TTCMode.DISABLED
seed: Optional[int] = None
attack_surface_skip_compromised: bool = True
attack_surface_skip_unviable: bool = True
attack_surface_skip_unnecessary: bool = True
run_defense_step_bernoullis: bool = True
attacker_reward_mode: RewardMode = RewardMode.CUMULATIVE
defender_reward_mode: RewardMode = RewardMode.CUMULATIVE
)
sim = MalSimulator(attack_graph, sim_settings=settings, ...)