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.

CI Crates.io Downloads License: MIT GitHub stars Made with Rust

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.

mycop demo — scanning Python code for security vulnerabilities

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 fix reescreve 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:

FerramentaDescrição
scanAnalisa arquivos/diretórios em busca de vulnerabilidades com filtro de severidade
list_rulesNavega/filtra as 200 regras de segurança integradas
explain_findingExplicação detalhada de um achado específico com informações de CWE/OWASP
reviewRevisão de segurança profunda com IA de um arquivo
check_depsDetecta pacotes alucinados em dependências

Nota: O comando mycop fix da CLI ainda está disponível para uso autônomo. No modo MCP, o agente lê os achados da análise (com fix_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:

  1. Claude CLI — comando claude instalado
  2. Anthropic API — variável de ambiente ANTHROPIC_API_KEY
  3. OpenAI API — variável de ambiente OPENAI_API_KEY
  4. Ollama — servidor Ollama local rodando na porta 11434
  5. 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:

CategoriaPythonJavaScript
SQL Injection (CWE-89)PY-SEC-001, PY-SEC-042JS-SEC-011
Command Injection (CWE-78)PY-SEC-002, PY-SEC-045, PY-SEC-050JS-SEC-016
Hardcoded Secrets (CWE-798)PY-SEC-003, PY-SEC-034, PY-SEC-043JS-SEC-004, JS-SEC-034
Insecure Random (CWE-330)PY-SEC-004JS-SEC-005
Eval/Exec Injection (CWE-95)PY-SEC-005JS-SEC-002, JS-SEC-049
Path Traversal (CWE-22)PY-SEC-006, PY-SEC-037JS-SEC-006, JS-SEC-037
Insecure Deserialization (CWE-502)PY-SEC-007JS-SEC-009
Missing Auth (CWE-862)PY-SEC-008—
XSS (CWE-79)PY-SEC-009, PY-SEC-044JS-SEC-001, JS-SEC-010, JS-SEC-041
Log Injection (CWE-117)PY-SEC-010—
SSRF (CWE-918)PY-SEC-011JS-SEC-007
XXE (CWE-611)PY-SEC-012JS-SEC-012
LDAP Injection (CWE-90)PY-SEC-013JS-SEC-015
Template Injection (CWE-1336)PY-SEC-014JS-SEC-013
Header Injection (CWE-113)PY-SEC-015JS-SEC-014
XPath Injection (CWE-643)PY-SEC-016—
Weak Hash MD5/SHA1 (CWE-328)PY-SEC-017, PY-SEC-018JS-SEC-017, JS-SEC-018
Weak Cipher (CWE-327)PY-SEC-019, PY-SEC-020JS-SEC-019, JS-SEC-020, JS-SEC-022
Hardcoded IV (CWE-329)PY-SEC-021—
Insecure TLS (CWE-295)PY-SEC-022JS-SEC-021
JWT None Algorithm (CWE-345)PY-SEC-023JS-SEC-023
Weak Password Hash (CWE-916)PY-SEC-024—
Session Fixation (CWE-384)PY-SEC-025JS-SEC-024, JS-SEC-025
Missing Security Headers (CWE-319)PY-SEC-026JS-SEC-026
Open Redirect (CWE-601)PY-SEC-027JS-SEC-027
CORS Misconfiguration (CWE-942)PY-SEC-028JS-SEC-028
Mass Assignment (CWE-915)PY-SEC-029JS-SEC-030
IDOR (CWE-639)PY-SEC-030JS-SEC-029
Debug Mode (CWE-215)PY-SEC-031JS-SEC-031
Error Info Leak (CWE-209)PY-SEC-032JS-SEC-032
Sensitive Data Logging (CWE-532)PY-SEC-033JS-SEC-033
Arbitrary File Upload (CWE-434)PY-SEC-035JS-SEC-035
Insecure Temp Files (CWE-377)PY-SEC-036—
Zip Slip (CWE-22)PY-SEC-037JS-SEC-037
Unencrypted Transport (CWE-319)PY-SEC-038JS-SEC-038
Prototype Pollution (CWE-1321)—JS-SEC-003
NoSQL Injection (CWE-943)—JS-SEC-008
Timing Attack (CWE-208)PY-SEC-046JS-SEC-046
ReDoS (CWE-1333)PY-SEC-047JS-SEC-047
TOCTOU (CWE-367)PY-SEC-048JS-SEC-048
Bare/Empty Catch (CWE-390)PY-SEC-040JS-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?

RecursomycopSemgrepSnyk CodeBanditESLint Security
Foco em código de IASimNãoNãoNãoNão
Regras integradas (sem download)200Requer registroBaseado em nuvem~100 (somente Python)~30 (somente JS)
Correção automática com IASimNãoPagoNãoNão
MultilinguagemPy, JS, TS, Go, Java30+10+Somente PythonSomente JS/TS
Servidor MCPSimNãoNãoNãoNão
Zero configuraçãoSimRequer configuração de regrasRequer configuração do projetoMínimaRequer .eslintrc
Saída SARIFSimSimSimSimVia plugin
PreçoGratuito (MIT)Nível gratuito / PagoPagoGratuitoGratuito

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'
EntradaPadrãoDescrição
paths.Arquivos ou diretórios para analisar
severitySeveridade mínima para relatar
fail-onhighSeveridade mínima para falhar a verificação
formatterminalFormato de saída (terminal, json, sarif)
versionlatestVersão do mycop para instalar
diff-onlyfalseAnalisar 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:

  1. Faça um fork do repositório e crie sua branch a partir de main.
  2. 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
    
  3. 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

Star History Chart

Licença

MIT