Prerequisites
Before using this skill, ensure:
- Configuration files accessible in {baseDir}/ (Terraform, CloudFormation, YAML, JSON)
- Infrastructure-as-code files (.tf, .yaml, .json, .template)
- Application configuration files (application.yml, config.json, .env.example)
- System configuration exports available
- Write permissions for findings report in {baseDir}/security-findings/
Instructions
1. Configuration Discovery Phase
Locate configuration files to analyze:
- Infrastructure-as-code: Terraform (.tf), CloudFormation (.yaml/.json), Ansible, Kubernetes
- Application configs: application.yml, config.json, web.config, .properties
- Cloud provider configs: AWS, GCP, Azure resource definitions
- Container configs: Dockerfile, docker-compose.yml, Kubernetes manifests
- Web server configs: nginx.conf, httpd.conf, .htaccess
2. IaC Misconfiguration Checks
Cloud Storage:
- S3 buckets with public read/write access
- Storage accounts without encryption
- Publicly accessible blob containers
- Missing versioning on data stores
Network Security:
- Security groups allowing 0.0.0.0/0 on sensitive ports (22, 3389, 3306, 5432)
- Network ACLs with overly permissive rules
- VPCs without flow logs enabled
- Missing network segmentation
Identity and Access:
- IAM policies with wildcard (*) permissions
- Service accounts with admin privileges
- Missing MFA enforcement
- Overly broad role assignments
- Hardcoded credentials in code
Compute Resources:
- EC2 instances with public IPs unnecessarily
- Unencrypted EBS volumes
- Missing instance metadata service v2
- Outdated AMIs/images
Database Security:
- RDS instances publicly accessible
- Databases without encryption at rest
- Missing automated backups
- Weak password policies
- Default ports exposed
3. Application Configuration Checks
Authentication/Authorization:
- Debug mode enabled in production
- Default credentials present
- Weak session timeout values
- Missing CSRF protection
- Insecure password policies
API Security:
- API keys in configuration files
- CORS configured with wildcard (*)
- Missing rate limiting
- Unencrypted API endpoints
- Disabled authentication
Data Protection:
- Sensitive data in plain text
- Missing encryption configuration
- Insecure cookie settings (no HttpOnly, Secure flags)
- Logging sensitive information
Dependencies:
- Outdated library versions with CVEs
- Unmaintained packages
- Unnecessary dependencies
4. System Configuration Checks
Operating System:
- Unnecessary services enabled
- Weak SSH configurations
- Missing security updates
- Insecure file permissions
- Disabled firewalls
Web Servers:
- Directory listing enabled
- Server tokens exposed
- Missing security headers
- Weak TLS configurations
- Default error pages revealing information
5. Severity Classification
Rate findings by severity:
- Critical: Immediate exploitation risk (public S3, hardcoded secrets)
- High: Significant security impact (weak auth, missing encryption)
- Medium: Configuration weaknesses (overly permissive, missing logs)
- Low: Best practice violations (information disclosure, outdated configs)
6. Generate Findings Report
Document all misconfigurations with:
- Severity and category
- Specific configuration issue
- Security impact explanation
- Remediation steps with code examples
- Compliance implications (CIS, NIST, PCI-DSS)
Output
The skill produces:
Primary Output: Security misconfigurations report saved to {baseDir}/security-findings/misconfig-YYYYMMDD.md
Report Structure:
# Security Misconfiguration Findings
Scan Date: 2024-01-15
Files Analyzed: 42
Findings: 15 (3 Critical, 5 High, 4 Medium, 3 Low)
## Critical Findings
### 1. Publicly Accessible S3 Bucket
**File**: {baseDir}/terraform/storage.tf
**Line**: 23
**Issue**: S3 bucket allows public read access
**Code**:
```hcl
resource "aws_s3_bucket" "data" {
acl = "public-read" # CRITICAL: Public access
}
Impact: Sensitive data exposed to internet
Remediation:
resource "aws_s3_bucket" "data" {
acl = "private"
public_access_block {
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}
}
Compliance: Violates CIS AWS 2.1.5, NIST AC-3
High Findings
2. Security Group Allows SSH from Anywhere
File: {baseDir}/terraform/network.tf
Line: 45
Issue: Port 22 open to 0.0.0.0/0
Impact: Brute force attack surface
Remediation: Restrict to specific IP ranges or use bastion host
[Additional findings follow similar structure]
Summary by Category
- IAM/Access Control: 4 findings
- Network Security: 6 findings
- Data Protection: 3 findings
- Logging/Monitoring: 2 findings
Compliance Impact
- CIS Benchmarks: 8 violations
- NIST 800-53: 5 controls affected
- PCI-DSS: 3 requirements unmet
**Secondary Outputs**:
- JSON for CI/CD integration: {baseDir}/security-findings/misconfig-YYYYMMDD.json
- CSV for spreadsheet tracking
- SARIF format for GitHub Security tab
## Error Handling
**Common Issues and Resolutions**:
1. **Unable to Parse Configuration File**
- Error: "Syntax error in {baseDir}/terraform/main.tf"
- Resolution: Validate file syntax first, report parse errors separately
- Fallback: Skip malformed files, note in report
2. **Missing Cloud Provider Context**
- Error: "Cannot determine cloud provider from configuration"
- Resolution: Look for provider blocks, file naming conventions
- Fallback: Apply generic security checks only
3. **Encrypted or Binary Configuration Files**
- Error: "Cannot read encrypted configuration"
- Resolution: Request decrypted version or configuration export
- Note: Document inability to audit in report
4. **Large Configuration Sets**
- Error: "Too many files to analyze ({baseDir}/ has 500+ configs)"
- Resolution: Prioritize by file type and location
- Strategy: Start with IaC, then app configs, then system configs
5. **False Positives**
- Error: "Flagged configuration is intentional (dev environment)"
- Resolution: Allow environment-specific exceptions
- Enhancement: Support ignore/exception rules file
## Resources
**Security Benchmarks**:
- CIS Benchmarks: https://www.cisecurity.org/cis-benchmarks/
- OWASP Configuration Guide: https://cheatsheetseries.owasp.org/cheatsheets/Infrastructure_as_Code_Security_Cheatsheet.html
- Cloud Security Alliance: https://cloudsecurityalliance.org/
**IaC Security Tools**:
- tfsec (Terraform): https://github.com/aquasecurity/tfsec
- Checkov (Multi-cloud): https://www.checkov.io/
- cfn-nag (CloudFormation): https://github.com/stelligent/cfn_nag
- kube-bench (Kubernetes): https://github.com/aquasecurity/kube-bench
**Configuration Best Practices**:
- AWS Security Best Practices: https://aws.amazon.com/architecture/security-identity-compliance/
- Azure Security Baseline: https://docs.microsoft.com/en-us/security/benchmark/azure/
- GCP Security Best Practices: https://cloud.google.com/security/best-practices
**Compliance Frameworks**:
- CIS Controls: https://www.cisecurity.org/controls/
- NIST 800-53: https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final
- PCI-DSS Requirements: https://www.pcisecuritystandards.org/
**Remediation Examples**:
- Terraform security modules: {baseDir}/templates/terraform-secure/
- CloudFormation secure templates: {baseDir}/templates/cfn-secure/
- Kubernetes security policies: {baseDir}/templates/k8s-policies/
1---2name: finding-security-misconfigurations3description: Identify security misconfigurations in infrastructure-as-code, application settings, and system configurations. Use when you need to audit Terraform/CloudFormation templates, check application config files, validate system security settings, or ensure compliance with security best practices. Trigger with phrases like "find security misconfigurations", "audit infrastructure security", "check config security", or "scan for misconfigured settings".4license: MIT5---67## Prerequisites89Before using this skill, ensure:10- Configuration files accessible in {baseDir}/ (Terraform, CloudFormation, YAML, JSON)11- Infrastructure-as-code files (.tf, .yaml, .json, .template)12- Application configuration files (application.yml, config.json, .env.example)13- System configuration exports available14- Write permissions for findings report in {baseDir}/security-findings/1516## Instructions1718### 1. Configuration Discovery Phase1920Locate configuration files to analyze:21- Infrastructure-as-code: Terraform (.tf), CloudFormation (.yaml/.json), Ansible, Kubernetes22- Application configs: application.yml, config.json, web.config, .properties23- Cloud provider configs: AWS, GCP, Azure resource definitions24- Container configs: Dockerfile, docker-compose.yml, Kubernetes manifests25- Web server configs: nginx.conf, httpd.conf, .htaccess2627### 2. IaC Misconfiguration Checks2829**Cloud Storage**:30- S3 buckets with public read/write access31- Storage accounts without encryption32- Publicly accessible blob containers33- Missing versioning on data stores3435**Network Security**:36- Security groups allowing 0.0.0.0/0 on sensitive ports (22, 3389, 3306, 5432)37- Network ACLs with overly permissive rules38- VPCs without flow logs enabled39- Missing network segmentation4041**Identity and Access**:42- IAM policies with wildcard (*) permissions43- Service accounts with admin privileges44- Missing MFA enforcement45- Overly broad role assignments46- Hardcoded credentials in code4748**Compute Resources**:49- EC2 instances with public IPs unnecessarily50- Unencrypted EBS volumes51- Missing instance metadata service v252- Outdated AMIs/images5354**Database Security**:55- RDS instances publicly accessible56- Databases without encryption at rest57- Missing automated backups58- Weak password policies59- Default ports exposed6061### 3. Application Configuration Checks6263**Authentication/Authorization**:64- Debug mode enabled in production65- Default credentials present66- Weak session timeout values67- Missing CSRF protection68- Insecure password policies6970**API Security**:71- API keys in configuration files72- CORS configured with wildcard (*)73- Missing rate limiting74- Unencrypted API endpoints75- Disabled authentication7677**Data Protection**:78- Sensitive data in plain text79- Missing encryption configuration80- Insecure cookie settings (no HttpOnly, Secure flags)81- Logging sensitive information8283**Dependencies**:84- Outdated library versions with CVEs85- Unmaintained packages86- Unnecessary dependencies8788### 4. System Configuration Checks8990**Operating System**:91- Unnecessary services enabled92- Weak SSH configurations93- Missing security updates94- Insecure file permissions95- Disabled firewalls9697**Web Servers**:98- Directory listing enabled99- Server tokens exposed100- Missing security headers101- Weak TLS configurations102- Default error pages revealing information103104### 5. Severity Classification105106Rate findings by severity:107- **Critical**: Immediate exploitation risk (public S3, hardcoded secrets)108- **High**: Significant security impact (weak auth, missing encryption)109- **Medium**: Configuration weaknesses (overly permissive, missing logs)110- **Low**: Best practice violations (information disclosure, outdated configs)111112### 6. Generate Findings Report113114Document all misconfigurations with:115- Severity and category116- Specific configuration issue117- Security impact explanation118- Remediation steps with code examples119- Compliance implications (CIS, NIST, PCI-DSS)120121## Output122123The skill produces:124125**Primary Output**: Security misconfigurations report saved to {baseDir}/security-findings/misconfig-YYYYMMDD.md126127**Report Structure**:128```129# Security Misconfiguration Findings130Scan Date: 2024-01-15131Files Analyzed: 42132Findings: 15 (3 Critical, 5 High, 4 Medium, 3 Low)133134## Critical Findings135136### 1. Publicly Accessible S3 Bucket137**File**: {baseDir}/terraform/storage.tf138**Line**: 23139**Issue**: S3 bucket allows public read access140**Code**:141```hcl142resource "aws_s3_bucket" "data" {143 acl = "public-read" # CRITICAL: Public access144}145```146**Impact**: Sensitive data exposed to internet147**Remediation**:148```hcl149resource "aws_s3_bucket" "data" {150 acl = "private"151152 public_access_block {153 block_public_acls = true154 block_public_policy = true155 ignore_public_acls = true156 restrict_public_buckets = true157 }158}159```160**Compliance**: Violates CIS AWS 2.1.5, NIST AC-3161162## High Findings163164### 2. Security Group Allows SSH from Anywhere165**File**: {baseDir}/terraform/network.tf166**Line**: 45167**Issue**: Port 22 open to 0.0.0.0/0168**Impact**: Brute force attack surface169**Remediation**: Restrict to specific IP ranges or use bastion host170171[Additional findings follow similar structure]172173## Summary by Category174- IAM/Access Control: 4 findings175- Network Security: 6 findings176- Data Protection: 3 findings177- Logging/Monitoring: 2 findings178179## Compliance Impact180- CIS Benchmarks: 8 violations181- NIST 800-53: 5 controls affected182- PCI-DSS: 3 requirements unmet183```184185**Secondary Outputs**:186- JSON for CI/CD integration: {baseDir}/security-findings/misconfig-YYYYMMDD.json187- CSV for spreadsheet tracking188- SARIF format for GitHub Security tab189190## Error Handling191192**Common Issues and Resolutions**:1931941. **Unable to Parse Configuration File**195 - Error: "Syntax error in {baseDir}/terraform/main.tf"196 - Resolution: Validate file syntax first, report parse errors separately197 - Fallback: Skip malformed files, note in report1981992. **Missing Cloud Provider Context**200 - Error: "Cannot determine cloud provider from configuration"201 - Resolution: Look for provider blocks, file naming conventions202 - Fallback: Apply generic security checks only2032043. **Encrypted or Binary Configuration Files**205 - Error: "Cannot read encrypted configuration"206 - Resolution: Request decrypted version or configuration export207 - Note: Document inability to audit in report2082094. **Large Configuration Sets**210 - Error: "Too many files to analyze ({baseDir}/ has 500+ configs)"211 - Resolution: Prioritize by file type and location212 - Strategy: Start with IaC, then app configs, then system configs2132145. **False Positives**215 - Error: "Flagged configuration is intentional (dev environment)"216 - Resolution: Allow environment-specific exceptions217 - Enhancement: Support ignore/exception rules file218219## Resources220221**Security Benchmarks**:222- CIS Benchmarks: https://www.cisecurity.org/cis-benchmarks/223- OWASP Configuration Guide: https://cheatsheetseries.owasp.org/cheatsheets/Infrastructure_as_Code_Security_Cheatsheet.html224- Cloud Security Alliance: https://cloudsecurityalliance.org/225226**IaC Security Tools**:227- tfsec (Terraform): https://github.com/aquasecurity/tfsec228- Checkov (Multi-cloud): https://www.checkov.io/229- cfn-nag (CloudFormation): https://github.com/stelligent/cfn_nag230- kube-bench (Kubernetes): https://github.com/aquasecurity/kube-bench231232**Configuration Best Practices**:233- AWS Security Best Practices: https://aws.amazon.com/architecture/security-identity-compliance/234- Azure Security Baseline: https://docs.microsoft.com/en-us/security/benchmark/azure/235- GCP Security Best Practices: https://cloud.google.com/security/best-practices236237**Compliance Frameworks**:238- CIS Controls: https://www.cisecurity.org/controls/239- NIST 800-53: https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final240- PCI-DSS Requirements: https://www.pcisecuritystandards.org/241242**Remediation Examples**:243- Terraform security modules: {baseDir}/templates/terraform-secure/244- CloudFormation secure templates: {baseDir}/templates/cfn-secure/245- Kubernetes security policies: {baseDir}/templates/k8s-policies/