00 / INICIO 01 / PERFIL 02 / STACK 03 / PROYECTOS 04 / FORMACIÓN 05 / CONTACTO
ivan@shell:~$

IVÁN
BATISTA
HERRERO

// Técnico en Desarrollo de Aplicaciones Multiplataforma con Máster en Ciberseguridad. Buscando incorporarme a un equipo SOC como Analista Junior — detección, análisis y respuesta ante incidentes.

// stackPython · Java · Bash
// estadodisp. inmediata
// idiomasES nativo · EN B1
SOC.MESH v0.1 SIEM ACTIVO

Desarrollo, monitorizo y protejo sistemas.

Vengo del desarrollo multiplataforma (DAM bilingüe) y me he especializado en ciberseguridad con un Máster FP en EUSA — centro adscrito a la Universidad de Sevilla. Trabajo con seguridad ofensiva y defensiva: pentesting, bastionado de sistemas, análisis de vulnerabilidades, redes y criptografía.

Manejo SIEMs como Wazuh y la pila ELK, hardening con CIS Benchmarks y normativa europea (RGPD, ENS, ISO/IEC 27001, NIS2). Me apasiona aprender rápido y poner las manos en el laboratorio — desplegar entornos Zero Trust con Keycloak, Vault y Nginx, o leer logs hasta encontrar el patrón.

22
años
2
titulaciones técnicas
3
meses de prácticas DAM
B1
Cambridge English

Conocimientos que aplico a diario.

A //Lenguajes
// también: JavaScriptPHP SQLPL/SQL HTML5CSS3
B //Ciberseguridad
// también: HydraMedusaLinPEAS PentestingForenseZero Trust
C //Plataformas
// también: UFWnftablesfail2ban LynisMySQLApache Derby
D //Plataformas de desarrollo
// también: GitLabPyCharmNetBeans DBeaverXAMPPSelenium

Lo que he construido, desplegado y entregado.

// 03.01 · mar–jun 2025 ENTREGADO

CRONÓMETRO DE PLENOS

Ayuntamiento de Espartinas · prácticas DAM

Aplicación de escritorio en Python con arquitectura MVC (PyQt6) para gestionar los tiempos de intervención en plenos municipales. Doble ventana: visualización en pantalla completa para proyector y panel de control del operador. Cronómetros por grupo político con logos, cuenta atrás con alarma sonora, paso automático a tiempo excedido, sincronización en cascada entre turnos y atajos de teclado. Configuración persistente en JSON para plenos ordinarios y extraordinarios.

PythonPyQt6pygameMVCJSON
pleno ordinario · Ayto. Espartinas
┌─────────────────────────────────────┐
│ GRUPO A   05:42  ▓▓▓▓▓░  en curso  │
│ GRUPO B   02:11  ▓▓▒░░░  en curso  │
│ GRUPO C   00:00  ██████  EXCEDIDO  │
│ GRUPO D   04:00  ░░░░░░  en espera │
└─────────────────────────────────────┘
[viz] pantalla completa · [ctrl] operador
// 03.02 · 2024–2025 TFG

FRICHAT · FRONTEND

TFG DAM · IES El Majuelo

Frontend de una aplicación de mensajería en tiempo real inspirada en Discord, desarrollada como TFG del grado DAM. SPA sin router: máquina de estados con useState en App. Componentes separados por dominio (Auth, InterfazChat) con lógica de red encapsulada en custom hooks. Chat en tiempo real con WebSocket nativo del navegador. Diseño tipo Discord: sidebar de contactos, área de chat y barra de usuario con cierre de sesión.

React 19ViteJSXWebSocketCustom Hooks
App
+-- Auth/
|   +-- FormularioAuth  <-- base reutilizable
|   +-- Login           <-- hook: useLogin
|   +-- Register        <-- hook: useRegister
+-- InterfazChat/
    +-- Menu            <-- barra superior · logout
    +-- Contactos       <-- lista + agregar contactos
    +-- Chat            <-- WebSocket nativo · RT
// 03.03 · 2024–2025 TFG

FRICHAT · BACKEND

TFG DAM · IES El Majuelo

API REST y servidor WebSocket para Frichat. FastAPI sobre MySQL con SQLAlchemy ORM. Registro con hash bcrypt, autenticación por correo y contraseña, gestión de contactos bidireccional con deduplicación por IDs ordenados. Enrutamiento de mensajes en tiempo real: el servidor mantiene un dict de conexiones activas y reenvía el JSON al destinatario si está conectado.

PythonFastAPISQLAlchemyMySQLWebSocketbcrypt
FastAPI
+-- /registro/   POST  -->  bcrypt hash + INSERT
+-- /login/      POST  -->  bcrypt.verify
+-- /contactos/  POST  -->  listar por usuario
+-- /agregar/    POST  -->  sorted(id1,id2)  dedup
+-- /ws/{nombre} WS    -->  routing RT en memoria

MySQL: usuarios(id, nombre, correo, hash, admin)
       contactos(id1 FK, id2 FK) clave compuesta
// 03.04 · 2025 DESPLEGADO

PORTFOLIO PERSONAL

Proyecto personal · ivanbatista.dev

Portfolio con estética terminal escrito en HTML5, CSS3 y JavaScript vanilla. CSS de más de 3 200 líneas con variables, animaciones y diseño responsive. JS con Three.js (globo 3D), GSAP + ScrollTrigger (animaciones de scroll) y VanillaTilt (profundidad en tarjetas). Dominio propio comprado en Squarespace, DNS gestionado en Cloudflare y desplegado en Cloudflare Pages con CI/CD automático en cada push a main.

HTML5CSS3JavaScriptThree.jsGSAPCloudflare PagesSquarespace DNS
dominio   →  ivanbatista.dev  (Squarespace)
dns       →  Cloudflare
deploy    →  git push → Cloudflare Pages  CI/CD
stack     →  Three.js · GSAP · VanillaTilt
css       →  3 200+ líneas · responsive
// 03.05 · 2025–2026 TFM

ZERO TRUST ARCHITECTURE · TFM

Máster Ciberseguridad · EUSA — Universidad de Sevilla

Diseño e implantación de una arquitectura Zero Trust sobre laboratorio de 4 VMs interconectadas por túnel WireGuard. Nginx como PEP con oauth2-proxy, autenticación JWT+TOTP vía Keycloak y gestión de secretos con HashiCorp Vault. Simulación de 5 escenarios de ataque reales: tasa de detección 80 % (Wazuh 4.14.5 + Snort 2).

WazuhKeycloakVaultNginxSnortDockerWireGuard
Zero Trust flow:
  Firefox → Nginx PEP → oauth2-proxy → Keycloak (JWT+TOTP) → webapp

Attack simulation  (10/05/2026 · 4 VMs · WireGuard lab)
  Hydra SSH         → fail2ban block  8 attempts  ~10 s   ✓
  Keycloak BF       → blocked         5 attempts   <1 s   ✓
  Nmap recon        → Snort [1:469]               <1 s   ✓
  LinPEAS (FIM)     → Wazuh /tmp      detected    <2 s   ✓
  Data exfiltration → egress gap               NOT DET   ✗

Detection 80 %  ·  Wazuh 4.14.5  ·  3 agents active
// 03.06 · feb 2026 ENTREGADO

LOGCLASSIFIER · IDS

Normativa de Ciberseguridad · Máster EUSA

Sistema IDS basado en reglas inspirado en Fail2Ban. Pipeline de 5 módulos: ingesta de logs en tiempo real, motor de expresiones regulares que evalúa cada línea contra reglas YAML, correlación temporal con ventana deslizante por IP, módulo de respuesta (bloqueo real vía iptables o modo simulación) y sistema de alertas con registro en fichero. Extensible sin tocar código: añadir una nueva regla de detección es sólo escribir un fichero YAML.

PythonPyYAMLDockerpytestiptablesRegex
log/*.log  -->  [Ingesta]  -->  [Motor Reglas]  -->  [Correlacion]
                               (regex + YAML)     (ventana deslizante)
                                                         |
                                                  [Respuesta]
                                             bloquear_ip | alertar
                                             modo: real | simulacion
                                                         |
                                                  [Alertas]
                                             consola + alertas.log
// 03.07 · jun 2026 ACTIVO

PULPO · IDS/IPS MONITOR

Proyecto personal · inspirado conceptualmente en LogClassifier

Dashboard SOC construido con Electron + React sobre un backend FastAPI + SQLite. LogClassifier detecta ataques mediante 14 reglas YAML (SSH, SQLi, XSS, path traversal, command injection, HTTP flood, scanner UA…) y los persiste en base de datos. La API REST expone los datos al dashboard y un WebSocket emite cada alerta en tiempo real sin polling. El IDS arranca automáticamente como servicio systemd. El dashboard incluye filtros por tipo y severidad, gráficos de actividad, distribución por severidad y top de reglas con datos históricos completos de la BD.

ElectronReactTypeScriptFastAPISQLiteWebSocketPythonRecharts
logs/*.log  →  [LogClassifier · 14 reglas YAML]  →  SQLite (pulpo.db)
                  SSH · SQLi · XSS · Traversal              │
                  CmdInject · Flood · ScannerUA        [FastAPI :8080]
                                                       REST + WebSocket
                                                             │
                                                    [Dashboard · Electron]
                                                    Filtros · Timeline
                                                    Donut · Top Reglas
                                                    Acknowledge · CSV

Del desarrollo multiplataforma a la seguridad ofensiva y defensiva.

2025 — 2026

Máster FP en Ciberseguridad

EUSA · adscrito a la Universidad de Sevilla
Especialización en seguridad ofensiva y defensiva, análisis de vulnerabilidades, redes y criptografía.
2023 — 2025

CFGS Desarrollo de Aplicaciones Multiplataforma

IES El Majuelo · Gines · Aula Bilingüe
Programación multiplataforma, bases de datos y diseño de software. Bilingüe inglés.
2022

B1 Preliminary · Cambridge English

Cambridge English · Sevilla
Certificación oficial B1 de inglés. Comunicación técnica y comprensión escrita fluidas.

¿Buscas un analista SOC junior? Aquí me tienes.

Disponibilidad inmediata. Cualquier canal vale — correo, teléfono o LinkedIn.

DESCARGAR CV (PDF) // Iván Batista Herrero · 2026 · 1 página
DISPONIBLE
incorporación inmediata · jornada completa
// COPIADO AL PORTAPAPELES