Skip to content

Commit

Permalink
release 0.8.0 [WIP]
Browse files Browse the repository at this point in the history
  • Loading branch information
Limmen committed Feb 9, 2025
1 parent 65721e1 commit ec192e7
Show file tree
Hide file tree
Showing 85 changed files with 105 additions and 104 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
<p align="center">
<a href="https://img.shields.io/badge/license-CC%20BY--SA%204.0-green">
<img src="https://img.shields.io/badge/license-CC%20BY--SA%204.0-green" /></a>
<a href="https://img.shields.io/badge/version-0.7.0-blue">
<img src="https://img.shields.io/badge/version-0.7.0-blue" /></a>
<a href="https://img.shields.io/badge/version-0.8.0-blue">
<img src="https://img.shields.io/badge/version-0.8.0-blue" /></a>
<a href="https://img.shields.io/badge/Maintained%3F-yes-green.svg">
<img src="https://img.shields.io/badge/Maintained%3F-yes-green.svg" /></a>
<a href="https://limmen.dev/csle">
Expand Down Expand Up @@ -92,6 +92,7 @@ A video walkthrough of the installation process is available [here](https://www.

| Release | Last date of support |
|---------------------------------------------------------------|----------------------|
| [v.0.8.0](https://github.com/Limmen/csle/releases/tag/v0.8.0) | 2025-08-09 |
| [v.0.7.0](https://github.com/Limmen/csle/releases/tag/v0.7.0) | 2025-03-01 |
| [v.0.6.0](https://github.com/Limmen/csle/releases/tag/v0.6.0) | ~~2024-12-24~~ |
| [v.0.5.0](https://github.com/Limmen/csle/releases/tag/v0.5.0) | ~~2024-06-02~~ |
Expand Down
2 changes: 1 addition & 1 deletion config.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,5 +66,5 @@
]
},
"allow_registration": true,
"version": "0.7.0"
"version": "0.8.0"
}
34 changes: 17 additions & 17 deletions docs/_docs/emulation_system.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,26 +51,26 @@ Table 2: Properties of an emulation configuration.

Users of CSLE can create new emulation configurations and insert them into the metastore. CSLE also includes a set of
pre-installed configurations
(see Table 3). One of these pre-installed configurations is `csle-level9-070` (as an example), whose topology is shown
(see Table 3). One of these pre-installed configurations is `csle-level9-080` (as an example), whose topology is shown
in Fig. 6 and whose configuration is listed in Table 4.


| *Emulation configuration* | *Description* |
|---------------------------|---------------------------------------------------------------------------------|
| `csle-level1-070` | Emulation with 7 components, 3 flags, password vulnerabilities, no IDS. |
| `csle-level2-070` | Emulation with 13 components, 6 flags, password vulnerabilities, no IDS. |
| `csle-level3-070` | Emulation with 34 components, 6 flags, password vulnerabilities, no IDS. |
| `csle-level4-070` | Emulation with 7 components, 3 flags, password vulnerabilities, IDS. |
| `csle-level5-070` | Emulation with 13 components, 6 flags, password vulnerabilities, IDS. |
| `csle-level6-070` | Emulation with 34 components, 6 flags, password vulnerabilities, IDS. |
| `csle-level7-070` | Emulation with 7 components, 3 flags, password & RCE vulnerabilities, IDS. |
| `csle-level8-070` | Emulation with 13 components, 6 flags, password & RCE vulnerabilities, IDS. |
| `csle-level9-070` | Emulation with 34 components, 6 flags, password & RCE vulnerabilities, IDS. |
| `csle-level10-070` | Emulation with 16 components, 12 flags, password & RCE vulnerabilities, IDS. |
| `csle-level11-070` | Emulation with 36 components, 6 flags, password & RCE vulnerabilities, IDS. |
| `csle-level12-070` | Emulation with 7 components, 3 flags, password RCE vulnerabilities, IDS, SDN. |
| `csle-level13-070` | Emulation with 64 components, 6 flags, password RCE vulnerabilities, IDS, SDN. |
| `csle-level14-070` | Emulation with 17 components, 12 flags, password RCE vulnerabilities, IDS, SDN. |
| `csle-level1-080` | Emulation with 7 components, 3 flags, password vulnerabilities, no IDS. |
| `csle-level2-080` | Emulation with 13 components, 6 flags, password vulnerabilities, no IDS. |
| `csle-level3-080` | Emulation with 34 components, 6 flags, password vulnerabilities, no IDS. |
| `csle-level4-080` | Emulation with 7 components, 3 flags, password vulnerabilities, IDS. |
| `csle-level5-080` | Emulation with 13 components, 6 flags, password vulnerabilities, IDS. |
| `csle-level6-080` | Emulation with 34 components, 6 flags, password vulnerabilities, IDS. |
| `csle-level7-080` | Emulation with 7 components, 3 flags, password & RCE vulnerabilities, IDS. |
| `csle-level8-080` | Emulation with 13 components, 6 flags, password & RCE vulnerabilities, IDS. |
| `csle-level9-080` | Emulation with 34 components, 6 flags, password & RCE vulnerabilities, IDS. |
| `csle-level10-080` | Emulation with 16 components, 12 flags, password & RCE vulnerabilities, IDS. |
| `csle-level11-080` | Emulation with 36 components, 6 flags, password & RCE vulnerabilities, IDS. |
| `csle-level12-080` | Emulation with 7 components, 3 flags, password RCE vulnerabilities, IDS, SDN. |
| `csle-level13-080` | Emulation with 64 components, 6 flags, password RCE vulnerabilities, IDS, SDN. |
| `csle-level14-080` | Emulation with 17 components, 12 flags, password RCE vulnerabilities, IDS, SDN. |


<p class="captionFig">
Expand All @@ -80,7 +80,7 @@ Table 3: Pre-installed emulation configurations.
<p align="center">
<img src="./../../img/example_topology.png" width="30%">
<p class="captionFig">
Figure 6: Topology of the emulation configuration `csle-level9-070`
Figure 6: Topology of the emulation configuration `csle-level9-080`
</p>
</p>

Expand All @@ -103,7 +103,7 @@ Figure 6: Topology of the emulation configuration `csle-level9-070`

<p class="captionFig">
Table 4: Configuration of the emulation configuration
`csle-level9-070`, whose topology is shown in Fig. 6.
`csle-level9-080`, whose topology is shown in Fig. 6.
</p>

An *emulation execution* consists of a set of running containers and virtual networks,
Expand Down
2 changes: 1 addition & 1 deletion docs/_docs/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ from csle_system_identification.expectation_maximization.expectation_maximizatio
import csle_system_identification.constants.constants as sid_consts

# Select emulation config
emulation_env_config = MetastoreFacade.get_emulation_by_name("csle-level9-070")
emulation_env_config = MetastoreFacade.get_emulation_by_name("csle-level9-080")

# Extract statistics from the metastore
emulation_statistic = MetastoreFacade.get_emulation_statistic(id=1)
Expand Down
2 changes: 1 addition & 1 deletion emulation-system/envs/080/level_14/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def test_create_config(self) -> None:
:return: None
"""
config = default_config(name="csle-level14-070", network_id=14, level=14, version="0.5.0",
config = default_config(name="csle-level14-080", network_id=14, level=14, version="0.5.0",
time_step_len_seconds=15)
assert config.vuln_config is not None
assert config.containers_config is not None
Expand Down
2 changes: 1 addition & 1 deletion examples/client_generation/manage_clients.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ def start_client_producer(execution: EmulationExecution) -> csle_collector.clien


if __name__ == '__main__':
emulation = "csle-level4-070"
emulation = "csle-level4-080"
execution_id = 15
execution = MetastoreFacade.get_emulation_execution(emulation_name=emulation, ip_first_octet=execution_id)
# clients = [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
if __name__ == '__main__':
ImportUtil.import_emulation_statistics_from_disk_json(
input_file="/media/lagring/statistics_dataset_14_nov_22_json/statistics.json",
emulation_name="csle-level9-070")
emulation_name="csle-level9-080")
ImportUtil.import_emulation_statistics_from_disk_json(
input_file="/home/kim/stat_1.json",
emulation_name="csle-level9-070")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

if __name__ == '__main__':
# ImportUtil.import_emulation_traces_from_disk_json(input_file="/media/lagring/traces_31_oct/1.json",
# emulation_name="csle-level9-070")
# emulation_name="csle-level9-080")
for i in range(1, 64):
ImportUtil.import_emulation_traces_from_disk_json(
input_file=f"/media/lagring/traces_31_oct/{i}.json", emulation_name="csle-level9-070")
input_file=f"/media/lagring/traces_31_oct/{i}.json", emulation_name="csle-level9-080")
2 changes: 1 addition & 1 deletion examples/data_collection/manual_sequences/level_9/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from csle_common.logging.log import Logger

if __name__ == '__main__':
emulation = "csle-level9-070"
emulation = "csle-level9-080"
sleep_time_seconds = 45
executions = MetastoreFacade.list_emulation_executions_for_a_given_emulation(emulation_name=emulation)
if len(executions) == 0:
Expand Down
4 changes: 2 additions & 2 deletions examples/data_collection/static_sequences/level_10/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ def passive_defender_sequence(length: int, emulation_env_config: EmulationEnvCon

def run() -> None:
"""
Runs two static action sequences in the emulation csle-level9-070
Runs two static action sequences in the emulation csle-level9-080
:return: None
"""
executions = MetastoreFacade.list_emulation_executions_for_a_given_emulation(emulation_name="csle-level10-070")
executions = MetastoreFacade.list_emulation_executions_for_a_given_emulation(emulation_name="csle-level10-080")
emulation_env_config = executions[0].emulation_env_config
assert emulation_env_config is not None
attacker_sequence = [
Expand Down
2 changes: 1 addition & 1 deletion examples/data_collection/static_sequences/level_4/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ def passive_attacker_sequence(length: int, emulation_env_config: EmulationEnvCon

def run() -> None:
"""
Runs two static action sequences in the emulation csle-level9-070
Runs two static action sequences in the emulation csle-level9-080
:return: None
"""
Expand Down
2 changes: 1 addition & 1 deletion examples/eval/stopping_game_pomdp_defender/eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def test_env() -> None:
:return: None
"""
emulation_env_config = MetastoreFacade.get_emulation_by_name("csle-level9-070")
emulation_env_config = MetastoreFacade.get_emulation_by_name("csle-level9-080")
simulation_env_config = MetastoreFacade.get_simulation_by_name("csle-stopping-pomdp-defender-002")
config = simulation_env_config.simulation_env_input_config
env = gym.make(simulation_env_config.gym_env_name, config=config)
Expand Down
2 changes: 1 addition & 1 deletion examples/plotting/plot_time_series.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ def plot(time_series: EmulationMetricsTimeSeries, time_step_len_seconds: int = 3


if __name__ == '__main__':
emulation_name = "csle-level4-070"
emulation_name = "csle-level4-080"
execution_id = 15
execution = MetastoreFacade.get_emulation_execution(emulation_name=emulation_name, ip_first_octet=execution_id)
time_series = ClusterController.get_execution_time_series_data(ip='172.31.212.92', port=50041, minutes=60 * 24,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import csle_system_identification.constants.constants as system_identification_constants

if __name__ == '__main__':
emulation_env_config = MetastoreFacade.get_emulation_by_name("csle-level9-070")
emulation_env_config = MetastoreFacade.get_emulation_by_name("csle-level9-080")
emulation_statistic = MetastoreFacade.get_emulation_statistic(id=1)
system_identifcation_config = SystemIdentificationConfig(
output_dir=f"{constants.LOGGING.DEFAULT_LOG_DIR}empirical_level9_test",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import csle_system_identification.constants.constants as system_identification_constants

if __name__ == '__main__':
emulation_env_config = MetastoreFacade.get_emulation_by_name("csle-level9-070")
emulation_env_config = MetastoreFacade.get_emulation_by_name("csle-level9-080")
emulation_statistic = MetastoreFacade.get_emulation_statistic(id=3)
system_identifcation_config = SystemIdentificationConfig(
output_dir=f"{constants.LOGGING.DEFAULT_LOG_DIR}em_level9_test",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import csle_system_identification.constants.constants as system_identification_constants

if __name__ == '__main__':
emulation_env_config = MetastoreFacade.get_emulation_by_name("csle-level9-070")
emulation_env_config = MetastoreFacade.get_emulation_by_name("csle-level9-080")
emulation_statistic = MetastoreFacade.get_emulation_statistic(id=10)
system_identifcation_config = SystemIdentificationConfig(
output_dir=f"{constants.LOGGING.DEFAULT_LOG_DIR}gp_level9_test",
Expand Down
2 changes: 1 addition & 1 deletion examples/system_identification/mcmc/level_9_mcmc.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import csle_system_identification.constants.constants as system_identification_constants

if __name__ == '__main__':
emulation_env_config = MetastoreFacade.get_emulation_by_name("csle-level9-070")
emulation_env_config = MetastoreFacade.get_emulation_by_name("csle-level9-080")
emulation_statistic = MetastoreFacade.get_emulation_statistic(id=1)
system_identifcation_config = SystemIdentificationConfig(
output_dir=f"{constants.LOGGING.DEFAULT_LOG_DIR}mcmc_level9_test",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from csle_tolerance.util.intrusion_recovery_pomdp_util import IntrusionRecoveryPomdpUtil

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
IntrusionResponseGameLocalStoppingPOMDPDefenderEnv

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from csle_common.dao.training.policy_type import PolicyType

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from csle_agents.common.objective_type import ObjectiveType

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from gym_csle_intrusion_response_game.util.intrusion_response_game_util import IntrusionResponseGameUtil

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from csle_agents.common.objective_type import ObjectiveType

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from gym_csle_apt_game.envs.apt_game_mdp_attacker_env import AptGameMdpAttackerEnv

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from csle_common.dao.training.random_policy import RandomPolicy

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from csle_tolerance.util.intrusion_recovery_pomdp_util import IntrusionRecoveryPomdpUtil

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from csle_agents.common.objective_type import ObjectiveType

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def reduce_R(R, strategy: Policy) -> np.ndarray:
if __name__ == '__main__':

# Workflow Env Config
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ def reduce_R(R, strategy):
if __name__ == '__main__':

# Workflow Env Config
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from csle_tolerance.util.intrusion_recovery_pomdp_util import IntrusionRecoveryPomdpUtil

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from csle_common.dao.training.policy_type import PolicyType

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from csle_common.dao.training.policy_type import PolicyType

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import csle_agents.constants.constants as agents_constants

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import csle_agents.constants.constants as agents_constants

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from csle_common.dao.training.tabular_policy import TabularPolicy

if __name__ == '__main__':
emulation_name = "csle-level9-070"
emulation_name = "csle-level9-080"
emulation_env_config = MetastoreFacade.get_emulation_by_name(emulation_name)
if emulation_env_config is None:
raise ValueError(f"Could not find an emulation environment with the name: {emulation_name}")
Expand Down
Loading

0 comments on commit ec192e7

Please sign in to comment.