Que é un CWE?
Referencia oficial
CWE significa Common Weakness Enumeration.
É un catálogo estandarizado de debilidades de software e hardware que poden levar a vulnerabilidades de seguridade.
Obxectivo de CWE
O propósito principal do proxecto CWE é identificar, describir e clasificar os tipos de erros de deseño ou programación que causan vulnerabilidades.
A diferenza do CVE (que identifica unha vulnerabilidade específica), o CWE define o patrón de debilidade subxacente que a provoca.
CVE vs CWE vs CVSS
| Sistema | Significado | Que mide / representa | Exemplo |
|---|---|---|---|
| CVE | Common Vulnerabilities and Exposures | Unha vulnerabilidade concreta e coñecida | CVE-2011-2523 |
| CWE | Common Weakness Enumeration | A causa raíz ou tipo de erro que permite esa vulnerabilidade | CWE-78 (Command Injection) |
| CVSS | Common Vulnerability Scoring System | A gravidade ou impacto cuantitativo da vulnerabilidade | CVSS 10.0 (Crítico) |
Resumo
- CVE → “Que vulnerabilidade é”.
- CWE → “Por que ocorre”.
- CVSS → “Canto de grave é”.
Exemplos comúns de CWE
| ID CWE | Nome da debilidade | Descrición resumida |
|---|---|---|
| CWE-79 | Cross-Site Scripting (XSS) | Inserción de código JavaScript malicioso en aplicacións web |
| CWE-89 | SQL Injection | Inxección de comandos SQL a través de entradas non validadas |
| CWE-120 | Buffer Overflow | Escritura de datos máis alá dos límites dun búfer |
| CWE-287 | Improper Authentication | Fallos no proceso de autenticación de usuarios |
| CWE-502 | Deserialization of Untrusted Data | Execución de código malicioso mediante obxectos deserializados |
| CWE-787 | Out-of-bounds Write | Escritura de memoria fóra dos límites asignados |
| CWE-22 | Path Traversal | Acceso a ficheiros ou directorios restrinxidos manipulando rutas |
| CWE-416 | Use After Free | Uso de memoria liberada, potencial execución de código |
| CWE-306 | Missing Authentication for Critical Function | Falta de autenticación nunha función sensible |
| CWE-200 | Information Exposure | Exposición non intencionada de información sensible |
Relación CVE ↔ CWE
Cada entrada de CVE adoita referenciar un ou máis CWE para indicar a natureza técnica da vulnerabilidade.
Exemplo práctico:
CVE-2011-2523 → CWE-78 (Improper Neutralization of Special Elements used in an OS Command)
Isto significa que a vulnerabilidade do vsftpd 2.3.4 foi causada por un erro de tipo Command Injection, é dicir, unha execución indebida de comandos no sistema operativo.
Estrutura dunha entrada CWE
Cada CWE inclúe:
- ID numérico (ex. CWE-89)
- Nome curto (SQL Injection)
- Descrición detallada
- Consecuencias posibles (ex. execución de código, fuga de datos)
- Métodos de detección (auditoría de código, fuzzing, escáneres)
- Técnicas de mitigación recomendadas
Onde consultar CWEs
- MITRE CWE Database
- NIST NVD - CWE List
- CAPEC (Common Attack Pattern Enumeration and Classification): complementa CWE describindo patróns de ataque comúns.
Por que é importante CWE?
O uso de CWE permite:
- Establecer boas prácticas de desenvolvemento seguro
- Priorizar correccións segundo o tipo de debilidade
- Mellorar a análise de código estático (SAST)
- Categorizar vulnerabilidades en informes técnicos e executivos
- Relacionar métricas de seguridade entre proxectos distintos
Exemplo aplicado
Caso: Vulnerabilidade CVE-2021-44228 (Log4Shell)
| Elemento | Valor |
|---|---|
| CVE | CVE-2021-44228 |
| CWE asociado | CWE-502 (Deserialization of Untrusted Data) |
| CVSS | 10.0 (Crítico) |
| Impacto | Execución remota de código |
Neste exemplo, o CWE-502 explica a causa técnica que fai posible o ataque, mentres que o CVSS mide a gravidade, e o CVE é o identificador público.
Conclusión
O CWE é o estándar que define as causas técnicas das vulnerabilidades.
Xunto con CVE (identificación) e CVSS (avaliación), forma o trío fundamental para comprender, documentar e mitigar riscos de seguridade de forma estruturada.
Resumo
- CWE describe a debilidade raíz,
- CVE nomea a vulnerabilidade concreta,
- CVSS mide a gravidade e o impacto.