mycop
Scanner de segurança de código de IA com 100 regras integradas cobrindo OWASP Top 10 e CWE Top 25
Documentação
mycop
Scanner de Segurança de Código com IA — detecta e corrige automaticamente vulnerabilidades em código gerado por IA.
O mycop analisa bases de código em Python, JavaScript, TypeScript, Go e Java em busca de vulnerabilidades de segurança usando correspondência de padrões, análise de AST e explicações e correção automática opcionais com IA. Ele vem com 200 regras de segurança integradas cobrindo as categorias OWASP Top 10 e CWE Top 25.
Por que mycop?
Código gerado por IA é rápido, mas não é seguro. Pesquisa da Veracode mostra que 45% do código gerado por IA contém vulnerabilidades de segurança. Copilot, ChatGPT e outros assistentes de IA produzem código funcional que frequentemente inclui injeção de SQL, segredos codificados, injeção de comandos e outras falhas críticas.
O mycop foi construído especificamente para resolver esse problema:
- Primeira ferramenta SAST projetada para código gerado por IA -- 200 regras direcionadas aos padrões exatos de vulnerabilidade que LLMs produzem com mais frequência, cobrindo OWASP Top 10 e CWE Top 25.
- Correção automática com IA, não apenas detecção -- o mycop não apenas encontra vulnerabilidades, ele as corrige. O comando
mycop fixreescreve código inseguro usando IA, preservando a funcionalidade. - Multilinguagem com uma única ferramenta -- analise bases de código em Python, JavaScript, TypeScript, Go e Java sem precisar gerenciar Bandit, ESLint e configurações separadas.
- Zero configuração -- todas as 200 regras de segurança estão compiladas no binário. Sem downloads de regras, sem arquivos de configuração, sem necessidade de conexão com a internet. Basta
mycop scan .e pronto. - Servidor MCP para fluxos de trabalho agênticos -- conecte o mycop diretamente ao Claude Code, Cursor, Windsurf e outros assistentes de codificação com IA via Model Context Protocol.
- Gratuito e open source -- licenciado sob MIT, para sempre.
Instalação
Script de instalação (macOS / Linux)
curl -fsSL https://raw.githubusercontent.com/AbdumajidRashidov/mycop/main/install.sh | sh
Homebrew
brew install AbdumajidRashidov/tap/mycop
Cargo
cargo install mycop
Docker
docker run --rm -v "$(pwd):/src" -w /src ghcr.io/abdumajidrashidov/mycop scan .
Compilar a partir do código-fonte
git clone https://github.com/AbdumajidRashidov/mycop.git
cd mycop
cargo install --path .
Início Rápido
# Scan current directory
mycop scan .
# Auto-fix all vulnerabilities using AI
mycop fix .
# Deep AI security review of a single file
mycop review src/auth.py
# Initialize config for your project
mycop init
# List all security rules
mycop rules list
Comandos
mycop scan
Analisa arquivos em busca de vulnerabilidades de segurança.
mycop scan . # Scan current directory
mycop scan src/ lib/ # Scan specific directories
mycop scan --severity high # Only report high/critical
mycop scan --fail-on critical # Exit 1 only on critical findings
mycop scan --format json # JSON output
mycop scan --format sarif # SARIF output (for IDE integration)
mycop scan --explain # AI-powered explanations
mycop scan --diff # Only scan git-changed files
mycop scan --fix # Auto-fix (same as `mycop fix`)
Código de saída 1 quando os achados atingem o limite --fail-on (padrão: alto).
mycop fix
Corrige automaticamente vulnerabilidades de segurança usando IA. Agrupa todos os achados por arquivo, envia o arquivo inteiro para um provedor de IA e grava a versão corrigida.
mycop fix . # Fix all files
mycop fix src/auth.py # Fix specific file
mycop fix . --severity high # Only fix high/critical
mycop fix . --dry-run # Show diffs without writing
mycop fix . --ai-provider anthropic # Force specific AI provider
mycop fix . --diff # Only fix git-changed files
mycop review
Revisão de segurança profunda com IA de um único arquivo. Vai além da correspondência de regras para encontrar falhas de lógica, condições de corrida e problemas arquiteturais.
mycop review src/server.ts
mycop review app.py --ai-provider openai
mycop init
Gera um arquivo de configuração .scanrc.yml. Detecta automaticamente o tipo do seu projeto (Python, JavaScript/TypeScript, Rust) e pré-preenche padrões de ignorar específicos da linguagem.
mycop init
mycop rules list
Lista todas as regras de segurança disponíveis.
mycop rules list # All rules
mycop rules list --language python # Python rules only
mycop rules list --severity high # High/critical rules only
mycop deps check
Verifica dependências em busca de problemas (pacotes alucinados).
mycop deps check .
mycop deps check requirements.txt
mycop mcp
Inicia um servidor MCP (Model Context Protocol) via STDIO para integração com ferramentas agênticas. Isso permite que assistentes de codificação com IA chamem diretamente as capacidades de análise, correção e revisão do mycop.
mycop mcp
Ferramentas expostas:
| Ferramenta | Descrição |
|---|---|
scan | Analisa arquivos/diretórios em busca de vulnerabilidades com filtro de severidade |
list_rules | Navega/filtra as 200 regras de segurança integradas |
explain_finding | Explicação detalhada de um achado específico com informações de CWE/OWASP |
review | Revisão de segurança profunda com IA de um arquivo |
check_deps | Detecta pacotes alucinados em dependências |
Nota: O comando
mycop fixda CLI ainda está disponível para uso autônomo. No modo MCP, o agente lê os achados da análise (comfix_hint) e aplica correções diretamente — sem necessidade de chamada redundante de IA para IA.
Recursos: mycop://rules/catalog (catálogo JSON completo) e mycop://config/schema (modelo de configuração).
Configure no Claude Code (~/.claude/settings.json):
{
"mcpServers": {
"mycop": {
"command": "mycop",
"args": ["mcp"]
}
}
}
Configure no Cursor (.cursor/mcp.json):
{
"mcpServers": {
"mycop": {
"command": "mycop",
"args": ["mcp"],
"type": "stdio"
}
}
}
Configure no Windsurf (.windsurf/mcp.json):
{
"mcpServers": {
"mycop": {
"command": "mycop",
"args": ["mcp"]
}
}
}
Funciona com qualquer cliente compatível com MCP, incluindo Codex CLI, Gemini CLI e outras IDEs agênticas.
Ignorar Inline
Suprima achados específicos com comentários inline:
eval(user_input) # mycop-ignore
# mycop-ignore:PY-SEC-005
eval(user_input)
eval(user_input) # mycop-ignore:PY-SEC-005,PY-SEC-001
Funciona com estilos de comentário # (Python) e // (JavaScript/TypeScript/Go/Java). Coloque o comentário na mesma linha ou na linha acima.
Provedores de IA
O mycop detecta automaticamente os provedores de IA disponíveis nesta ordem:
- Claude CLI — comando
claudeinstalado - Anthropic API — variável de ambiente
ANTHROPIC_API_KEY - OpenAI API — variável de ambiente
OPENAI_API_KEY - Ollama — servidor Ollama local rodando na porta 11434
- Baseado em regras — fallback offline usando dicas de correção das regras
Substitua com --ai-provider:
mycop scan . --explain --ai-provider anthropic
mycop fix . --ai-provider ollama
Configuração
Crie um .scanrc.yml (ou .mycop.yml) na raiz do seu projeto, ou execute mycop init para gerar um:
# File patterns to ignore (glob syntax)
ignore:
- "**/*_test.py"
- "**/test_*.py"
- "**/*.test.js"
- "**/*.spec.ts"
- "**/node_modules/**"
- "**/venv/**"
# Minimum severity level: critical, high, medium, low
min_severity: medium
# Minimum severity to cause non-zero exit: critical, high, medium, low
fail_on: high
# AI provider override: claude-cli, anthropic, openai, ollama, none
# ai_provider: anthropic
As flags da CLI sempre têm prioridade sobre os valores do arquivo de configuração.
Regras de Segurança
200 regras integradas (50 Python + 50 JavaScript + 50 Go + 50 Java) cobrindo OWASP Top 10, CWE Top 25 e mais:
| Categoria | Python | JavaScript |
|---|---|---|
| SQL Injection (CWE-89) | PY-SEC-001, PY-SEC-042 | JS-SEC-011 |
| Command Injection (CWE-78) | PY-SEC-002, PY-SEC-045, PY-SEC-050 | JS-SEC-016 |
| Hardcoded Secrets (CWE-798) | PY-SEC-003, PY-SEC-034, PY-SEC-043 | JS-SEC-004, JS-SEC-034 |
| Insecure Random (CWE-330) | PY-SEC-004 | JS-SEC-005 |
| Eval/Exec Injection (CWE-95) | PY-SEC-005 | JS-SEC-002, JS-SEC-049 |
| Path Traversal (CWE-22) | PY-SEC-006, PY-SEC-037 | JS-SEC-006, JS-SEC-037 |
| Insecure Deserialization (CWE-502) | PY-SEC-007 | JS-SEC-009 |
| Missing Auth (CWE-862) | PY-SEC-008 | — |
| XSS (CWE-79) | PY-SEC-009, PY-SEC-044 | JS-SEC-001, JS-SEC-010, JS-SEC-041 |
| Log Injection (CWE-117) | PY-SEC-010 | — |
| SSRF (CWE-918) | PY-SEC-011 | JS-SEC-007 |
| XXE (CWE-611) | PY-SEC-012 | JS-SEC-012 |
| LDAP Injection (CWE-90) | PY-SEC-013 | JS-SEC-015 |
| Template Injection (CWE-1336) | PY-SEC-014 | JS-SEC-013 |
| Header Injection (CWE-113) | PY-SEC-015 | JS-SEC-014 |
| XPath Injection (CWE-643) | PY-SEC-016 | — |
| Weak Hash MD5/SHA1 (CWE-328) | PY-SEC-017, PY-SEC-018 | JS-SEC-017, JS-SEC-018 |
| Weak Cipher (CWE-327) | PY-SEC-019, PY-SEC-020 | JS-SEC-019, JS-SEC-020, JS-SEC-022 |
| Hardcoded IV (CWE-329) | PY-SEC-021 | — |
| Insecure TLS (CWE-295) | PY-SEC-022 | JS-SEC-021 |
| JWT None Algorithm (CWE-345) | PY-SEC-023 | JS-SEC-023 |
| Weak Password Hash (CWE-916) | PY-SEC-024 | — |
| Session Fixation (CWE-384) | PY-SEC-025 | JS-SEC-024, JS-SEC-025 |
| Missing Security Headers (CWE-319) | PY-SEC-026 | JS-SEC-026 |
| Open Redirect (CWE-601) | PY-SEC-027 | JS-SEC-027 |
| CORS Misconfiguration (CWE-942) | PY-SEC-028 | JS-SEC-028 |
| Mass Assignment (CWE-915) | PY-SEC-029 | JS-SEC-030 |
| IDOR (CWE-639) | PY-SEC-030 | JS-SEC-029 |
| Debug Mode (CWE-215) | PY-SEC-031 | JS-SEC-031 |
| Error Info Leak (CWE-209) | PY-SEC-032 | JS-SEC-032 |
| Sensitive Data Logging (CWE-532) | PY-SEC-033 | JS-SEC-033 |
| Arbitrary File Upload (CWE-434) | PY-SEC-035 | JS-SEC-035 |
| Insecure Temp Files (CWE-377) | PY-SEC-036 | — |
| Zip Slip (CWE-22) | PY-SEC-037 | JS-SEC-037 |
| Unencrypted Transport (CWE-319) | PY-SEC-038 | JS-SEC-038 |
| Prototype Pollution (CWE-1321) | — | JS-SEC-003 |
| NoSQL Injection (CWE-943) | — | JS-SEC-008 |
| Timing Attack (CWE-208) | PY-SEC-046 | JS-SEC-046 |
| ReDoS (CWE-1333) | PY-SEC-047 | JS-SEC-047 |
| TOCTOU (CWE-367) | PY-SEC-048 | JS-SEC-048 |
| Bare/Empty Catch (CWE-390) | PY-SEC-040 | JS-SEC-040 |
Execute mycop rules list para ver todas as 200 regras com seus níveis de severidade.
Comparação
Como o mycop se compara a outras ferramentas de segurança?
| Recurso | mycop | Semgrep | Snyk Code | Bandit | ESLint Security |
|---|---|---|---|---|---|
| Foco em código de IA | Sim | Não | Não | Não | Não |
| Regras integradas (sem download) | 200 | Requer registro | Baseado em nuvem | ~100 (somente Python) | ~30 (somente JS) |
| Correção automática com IA | Sim | Não | Pago | Não | Não |
| Multilinguagem | Py, JS, TS, Go, Java | 30+ | 10+ | Somente Python | Somente JS/TS |
| Servidor MCP | Sim | Não | Não | Não | Não |
| Zero configuração | Sim | Requer configuração de regras | Requer configuração do projeto | Mínima | Requer .eslintrc |
| Saída SARIF | Sim | Sim | Sim | Sim | Via plugin |
| Preço | Gratuito (MIT) | Nível gratuito / Pago | Pago | Gratuito | Gratuito |
O mycop é construído especificamente para a era da codificação com IA. Outras ferramentas são scanners de propósito geral que foram projetados antes de a geração de código por IA se tornar mainstream.
Formatos de Saída
- Terminal — saída colorida com contexto de código (padrão)
- JSON — JSON estruturado para integração com ferramentas
- SARIF — Static Analysis Results Interchange Format para integração com IDE/CI
Integrações
Servidor MCP (Ferramentas Agênticas)
O mycop inclui um servidor MCP integrado que expõe todas as capacidades para ferramentas de codificação agênticas. Execute mycop mcp e configure sua ferramenta — veja a seção mycop mcp acima para instruções de configuração.
Clientes suportados: Claude Code, Cursor, Windsurf, Codex CLI, Gemini CLI e qualquer IDE ou agente compatível com MCP.
Disponível em:
- Glama — Registro MCP gerenciado
- Smithery — Hospedagem e descoberta de servidores MCP
- PulseMCP — Diretório de servidores MCP
- MCP Servers — Lista com curadoria da comunidade
GitHub Action
Adicione o mycop ao seu pipeline de CI com a GitHub Action oficial:
- name: mycop Security Scan
uses: AbdumajidRashidov/mycop/action@main
with:
paths: '.'
fail-on: 'high'
format: 'sarif'
| Entrada | Padrão | Descrição |
|---|---|---|
paths | . | Arquivos ou diretórios para analisar |
severity | Severidade mínima para relatar | |
fail-on | high | Severidade mínima para falhar a verificação |
format | terminal | Formato de saída (terminal, json, sarif) |
version | latest | Versão do mycop para instalar |
diff-only | false | Analisar apenas arquivos alterados no PR |
Envie resultados SARIF para o GitHub Code Scanning:
- name: mycop Security Scan
uses: AbdumajidRashidov/mycop/action@main
with:
format: 'sarif'
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: mycop-results.sarif
Hook Pre-commit
Adicione o mycop como um hook pre-commit:
# .pre-commit-config.yaml
repos:
- repo: https://github.com/AbdumajidRashidov/mycop
rev: main
hooks:
- id: mycop
Extensão VS Code (Em Breve)
O diretório vscode-extension/ contém uma extensão VS Code que fornece:
- Análise em tempo real ao salvar o arquivo
- Diagnósticos no painel de Problemas
- Comandos "Scan Current File" e "Scan Workspace"
- Limite de severidade configurável
Veja vscode-extension/README.md para instruções de configuração.
Docker
# Scan current directory
docker run --rm -v "$(pwd):/src" -w /src ghcr.io/abdumajidrashidov/mycop scan .
# Scan with specific options
docker run --rm -v "$(pwd):/src" -w /src ghcr.io/abdumajidrashidov/mycop scan . --format json --severity high
Contribuindo
Contribuições são bem-vindas! Seja um relatório de bug, uma nova regra de segurança, uma solicitação de recurso ou um pull request, agradecemos sua ajuda para tornar o mycop melhor.
Para começar:
- Faça um fork do repositório e crie sua branch a partir de
main. - Faça suas alterações e garanta que todas as verificações passem:
cargo fmt --all -- --check cargo clippy --all-targets -- -D warnings cargo test --verbose - Abra um pull request com uma descrição clara das suas alterações.
Navegue pelas issues abertas para encontrar algo em que trabalhar, ou abra uma nova para sugerir uma melhoria.
Se você acha o mycop útil, considere patrocinar o projeto para apoiar o desenvolvimento contínuo.
Histórico de Estrelas
Licença
MIT