Panther high experimental python
Lambda Code Updated by User
Detects when Lambda function code is updated by an IAM user, federated user, or AWS SSO user. This may indicate compromised credentials, a developer bypassing CI/CD guardrails, or insider threat activity.
Detection Logic
from panther_aws_helpers import aws_cloudtrail_success, aws_rule_context
def rule(event):
if not (
aws_cloudtrail_success(event)
and event.get("eventSource") == "lambda.amazonaws.com"
and event.get("eventName").startswith("UpdateFunctionCode")
):
return False
identity_type = event.deep_get("userIdentity", "type", default="")
if identity_type in ("IAMUser", "FederatedUser"):
return True
if identity_type == "AssumedRole":
role_name = event.deep_get(
"userIdentity", "sessionContext", "sessionIssuer", "userName", default=""
)
return role_name.startswith("AWSReservedSSO_")
return False
def title(event):
lambda_name = event.deep_get(
"responseElements", "functionName", default="LAMBDA_NAME_NOT_FOUND"
)
return (
f"[AWS.CloudTrail] User [{event.udm('actor_user')}] "
f"updated Lambda function code for [{lambda_name}]"
)
def alert_context(event):
context = aws_rule_context(event)
context["identity_type"] = event.deep_get("userIdentity", "type")
context["user_arn"] = event.deep_get("userIdentity", "arn")
return context Field Validations
Loading…
Comments (0)
Loading comments...