IAZARA/Juego_Ciberseguridad

GitHub: IAZARA/Juego_Ciberseguridad

Stars: 0 | Forks: 0

CyberShield - juego interactivo de ciberseguridad e higiene digital

CyberShield

Un taller interactivo y gamificado para aprender ciberseguridad e higiene digital desde escenarios reales.

Vista previa · Cómo se usa · Niveles · Stack · Ejecución local · Docker · Despliegue

Estado Mobile first Vanilla JS Node.js Licencia MIT

## Vista Previa | Inicio | Detector de phishing | Contraseña segura | |:--:|:--:|:--:| | Pantalla inicial de CyberShield | Nivel de detector de phishing | Nivel de contraseña segura | ## Sobre el Proyecto CyberShield es una experiencia educativa mobile-first que entrena una habilidad clave para sobrevivir online: El juego transforma conceptos de seguridad en decisiones concretas: detectar phishing, reconocer enlaces sospechosos, evitar trampas con QR, responder ante robo de dispositivos y crear contraseñas robustas. ## Etiquetas `cybersecurity` `digital-hygiene` `phishing` `education` `game` `mobile-first` `javascript` `express` `railway` ## Cómo se Usa CyberShield se juega desde el navegador, idealmente en una pantalla móvil o con vista responsive. El usuario elige idioma, avanza por los 7 niveles y resuelve decisiones de seguridad simuladas. Cada pantalla entrega feedback inmediato para reforzar el criterio: leer la situación, pensar el riesgo y actuar con cuidado. Para talleres o clases: 1. Proyecta o comparte la URL del juego. 2. Pide a cada participante que complete los niveles desde su celular. 3. Usa los errores y aciertos como disparadores de conversación. 4. Cierra con el checklist final de higiene digital. Para uso individual: 1. Abre la app. 2. Selecciona idioma. 3. Completa los desafíos en orden. 4. Repite los niveles donde hayas fallado para reforzar el aprendizaje. ## Niveles | # | Módulo | Aprendizaje principal | |---|--------|------------------------| | 1 | Trampa de permisos | Leer antes de aceptar condiciones invasivas. | | 2 | Detective phishing | Identificar remitentes, urgencias falsas y enlaces peligrosos. | | 3 | Escenarios interactivos | Resolver situaciones de juice jacking, WiFi público, QRishing y vishing. | | 4 | Protocolo de emergencia | Ordenar acciones críticas ante el robo de un celular. | | 5 | Contraseña segura | Construir una clave fuerte con feedback en tiempo real. | | 6 | Digital Shield | Validar hábitos de protección como 2FA, parches y desconfianza cero. | | 7 | Certificado | Cerrar el taller con un logro compartible. | ## Stack | Área | Tecnología | |------|------------| | Frontend | HTML5, CSS3, JavaScript vanilla | | UI | CSS custom, Google Material Symbols, utilidades Tailwind via CDN | | Backend | Node.js + Express | | Arquitectura | Single Page Application servida desde `public/` | | Contenedor | Docker + Docker Compose | | Deploy | Railway, Render o cualquier host Node.js/Docker | ## Estructura . |-- public/ | |-- index.html | |-- styles.css | |-- game.js | `-- translation.js |-- docs/ | `-- assets/ | |-- cybershield-banner.png | |-- preview-splash.png | |-- preview-phishing.png | `-- preview-password.png |-- server.js |-- Dockerfile |-- docker-compose.yml |-- SECURITY.md |-- package.json `-- README.md ## Ejecución Local git clone https://github.com/IAZARA/Juego_Ciberseguridad.git cd Juego_Ciberseguridad npm install npm start Luego abre: http://localhost:3000 Si el puerto `3000` está ocupado, puedes usar otro puerto: PORT=3001 npm start En PowerShell: $env:PORT=3001 npm start Comandos útiles para revisar el proyecto antes de compartirlo: npm run check npm run audit ## Docker La forma más simple de ejecutar CyberShield sin configurar Node.js localmente es usando Docker. ### Opción 1: Docker Compose docker compose up --build Luego abre: http://localhost:3000 Para detenerlo: docker compose down ### Opción 2: Docker CLI docker build -t cybershield-game . docker run --rm -p 3000:3000 cybershield-game También puedes usar los scripts incluidos: npm run docker:build npm run docker:run El contenedor corre en modo producción, expone el puerto `3000`, usa un usuario no-root, remueve gestores de paquetes del runtime final y tiene un healthcheck HTTP. ## Seguridad El servidor Express aplica headers defensivos para una app estática: - `Content-Security-Policy` restringida a recursos propios, Google Fonts y las imágenes educativas usadas por el juego. - `X-Frame-Options: DENY` y `frame-ancestors 'none'` para evitar clickjacking. - `X-Content-Type-Options: nosniff`. - `Permissions-Policy` bloqueando cámara, micrófono, geolocalización y pagos. - `Strict-Transport-Security` cuando la app corre detrás de HTTPS. - `x-powered-by` deshabilitado. ## Despliegue El repositorio está listo para desplegarse en Railway, Render o cualquier plataforma compatible con Node.js o Docker. 1. Crea un nuevo proyecto. 2. Selecciona este repositorio desde GitHub. 3. Usa `npm start` como comando de inicio. 4. Genera el dominio público desde el panel del proveedor. Si tu proveedor permite Docker, también puedes desplegar directamente desde el `Dockerfile`. ## Autor Creado por **Iván Agustín Zárate**. ## Licencia Distribuido bajo licencia MIT. Consulta [LICENSE](LICENSE) para más información.
标签:自定义脚本