AWS Threat Hunting Ideas: Lambda

Overview

The following are ideas for threat hunting that can be done within the Lambda service.

1. Unauthorized Lambda Function Creation (CreateFunction)

  • Goal: Detect unauthorized deployment of malicious Lambda functions.

  • CloudTrail Event: CreateFunction

  • Hunting Idea:

    • Identify Lambda functions created by unusual users or outside business hours.

      aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=CreateFunction
    • Look for functions with suspicious runtime environments (e.g., reverse shells disguised as functions).

2. Function Modifications (UpdateFunctionConfiguration)

  • Goal: Detect unauthorized configuration changes that could alter function behavior.

  • CloudTrail Event: UpdateFunctionConfiguration

  • Hunting Idea:

    • Hunt for unusual changes in runtime, memory size, or IAM roles associated with Lambda functions.

      aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=UpdateFunctionConfiguration
    • Investigate modifications that change the execution role, as it may indicate privilege escalation attempts.

3. Execution Role Abuse (AddPermission/RemovePermission)

  • Goal: Detect attackers adding or removing permissions to manipulate Lambda roles and permissions.

  • CloudTrail Event: AddPermission, RemovePermission

  • Hunting Idea:

    • Monitor AddPermission events that allow invoking the function from external accounts or services.

      aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=AddPermission
    • Check for RemovePermission events, which could indicate an attempt to hide malicious activity.

4. Suspicious Function Invocation (InvokeFunction)

  • Goal: Detect Lambda functions invoked for unauthorized or suspicious purposes.

  • CloudTrail Event: InvokeFunction

  • Hunting Idea:

    • Monitor for high-frequency invocations or those coming from unexpected sources.

      aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=InvokeFunction
    • Correlate with VPC Flow Logs to detect if the Lambda function is making unexpected outbound network calls.

5. Data Exfiltration via Environment Variables (GetFunctionConfiguration)

  • Goal: Detect attempts to access sensitive environment variables configured in Lambda functions.

  • CloudTrail Event: GetFunctionConfiguration

  • Hunting Idea:

    • Identify suspicious GetFunctionConfiguration requests that reveal sensitive configurations, such as API keys or database credentials.

      aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=GetFunctionConfiguration

6. Snapshot of Lambda Code (GetFunction/UpdateFunctionCode)

  • Goal: Detect attempts to access or tamper with Lambda code.

  • CloudTrail Event: GetFunction, UpdateFunctionCode

  • Hunting Idea:

    • Hunt for GetFunction requests to identify if an attacker is downloading or viewing the code.

      aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=GetFunction
    • Monitor for UpdateFunctionCode events where new, unauthorized code is deployed.

7. IAM Role Modification for Lambda Functions (AttachRolePolicy/DetachRolePolicy)

  • Goal: Detect role modifications that could increase the privileges of Lambda functions.

  • CloudTrail Event: AttachRolePolicy, DetachRolePolicy

  • Hunting Idea:

    • Look for privileged policies (e.g., AdministratorAccess) attached to Lambda roles.

      aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=AttachRolePolicy
    • Identify detachment of restrictive policies (DetachRolePolicy) to reduce security controls.

8. Event Source Manipulation (UpdateEventSourceMapping)

  • Goal: Detect changes to Lambda's event source that may indicate misuse.

  • CloudTrail Event: UpdateEventSourceMapping

  • Hunting Idea:

    • Monitor for unexpected changes to Lambda event source mappings (e.g., adding S3 buckets or API Gateway triggers).

      aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=UpdateEventSourceMapping

9. Disabling Function Tracing (DeleteFunctionEventInvokeConfig)

  • Goal: Detect attackers disabling tracing or logging to avoid detection.

  • CloudTrail Event: DeleteFunctionEventInvokeConfig

  • Hunting Idea:

    • Hunt for DeleteFunctionEventInvokeConfig events to detect attempts to disable logging.

      aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=DeleteFunctionEventInvokeConfig

10. Deleting Lambda Functions (DeleteFunction)

  • Goal: Detect attempts to delete functions to remove evidence of malicious activity.

  • CloudTrail Event: DeleteFunction

  • Hunting Idea:

    • Monitor for DeleteFunction requests, especially those targeting critical functions.

      aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=DeleteFunction
    • Cross-reference with other events to see if deletion is part of a broader attack.

Last updated