Nutcracker banner
Los atacantes capitalizan una sola cosa mejor que nadie: el momento en que empezamos a ver la seguridad como un estorbo.
Pasa más seguido de lo que nos gustaría admitir. Hay presión por sacar un nuevo release, el mercado empuja, y de pronto la nueva funcionalidad resulta ser incompatible con la protección RASP. ¿La “solución” rápida? Bajar las defensas temporalmente: *”Total, lo reconfiguramos después”*.
O a veces ni siquiera es una decisión consciente. Cualquier error silencioso en el pipeline puede causar el mismo efecto, haciendo que la app llegue a producción sin que el RASP se integre en la compilación final.
Y claro, el mercado no espera, pero los ciberdelincuentes tampoco. Ese “hueco temporal” es exactamente lo que están buscando.
¿Qué es Nutcracker?
Nutcracker es una herramienta open-source en Python enfocada en ser la última barrera de defensa. Te permite monitorear aplicaciones directamente desde el app store para cazar esas faltas de controles que logran escapar de las etapas tradicionales de DevSecOps.
La idea es simple: apuntas a una app en Google Play, y Nutcracker hace todo lo demás.
1 | python nutcracker.py scan "https://play.google.com/store/apps/details?id=com.example.app" |
Nutcracker en acción
¿Qué detecta?
Nutcracker identifica y trata de bypassear protecciones RASP conocidas. Si la protección puede romperse con Frida, lo sabrás.
Pero no se queda solo en eso. Una vez que captura el APK, el pipeline automatiza:
🔍 Extracción de secrets: Busca y extrae hardcoded secrets, API keys, tokens y URLs directamente del binario usando reglas internas + apkleaks + gitleaks sobre el código decompilado.
🌐 OSINT automático: Toma esos endpoints y credenciales y los busca de forma autónoma en repositorios de GitHub, colecciones de Postman, FOFA, Wayback Machine y más.
⚙️ Análisis estático (SAST): Se puede integrar con SEMGREP o incluso otra solución SAST.
📄 Reporte PDF: Todo se consolida en un reporte técnico listo para entregar, con resumen ejecutivo, hallazgos por módulo y alineado a MASVS.
El flujo dinámico
Para apps protegidas, Nutcracker implementa un pipeline de deobfuscación en runtime que prueba distintas estrategias en orden:
1 | APK |
¿Por qué lo hice?
La idea central es aligerar las validaciones manuales de los equipos ofensivos. Ahorrarte las horas de recon inicial en una app ya es ganancia, pero si multiplicas ese tiempo por 10, 20 o más aplicaciones monitoreadas de manera recurrente, el beneficio operativo es brutal.
Además, quería una herramienta que no solo gritara “¡está desprotegida!” sino que realmente fuera más allá: buscar qué quedó expuesto, qué se puede explotar, y documentarlo todo de forma automática.
El repo está en GitHub, abierto y con su README bien documentado para que puedas empezar rápido: github.com/drneox/nutcracker
Agradecimientos especiales a Ruben Anthony Ricapa Corrales por la ayuda para soportar dispositivos físicos y todo el feedback brindado.
¿Cuántas veces han visto en sus equipos ese *”despliegue sin seguridad por esta única vez”* convertirse en la norma?
Carlos Ganoza
I have more than 13 years of experience in the technology market, I have been involved in different aspects of software development, cybersecurity, and open-source. I ♥ python, the open-source, and I always enjoy learning new skills.