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 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.
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 CAPEC↔CWE, 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.
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.
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.
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.
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.
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.
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”
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.
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.
Ahora que ya entendemos ligeramente cómo funcionan los patrones CAPEC, aquí van algunas recomendaciones prácticas para usarlos:
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;) |
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.
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
DIRECCIÓN:
Edificio CEBT, ILDEFE
Calle Santos Ovejero 1
P01-02 HackRTU
24008
León (León)
© HackRTU
2025