<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Yoandy Ramirez Delgado</title>
    <description>The latest articles on DEV Community by Yoandy Ramirez Delgado (@yoandy).</description>
    <link>https://dev.to/yoandy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3931672%2Ff72ae885-6254-456e-9726-998d0c2bdb6e.png</url>
      <title>DEV Community: Yoandy Ramirez Delgado</title>
      <link>https://dev.to/yoandy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yoandy"/>
    <language>en</language>
    <item>
      <title>Cómo construimos un SOC con honeypot e IA local</title>
      <dc:creator>Yoandy Ramirez Delgado</dc:creator>
      <pubDate>Thu, 14 May 2026 16:49:54 +0000</pubDate>
      <link>https://dev.to/yoandy/como-construimos-un-soc-con-honeypot-e-ia-local-1ep0</link>
      <guid>https://dev.to/yoandy/como-construimos-un-soc-con-honeypot-e-ia-local-1ep0</guid>
      <description>&lt;p&gt;Cuando empezamos el proyecto final del master, teníamos claro una cosa: no queríamos&lt;br&gt;
montar otro dashboard bonito con datos inventados. Queríamos algo que recibiera ataques&lt;br&gt;
reales y los analizara como lo haría un SOC de verdad.&lt;/p&gt;

&lt;p&gt;El resultado se llama &lt;strong&gt;Valhalla SOC&lt;/strong&gt;, y es el trabajo de un equipo de cinco&lt;br&gt;
compañeros del Master en Ciberseguridad de Evolve. En este artículo cuento cómo lo&lt;br&gt;
construimos, qué decisiones tomamos y qué aprendimos por el camino.&lt;/p&gt;

&lt;h2&gt;
  
  
  El problema
&lt;/h2&gt;

&lt;p&gt;Los SOC comerciales (Splunk, QRadar, Sentinel) son potentes pero caros, dependen de la&lt;br&gt;
nube y mandan tus logs fuera. Para una pyme o un equipo pequeño, eso es un problema:&lt;br&gt;
coste, privacidad y cumplimiento (ISO 27001, GDPR).&lt;/p&gt;

&lt;p&gt;La pregunta era: ¿se puede montar un SOC profesional, con análisis IA, &lt;strong&gt;sin que un&lt;br&gt;
solo dato salga del equipo&lt;/strong&gt;? Spoiler: sí.&lt;/p&gt;

&lt;h2&gt;
  
  
  La arquitectura
&lt;/h2&gt;

&lt;p&gt;Cuatro piezas, todas open source, orquestadas con Docker Compose:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cowrie&lt;/strong&gt; — honeypot SSH/Telnet en el puerto 2222. Simula un Ubuntu real.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wazuh&lt;/strong&gt; — el SIEM. Lee los logs del honeypot, los parsea y aplica reglas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama (qwen2.5-coder:7b)&lt;/strong&gt; — un LLM corriendo en local que analiza las alertas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard custom (React + FastAPI)&lt;/strong&gt; — además del nativo de Wazuh.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;El flujo:&lt;/p&gt;

&lt;p&gt;Atacante → Cowrie → log JSON → Wazuh aplica reglas → si nivel ≥ 5 → Ollama analiza&lt;br&gt;
→ todo se indexa en OpenSearch → Dashboard&lt;/p&gt;

&lt;h2&gt;
  
  
  Lo más interesante: las reglas custom
&lt;/h2&gt;

&lt;p&gt;Aquí es donde el proyecto deja de ser un "tutorial seguido" y pasa a ser trabajo de&lt;br&gt;
verdad. Escribimos 12 reglas personalizadas en Wazuh, todas mapeadas a MITRE ATT&amp;amp;CK:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Regla&lt;/th&gt;
&lt;th&gt;Detecta&lt;/th&gt;
&lt;th&gt;MITRE&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;100111&lt;/td&gt;
&lt;td&gt;Fuerza bruta (5+ fallos en 120s)&lt;/td&gt;
&lt;td&gt;T1110&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;100130&lt;/td&gt;
&lt;td&gt;Descarga de malware (wget/curl)&lt;/td&gt;
&lt;td&gt;T1105&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;100140&lt;/td&gt;
&lt;td&gt;Reverse shell&lt;/td&gt;
&lt;td&gt;T1059, T1071&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;100150&lt;/td&gt;
&lt;td&gt;Desactivar firewall&lt;/td&gt;
&lt;td&gt;T1562&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;100170&lt;/td&gt;
&lt;td&gt;Borrado de logs (anti-forense)&lt;/td&gt;
&lt;td&gt;T1070&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;El truco no es detectar el comando exacto — es entender la &lt;strong&gt;secuencia&lt;/strong&gt;. La regla&lt;br&gt;
100113, por ejemplo, dispara solo cuando hay un login exitoso &lt;strong&gt;después&lt;/strong&gt; de varios&lt;br&gt;
fallos en menos de 2 minutos. Eso es fuerza bruta exitosa, no un login normal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ollama como analista junior
&lt;/h2&gt;

&lt;p&gt;Esta parte fue la que más nos sorprendió. Cuando Wazuh dispara una alerta de nivel ≥ 5,&lt;br&gt;
ejecuta un script en Python que manda la alerta a Ollama corriendo en &lt;code&gt;localhost:11434&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;El prompt es simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Eres un analista SOC. Alerta: [JSON]. En 2 oraciones: describe el objetivo del&lt;br&gt;
atacante y el nivel de amenaza."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Y la respuesta vuelve a Wazuh como una alerta nueva (regla 100200, "Ollama AI Insight").&lt;br&gt;
En el dashboard aparece junto a la alerta original.&lt;/p&gt;

&lt;p&gt;¿Es perfecto? No. A veces se equivoca. Pero como &lt;strong&gt;primera capa de triaje&lt;/strong&gt; para un&lt;br&gt;
analista humano, ahorra muchísimo tiempo. Y lo más importante: &lt;strong&gt;ningún log sale del&lt;br&gt;
equipo&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;El dashboard nativo de Wazuh muestra todo, pero también construimos un frontend propio&lt;br&gt;
con React + Electron que funciona incluso si el backend cae (modo offline con&lt;br&gt;
runbooks locales). Eso fue un extra que añadimos porque nos parecía interesante para&lt;br&gt;
un SOC real, donde la continuidad es crítica.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lo que aprendimos
&lt;/h2&gt;

&lt;p&gt;Tres cosas que nos llevamos:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Las reglas son donde está el trabajo de verdad.&lt;/strong&gt; Montar Wazuh es cuestión de
horas. Escribir reglas que detecten ataques reales sin falsos positivos es
cuestión de semanas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Los LLM locales ya están listos para casos de uso reales.&lt;/strong&gt; No vas a sustituir
a un analista senior con qwen2.5:7b, pero como capa de triaje funciona muy bien.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;El honeypot recibe más ataques de los que pensábamos.&lt;/strong&gt; En 24 horas teníamos
cientos de intentos de login desde IPs de medio mundo. Internet es un sitio ocupado.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  El equipo
&lt;/h2&gt;

&lt;p&gt;Valhalla SOC es trabajo conjunto de cinco compañeros del Master en Ciberseguridad&lt;br&gt;
de Evolve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/santiago-de-prada-lorenzo-554b2a216/" rel="noopener noreferrer"&gt;Santiago de Prada Lorenzo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/santiago-viso-martin/" rel="noopener noreferrer"&gt;Santiago Viso Martín&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/julieta-tenti/" rel="noopener noreferrer"&gt;Julieta Tenti&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/rosalino-martinez-alban-305586370/" rel="noopener noreferrer"&gt;Rosalino Martínez Albán&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/yoandyrd92" rel="noopener noreferrer"&gt;Yoandy Ramírez Delgado&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Si quieres trastear con él
&lt;/h2&gt;

&lt;p&gt;El proyecto es público y reproducible con un &lt;code&gt;docker compose up&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/heindall92/Proyecto-Master-Ciberseguridad-Evolve-Yoandy" rel="noopener noreferrer"&gt;github.com/heindall92/Proyecto-Master-Ciberseguridad-Evolve-Yoandy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El README tiene la guía completa de despliegue, los requisitos de hardware&lt;br&gt;
(con 8 GB de RAM va) y cómo simular ataques de prueba con &lt;code&gt;hydra&lt;/code&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Proyecto académico desarrollado durante el Master en Ciberseguridad de&lt;br&gt;
&lt;a href="https://evolve.es" rel="noopener noreferrer"&gt;Evolve&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>python</category>
      <category>infosec</category>
      <category>networking</category>
    </item>
  </channel>
</rss>
