Panther low experimental python

AWS CloudTrail CloudWatch Logs

CloudTrail supports sending data and management events to CloudWatch Logs. This setup can be used for real-time processing of all CloudTrail data events.

View Source

Detection Logic

import datetime

from panther_base_helpers import deep_get, resolve_timestamp_string

MAX_TIME_BETWEEN_LOGS = datetime.timedelta(hours=24)


def policy(resource):
    # Check if a CloudWatch Logs Group has been set, and received at least one log
    if not (
        resource.get("CloudWatchLogsLogGroupArn")
        and deep_get(resource, "Status", "LatestCloudWatchLogsDeliveryTime")
    ):
        return False

    # Check if the last log sent is within the allowable timeframe
    last_log_time = resolve_timestamp_string(
        deep_get(resource, "Status", "LatestCloudWatchLogsDeliveryTime")
    )

    if not last_log_time:
        return True
    return (datetime.datetime.utcnow() - last_log_time) <= MAX_TIME_BETWEEN_LOGS

Field Validations

Loading…

Comments (0)

Loading comments...