Uno de los factores críticos sobre el que gira el mundo de la seguridad es el estudio y control de vulnerabilidades. Para ello existen organizaciones encargadas de tratar temas relacionados a este aspecto, como es el caso de MITRE, FIRST e ICASI. Veremos qué estándares utilizan y cómo aprovecharlos para entender mejor los problemas de seguridad. Si en la entrada anterior se cubrieron los CVE, en esta se hará los CWE y CAPEC.
CWE
CWE (Common Weakness Enumeration) es una lista de tipos de debilidades de software dirigida a desarrolladores y profesionales de la seguridad. Fue creada al igual que CVE para unificar la descripción de las debilidades de seguridad de software en cuanto a arquitectura, diseño y código se refiere. Se puede ver como un catálogo de debilidades documentadas que se suelen cometer programando, y que podría derivar en vulnerabilidades. Es muy utilizada por distintas herramientas de seguridad encargadas de identificar estas debilidades y para promover la identificación de las vulnerabilidades, mitigación y su prevención.
CWE satisface la necesidad que tienen las grandes empresas u organizaciones de conocer y tener catalogadas las distintas debilidades existentes. De esta forma pueden comprobar y asegurar sus productos frente a fallos de seguridad ya conocidos. De igual manera, los consumidores esperan que las soluciones compradas o contratadas estén correctamente protegidas frente a las debilidades conocidas, y así también utilizar este catálogo para analizar las posibles debilidades de soluciones adquiridas. Si se desarrolla con el ánimo de evitar las CWE en mente, se mitigan las posibilidades de que posteriormente se sufran vulnerabilidades.
Esta lista nace como iniciativa del MITRE para hacer frente a la diversidad de pensamiento sobre este asunto por parte de tres sectores: el académico, el comercial y el gubernamental.
La lista de CWE se ofrece en tres vistas:
CWE
CWE (Common Weakness Enumeration) es una lista de tipos de debilidades de software dirigida a desarrolladores y profesionales de la seguridad. Fue creada al igual que CVE para unificar la descripción de las debilidades de seguridad de software en cuanto a arquitectura, diseño y código se refiere. Se puede ver como un catálogo de debilidades documentadas que se suelen cometer programando, y que podría derivar en vulnerabilidades. Es muy utilizada por distintas herramientas de seguridad encargadas de identificar estas debilidades y para promover la identificación de las vulnerabilidades, mitigación y su prevención.
CWE satisface la necesidad que tienen las grandes empresas u organizaciones de conocer y tener catalogadas las distintas debilidades existentes. De esta forma pueden comprobar y asegurar sus productos frente a fallos de seguridad ya conocidos. De igual manera, los consumidores esperan que las soluciones compradas o contratadas estén correctamente protegidas frente a las debilidades conocidas, y así también utilizar este catálogo para analizar las posibles debilidades de soluciones adquiridas. Si se desarrolla con el ánimo de evitar las CWE en mente, se mitigan las posibilidades de que posteriormente se sufran vulnerabilidades.
Esta lista nace como iniciativa del MITRE para hacer frente a la diversidad de pensamiento sobre este asunto por parte de tres sectores: el académico, el comercial y el gubernamental.
La lista de CWE se ofrece en tres vistas:
- Una de tipo diccionario, que incluye las debilidades debidamente enumeradas.
- Una vista de árbol donde se clasifican las debilidades individuales.
- Una nueva vista de árbol que permite a un usuario ampliar el conocimiento y las relaciones de las debilidades individuales encontradas en la vista anterior.
Cómo aprovechar la página del CWE
- En el campo "Search by ID" podemos realizar una búsqueda especifica de aquellas debilidades cuando se conoce el CWE-ID sobre el cual está registrado.
- En el enlace "Documents" se pueden encontrar todos los documentos públicos relacionados con CWE.
- En los enlaces a "CWSS" y "CWRAF" se pueden encontrar toda la información relevante a estas dos siglas que se explicaran en próximos entradas.
- En el enlace "Search the Site2 pueden realizarse búsquedas específicas de debilidades de software utilizando palabras clave que puede estar contenidas en el nombre o la descripción de las debilidades en caso de no conocer su CWE-ID.
- Con el enlace "NVD (National Vulnerability Database)" se puede ir directamente a la página web de la base de datos de vulnerabilidades del NIST, de la que también se hablará en una próxima entrada.
- Con los enlaces "Vulnerabilitties (CVE)" y "Attack Patterns (CAPEC)" puede consultarse las otras dos listas.
- Con los enlaces "Weakness Scoring System (CWSS)" y "Weakness Risk Analysis Framework (CWRAF)", al igual que los enlaces comentados en el punto anterior, mostrará toda la información acerca de estas dos siglas.
En la que se observa que una debilidad suele tener unas consecuencias comunes documentadas, unos patrones de ataque, y una probabilidad concreta de que sea explotada. Toda esta información permite saber a qué se enfrenta un usuario cuando ante una debilidad en el código.
En comparación con el catálogo de CVE, lógicamente esta lista contiene un numero considerablemente menor de registros. Mientras que en CVE existen unas 60.000 vulnerabilidades documentadas desde 1998 (ver gráfico), CWE almacena 714 debilidades conocidas.
La última versión actualizada del top 25 de las debilidades más peligrosas que podrían encontrarse en el software, fue publicada el 13 de septiembre de 2011. Las cinco primeras de esta lista, son:
![]() |
Número de CVEs por año. Fuente: http://www.inteco.es/blogs/post/Seguridad/BlogSeguridad/Articulo_y_comentarios/Ciberespionaje_criptografia |
- CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection)
- CWE-78: Improper Neutralization of Special Elements used in an OS Command (OS Command Injection)
- CWE-120: Buffer Copy without Checking Size of Input (Classic Buffer Overflow)
- CWE-79: Improper Neutralization of Input During Web Page Generation (Cross-site Scripting)
- CWE-306: Missing Authentication for Critical Function
CAPEC (Common Attack Pattern Enumeration and Classification) es un catálogo de patrones de ataque que se encarga de recolectar información sobre ellos, junto a un esquema de clasificación exhaustiva. Estos patrones de ataques no son más que las descripciones de los métodos comunes utilizados para la explotación de vulnerabilidades.
Las entradas de esta conocida lista intentan dar a conocer la perspectiva del atacante y los métodos utilizados para explotar los sistemas. Se generan después de un análisis de los ejemplos de exploits específicos. Estos exploits son presentados como ejemplo de explotación de una vulnerabilidad, o incluso pueden ser propuestos para añadirse en esta lista en caso de no estar registrado.
Las entradas de esta conocida lista intentan dar a conocer la perspectiva del atacante y los métodos utilizados para explotar los sistemas. Se generan después de un análisis de los ejemplos de exploits específicos. Estos exploits son presentados como ejemplo de explotación de una vulnerabilidad, o incluso pueden ser propuestos para añadirse en esta lista en caso de no estar registrado.
Al igual que los demás catálogos , CAPEC intenta ofrecer la información necesaria para ayudar a mejorar la seguridad en todo el ciclo de vida de desarrollo de software y también apoyar las necesidades de los desarrolladores. Muchas de las vulnerabilidades que se registran comparten patrones de ataques, por tanto, no suelen generarse entradas en esta lista tan comúnmente como en la de vulnerabilidades. CAPEC cuenta con unas 400 entradas (patrones) actualmente.
Cómo aprovechar la página del CAPEC
Cómo aprovechar la página del CAPEC
- En el campo "Search by ID" podemos realizar una búsqueda especifica de un patrón de ataque si conocemos valor sobre el cual fue registrado en esta lista.
- En el enlace "Methods of Attack View" el diccionario ofrece una clasificación de los patrones de ataque según los métodos que estos implementen. En la siguiente imagen se puede observar cómo CAPEC clasifica estos ataques y ofrece una vista de directorio en los que se puede ir desplegando cada uno de ellos y observar los distintos patrones.
Por cada patrón, se puede estudiar sus soluciones o mitigaciones comunes, los recursos necesarios, o las habilidades que son necesarias en el atacante para llevarlo a cabo.
- En el enlace "Submit Content" se pueden proponer nuevos patrones de ataques para ser registrados en esta lista. Las instrucciones vienen detalladas en la página web. Sin embargo vale la pena mencionar que todo el proceso se basa en rellenar el formulario que nos suministran dentro del enlace con los detalles del ataque. Entre los más relevantes se encuentran:
- Precondiciones necesarias.
- Métodos del ataque (analysis, brute force, flooding, injection, spoofing, etc).
- Conocimientos o habilidades requeridas para poder llevar a cabo este ataque.
- Posibles soluciones o mitigaciones.
- Debilidades asociadas (CWE-IDs)
- Referencias, donde se suele hacer referencia a publicaciones que detallen o corroboren la propuesta del patrón de ataque propuesto.
- En el enlace "Documents" se pueden encontrar todos los documentos públicos relacionados con CAPEC.
- En el enlace "Search the Site" pueden realizarse búsquedas específicas de patrones de ataques utilizando palabras clave. Esto es muy útil si no se conoce el CAPEC-ID del patrón pero se tiene una idea del nombre o las palabras que pueden estar relacionadas con él.
- Y por último, los enlaces "Vulnerabilities (CVE)" y ‘Software Weakness Types (CWE)’ que conectan esta lista con las dos antes explicadas para poder consultarlas en caso de ser necesario.
Las tres listas del MITRE mencionadas están estrechamente vinculadas, es decir, una vulnerabilidad es explotada gracias a una debilidad conseguida en un software, que a su vez ha sido aprovechada a través de un patrón de ataque. Por tanto cada vez que cualquiera de las tres listas recibe una nueva entrada, ésta es considerada, comprobada y estudiada, por lo que muy probablemente se puedan generar o complementar los registros en cualquiera de las otras.
En nuestras siguientes entradas hablaremos de las otras dos siglas relacionadas con el ámbito de las vulnerabilidades: CVSS y CVRF.
* Ocho siglas relacionadas con las vulnerabilidades (I): CVE
* Ocho siglas relacionadas con las vulnerabilidades (I): CVE
Umberto Francesco Schiavo