Detecting Serverless Function Injection
Overview
Cybersecurity skill for detecting serverless function injection. Follows industry best practices and security standards.
When to Use
Trigger phrases:
"detecting serverless function injection"
"Use when working with detecting serverless function injection"
Auditing Lambda/Cloud Functions for code injection vulnerabilities where unsanitized event data flows into dangerous runtime functions (eval, exec, child_process.exec, os.system)
Investigating incidents where an attacker modified function code or layers to establish persistence or exfiltrate data from the serverless environment
Detecting privilege escalation paths where an adversary with lambda:UpdateFunctionCode and iam:PassRole can assume higher-privilege execution roles
Analyzing event source poisoning attacks where malicious payloads are injected through S3 object uploads, SQS messages, DynamoDB stream records, or API Gateway requests that trigger function execution
Building detection rules for SOC teams monitoring serverless workloads for unauthorized function modifications, layer additions, and suspicious invocation patterns
Do not use for load testing or denial-of-service simulation against serverless functions, for testing against production functions processing live customer data without explicit authorization, or for modifying IAM policies in shared accounts without change management approval.
When NOT to Use
- When you lack proper authorization for testing
- For production systems without change management
- When the task requires legal or compliance expertise beyond technical scope
Prerequisites
- AWS account access with read permissions for Lambda, CloudTrail, IAM, CloudWatch Logs, and EventBridge
- AWS CLI v2 configured with appropriate credentials and region
- CloudTrail enabled with Data Events for Lambda (captures
Invoke events) and Management Events (captures UpdateFunctionCode, UpdateFunctionConfiguration, CreateFunction)
- Python 3.9+ with
boto3, bandit (Python SAST), and semgrep for static analysis
- Access to function source code or deployment packages for static analysis
- CloudWatch Logs Insights access for querying Lambda execution logs
Workflow
# Example: IOC detection
import re
IOC_PATTERNS = {
"ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",
"domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",
"hash_md5": r"\b[a-f0-9]{32}\b",
"hash_sha256": r"\b[a-f0-9]{64}\b",
}
def extract_iocs(text: str) -> dict:
return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}
- Define Detection Scope — Identify the specific serverless function injection techniques or indicators to hunt. Map to MITRE ATT&CK tactics/techniques where applicable.
- Collect Baseline Data — Gather historical logs and establish normal behavior patterns for serverless function injection.
- Build Detection Queries — Write detection rules, Sigma rules, or SIEM queries targeting serverless function injection indicators.
- Execute Hunts — Run queries against the collected data, starting with broad filters and narrowing down.
- Triage Results — Investigate alerts, filter false positives, and validate findings against known-good behavior.
- Document Findings — Record confirmed detections, IOCs, and affected systems. Update detection rules based on findings.
Tools
- SIEM Platform — Central log aggregation and query execution
- Sigma Rules — Vendor-agnostic detection rule format
- MITRE ATT&CK Navigator — Technique mapping and coverage analysis
Process
- Reconnaissance — Gather target information, identify attack surface, enumerate services
- Analysis/Exploitation — Execute the technique, analyze results, document findings
- Reporting — Document IOCs, write findings, provide remediation recommendations
Verification
Anti-Rationalization Table
| Rationalization |
Reality |
| "We are too small to be targeted" |
Automated attacks target everyone. Size does not matter. |
| "Security slows us down" |
A breach slows you down 100x more. Build security in from the start. |
| "We will fix it after launch" |
Vulnerabilities in production are exploited within hours. Fix before deploy. |
1---2name: detecting-serverless-function-injection3description: Use when detects and prevents code injection attacks targeting serverless functions (AWS Lambda, Azure Functions, Google Cloud Functions) through event source poisoning, malicious layer injection, runtime command execution, and IAM privilege escalation via function modification. The analyst combines static analysis of function code, CloudTrail event correlation, runtime behavior monitoring, and IAM policy auditing to identify injection vectors across the expanded serverless attack surface inc...4license: Apache-2.05---67# Detecting Serverless Function Injection89## Overview1011Cybersecurity skill for detecting serverless function injection. Follows industry best practices and security standards.1213## When to Use1415**Trigger phrases:**16- "detecting serverless function injection"17- "Use when working with detecting serverless function injection"181920- Auditing Lambda/Cloud Functions for code injection vulnerabilities where unsanitized event data flows into dangerous runtime functions (`eval`, `exec`, `child_process.exec`, `os.system`)21- Investigating incidents where an attacker modified function code or layers to establish persistence or exfiltrate data from the serverless environment22- Detecting privilege escalation paths where an adversary with `lambda:UpdateFunctionCode` and `iam:PassRole` can assume higher-privilege execution roles23- Analyzing event source poisoning attacks where malicious payloads are injected through S3 object uploads, SQS messages, DynamoDB stream records, or API Gateway requests that trigger function execution24- Building detection rules for SOC teams monitoring serverless workloads for unauthorized function modifications, layer additions, and suspicious invocation patterns2526**Do not use** for load testing or denial-of-service simulation against serverless functions, for testing against production functions processing live customer data without explicit authorization, or for modifying IAM policies in shared accounts without change management approval.272829## When NOT to Use3031- When you lack proper authorization for testing32- For production systems without change management33- When the task requires legal or compliance expertise beyond technical scope343536## Prerequisites3738- AWS account access with read permissions for Lambda, CloudTrail, IAM, CloudWatch Logs, and EventBridge39- AWS CLI v2 configured with appropriate credentials and region40- CloudTrail enabled with Data Events for Lambda (captures `Invoke` events) and Management Events (captures `UpdateFunctionCode`, `UpdateFunctionConfiguration`, `CreateFunction`)41- Python 3.9+ with `boto3`, `bandit` (Python SAST), and `semgrep` for static analysis42- Access to function source code or deployment packages for static analysis43- CloudWatch Logs Insights access for querying Lambda execution logs4445## Workflow4647```python48# Example: IOC detection49import re5051IOC_PATTERNS = {52 "ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",53 "domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",54 "hash_md5": r"\b[a-f0-9]{32}\b",55 "hash_sha256": r"\b[a-f0-9]{64}\b",56}5758def extract_iocs(text: str) -> dict:59 return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}60```61621. **Define Detection Scope** — Identify the specific serverless function injection techniques or indicators to hunt. Map to MITRE ATT&CK tactics/techniques where applicable.632. **Collect Baseline Data** — Gather historical logs and establish normal behavior patterns for serverless function injection.643. **Build Detection Queries** — Write detection rules, Sigma rules, or SIEM queries targeting serverless function injection indicators.654. **Execute Hunts** — Run queries against the collected data, starting with broad filters and narrowing down.665. **Triage Results** — Investigate alerts, filter false positives, and validate findings against known-good behavior.676. **Document Findings** — Record confirmed detections, IOCs, and affected systems. Update detection rules based on findings.6869## Tools7071- **SIEM Platform** — Central log aggregation and query execution72- **Sigma Rules** — Vendor-agnostic detection rule format73- **MITRE ATT&CK Navigator** — Technique mapping and coverage analysis747576## Process77781. **Reconnaissance** — Gather target information, identify attack surface, enumerate services791. **Analysis/Exploitation** — Execute the technique, analyze results, document findings801. **Reporting** — Document IOCs, write findings, provide remediation recommendations8182## Verification8384- [ ] All serverless function injection procedures executed completely and documented85- [ ] Findings validated against multiple data sources86- [ ] False positives identified and filtered87- [ ] Results documented with evidence and timestamps88- [ ] Recommendations provided with risk-based prioritization8990## Anti-Rationalization Table9192| Rationalization | Reality |93|---|---|94| "We are too small to be targeted" | Automated attacks target everyone. Size does not matter. |95| "Security slows us down" | A breach slows you down 100x more. Build security in from the start. |96| "We will fix it after launch" | Vulnerabilities in production are exploited within hours. Fix before deploy. |