Blog HackRTU

 

Aprende sobre vulnerabilidades, información técnica con una perspectiva diferente y estate a la última de todos los movimientos de HackRTU

 

Descubre los últimos artículos sobre ciberseguridad industrial, vulnerabilidades OT, análisis de dispositivos, investigaciones técnicas, 0‑days y noticias relevantes del sector. En el blog de HackRTU profundizamos en la seguridad de sistemas industriales, en la familia de estándares IEC 62443 y tendencias e investigación en el ámbito de la ciberseguridad industrial.

 

CAPEC, DEL CATÁLOGO A LA INDUSTRIA

 

CNA

 

 

CAPEC o Common Attack Pattern Enumeration and Classification es un catálogo donde se describen patrones de ataques. Gracias a estas descripciones, CAPEC proporciona un lenguaje estructurado y estandarizado para describir estos patrones, facilitando a investigadores el análisis y mitigación de estos. Sobre todo, CAPEC permite el mapeo y desarrollo de modelos sobre amenazas (patrones de ataques).

Los patrones de ataque son descripciones de los atributos y enfoques comunes que emplean los adversarios para explotar debilidades conocidas en diferentes activos a nivel lógico. Los patrones de ataque definen, por así decirlo, unos rompecabezas que se plantean a los adversarios en cada ataque y como estos se enfrentan a ellos para lograr su objetivo.

Para aterrizar estos análisis, el catálogo CAPEC posee vistas. Una vista es una agrupación de patrones bajo una catalogación concreta como pueda ser la existente en Sistemas de Control Industrial CAPEC-703. ¿No os suena este concepto de antes con las listas CWE :P? Veremos en siguientes apartados toda la estructura de CAPEC en profundidad.

A lo largo del artículo, podréis observar como este catálogo permite a las organizaciones industriales fortalecer sus defensas conociendo a los atacantes. Como se suele decir, a veces una buena defensa es el mejor ataque.

 

HISTORIA DEL CAPEC

CAPEC fue creado por el U.S. Department of Homeland Security como parte de la iniciativa estratégica de Software Assurance (SwA) de la Office of Cybersecurity and Communications (CS&C). Publicado en 2007 como catálogo inicial de amenazas, CAPEC nace tras la necesidad de categorizar patrones de ataques y estandarizar la forma de referirse a los mismos. De esta forma, las diferentes comunidades técnicas a nivel mundial pueden utilizar un “lenguaje común” para hacer un modelado de amenazas.

Catálogo CAPEC a lo largo de los años

Tras el lanzamiento del catálogo inicial en 2007, salen diferentes versiones hasta la versión 1.5 en 2010 donde se incluyen 24 nuevos patrones, 34 modificados, 1 obsoleto, nuevos mapeos CAPECCWE, y una nueva vista (“WASC Threat Classification 2.0”). Se destaca esta versión por la incorporación de una nueva vista.

Tras la versión 1.5, salen diferentes versiones que irían incorporando nuevos patrones, modificaciones en los ya existentes, descatalogando patrones obsoletos, añadiendo nuevos mapeos entre CAPEC y CWE y, finalmente, añadiendo más vistas para el modelado de amenazas. Estos cambios pueden consultarse en el archivo histórico de CAPEC.

Ya en la versión 3.9 (versión más reciente de CAPEC), que, por el enfoque de nuestro artículo, es la que más nos interesa, se añade la vista CAPEC-703 Industrial Control System (ICS) Patterns. Esta vista explícita (Explicit Slice), es una agrupación de patrones de ataque relacionados con los entornos industriales como su propio nombre indica. Este enfoque permite filtrar patrones de otros entornos facilitando la construcción de los modelos de ataque y permite utilizar los formatos actuales que pueden descargarse (CSV/XML) para la automatización de herramientas técnicas.

 

ENTENDIENDO LOS PATRONES DE CAPEC

CAPEC guarda gran similitud con CWE con respecto a las categorizaciones y relaciones entre vistas. En este caso, cada patrón de CAPEC pertenece a un tipo de patrón de ataque, llamado Attack Pattern Type, aquí se define su nivel de abstracción y su función dentro de toda la estructura de CAPEC.

Vamos a ver los 3 tipos principales, más la vista que organiza a los mismos. Aplicaremos los ejemplos con la vista CAPEC-703 Industrial Control System (ICS) Patterns.

  • Meta Attack Pattern

Es un patrón de ataque que sirve como categoría madre y del cual derivan patrones más específicos. Este nivel meta, describe una metodología genérica que engloba varias técnicas relacionadas.

CAPEC-607: Obstruction

Por ejemplo, el patrón CAPEC-607: Obstruction dentro de la vista de ICS, sería el meta-patrón de Physical Destruction of Device or Component, Jamming, Blockage y Route Disabling, Esto a nivel de relaciones, como vimos en CWE, significa que CAPEC-607: Obstruction es ParentOf Physical Destruction of Device or Component, Jamming, Blockage y Route Disabling y ellos a su vez son ChildOf de Obstruction.

  • Standard Attack Pattern

Este patrón define una técnica concreta usada en un ataque. Contiene información detallada a nivel técnico de cómo funciona, ejecuta y mitiga un ataque concreto.

CAPEC-313: Passive OS Fingerprinting

Por ejemplo, en la imagen anterior tenemos Passive OS Fingerprinting (CAPEC-313) donde se explica como un atacante, a través de técnicas pasivas obtendría información sobre versiones como la del sistema operativo para afinar sus ataques. Dado que ya hablamos de un patrón más específico, la lógica indicaba que fuese ChildOf a nivel de relación de Fingerprinting (CAPEC-224). Las técnicas de fingerprinting como son más generales, están clasificadas en un meta-patrón.

  • Detailed Attack Pattern

Es el nivel más concreto y específico que describe un caso particular heredado de un patrón estándar. En su descripción hay detalles muy concretos del ataque y permite afinar dentro de un modelado de ataque, detalles como herramientas o técnicas ejecutadas.

CAPEC-457: USB Memory Attacks

Ejemplo de este patrón tan concreto tenemos USB Memory Attacks (CAPEC-457) donde se describe como un adversario puede utilizar una memoria USB externa con el fin de infectar cualquier sistema al que se conecte el dispositivo. Juraríamos que esto no es nuevo en los entornos industriales, ¿qué pieza de malware catalogada como ciberarma utilizaba este patrón de ataque para empezar una infección?… Ya no nos acordamos porque nadie habla de ello a estas alturas :P. Por cierto, si quieres revisar un documento que salió hace poco del NIST hablando sobre esta problemática, te lo dejamos por aquí “REDUCING THE CYBERSECURITY RISKS OF PORTABLE STORAGE MEDIA IN OT ENVIRONMENTS

  • Views

Aunque no son un tipo de patrón y estas pueden verse también en CWE, si son un método de agrupación para los tipos anteriores.

CAPEC Views

  • Category

Al ser otro concepto compartido con CWE y no tan relevante específicamente en CAPEC, hemos dejado para lo último este type. Una categoría en CAPEC es una recopilación de patrones de ataque basados en características comunes al igual que pasaba en CWE. Más concretamente, es una agregación de patrones de ataque basada en el efecto o intención. Más bien, es una agrupación de patrones basada en algunos criterios comunes.

CAPEC View: Domain Attacks

Ahora que ya entendemos ligeramente cómo funcionan los patrones CAPEC, aquí van algunas recomendaciones prácticas para usarlos:

  • El uso de CAPEC permite crear reglas IDS/IPS en base a una detección de eventos básicos ya estipulados en el patrón utilizado. Por ejemplo, utilizar CAPEC-272: Protocol Manipulation para detectar escrituras en Modbus TCP (0x05 - Write Single Coil, 0x06 - Write Single Register, 0x0F - Write Multiple Coils y 0x10 - Write Multiple Registers).

REGLAS SNORT PARA LA DETECCIÓN DE ESTOS EVENTOS

0x05 - Write Single Coil

alert tcp any any -> any 502 (msg:"MODBUS TCP - Function Code Write Detected"; flow:to_server,established; content:"|00 00|"; offset:2; depth:2; content:"|05|"; offset:7; depth:1; nocase; sid:1000001; rev:1;)

0x06 - Write Single Register

alert tcp any any -> any 502 (msg:"MODBUS TCP - Function Code Write Detected"; flow:to_server,established; content:"|00 00|"; offset:2; depth:2; content:"|06|"; offset:7; depth:1; nocase; sid:1000002; rev:1;)

0x0F - Write Multiple Coils

alert tcp any any -> any 502 (msg:"MODBUS TCP - Function Code Write Detected"; flow:to_server,established; content:"|00 00|"; offset:2; depth:2; content:"|0F|"; offset:7; depth:1; nocase; sid:1000003; rev:1;)

0x10 - Write Multiple Registers

alert tcp any any -> any 502 (msg:"MODBUS TCP - Function Code Write Detected"; flow:to_server,established; content:"|00 00|"; offset:2; depth:2; content:"|10|"; offset:7; depth:1; nocase; sid:1000004; rev:1;)

  • Utiliza la matriz de MITRE ATT&CK sobre ICS para potenciar y mapear la respuesta a incidentes de tu organización o clientes.
  • CAPEC puede utilizarse como formación a equipos de respuesta y SOC OT en sistemas de control industrial. Utilizando las diferentes catalogaciones, se pueden crear ejercicios table top muy completos para formar al personal en materia de ciberseguridad industrial.
  • CAPEC permite aterrizar explicaciones a clientes cuando se ejecuta un ejercicio de pentest en entornos industriales. Las explicaciones de los servicios pueden basarse en explicaciones estandarizadas reconocidas por todos los profesionales del sector para utilizar el mismo lenguaje y mejorar la interactuación con el cliente.
  • Uso de herramientas como CVE2CAPEC para visualizar la relación entre los CVE asociados a ciertas tecnologías, los CWE, el CAPEC y las tácticas y técnicas de la matriz de MITRE ATT&CK. Como veis, una herramienta de los más completita 😊. Este tipo de herramientas facilitan mucho la vida inicialmente o, si ya queremos ir a un plano más de Rock&Roll, usar herramientas con IA que hacen correlaciones muy buenas tras su afinación.

CVE2CAPEC

En la imagen anterior podemos visualizar uno de los identificadores de CVE, concretamente el CVE-2025-41360, detectado por nuestros investigadores para empezar a revisar las relaciones con CWE, CAPEC y la matriz de MITRE ATT&CK para ICS.

 

EJEMPLO CONCRETO DE LOS PATRONES CAPEC

En este apartado veremos cómo aplicar los patrones de CAPEC, concretamente de la lista industrial que posee (CAPEC-703) para clasificar la vulnerabilidad CVE-2025-41362 en base al ataque ejecutado por nuestros investigadores. Recordemos que, al igual que en la vida real, a veces existen más caminos para llegar al mismo destino.

Ruta de ataque para explotación de vulnerabilidad CVE-2025-41362

A veces las cosas no son como uno quiere y, por ello, no se ha utilizado ningún identificador de CAPEC relacionado con la vista industrial ya que, en este caso, el ataque guardaba relación con una inyección de código a nivel web. Recordemos que, aunque los dispositivos sean industriales, muchas veces los ataques pueden guardar mucha relación con clasificaciones más IT. La clave reside en el impacto ya que una inyección de código en un dispositivo industrial como pueda ser un HMI, permitiría a un atacante modificar visualizaciones del proceso lo que podría desencadenar una acción de control por parte de un operador en el proceso industrial al pensar que los datos son legítimos. Como resultado de esta situación, se pueden parar procesos industriales o modificar los mismos en base a parámetros de lectura. ¿Os imagináis un sistema SCADA leyendo siempre parámetros falsos? ¿Y una empresa que basa sus distribuciones de material en un Historian leyendo datos erróneos? Igual una simple inyección que no parece tan maliciosa puede desencadenar algo más peligroso…

Desde HackRTU, utilizamos la catalogación de CAPEC para desarrollar algunos de nuestros servicios. Y no sólo nos quedamos en su uso, sino que, intentamos realizar aportes siempre que tenemos tiempo para mejorar proyectos basados en el esfuerzo de la comunidad. Te animamos tanto a utilizar el catálogo de CAPEC como a contribuir en este fascinante proyecto nacido como otros muchos de una comunidad de técnicos para compartir conocimiento.

 

 

EQUIPO DE HACKRTU