CommunityProgramación y desarrollogithub.com

repo-check

Verifica la seguridad de un repositorio de GitHub ANTES de descargarlo, instalarlo o ejecutarlo. Úsalo cada vez que el usuario pegue un enlace de github.com (o propietario/repo) y pregunte si es seguro, legítimo, malicioso, sospechoso o digno de confianza, o diga

¿Qué es repo-check?

This skill, repo-check, provides a comprehensive security assessment of any GitHub repository without ever executing code from it. It downloads the repository as a ZIP file and uses a Python script (`scripts/scan_repo.py`) to analyze the codebase for malware patterns, suspicious behaviors, and other red flags. The tool checks for run-on-install scripts, download-and-execute patterns, data theft attempts, obfuscation, supply chain attacks, and even prompt injection targeting AI reviewers. The skill is available for Claude Code, Cursor, or any AI agent that supports skill files with an absolute path to the scanner script. It delivers a clear verdict (green/yellow/red), explains findings with file locations, provides safe-run advice tailored to the specific threats found, and explicitly lists what it could not check. The user relies on the AI's judgment to triage findings, distinguish false positives from real concerns, and make informed decisions about whether to trust the repository.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gitseff/repo-check/tree/HEAD/repo-check

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

  • alternativa más segura si es obvia

Lo que NO pude verificar:

  • contenidos de dependencias, binarios de lanzamiento precompilados, historial de git, si las estrellas son reales

Ofrece seguimientos solo si son útiles: escanear un repositorio de dependencia específico, fijar un commit o explicar un archivo marcado línea por línea.

### 4. Consejos para ejecución segura (adapta a lo que se encontró)

- Incluso para 🟢: ejecuta primero en una máquina virtual/contenedor desechable/máquina de repuesto, como usuario no administrador, sin sesiones iniciadas, sin perfil de navegador y sin secretos/tokens/llaves SSH al alcance.
- Fija un hash de commit específico después de revisarlo, para que un push posterior no pueda cambiar lo que revisaste.
- npm: `npm install --ignore-scripts` primero, luego revisa antes de habilitar scripts. Python: prefiere wheels, lee `setup.py` primero; `pip install --only-binary=:all:` cuando sea posible.
- Dependencias: ejecuta una herramienta de auditoría (`npm audit`, `pip-audit`, OSV-Scanner, OpenSSF Scorecard) dentro del entorno aislado.
- Si es un lanzamiento/ejecutable precompilado: compila desde el código fuente que leíste, o no lo ejecutes.
- Si el usuario ya ejecutó algo sospechoso: desconéctate de la red, deja de ingresar contraseñas en esa máquina, cambia contraseñas importantes y revoca tokens/sesiones desde un dispositivo limpio diferente, activa o vuelve a verificar la 2FA, ejecuta un escaneo completo de malware o reinstala, y contacta al banco/TI si hay dinero o cuentas de trabajo involucradas.

## Lo que verifica el escáner (para que puedas explicarlo)

| Área | Ejemplos |
|---|---|
| Señales de repositorio/propietario | antigüedad del repo, antigüedad de la cuenta del propietario, número de commits vs estrellas, relación estrellas/forks, forks, colaborador único, issues deshabilitados, descargas de lanzamiento que incluyen binarios |
| Ejecución al instalar | scripts npm pre/post/install, `setup.py` haciendo red/ejecución, backends de compilación personalizados, `build.rs`, hooks de git, `runOn: folderOpen` de VS Code, comandos de dev-container, disparadores de CI arriesgados |
| Descargar y ejecutar | `curl | bash`, `irm | iex`, base64 canalizado a shell, PowerShell codificado, decodificar luego `exec`, ejecución de código descargado |
| Robo de datos | almacenes de contraseñas/cookies del navegador, carteras de criptomonedas, credenciales SSH/nube/registro, tokens de Discord, llavero/DPAPI, volcados de variables de entorno, portapapeles, keylogger/capturas de pantalla |
| Canales de exfiltración | webhooks de Discord, API de Telegram bot, webhook.site/ngrok/sitios de paste, URLs de IP sin resolver, acortadores de URL |
| Control/persistencia | reverse shells, desactivación de antivirus/cortafuegos, agentes de inicio/cron/lanzamiento, autoborrado, detección de VM/sandbox |
| Ofuscación | grandes blobs de alta entropía, cargas hex-escapeadas, líneas únicas gigantes, Unicode de ancho cero/bidireccional oculto (Trojan Source) |
| Cadena de suministro | nombres de dependencias parecidos, dependencias git/URL, índices pip personalizados, submódulos, ejecutables/archivos empaquetados, enlaces simbólicos |
| Dirigido a IA | frases de inyección de instrucciones en READMEs/código |

Las coincidencias dentro de `tests/`, `docs/`, `examples/` se degradan automáticamente un nivel (a menudo son solo discusión), excepto Unicode oculto, inyección IA, ejecución automática y hallazgos de binarios.

Skills relacionados