Detecting Aws Credential Exposure With Trufflehog
Overview
Cybersecurity skill for detecting aws credential exposure with trufflehog. Follows industry best practices and security standards.
When to Use
Trigger phrases:
"detecting aws credential exposure with trufflehog"
"Detecting exposed AWS credentials in source code repositories, CI/CD pipelines, "
When integrating secrets detection into CI/CD pipelines to prevent credential commits reaching production
When performing a security audit of existing repositories for historically committed AWS credentials
When responding to an AWS GuardDuty alert about credential usage from an unexpected IP or region
When onboarding repositories from acquired companies or third-party vendors
When validating that credential rotation processes have removed all references to old access keys
Do not use for real-time credential monitoring (use AWS GuardDuty or Amazon Macie), for managing secrets (use AWS Secrets Manager or HashiCorp Vault), or for detecting non-credential sensitive data like PII (use Amazon Macie or DLP tools).
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
- TruffleHog v3 installed (
brew install trufflehog or pip install trufflehog)
- git-secrets installed for pre-commit hook integration (
brew install git-secrets)
- Access to source code repositories (GitHub, GitLab, Bitbucket, or local git repos)
- AWS CLI configured with permissions to check key status (
iam:ListAccessKeys, iam:GetAccessKeyLastUsed)
- GitHub or GitLab API token for scanning organization-wide repositories
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 aws credential exposure 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 aws credential exposure.
- Build Detection Queries — Write trufflehog queries targeting aws credential exposure indicators. Use platform-specific query language for optimal performance.
- 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
- trufflehog — Primary tool for this skill
- 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-aws-credential-exposure-with-trufflehog3description: Use when detecting exposed AWS credentials in source code repositories, CI/CD pipelines, and configuration files using TruffleHog, git-secrets, and AWS-native detection mechanisms to prevent credential theft and unauthorized account access. . Use when working with detecting aws credential exposure with trufflehog.4license: Apache-2.05---67# Detecting Aws Credential Exposure With Trufflehog89## Overview1011Cybersecurity skill for detecting aws credential exposure with trufflehog. Follows industry best practices and security standards.1213## When to Use14**Trigger phrases:**15- "detecting aws credential exposure with trufflehog"16- "Detecting exposed AWS credentials in source code repositories, CI/CD pipelines, "171819- When integrating secrets detection into CI/CD pipelines to prevent credential commits reaching production20- When performing a security audit of existing repositories for historically committed AWS credentials21- When responding to an AWS GuardDuty alert about credential usage from an unexpected IP or region22- When onboarding repositories from acquired companies or third-party vendors23- When validating that credential rotation processes have removed all references to old access keys2425**Do not use** for real-time credential monitoring (use AWS GuardDuty or Amazon Macie), for managing secrets (use AWS Secrets Manager or HashiCorp Vault), or for detecting non-credential sensitive data like PII (use Amazon Macie or DLP tools).262728## When NOT to Use2930- When you lack proper authorization for testing31- For production systems without change management32- When the task requires legal or compliance expertise beyond technical scope333435## Prerequisites3637- TruffleHog v3 installed (`brew install trufflehog` or `pip install trufflehog`)38- git-secrets installed for pre-commit hook integration (`brew install git-secrets`)39- Access to source code repositories (GitHub, GitLab, Bitbucket, or local git repos)40- AWS CLI configured with permissions to check key status (`iam:ListAccessKeys`, `iam:GetAccessKeyLastUsed`)41- GitHub or GitLab API token for scanning organization-wide repositories4243## Workflow4445```python46# Example: IOC detection47import re4849IOC_PATTERNS = {50 "ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",51 "domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",52 "hash_md5": r"\b[a-f0-9]{32}\b",53 "hash_sha256": r"\b[a-f0-9]{64}\b",54}5556def extract_iocs(text: str) -> dict:57 return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}58```59601. **Define Detection Scope** — Identify the specific aws credential exposure techniques or indicators to hunt. Map to MITRE ATT&CK tactics/techniques where applicable.612. **Collect Baseline Data** — Gather historical logs and establish normal behavior patterns for aws credential exposure.623. **Build Detection Queries** — Write trufflehog queries targeting aws credential exposure indicators. Use platform-specific query language for optimal performance.634. **Execute Hunts** — Run queries against the collected data, starting with broad filters and narrowing down.645. **Triage Results** — Investigate alerts, filter false positives, and validate findings against known-good behavior.656. **Document Findings** — Record confirmed detections, IOCs, and affected systems. Update detection rules based on findings.6667## Tools6869- **trufflehog** — Primary tool for this skill70- **SIEM Platform** — Central log aggregation and query execution71- **Sigma Rules** — Vendor-agnostic detection rule format72- **MITRE ATT&CK Navigator** — Technique mapping and coverage analysis737475## Process76771. **Reconnaissance** — Gather target information, identify attack surface, enumerate services781. **Analysis/Exploitation** — Execute the technique, analyze results, document findings791. **Reporting** — Document IOCs, write findings, provide remediation recommendations8081## Verification8283- [ ] All aws credential exposure procedures executed completely and documented84- [ ] Findings validated against multiple data sources85- [ ] False positives identified and filtered86- [ ] Results documented with evidence and timestamps87- [ ] Recommendations provided with risk-based prioritization8889## Anti-Rationalization Table9091| Rationalization | Reality |92|---|---|93| "We are too small to be targeted" | Automated attacks target everyone. Size does not matter. |94| "Security slows us down" | A breach slows you down 100x more. Build security in from the start. |95| "We will fix it after launch" | Vulnerabilities in production are exploited within hours. Fix before deploy. |