tls-config-drift
TLS config drift scanner: harvests every TLS-version constant, cipher-suite array, cert-pinning call, mTLS flag, cert-validation callback, and FIPS-mode setting. LLM analyses each statement as accepta
SKILL.mdskills/security/tls-config-drift/SKILL.md
GitHubWhat this is for
TLS configuration drifts silently: a developer adds TLS_RSA_WITH_RC4_128_SHA to
a cipher array, pins the wrong public-key fingerprint, or forgets rejectUnauthorized
in an mTLS setup. security-smell-scanner flags generic "use TLS 1.2+" - no tool
reads the actual cipher suites and cert-pin values and classifies each as acceptable
vs downgrade-risk. This skill catalogs every TLS-relevant statement, and the LLM
classifies each by drift-type.
PROTECTION RULE - never ~/.claude/
Read-only skill. Guard required if write mode added later.
## What You Must Do When Invoked
During analysis, assign a confidence level to each finding: proven (confirmed by evidence), likely (strong signal, needs review), or suspected (weak signal).
Step 1
- If
-helpis passed, print the## Usageblock below and stop.
Step 2
- Confirm
-ProjectDiris provided and the path exists.
Step 3
- Run:
scripts/tls-config-scan.ps1 -ProjectDir "<path>"
Step 4
- LLM reads the JSON output. For each finding:
Step 5
- TLS version: is it TLSv1.2+ (acceptable) or TLSv1/TLSv1.1 (deprecated)?
Step 6
- Cipher suite array: any NULL-cipher, RC4, CBC-SHA, or export-grade suite? Is the array restrictive or overly permissive?
Step 7
- Cert pinning: is the fingerprint correct for the current certificate? Is HPKP used (deprecated/dangerous)?
Step 8
- mTLS: is
rejectUnauthorizedset totrue? IsrequestCertpaired withca?
Step 9
- Cert validation: does
checkServerIdentitybypass checks? Is a custom validator weakening security?
Step 10
- FIPS mode: is it explicitly enabled? Is it consistent across the project?
Step 11
- Downgrade risk: if a config element is missing (e.g., no
minVersion), what is the implicit default?
Step 12
- Severity scale: FIPS-disabled > weak pin > TLSv1.1 > TLSv1.2 with wide cipher > missing mTLS flag.
Step 13
- Write
tls-config-drift-report.mdto the working directory.
Usage
/ssl-drift # interactive
/ssl-drift <dir> # scan project
/ssl-drift -help # show usage
Returns JSON with findings[]:
{file, line, findingType, lineContent} plus summary counts.