yawning_titan.agents.fixed_red.FixedRedAgent#

class yawning_titan.agents.fixed_red.FixedRedAgent(skill=None, exploit_capability_dev=10, initial_no_of_zero_days=1)[source]#

Bases: object

The FixedRegAgent provides the red activity for the FourNodeEnv specific environment.

This agent has two linked concepts to make it more dynamic. The first is the concept of zero days. These guarantee compromise and work 100% of the time regardless of the vulnerability score. In addition, the agent also has the ability to develop additional zero days.

The behaviour of the agent is relatively fixed. The agent will prioritise the usage of zero days when available and otherwise randomly target nodes with a basic attack based on a configurable skill level.

Methods

do_red_action

Execute a red action and changes the environment state.

select_action

Select the Red Teams action for a time step.

update_location

Update the current and previous location pointers.

Attributes

red_previous_node = None#
red_current_node = None#
select_action(uncompromised_nodes, compromised_nodes)[source]#

Select the Red Teams action for a time step.

Parameters:
  • uncompromised_nodes – The list of uncompromised nodes linked to the Red team current position

  • compromised_nodes – The list of compromised nodes linked to the Red team current position

Returns:

The action and target of the Red Team action

update_location(target, red_current_node)[source]#

Update the current and previous location pointers.

Parameters:
  • target – the node within the environment being attacked

  • red_current_node – the red agents current position

do_red_action(red_action, skill_level, attack_sucess_threshold, machine_states, target, able_to_move=False)[source]#

Execute a red action and changes the environment state.

Parameters:
  • red_action – The numeric value corresponding to the chosen action

  • skill_level – The red team skill level

  • attack_sucess_threshold – The attack power threshold for an attack to be succesful

  • machine_states – The current machine states

  • target – The machine being targetted by the attack

Returns:

None