What's next for GEMINISENTINEL

GEMINISENTINEL — CTF Companion powered by Gemini AI 💡 Inspiración Los retos de CTF (Capture The Flag) son una de las formas más efectivas de aprender ciberseguridad de forma práctica. Sin embargo, cuando te quedas bloqueado frente a un reto de reverse engineering o una inyección SQL a las 2 AM, no siempre hay un mentor disponible. La inspiración fue simple: ¿y si Gemini pudiera ser ese mentor? No uno que te dé la respuesta directa, sino uno que te haga las preguntas correctas para que llegues tú mismo a la solución. GEMINISENTINEL nació de esa necesidad: un compañero de hacking inteligente, disponible 24/7, que acelera el aprendizaje sin reemplazar el pensamiento crítico.

🔨 Cómo lo construimos El proyecto está construido con un stack moderno y liviano:

Frontend: React 19 + TypeScript + Vite Estilos: Tailwind CSS v4 con una paleta temática cyber-noir Animaciones: Motion (Framer Motion v12) IA: Google Gemini API (gemini-1.5-flash) vía @google/genai SDK Streaming: Usamos generateContentStream para que las respuestas aparezcan en tiempo real, token por token, dando la sensación de un terminal vivo

La app se divide en 4 módulos especializados, cada uno con su propio system prompt optimizado para Gemini: MóduloFunción🛡️ Análisis de RetosPropone vectores de ataque y herramientas sin revelar la solución⚙️ AutomatizaciónGenera scripts base en Python/Bash para tareas repetitivas📖 Lab de TeoríaExplica vulnerabilidades con analogías y ejemplos de código📝 Reporte de HallazgosEstructura writeups profesionales desde notas desordenadas Cada módulo acepta adjuntos: capturas de pantalla (vía inline image data de la Gemini API) y archivos de texto como logs de Nmap o salidas de Burp Suite.

📚 Lo que implementamos

Prompt engineering para seguridad: Diseñar system prompts que guíen sin revelar es más difícil de lo que parece. La regla NUNCA des la respuesta directa necesita ejemplos negativos explícitos para que el modelo realmente la respete. Streaming con React: Manejar estado mutable en tiempo real con useState requiere un patrón de actualización cuidadoso para evitar stale closures. Multimodalidad: Integrar imágenes via inlineData en la Gemini API abre posibilidades enormes un usuario puede simplemente subir una captura de pantalla de su terminal y recibir análisis contextualizado al instante.

🚧 Desafíos El mayor reto fue el equilibrio ético: un asistente de CTF debe ayudar al aprendizaje, no convertirse en una máquina de spoilers. Varios iteraciones de los system prompts fueron necesarias hasta encontrar el tono socrático correcto que guía sin resolver. El streaming de respuestas largas también presentó retos de rendimiento: actualizar el estado de React en cada chunk del stream puede causar re-renders excesivos. Lo resolvimos acumulando el texto completo y actualizando solo el último mensaje del array. La compatibilidad del modelo: el modelo gemini-3-flash-preview referenciado inicialmente no estaba disponible públicamente, lo que causaba errores silenciosos. Migrar a gemini-1.5-flash resolvió la estabilidad.

Built With

  • aistudio.google
  • app.netlify.com
  • vite
Share this project:

Updates