"""
Constants for gym-csle-intrusion-response-game
"""
import numpy as np
[docs]class ZONES:
"""
Constants related to the zones of the network
"""
REDIRECTION_ZONE = 1
SHUTDOWN_ZONE = 0
[docs]class STATES:
"""
Constants related to the state space of the game
"""
TERMINAL_STATE = np.array([-1, -1])
D_STATE_INDEX = 0
A_STATE_INDEX = 1
[docs]class ATTACK_STATES:
"""
Constants related to the attack state semantics
"""
HEALTHY = 0
RECON = 1
COMPROMISED = 2
[docs]class DEFENDER_STATES:
"""
Constants related to the defense state semantics
"""
SHUTDOWN = 1
REDIRECT = 2
[docs]class ATTACKER_ACTIONS:
"""
Constants related to the local attacker actions
"""
WAIT = 0
RECON = 1
BRUTE_FORCE = 2
EXPLOIT = 3
[docs]class DEFENDER_ACTIONS:
"""
Constants related to the local defender actions
"""
WAIT = 0
[docs]class STATIC_DEFENDER_STRATEGIES:
"""
String constants representing static defender strategies
"""
RANDOM = "random"
[docs]class STATIC_ATTACKER_STRATEGIES:
"""
String constants representing static attacker strategies
"""
RANDOM = "random"
[docs]class ENV_METRICS:
"""
String constants representing environment metrics
"""
RETURN = "R"
TIME_HORIZON = "T"
STATE = "s"
DEFENDER_ACTION = "a1"
ATTACKER_ACTION = "a2"
OBSERVATION = "o"
TIME_STEP = "t"
INTRUSION_LENGTH = "intrusion_length"
AVERAGE_UPPER_BOUND_RETURN = "average_upper_bound_return"
AVERAGE_RANDOM_RETURN = "average_random_return"
AVERAGE_HEURISTIC_RETURN = "average_heuristic_return"
INTRUSION_START = "intrusion_start"
WEIGHTED_INTRUSION_PREDICTION_DISTANCE = "weighted_intrusion_prediction_distance"
START_POINT_CORRECT = "start_point_correct"
INTRUSION_END = "intrusion_end"