Skill Security Vetter — Bianinho
O que é
Sistema de validação de segurança para todas as skills baixadas de fontes externas (GitHub, ClawHub, etc.).
Antes de qualquer skill ser instalada, é escaneada para:
- Exfiltração de dados — API keys, tokens, passwords hardcoded
- Prompt injection — override de system prompt, bypass de instruções
- Command injection —
curl|bash, wget|bash, $()|bash
- Shell injection —
subprocess(shell=True), eval(), exec(), base64+exec
- Comandos destrutivos —
rm -rf /, dd, fdisk, mkfs, shred
- Persistência maliciosa — crontab, systemd,
.bashrc injection
- Secrets em variáveis de ambiente — chaves de serviços conocidas
- Ofuscação — hex escapes, caracteres não-ASCII anómalos
- Steganography — ocultação de dados em imagens
- SSH backdoor — modificação de
authorized_keys, sshd_config
Scripts
scripts/skills_guard.py — scanner principal
scripts/integrate_hermes.py — integração com workflow de install do Hermes
Uso
1. Validar skill antes de instalar
python3 ~/.hermes/scripts/skills_guard.py /caminho/para/skill --verbose
2. Auditar todas as skills instaladas
python3 ~/.hermes/scripts/skills_guard.py --check-installed
3. Validar com source info (trust level)
python3 ~/.hermes/scripts/skills_guard.py /caminho/para/skill \
--source-type github \
--source-id "openai/skills/k8s"
4. Output JSON (para integração)
python3 ~/.hermes/scripts/skills_guard.py /caminho/para/skill --json
Trust Levels
| Level |
Source |
Auto-approve |
builtin |
Hermes built-in |
✅ Sempre |
official |
optional-skills/ repo |
✅ Se sem critical |
trusted |
openai/skills, anthropics/skills |
✅ Se sem critical |
community |
ClawHub, GitHub, outros |
❌ Requer validação |
unknown |
Source não verificado |
❌ Validação máxima |
Verdicts
APPROVED — Score ≥70, sem critical/high → instalar
LOW_RISK — Só low findings → Caution, mas instalar ok
CAUTION — Medium findings → Rever documentação
REVIEW_REQUIRED — High findings → Revisar antes de instalar
BLOCKED — Critical findings → NÃO instalar
Integração Automática
O script integrate_hermes.py adiciona hooks ao hermes skills install:
- Executa
skills_guard.py antes de instalar
- Se verdict=BLOQUEADO → aborta installation
- Se verdict=REVIEW_REQUIRED → pide confirmação
- Log de auditoria em
~/.hermes/skills/.hub/audit.log
Padrões Detectados (40+ rules)
Critical
- AWS keys, GitHub tokens, private keys hardcoded
- Prompt injection (
ignore previous, disregard instructions)
- Command injection (
|bash, |sh, $()|)
- eval/exec, base64+exec, compile+exec
- dd/fdisk/mkfs/shred
- SSH authorized_keys modification
High
- API keys / passwords hardcoded
- subprocess(shell=True)
- curl/wget/nc para downloads
- crontab com injection
- Writing to /etc, /usr, /var
- .bashrc / .profile injection
- sudo python/bash
Medium
- subnetcom com curl/wget/nc
- Hex escapes em strings
- Muitos caracteres não-ASCII consecutivos
Pitfalls
- Ficheiros
.md, .json, .yaml são ignorados (não executáveis)
- Só exts de código são escaneadas (.py, .sh, .js, .ts, etc.)
- False positives em placeholders são filtrados (os.environ, {{key}})
- Markdown README são ignorados propositadamente
Audit Log
Every install/validation is logged to:
~/.hermes/skills/.hub/audit.log
Format: JSON lines com timestamp, event, skill, details, verdict.
Quando Usar
- ANTES de instalar qualquer skill do GitHub, ClawHub, ou source desconhecido
- Após instalar — para auditar skills existentes
- Semanalmente — como verificação de segurança
- Antes de executar uma skill nova pela primeira vez
1---2name: skill-security-vetter3description: Sistema de validação de segurança para skills — Bianinho Vetter. Valida skills antes de instalar, detecta padrões maliciosos (exfiltração, injection, shell injection, commands destrutivos), audit das já instaladas, e integração automática no workflow de instalação. CORREIGIDO E AMPLIADO em 19/04/2026.4---5
6# Skill Security Vetter — Bianinho
7
8## O que é
9
10Sistema de validação de segurança para todas as skills baixadas de fontes externas (GitHub, ClawHub, etc.).
11
12Antes de qualquer skill ser instalada, é escaneada para:
13- **Exfiltração de dados** — API keys, tokens, passwords hardcoded
14- **Prompt injection** — override de system prompt, bypass de instruções
15- **Command injection** — `curl|bash`, `wget|bash`, `$()|bash`
16- **Shell injection** — `subprocess(shell=True)`, `eval()`, `exec()`, `base64+exec`
17- **Comandos destrutivos** — `rm -rf /`, `dd`, `fdisk`, `mkfs`, `shred`
18- **Persistência maliciosa** — crontab, systemd, `.bashrc` injection
19- **Secrets em variáveis de ambiente** — chaves de serviços conocidas
20- **Ofuscação** — hex escapes, caracteres não-ASCII anómalos
21- **Steganography** — ocultação de dados em imagens
22- **SSH backdoor** — modificação de `authorized_keys`, `sshd_config`
23
24## Scripts
25
26- `scripts/skills_guard.py` — scanner principal
27- `scripts/integrate_hermes.py` — integração com workflow de install do Hermes
28
29## Uso
30
31### 1. Validar skill antes de instalar
32```bash
33python3 ~/.hermes/scripts/skills_guard.py /caminho/para/skill --verbose
34```
35
36### 2. Auditar todas as skills instaladas
37```bash
38python3 ~/.hermes/scripts/skills_guard.py --check-installed
39```
40
41### 3. Validar com source info (trust level)
42```bash
43python3 ~/.hermes/scripts/skills_guard.py /caminho/para/skill \
44 --source-type github \
45 --source-id "openai/skills/k8s"
46```
47
48### 4. Output JSON (para integração)
49```bash
50python3 ~/.hermes/scripts/skills_guard.py /caminho/para/skill --json
51```
52
53## Trust Levels
54
55| Level | Source | Auto-approve |
56|-------|--------|-------------|
57| `builtin` | Hermes built-in | ✅ Sempre |
58| `official` | optional-skills/ repo | ✅ Se sem critical |
59| `trusted` | openai/skills, anthropics/skills | ✅ Se sem critical |
60| `community` | ClawHub, GitHub, outros | ❌ Requer validação |
61| `unknown` | Source não verificado | ❌ Validação máxima |
62
63## Verdicts
64
65- `APPROVED` — Score ≥70, sem critical/high → instalar
66- `LOW_RISK` — Só low findings → Caution, mas instalar ok
67- `CAUTION` — Medium findings → Rever documentação
68- `REVIEW_REQUIRED` — High findings → Revisar antes de instalar
69- `BLOCKED` — Critical findings → NÃO instalar
70
71## Integração Automática
72
73O script `integrate_hermes.py` adiciona hooks ao `hermes skills install`:
74- Executa `skills_guard.py` antes de instalar
75- Se verdict=BLOQUEADO → aborta installation
76- Se verdict=REVIEW_REQUIRED → pide confirmação
77- Log de auditoria em `~/.hermes/skills/.hub/audit.log`
78
79## Padrões Detectados (40+ rules)
80
81### Critical
82- AWS keys, GitHub tokens, private keys hardcoded
83- Prompt injection (`ignore previous`, `disregard instructions`)
84- Command injection (`|bash`, `|sh`, `$()|`)
85- eval/exec, base64+exec, compile+exec
86- dd/fdisk/mkfs/shred
87- SSH authorized_keys modification
88
89### High
90- API keys / passwords hardcoded
91- subprocess(shell=True)
92- curl/wget/nc para downloads
93- crontab com injection
94- Writing to /etc, /usr, /var
95- .bashrc / .profile injection
96- sudo python/bash
97
98### Medium
99- subnetcom com curl/wget/nc
100- Hex escapes em strings
101- Muitos caracteres não-ASCII consecutivos
102
103## Pitfalls
104
105- Ficheiros `.md`, `.json`, `.yaml` são ignorados (não executáveis)
106- Só exts de código são escaneadas (.py, .sh, .js, .ts, etc.)
107- False positives em placeholders são filtrados (os.environ, {{key}})
108- Markdown README são ignorados propositadamente
109
110## Audit Log
111
112Every install/validation is logged to:
113`~/.hermes/skills/.hub/audit.log`
114
115Format: JSON lines com timestamp, event, skill, details, verdict.
116
117## Quando Usar
118
119- **ANTES de instalar** qualquer skill do GitHub, ClawHub, ou source desconhecido
120- **Após instalar** — para auditar skills existentes
121- **Semanalmente** — como verificação de segurança
122- **Antes de executar** uma skill nova pela primeira vez