
Scanner de segurança estático para pacotes de skills de agentes de IA. Detecta arquivos SKILL.md maliciosos e scripts empacotados antes que eles sejam executados.
Se o SkillsGuard protege seu pipeline, considere apoiar a pesquisa contínua e novas regras de detecção.
Carteira de Doação ETH
0x11282eE5726B3370c8B480e321b3B2aA13686582
Escaneie o código QR ou copie o endereço da carteira acima.
Scanner de segurança estático para pacotes de habilidades de agentes de IA. Detecta arquivos SKILL.md maliciosos e scripts empacotados antes que sejam executados.
curl -s --data-binary @SKILL.md
https://skillsguard.apiskillsguard.workers.dev/scan | jq .
### Opção B — Compilar a partir do código-fonte e vincular globalmente
> **Nota:** o SkillsGuard atualmente não está publicado no registro npm. Instale clonando e compilando a partir do código-fonte.```bash
# 1. Clone, install, build, and link
git clone https://github.com/Teycir/SkillsGuard.git
cd SkillsGuard
npm install
npm run build
npm link
# 2. Scan any skill directory or file
skillsguard /path/to/skill
É isso. A SkillsGuard imprime achados codificados por cores no terminal (ou --json para CI).
Código de saída 0 = limpo · 1 = achados · 2 = erro de uso.
Quer que o Claude chame o scanner automaticamente dentro do seu fluxo de trabalho com agentes? Consulte Workflow Local → Caminho B para a configuração completa de skill + MCP.
flowchart TD A([Folder, file, or Git diff target]) --> B[Load config\nskillsguard.config.json] B --> C[File discovery\nFilter JS, PY, PS1, Docker, Ruby...] C --> D{For each file} D --> E[Raw text scan\nApply 100+ rules] D --> F[decode.ts\nExtract encoded blobs] F --> G[Recursive decode\nbase64, hex, URL] G --> H[Scan decoded content] E & H --> I{Findings?} I -->|no| J([✅ Clean — exit 0]) I -->|yes| K[Deduplicate findings] K --> L[Compute Risk Score\n0 - 100] L --> M{Output mode} M -->|CLI| N[ANSI colored report] M -->|--json| O[JSON output] M -->|--sarif| P[SARIF output] M -->|MCP| Q[MCP response] N & O & P & Q --> R{Risk > max-risk?} R -->|yes| S([❌ Exit 1]) R -->|no| J
style A fill:#0d1117,stroke:#00ff88,color:#c3f5dc
style J fill:#0d1117,stroke:#00ff88,color:#00ff88
style S fill:#0d1117,stroke:#ff4444,color:#ff8888
style G fill:#0d1117,stroke:#f0a500,color:#f0c060
style K fill:#0d1117,stroke:#00ff88,color:#c3f5dc
> **Insight-chave:** o SkillsGuard decodifica payloads ofuscados *antes* da verificação, então um shell reverso encapsulado em base64 não pode escapar. Cada achado é deduplicado — cada regra dispara no máximo uma vez por arquivo por linha.
---
## Índice
- [Como o SkillsGuard se Compara](#how-skillsguard-compares)
- [Por que SkillsGuard](#why-skillsguard)
- [Recursos](#features)
- [Cobertura de Ameaças](#threat-coverage)
- [Início Rápido](#quick-start)
- [Fluxo de Trabalho Local](#local-workflow)
- [Exemplo Completo do CLI Kiro](#kiro-cli--complete-example)
- [Exemplo do Mundo Real — Autoauditoria de Skills Instaladas](#real-world-example--self-auditing-installed-skills)
- [Uso do CLI](#cli-usage)
- [Modo Git Diff](#git-diff-mode)
- [Arquivo de Configuração](#configuration-file)
- [Pontuação de Risco e Gating](#risk-scoring--gating)
- [Saída SARIF](#sarif-output)
- [Regras Específicas de Modelo](#model-specific-rules)
- [Explorador de Regras e Ajuste](#rule-explorer--tuning)
- [Modo Watch](#watch-mode)
- [Fluxo de Trabalho de Baseline](#baseline-workflow)
- [Hook Pre-commit](#pre-commit-hook)
- [Servidor MCP](#mcp-server)
- [Servidor HTTP](#http-server)
- [API em Nuvem (Gratuita)](#cloud-api-free)
- [Demonstração ao Vivo](#live-demo)
- [API de Biblioteca](#library-api)
- [Referência de Regras](#rules-reference)
- [Detecção de Ofuscação](#obfuscation-detection)
- [Fixtures de Teste](#test-fixtures)
- [Estrutura do Projeto](#project-structure)
- [Limitações](#limitations)
- [Contribuindo](#contributing)
- [Licença](#license)
- [Atribuição](#attribution)
- [Projetos Relacionados](#related-projects)
- [Apoie o Desenvolvimento](#support-development)
---
## Como o SkillsGuard se Compara
O espaço de segurança de agentes-skill se preencheu rapidamente em 2026 — NVIDIA, Cisco, Snyk e Mondoo lançaram scanners para exatamente esse problema. Vale a pena conhecer o cenário antes de escolher uma ferramenta, incluindo esta.
### Resumo
| Ferramenta | Suporte | Requer conta/token | Requer chamada LLM para a verificação principal | Abordagem de detecção | Extra notável |
|---|---|---|---|---|---|
| **SkillsGuard** | Independente, MIT | Não | Não | Regex estático, decodificação-primeiro (desempacotamento recursivo de base64/hex/URL/Unicode) | Hook pre-commit + modo git-diff; API curl gratuita |
| **[NVIDIA SkillSpector](https://github.com/NVIDIA/SkillSpector)** | NVIDIA, Apache 2.0 | Não | Não (opcional, para a etapa semântica) | Estático + passada semântica opcional por LLM | Consulta ao vivo de CVE de dependências via OSV.dev |
| **[Cisco AI Defense Skill Scanner](https://github.com/cisco-ai-defense/skill-scanner)** | Cisco | Não | Não (opcional, para a etapa semântica) | Multi-motor: estático + fluxo de dados comportamental + semântico LLM + nuvem | Workflow GitHub Actions integrado |
| **[Snyk Agent Scan](https://github.com/snyk/agent-scan)** (anteriormente mcp-scan) | Snyk, comercial | **Sim** — `SNYK_TOKEN` obrigatório | Sim — regras determinísticas + avaliadores LLM combinados | Descoberta automática em Claude/Cursor/Windsurf/Gemini CLI + servidores MCP | Alimenta a verificação de skills na instalação da Vercel |
| **[SkillScan](https://github.com/NMitchem/SkillScan)** | Independente | Não | Somente para o modo `predict` (opcional) | Motor de regras YAML + execução simulada comportamental opcional por LLM + sandbox Docker opcional | Detecção de ativação temporal/atrasada por meio de role-play do LLM |
| **Mondoo Skill Check** | Mondoo, comercial | Não (camada gratuita, não comercial) | Não claro na documentação pública | Estático, mapeado para OWASP LLM Top 10 | Dashboard hospedado + API REST |