agentleFS
XavierErXavierEr/appsec-agent-skills/skills/security-config-review/SKILL.md

security-config-review

Skill4 starsChanged 7 months agoMITView on GitHub

Reviews infrastructure and configuration files for security misconfigurations across Docker, Kubernetes, CI/CD pipelines, web frameworks, and secrets management.

  • Reads credentials

1 other project uses a version of this, 1 of them edited.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Wrote their own version · 0

    None found.

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository8 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 5 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use Glob and Grep to discover these files.

    line 52
  2. Distinctive:

    Use the Read tool to read each config file fully.

    line 63
  3. Distinctive:

    Consider the project context before finalizing findings:

    line 78
  4. Distinctive:

    Existing mitigations: If a reverse proxy handles TLS and headers, missing framework-level headers may be mitigated.

    line 82
  5. Distinctive:

    Do NOT dismiss findings just because it is a development project.

    line 85

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Security Configuration Review

Review infrastructure and configuration files for security misconfigurations. This skill is language-agnostic and supports containers, orchestration, CI/CD pipelines, web frameworks, cloud IaC, and secrets management.

Workflow

Step 1: Configuration Discovery

Scan the project for all configuration files. Auto-detect file types across these categories:

Container & Orchestration:

  • Dockerfile, Dockerfile.*, *.dockerfile
  • docker-compose.yml, docker-compose.*.yml, compose.yml, compose.*.yml
  • .dockerignore
  • Kubernetes manifests: *.yaml, *.yml in k8s/, kubernetes/, manifests/, deploy/, helm/ directories, or any YAML with apiVersion/kind fields

CI/CD Pipelines:

  • .github/workflows/*.yml
  • .gitlab-ci.yml
  • Jenkinsfile, Jenkinsfile.*
  • .circleci/config.yml
  • azure-pipelines.yml
  • bitbucket-pipelines.yml
  • .travis.yml

Web Framework Configuration:

  • Express/Node.js: index.ts, index.js, app.ts, app.js, server.ts, server.js, package.json
  • Flask: app.py, config.py, wsgi.py, __init__.py
  • Django: settings.py, settings/*.py, urls.py
  • Spring Boot: application.yml, application.properties, application-*.yml, application-*.properties, pom.xml
  • Laravel: .env, config/*.php, config/app.php, config/auth.php, config/cors.php
  • ASP.NET: appsettings.json, appsettings.*.json, Startup.cs, Program.cs, web.config

Secrets & Credentials:

  • .env, .env.*, .env.local, .env.production
  • credentials.json, serviceAccount.json, secrets.yaml, secrets.json
  • Vault config files
  • *.pem, *.key (check if committed)

Cloud Infrastructure as Code:

  • terraform/*.tf, *.tf, terraform.tfvars, *.tfvars
  • cloudformation/*.yaml, cloudformation/*.json, *.template
  • pulumi/*, Pulumi.yaml, Pulumi.*.yaml
  • ansible/*.yml, playbook*.yml

Use Glob and Grep to discover these files. Do not assume a project uses only one technology — scan for all categories.

Step 2: Checklist Application

For each discovered configuration file, use the Read tool to load the appropriate hardening checklist from the reference documents:

  • Docker/Kubernetes files: Use references/docker_hardening.md
  • Web framework configs: Use references/web_framework_hardening.md
  • Secret/credential files: Use references/secrets_management.md
  • CI/CD pipeline files: Use references/cicd_hardening.md

Use the Read tool to read each config file fully. Check every applicable item from the relevant checklist. Do not skip checks — be thorough.

Step 3: Severity Assessment

Rate each finding using this scale:

SeverityCriteriaExamples
CriticalSecrets exposed, RCE possible, complete auth bypassHardcoded API keys, privileged containers with host mounts, DEBUG=True with exposed management endpoints
HighElevated privileges, missing authentication, data exposure riskRunning as root, CORS wildcard with credentials, missing network policies
MediumWeak defaults, missing security headers, overly permissive settingsNo rate limiting, missing helmet, unpinned image tags
LowBest practice deviations, defense-in-depth gapsMissing HEALTHCHECK, no resource limits in dev, shell form CMD

Step 4: Context Evaluation

Consider the project context before finalizing findings:

  • Development vs Production: A DEBUG=True in a clearly-labeled dev config is lower severity than in a production config. Note the distinction but still flag it.
  • Project type: A public-facing web app has different threat exposure than an internal tool.
  • Existing mitigations: If a reverse proxy handles TLS and headers, missing framework-level headers may be mitigated. Note this.
  • Intentional choices: Some configs may be intentionally permissive for valid reasons. Flag but acknowledge.

Do NOT dismiss findings just because it is a development project. Development configs often become production configs.

Step 5: Report

Present findings in a structured report. For each finding include:

FieldDescription
FindingClear description of the misconfiguration
File:LineExact location (file path and line number)
SeverityCritical / High / Medium / Low
Current ValueWhat the config currently does
Recommended ValueWhat it should be changed to
RationaleWhy this matters — what attack or risk it enables

Group findings by severity (Critical first, then High, Medium, Low).

End the report with:

  • A summary count: X Critical, Y High, Z Medium, W Low
  • Top 3 priority actions to take immediately
  • Any positive security practices already in place (acknowledge good config)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.