
Una herramienta CLI ligera y multiplataforma que escanea tu sistema de archivos para detectar secretos expuestos, claves API y tokens. Construida con Go para máximo rendimiento y cero dependencias.
Caza secretos expuestos con la astucia de un zorro.
Una herramienta CLI ligera y multiplataforma que escanea tu sistema de archivos para detectar secretos expuestos, claves API y tokens. Construida con Go para máximo rendimiento y cero dependencias.
# macOS Apple Silicon (M1/M2/M3)
curl -L -o kyubisweep https://github.com/tanmayshahane/kyubisweep/releases/latest/kyubisweep-darwin-arm64
chmod +x kyubisweep
# ¡Ejecútalo!
./kyubisweep --path /ruta/a/tu/proyecto
# Asegúrate de tener Go 1.21+ instalado
go version
# Clona y compila
git clone https://github.com/tanmayshahane/kyubisweep.git
cd kyubisweep
go build -o kyubisweep ./cmd/sweep/main.go
# ¡Ejecútalo!
./kyubisweep --path .
USO:
kyubisweep [OPCIONES]
OPCIONES:
--path <directorio> Ruta a escanear (por defecto: directorio actual)
--verbose Activa la salida detallada
--all Muestra todos los niveles de gravedad (por defecto: solo ALTO)
--all-files Escanea todos los archivos, no solo los basados en texto
--ext <extensiones> Extensiones adicionales a escanear (separadas por comas)
--json Genera informe en archivo JSON
--no-report No guarda el archivo de informe
--quiet Salida mínima, solo resumen
--move-to <ruta> Mueve archivos con secretos al directorio de cuarentena
--help Muestra este mensaje de ayuda
EJEMPLOS:
kyubisweep --path ./mi-proyecto
kyubisweep --path . --all # Muestra todas las gravedades
kyubisweep --path . --ext log,dat # Añade extensiones personalizadas
kyubisweep --path . --move-to ./vault # Pone en cuarentena archivos sensibles
kyubisweep --path . --json # Exporta como JSON
╔══════════════════════════════════════════════════════════════════════════╗
║ 🛡️ KYUBISWEEP SECURITY HYGIENE SCORECARD ║
╚══════════════════════════════════════════════════════════════════════════╝
🚨 CRITICAL ISSUES FOUND
📊 RISK BREAKDOWN
─────────────────────────────────────────
🚨 CRITICAL 9 ████████████████░░░░
🔴 HIGH 2 ███░░░░░░░░░░░░░░░░░
🟡 MEDIUM 0 ░░░░░░░░░░░░░░░░░░░░
🔵 LOW 0 ░░░░░░░░░░░░░░░░░░░░
🔍 FINDINGS DETAIL
─────────────────────────────────────────
RISK TYPE LOCATION
[CRITICAL] AWS Access Key ID ~/project/.env:5
[CRITICAL] PostgreSQL Connection ~/project/config.yaml:12
[HIGH] Stripe Secret Key ~/project/payment.js:42
📁 Scanned: ~/my-project
📄 Files analyzed: 2.9K
⏱️ Duration: 1.2s
graph TD
subgraph "Initialization (Main Goroutine)"
A[Start CLI] --> B{Parse Flags};
B -->|--path| C[Init Walker];
B -->|--move-to| D[Init Quarantine Mgr];
C --> E[Create Jobs Channel];
E --> F[Create Results Channel];
end
subgraph "Producer (Goroutine 1)"
G[Walker] -->|Finds Files| E;
style G fill:#f9f,stroke:#333,stroke-width:2px
style E fill:#ccf,stroke:#333,stroke-width:2px,stroke-dasharray: 5 5
end
subgraph "Worker Pool (Goroutines 2...N)"
E -->|Read File Path| H[Worker 1];
E -->|Read File Path| I[Worker 2];
E -->|Read File Path| J[Worker N];
H -->|Read Content| K{Analyzer};
I -->|Read Content| K{Analyzer};
J -->|Read Content| K{Analyzer};
K -- No Secret --> L((Discard));
K -- Secret Found --> M[Send Finding];
M --> F;
style K fill:#ff9,stroke:#333,stroke-width:2px
end
subgraph "Consumer & Wrap up (Main Goroutine)"
F -->|Collect Findings| N[Reporter / Table UI];
style F fill:#ccf,stroke:#333,stroke-width:2px,stroke-dasharray: 5 5
N --> O{Quarantine Requested?};
O -- Yes --> P[Move Files to Vault];
O -- No --> Q[Exit];
P --> Q;
end
%% Add a WaitGroup visual helper
H -.-> WG[sync.WaitGroup];
I -.-> WG;
J -.-> WG;
WG -.->|All Done| F;
kyubisweep/
├── cmd/
│ └── sweep/
│ └── main.go # Punto de entrada CLI + grupo de workers
├── pkg/
│ ├── analyzer/
│ │ └── analyzer.go # Detección de entropía + expresiones regulares
│ ├── scanner/
│ │ └── walker.go # Escáner de directorios concurrente
│ ├── reporter/
│ │ └── reporter.go # Salida del informe de seguridad
│ ├── quarantine/
│ │ └── manager.go # Reubicación segura de archivos
│ └── common/
│ └── colors.go # Utilidades de color ANSI compartidas
├── reports/ # Informes de escaneo generados
├── build/ # Binarios compilados para múltiples plataformas
├── go.mod # Definición del módulo Go
├── build.sh # Script de compilación multiplataforma
└── README.md
# Haz el script ejecutable
chmod +x build.sh
# Compila para todas las plataformas
./build.sh
# Salidas:
# build/kyubisweep-darwin-arm64 (macOS Apple Silicon)
# build/kyubisweep-darwin-amd64 (macOS Intel)
# build/kyubisweep-linux-amd64 (Linux 64 bits)
# build/kyubisweep-linux-arm64 (Linux ARM)
# build/kyubisweep-windows-amd64.exe (Windows 64 bits)
¿Encontraste secretos que necesitas asegurar de inmediato? Usa --move-to para reubicar archivos:
./kyubisweep --path . --move-to ./secure_vault
Características de seguridad:
¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request.
Licencia MIT - ¡siéntete libre de usar esto en tus propios proyectos!
Hecho con 🦊 por desarrolladores que accidentalmente confirmaron sus claves de API demasiadas veces.
| Categoría | Ejemplos |
|---|
| Credenciales en la nube | Claves de acceso de AWS, Claves de API de Google, tokens de Azure |
| Sistemas de pago | Claves de API de Stripe (vivas y de prueba) |
| Herramientas de desarrollo | PATs de GitHub, tokens de NPM, claves de API de Heroku |
| Comunicación | Tokens de Slack, tokens de bot de Discord, claves de Twilio |
| Bases de datos | Cadenas de conexión de PostgreSQL, MongoDB, MySQL |
| Criptográficas | Claves privadas RSA/SSH/PGP |
| Genéricas | Contraseñas, claves de API, tokens Bearer |