360 Secure SkillHub
360 安全技能中心

Credential Hygiene Validator

通过只读 shell 检查(stat、grep、git、find、ls)审计配置目录中的凭据卫生,覆盖文件权限、明文令牌、git 仓库污染、gitignore 覆盖、日志泄露与令牌轮换时效,并输出检查结论。

techris93
techris93
热度 82.73
最近更新 2026-05-11 17:28:23
分类:安全依赖:代码执行 / 读写文件应用场景:DevOps / 自动化脚本 / 报告撰写

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add credential-hygiene-validator
Metadata
name
credential-hygiene-validator
description
Checks whether credentials and tokens are stored safely. Validates file permissions, plaintext exposure, git repo contamination, log redaction coverage, and token rotation status. Works with OpenClaw and general dotfile directories.
metadata
{"openclaw":{"requires":{"bins":["grep","stat","git"]}}}

Credential Hygiene Validator

Checks whether credentials and tokens in config files are stored with reasonable hygiene. Catches common mistakes before they become incidents.

What it checks

  1. File permissions -- config files should be 600 or 700, not world-readable
  2. Plaintext tokens -- scans for hex tokens, JWTs (base64url with dots), Bearer strings, and API keys
  3. Git repo contamination -- whether the config directory sits inside a git working tree
  4. Gitignore coverage -- whether .gitignore excludes credential paths
  5. Log file leaks -- tokens appearing in log output (checks all formats: hex, JWT, Bearer per RFC 6750)
  6. Token age -- warns if tokens have not been rotated recently
  7. Atomic write safety -- checks if config backup exists (indicator of safe write patterns)

When to use it

  • After setting up a new tool or service
  • Before pushing dotfiles to a public repo
  • As part of a regular security hygiene review
  • When onboarding a new machine
  • After rotating credentials, to confirm the old token is gone

Example prompts

  • "Check if my OpenClaw tokens are stored safely"
  • "Audit my dotfiles for leaked credentials"
  • "Is my config directory in a git repo?"
  • "Check file permissions on my credentials"
  • "Are my tokens showing up in any log files?"

Checks run

# 1. File permissions
stat -c '%a %n' ~/.openclaw/openclaw.json
# Expected: 600

# 2. Plaintext tokens (full token68 charset per RFC 7235)
grep -rnP '("token"\s*:\s*")[^"]{8,}"|[Bb]earer\s+[\w\-\.+/=~]{16,}|[a-f0-9]{32,}' \
  ~/.openclaw/ --include="*.json" 2>/dev/null

# 3. Git repo check
git -C ~/.openclaw rev-parse --is-inside-work-tree 2>/dev/null
# Expected: error (not in a repo)

# 4. Gitignore coverage
grep -q '.openclaw' ~/.gitignore 2>/dev/null && echo "covered" || echo "not covered"

# 5. Log file leaks (full token68 charset)
grep -rnP '[Bb]earer\s+[\w\-\.+/=~]{16,}|[a-f0-9]{32,}' \
  ~/.openclaw/logs/ --include="*.log" 2>/dev/null

# 6. Token age (check config file modification time)
find ~/.openclaw/openclaw.json -mtime +90 -print 2>/dev/null
# If output: token has not been rotated in 90+ days

# 7. Backup file exists (atomic write indicator)
ls ~/.openclaw/openclaw.json.bak 2>/dev/null && echo "backup present" || echo "no backup"

Notes

  • Read-only checks, does not modify any files
  • Token patterns match hex, JWT (header.payload.signature), base64url, and Bearer headers case-insensitively per RFC 6750
  • Works with any tool that stores credentials in dotfiles
  • Aligns with T-ACCESS-003 in the OpenClaw threat model

References