Blog

CWE – Una Lista de Debilidades de Software Conocidas

Continuando con la temática de las vulnerabilidades otro factor importante que el MITRE se encarga de registrar son las debilidades que comúnmente suelen afectar a las aplicaciones y las que dan pie a la explotación de las vulnerabilidades. Para ello esta organización tiene otra iniciativa llamada CWE en la que se encarga de registrar todas las debilidades de aplicaciones asociadas tanto a las vulnerabilidades registradas en la lista de CVE como a las recibidas por parte de terceros o colaboradores que las reporten.

cweLa iniciativa CWE (Common Weakness Enumeration) no es más que una lista de tipos de debilidades de software dirigida a desarrolladores y profesionales de la seguridad, creada al igual que CVE para unificar la descripción de las debilidades de seguridad asociadas a las aplicaciones en cuanto a arquitectura, diseño y código se refiere. Esta iniciativa podría considerarse también como un catálogo de debilidades documentadas que se suelen cometer programando, y que podría derivar en vulnerabilidades. Esta lista es muy utilizada por distintas herramientas de seguridad encargadas de identificar estas debilidades y su principal objetivo es promover la identificación, mitigación y prevencion de las vulnerabilidades.

Esta lista se encarga de satisfacer la necesidad que tienen las grandes empresas u organizaciones de conocer las distintas debilidades existentes. De esta manera, dichas empresas podrían comprobar y asegurar que sus productos no presenten fallos de seguridad ya conocidos. Esto repercute en los consumidores, ya que estos esperan que las soluciones compradas o contratadas estén correctamente protegidas frente a posibles fallos ya estudiados e identificados e incluso les permite utilizar este catálogo para analizar las posibles debilidades que pudiera presentar las soluciones adquiridas.

Esta lista nace con el fin de hacer frente a la diversidad de pensamiento sobre este asunto por parte de tres sectores: el académico, el comercial y el gubernamental. Las ventajas que ofrece esta lista son muchas, sin embargo entre las más importantes se encuentran por ejemplo las vistas que ofrece entre las que se encuentran:

  • Una vista 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.

Además, en la web del CWE se pueden encontrar una serie de elementos que pueden ser muy útil entre los que se encuentran los siguientes:

cwe_site

  • Se pueden realizar búsquedas especificas en casos de conocer el CWE-ID de una debilidad especifica utilizando el campo “Search by ID”.
  • Se puede consultar toda la documentación publica relacionada a esta iniciativa en el enlace “Documents”.
  • En los enlaces a “CWSS” y “CWRAF” se pueden consultar la información relacionada al estas dos siglas de las que se hablaran en nuestros próximos artículos.
  • 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 el enlace “Search the Site” pueden realizarse búsquedas de debilidades registradas en esta lista utilizando palabras clave que puede estar contenidas tanto en el título como en la información que estas vulnerabilidades pueden almacenar, en caso de no tener la certeza de que debilidad se está buscando o de no conocer su CWE-ID.
  • También hay un enlace de la base de datos de vulnerabilidades del NIST (NVD, National Vulnerability Database.
  • Con los enlaces “Vulnerabilitties (CVE)” y “Attack Patterns (CAPEC)” puede consultarse las otras dos listas del MITRE.

La información que es almacenada por esta lista es clasificada para cada debilidad de la siguiente manera.

cwe_example

En la que se observa que una debilidad suele tener una serie de características como por ejemplo una descripción, consecuencias comunes documentadas, patrones de ataque, ejemplos demostrativos, probabilidad concreta de que sea explotada, etc. Toda esta información permite saber a qué se enfrenta un usuario cuando ante una debilidad en el código.
Un dato interesante que mencionar es que el número debilidades registradas es considerablemente menor al número de vulnerabilidades. Sin importar la gran frecuencia con la que se suelen registrar las vulnerabilidades, muchas comparten las mismas debilidades de software y algunas otras, al presentarse en software propietario no se reporta la debilidad asociada a la vulnerabilidad para no exponer parte del código de la aplicación. Mientras que en CVE existen poco mas de 60.000 vulnerabilidades documentadas, en CWE hasta la fecha se tienen registradas 717 debilidades conocidas.

cve_vs_cwe

Por último, en años anteriores solían publicar un top 25 de las debilidades más peligrosas conocidas hasta la fecha, sin embargo desde 2011 no se han publicado nuevas versiones de esta lista. La última fue publicada el 13 de septiembre de 2011 y entre ellas se encuentran:

  • 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.
  • CWE-862: Missing Authorization.
  • CWE-798: Use of Hard-coded Credentials.
  • CWE-311: Missing Encryption of Sensitive Data.
  • CWE-434: Unrestricted Upload of File with Dangerous Type.
  • CWE-807: Reliance on Untrusted Inputs in a Security Decision.
  • CWE-250: Execution with Unnecessary Privileges.
  • CWE-352: Cross-Site Request Forgery (CSRF).
  • CWE-22: Improper Limitation of a Pathname to a Restricted Directory (‘Path Traversal’).
  • CWE-494: Download of Code Without Integrity Check.
  • CWE-863: Incorrect Authorization.
  • CWE-829: Inclusion of Functionality from Untrusted Control Sphere.
  • CWE-732: Incorrect Permission Assignment for Critical Resource.
  • CWE-676: Use of Potentially Dangerous Function.
  • CWE-327: Use of a Broken or Risky Cryptographic Algorithm.
  • CWE-131: Incorrect Calculation of Buffer Size.
  • CWE-307: Improper Restriction of Excessive Authentication Attempts.
  • CWE-601: URL Redirection to Untrusted Site (‘Open Redirect’).
  • CWE-134: Uncontrolled Format String.
  • CWE-190: Integer Overflow or Wraparound.
  • CWE-759: Use of a One-Way Hash without a Salt.

En nuestras próximas entradas conoceremos algunas otras siglas relacionadas con este mundo de la seguridad y que podrían pareceros interesante. Hasta la próxima!!!.

Umberto – umberto@highsec.es – @lTikkOl

Leave a Reply

*

    No Twitter Messages