Extensão VS Code para auditoria de segurança e conformidade LGPD de repositórios GitHub — integrada ao Copilot Chat.
Features
7 Scanners de Segurança
| Scanner | O que detecta |
|---|---|
| SecretScanner | API keys, tokens, senhas hardcoded |
| CodePatternScanner | eval(), exec(), SQL injection, XSS |
| PermissionScanner | Permissões excessivas, sudo, chmod 777 |
| FileSystemScanner | Path traversal, acesso a arquivos sensíveis |
| NetworkScanner | URLs HTTP inseguras, IPs hardcoded, SSRF |
| LGPDScanner | CPF, email, telefone sem consentimento (Lei 13.709/2018) |
| DependencyScanner | Dependências com vulnerabilidades conhecidas |
Copilot Chat Integration
- Chat Participant:
@security-checkcom comandos/audit,/findings,/score,/lgpd - 8 Language Model Tools: audit_repo, audit_workspace, get_findings, get_score, get_finding_details, list_scanners, dismiss_finding, get_report — tools com prompt guiado instruem o Copilot no fluxo
get_findings→dismiss_finding→get_report - 2 Agents:
security-auditor(auditoria completa) elgpd-advisor(foco LGPD) - 2 Skills:
security-check(referência de tools) esafe-coding(boas práticas)
Sidebar Views
- Findings: Lista de findings com severidade, filtros e ações inline
- Security Score: Score 0-100 com breakdown por severidade
- Global Resources: Status de hooks, skills e agents instalados globalmente
- Hook Activity: Log de atividade dos hooks em tempo real (JSONL)
Dismiss & Persistence
- Dismiss individual, por categoria, por scanner ou dismiss-all
- Hash estável (
scanner:file:title) — dismiss persiste entre re-auditorias - Restore individual de findings dismissados
Global Hooks
- Hooks de segurança instalados automaticamente em
~/.copilot/hooks/ - Monitoramento em tempo real via PreToolUse, PostToolUse, SessionStart, Stop, UserPromptSubmit
- Threshold de severidade configurável
Instalação
Via Marketplace
Busque "Security Check" no VS Code Extensions ou:
ext install allansantos-dv.security-check
Via VSIX (instalação offline)
- Baixe o arquivo
.vsixna página de Releases do repositório no GitHub. - No VS Code:
Ctrl+Shift+P→ "Extensions: Install from VSIX..." → selecione o arquivo baixado.
Nota: Para instalar diretamente do marketplace (método online), busque por "Security Check" na aba Extensions do VS Code ou execute
ext install allansantos-dv.security-check.
Uso
Comandos
| Comando | Descrição |
|---|---|
Security Check: Audit Current Workspace |
Audita o workspace aberto |
Security Check: Audit GitHub Repository |
Audita repo por URL |
Security Check: Dismiss Finding |
Marca finding como falso positivo |
Security Check: Restore Dismissed Finding |
Restaura finding dismissado |
Security Check: Send Report to Chat |
Envia relatório completo ao chat |
Chat
@security-check /audit https://github.com/user/repo
@security-check /score
@security-check /findings
@security-check /lgpd
Configurações
| Setting | Default | Descrição |
|---|---|---|
security-check.enabled |
true |
Habilita/desabilita por workspace |
security-check.installGlobalHooks |
true |
Instala hooks em ~/.copilot/hooks/ |
security-check.hookSeverityThreshold |
medium |
Severidade mínima para alertas de hooks |
Desenvolvimento
# Instalar dependências
npm install
# Compilar
npm run compile
# Testes (262 testes, 33 arquivos)
npm test
# Lint
npm run lint
# Empacotar VSIX
npm run package
# Watch mode
npm run watch
CI/CD
O CI roda automaticamente em push para master e PRs:
- lint → compile → test
- Publish automático no marketplace quando tag
v*é criada
Troubleshooting
Hooks/skills não aparecem em ~/.copilot/
Execute o comando Security Check: Reinstall Global Resources via Ctrl+Shift+P. A extensão irá recopiar todos os hooks, skills e agents para o diretório global.
Extensão não ativa no startup
Verifique se a versão do VS Code é ≥ 1.116.0. Caso já seja, abra o Developer Console (Help → Toggle Developer Tools) e procure erros de ativação em Console.
Findings desaparecem após dismiss
O estado de dismiss é por workspace, salvo em .vscode/security-check.json. Se você reabrir o VS Code na mesma pasta, os dismissals são restaurados automaticamente. Re-auditar o mesmo workspace mantém os dismissals existentes.