forked from p34709852/monkey
Minor readability changes in config service
This commit is contained in:
parent
6c97b44b69
commit
f9c4b3e180
|
@ -55,15 +55,11 @@ class AttackConfig(object):
|
|||
for key, definition in monkey_schema['definitions'].items():
|
||||
for array_field in definition['anyOf']:
|
||||
# Check if current array field has attack_techniques assigned to it
|
||||
if 'attack_techniques' not in array_field:
|
||||
continue
|
||||
try:
|
||||
should_remove = not AttackConfig.should_enable_field(array_field['attack_techniques'], attack_techniques)
|
||||
except KeyError:
|
||||
# Monkey schema field contains not yet implemented technique
|
||||
continue
|
||||
# If exploiter's attack technique is disabled, disable the exploiter/scanner/PBA
|
||||
AttackConfig.r_alter_array(monkey_config, key, array_field['enum'][0], remove=should_remove)
|
||||
if 'attack_techniques' in array_field:
|
||||
should_remove = not AttackConfig.should_enable_field(array_field['attack_techniques'],
|
||||
attack_techniques)
|
||||
# If exploiter's attack technique is disabled, disable the exploiter/scanner/PBA
|
||||
AttackConfig.r_alter_array(monkey_config, key, array_field['enum'][0], remove=should_remove)
|
||||
|
||||
@staticmethod
|
||||
def set_booleans(attack_techniques, monkey_config, monkey_schema):
|
||||
|
@ -106,8 +102,8 @@ class AttackConfig(object):
|
|||
for key, item in dictionary.items():
|
||||
path.append(key)
|
||||
AttackConfig.r_set_booleans(path, item, attack_techniques, monkey_config)
|
||||
# Method enumerated everything in current path, goes back a level.
|
||||
del path[-1]
|
||||
# Method enumerated everything in current path, goes back a level.
|
||||
del path[-1]
|
||||
|
||||
@staticmethod
|
||||
def set_bool_conf_val(path, val, monkey_config):
|
||||
|
@ -127,9 +123,6 @@ class AttackConfig(object):
|
|||
:param users_techniques: ATT&CK techniques that user chose
|
||||
:return: True, if user enabled all techniques used by the field, false otherwise
|
||||
"""
|
||||
# Method can't decide field value because it has no attack techniques assign to it.
|
||||
if not field_techniques:
|
||||
raise KeyError
|
||||
for technique in field_techniques:
|
||||
if not users_techniques[technique]:
|
||||
return False
|
||||
|
|
Loading…
Reference in New Issue