in security_hub_correlation_cdk/lambdas/create_sh_finding/create_sh_finding.py [0:0]
def check_gd_backdoor(sh_resource, ddbtable):
gd_backdoor_list = [
'TTPs/Command and Control/Backdoor:EC2-DenialOfService.Tcp',
'TTPs/Command and Control/Backdoor:EC2-DenialOfService.Udp',
'TTPs/Command and Control/Backdoor:EC2-DenialOfService.Dns',
'TTPs/Command and Control/Backdoor:EC2-DenialOfService.UdpOnTcpPorts',
'TTPs/Command and Control/Backdoor:EC2-DenialOfService.UnusualProtocol',
'TTPs/Command and Control/Backdoor:EC2-Spambot',
'TTPs/Command and Control/Backdoor:EC2-C&CActivity.B!DNS',
'TTPs/Command and Control/Backdoor:EC2-C&CActivity.B'
]
try:
for item in gd_backdoor_list:
backdoor_payload = ddbtable.query(
IndexName= DYNAMODB_GSI_TYPE,
KeyConditionExpression=Key('ResourceId').eq(sh_resource) & Key('Types').eq(item)
)
if backdoor_payload['Count'] >= 1:
logger.info('Found GuardDuty EC2 backdoor finding {} for {}.'.format(item, sh_resource))
return backdoor_payload
except ClientError as error_handle:
logger.error(error_handle.dynamodb_match['Error']['Code'])