Vulnerabilities | Análisis de CVE-IDs
Introducción:
Los sistemas SAP, tanto en la nube como on-premise, son componentes críticos en los procesos de negocio de numerosas empresas. Como toda tecnología, no están exentos de riesgos y vulnerabilidades que podrían comprometer su seguridad. El incremento general de vulnerabilidades de seguridad, plantea la necesidad de un análisis detallado para comprender cuan expuestos están realmente y gestionar las tareas de seguridad en base a prioridades.
En este post, exploramos las vulnerabilidades en sistemas SAP, utilizando datos históricos reportados por la compañía. Clasificamos y analizamos estas vulnerabilidades según su severidad y urgencia, con el objetivo de automatizar la asignación de prioridades de la seguridad en SAP.
Al concluir esta lectura, esperamos que obtengas una visión clara sobre las tendencias en los riesgos de seguridad y pensar soluciones innovadoras para la gestión de vulnerabilidades en los entornos SAP.
Motivación:
Charla de Pablo Artuso: P4CHAINS: Encapsulating P4 in SSL to full compromise SAP systems over the Internet
Las empresas por lo general
no priorizan a SAP en la gestión de Vulnerabilidades
. Es necesario una extensa coordinación transversal a nivel negocio, muchas veces difícil de justificar.
Frente a estos desafíos, la adopción y maduración de una cultura DevSecOps se presenta como una solución prometedora para incorporar los entornos SAP al compliance de S-SDLC, identificarlos en un scope ASPM y mejorar la gestión de vulnerabilidades y parches.
Objetivo:
-
Incorporar métricas % EPSS (Exploit Prediction Scoring System) a los ítems de SAP Security Patch Day para sumar una nueva variable al momento de gestionar la prioridad de vulnerabilidades en nuestros entornos SAP.
-
Referenciar CVE-IDs SAP a CWE IDs y verificar Top 2023 CWE | Top 25 Most Dangerous Software Weaknesses
-
Iniciar un análisis y monitoreo continuo de la información contenida en los CVE-IDs asociados a SAP.
Metodología:
Para alcanzar los objetivos, seguiremos estos pasos metódicos:
- Recopilación de CVE-IDs del SAP Security Patch Day
- Procesamiento de CVE-IDs utilizando herramientas especializadas como CVE_Prioritizer y SploitScan
- Creación de un dataset robusto para exploración y análisis
- Filtrado de elementos por prioridad y criticidad
- Verificación de datos del Known Exploited Vulnerabilities Catalog (KEV)
- Desarrollo de un modelo para automatizar la asignación de prioridades
1. Get & Clean Data
Desde SAP Security Patch Day parseamos archivos pdf y pages html para obtener los CVE-IDs reportados.
SAP pdf files & html MM-2024
- 2024 SAP Security Patch Day up to August
- 2023 SAP Security Patch Day
- 2022 SAP Security Patch Day
- 2021 SAP Security Patch Day
2. Run Scripts CVE-IDs
Posterior a obtener los CVE-IDs por año, ejecutamos por consola CVE_Prioritizer
y SploiScan
y generamos un archivo de salida csv o json.
CVE_Prioritizer
➜ cve_prioritizer \
-l CVE-2021-38163,CVE-2019-0388,CVE-2021-42061,CVE-2021-44233 \
-v -o sap_cve_2021.csv
SploitScan
➜ python sploitscan.py \
CVE-2021-38163 CVE-2019-0388 CVE-2021-42061 CVE-2021-44233 \
-m 'cisa,epss,prio' -e 'json'
3. Exploratory Data Analysis Report
Finalmente aplicando un merge sobre los outputs CVE_Prioritizer y Sploitscan creamos un dataset (file csv) y ejecutamos un eda report automático.
Data Types
Column Name | Inferred Data Type |
---|---|
cve_id | categorical |
descriptions | categorical |
product_l | categorical |
epss_l | numeric |
percentile | numeric |
priority_l | categorical |
cweId | categorical |
note_id | categorical |
Note# | categorical |
Title | categorical |
Priority | categorical |
CVSS | numeric |
priority | categorical |
epss | numeric |
cvss | numeric |
cvss_version | categorical |
cvss_severity | categorical |
kev | categorical |
kev_source | categorical |
cpe | categorical |
vendor | categorical |
product | categorical |
vector | categorical |
sap_note_year | categorical |
Preview - Example row
cve_id CVE-2021-42063
datePublished 2021-12-14 15:44:11+00:00
dateUpdated 2024-08-04 03:22:25.975000+00:00
descriptions A security vulnerability has been discovered i...
product_l SAP Knowledge Warehouse
epss_l 0.00556
percentile 0.77867
priority_l A+
cweId Cross-Site Scripting
note_id []
Note# 3102769
Title [CVE-2021-42063] Cross-Site Scripting (XSS) vu...
Priority High
CVSS 8.8
priority Priority 1+
epss 0.00556
cvss 6.1
cvss_version CVSS 3.1
cvss_severity MEDIUM
kev True
kev_source VULNCHECK
cpe cpe:2.3:a:sap:knowledge_warehouse:7.30:*:*:*:*...
vendor sap
product knowledge_warehouse
vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
sap_note_year 2021
Overview of Numeric Features
Verificamos los valores para EPSS y CVSS. (ref)
-
epss: EPSS is estimating the probability of exploitation activity, which is just one of many considerations in a risk-based approach to vulnerability management. Because of that, EPSS should never be treated as a risk score. Other factors, such as how accessible vulnerable assets are to attackers, the type of weakness the vulnerability presents, the asset's purpose and value, etc., may all be factors to consider when prioritizing which vulnerabilities should be addressed.
-
cvss: The Common Vulnerability Scoring System (CVSS) is an open framework for communicating the characteristics and severity of software vulnerabilities. CVSS consists of four metric groups: Base, Threat, Environmental, and Supplemental.
count | mean | std | min | 25% | 50% | 75% | max | |
---|---|---|---|---|---|---|---|---|
epss_l | 641 | 0.032358 | 0.167752 | 0.000420 | 0.000520 | 0.000750 | 0.001050 | 0.974830 |
epss | 641 | 0.032358 | 0.167752 | 0.000420 | 0.000520 | 0.000750 | 0.001050 | 0.974830 |
percentile | 641 | 0.368527 | 0.227977 | 0.050860 | 0.212140 | 0.332120 | 0.436510 | 0.999780 |
cvss | 641 | 6.66318253 | 1.68593961 | 2.4 | 5.4 | 6.3 | 7.8 | 10.0 |
CVSS | 641 | 6.523401 | 1.836611 | 2.0 | 5.3 | 6.3 | 7.7 | 10.0 |
Los valores EPSS de ambos procesos coinciden de forma exacta y con valores en promedio bajos. Se puede (mal) interpretar que el conjunto de CVE-IDs de SAP tiene baja probabilidad de ataques en los próximos 30 días para el total de CVE-IDs analizados.
Los scores CVSS de SAP y css (Sploitscan), presentan diferencias significativas, sin embargo se asemejan el promedio y estándar del dataset.
Using EPSS and CVSS Together: The figure below shows the correlation between EPSS and CVSS scores based on data from 05-16-2021. Recall that EPSS produces prediction scores between 0 and 1 (0 and 100%) where higher scores suggest higher probability of exploit. Each dot represents one or more vulnerabilities (CVEs). Some vulnerabilities are labeled for illustrative purposes.
4. Filter by Priotiory
Los procesos CVE_Prioritizer y Sploitscan asignan la prioridad y criticidad a partir de los resultados de EPSS, CVSS y KEV (CISA's Known Exploited Vulnerabilities).
Priority
CVE_Prioritizer utiliza los siguientes valores: Priority (1+, 1, 2, 3, 4) ➜ Dataset namecolumn: ´priority´
priority - categorical
Most frequent values
Priority 2 | 399 (62.25 %) |
Priority 4 | 215 (33.54 %) |
Priority 1+ | 27 (4.21 %) |
Other values count | 0 (0.00 %) |
Null | 0 (0.00 %) |
Ref: CVE Priority
Priority | Description |
---|---|
Priority 1+ | CVEs found in CISA's KEV |
Priority 1 | CVEs in the Upper Right Quadrant |
Priority 2 | CVEs in the Lower Right Quadrant |
Priority 3 | CVEs in the Upper Left Quadrant |
Priority 4 | CVEs in the Lower Left Quadrant |
Nota: Los outputs de CVE_Priority para este listado de CVE-IDs (dataset), presentan un sesgo para clasificar CVEs en el cuadrante superior derecho (Priority 1) y cuadrante superior izquierdo (Priority 3). Pot lo tanto, en las sucesivas ejecuciones iterativas, es necesario ajustar los valores de threshold. - EPSS threshold (Default 0.2) - CVSS threshold (Default 6.0)
Sploitscan utiliza letras sin prefijo: (A+, A, B, C, D) ➜ Dataset namecolumn: ´priority_l´
priority_l - categorical
Most frequent values
D | 414 (64.59 %) |
B | 190 (29.64 %) |
A+ | 37 (5.77 %) |
Other values count | 0 (0.00 %) |
Null | 0 (0.00 %) |
El sistema de priorización de parches de SploitScan proporciona un enfoque estratégico para gestionar la prioridad de parches en función de la gravedad y la explotabilidad de las vulnerabilidades. Utiliza el el modelo de CVE Prioritizer (mismo sesgo para asignar prioridades A y C), sumando mejoras para manejar exploits disponibles públicamente.
-
A+ Priority Assigned to CVEs listed in CISA's KEV or those with publicly available exploits. This reflects the highest risk and urgency for patching.
-
A to D Priority: Based on a combination of CVSS scores and EPSS probability percentages. The decision matrix is as follows:
- A: CVSS score >= 6.0 and EPSS score >= 0.2. High severity with a significant probability of exploitation.
- B: CVSS score >= 6.0 but EPSS score < 0.2. High severity but lower probability of exploitation.
- C: CVSS score < 6.0 and EPSS score >= 0.2. Lower severity but higher probability of exploitation.
- D: CVSS score < 6.0 and EPSS score < 0.2. Lower severity and lower probability of exploitation.
Ambos procesos en promedio, asigna la maxima prioridad (1+ | A+) a los mismos CVE-IDs. No obstante después de varias ejecuciones, seleccione el ejemplo de arriba para recordar que no siempre es así.
En conclusión y al menos en la primera etapa es recomendable ejecutar ambos procesos y poder compararlos.
Priority - categorical
Most frequent values
Medium | 386 (60.22 %) |
High | 134 (20.90 %) |
Hot News | 89 (13.88 %) |
Low | 31 (4.84 %) |
Very High | 1 (0.16 %) - (Se reasigna a Hot News) |
Other values count | 0 (0.00 %) |
Null | 0 (0.00 %) |
Priority Values
SAP
vs Sploitscan
vs CVE_Prioritizer
Parallel Categories Diagram
Values Overview
Observaciones generales de otros features.
cve_id - categorical
Most frequent values
CVE-2022-22965 | 7 (1.09 %) |
CVE-2021-44228 | 7 (1.09 %) |
CVE-2022-22542 | 5 (0.78 %) |
CVE-2024-34689 | 4 (0.62 %) |
CVE-2022-28215 | 4 (0.62 %) |
Other values count | 614 (95.79 %) |
Null | 0 (0.00 %) |
product_l - categorical
Most frequent values
SAP BusinessObjects Business Intelligence Platform | 19 (2.96 %) |
SAP Business One | 15 (2.34 %) |
SAP 3D Visual Enterprise Viewer | 14 (2.18 %) |
SAP NetWeaver Enterprise Portal | 12 (1.87 %) |
SAP Commerce | 11 (1.72 %) |
Other values count | 562 (87.68 %) |
Null | 8 (1.25 %) |
cvss_severity - categorical
Most frequent values
MEDIUM | 385 (60.06 %) |
HIGH | 168 (26.21 %) |
CRITICAL | 76 (11.86 %) |
LOW | 12 (1.87 %) |
Other values count | 0 (0.00 %) |
Null | 0 (0.00 %) |
vendor - categorical
Most frequent values
sap | 545 (85.02 %) |
apache | 12 (1.87 %) |
vmware | 7 (1.09 %) |
xstream_project | 2 (0.31 %) |
sqlite | 2 (0.31 %) |
Other values count | 15 (2.34 %) |
Null | 58 (9.05 %) |
product - categorical
Most frequent values
netweaver_application_server_abap | 55 (8.58 %) |
netweaver_application_server_java | 26 (4.06 %) |
businessobjects_business_intelligence | 26 (4.06 %) |
business_one | 20 (3.12 %) |
netweaver | 19 (2.96 %) |
Other values count | 437 (68.17 %) |
Null | 58 (9.05 %) |
cweId - categorical
Most frequent values
CWE-79 | 98 (15.29 %) - Rank 2 2023 CWE Top 25 Most Dangerous Software Weaknesses |
CWE-862 | 67 (10.45 %) - Rank 11 2023 CWE Top 25 Most Dangerous Software Weaknesses |
CWE-200 | 48 (7.49 %) |
Information Disclosure | 19 (2.96 %) |
CWE-601 | 17 (2.65 %) |
Other values count | 381 (59.44 %) |
Null | 11 (1.72 %) |
sap_note_year - categorical
Most frequent values
2023 | 189 (29.49 %) |
2021 | 164 (25.59 %) |
2022 | 164 (25.59 %) |
2024 | 124 (19.34 %) |
Other values count | 0 (0.00 %) |
Null | 0 (0.00 %) |
5. Verificar datos de KEV
KVE = Known Exploited Vulnerabilities Catalog
Ambos procesos (CVE_Prioritizer | Sploitscan)
al verificar que el CVE-ID figura en catálogo KEV, directamente asignan máxima prioridad (Priority 1+ | A+)
.
CVE_Prioritizer
CVE_Prioritizer asigna TRUE | FALSE
para informar KEV.
Sploitscan
Sploitscan directamente informa los datos del catálogo KEV
kev - categorical
Most frequent values
True | 27 (4.21 %) |
Other values count | 0 (0.00 %) |
Null | 614 (95.79 %) |
6. Automatizar prioridades
Asignación y análisis de prioridades
Note: App en desarrollo - https://dub.sh/sap-compass-vulns
Modelo inicial PoC:
Model_01
Compass Vulns
SAP Compass Vulns - Beta Online
Conclusiones:
La incorporación de nuevas características para aumentar el rango de clasificación en las prioridades, mejora significativamente la evaluación de riesgos en los procesos de negocio SAP. Esto facilita a los Owners y Stakeholders la toma de decisiones para asumir los riesgos o justificar las paradas en los sistemas SAP para ejecutar tareas de mantenimiento y seguridad. Además, permite un análisis profundo de los CVEs asociados a las SAP Notes, proporcionando una comprensión más completa de las vulnerabilidades en relación con otros activos y procesos del Scope.
Como observación inicial para automatizar las tareas, debemos señalar que ambos procesos (CVE_Prioritizer y Sploitscan)
, con este dataset de SAP Notes#, coinciden en presentar un sesgo de clasificación
con las categorías Priority 1 | Priority 3
y A | C
respectivamente y donde SAP asigna Priority Medium.
El modelo inicial
utilizado en la PoC con sus umbrales y parámetros por default, reasigna prioridades altas al 25% del conjunto total SAP Priority Medium
.
Si tenemos en cuenta la charla de Mateo Martinez en la DragonJar Explotando las hermosas vulnerabilidades medias y bajas que quedan olvidadas por todos 🚫👀 donde explica la necesidad de tratar CVEs asignados a este tipo de categorías, podemos mejorar considerablemente la gestión de vulnerabilidades y reducir riegos asociados.
A continuación vemos un ejemplo sobre el chart Parallel Category Diagram.
SAP Priority Medium
Seleccionamos priority medium en SAP Compass Vulns - Beta Online y en Parallel Category Diagram podemos observar features cvssSeverity, Sploitscan y CVE_CVE_Prioritizer
para asignar prioridades de acuerdo a nuestro scope de SAP.
En una tercera etapa y con un mayor conocimiento de los CVE asociados a nuestro Scope de SAP, podemos aprovechar `prompts AI para crear reportes, automatizar tareas, generar flujos de trabajo socless, etc.
Adjuntamos ejemplos de reportes en formato markdown y diagramas en mermaid, solicitados a distintos prompts AI.
Nota: Para SAP Threat Modeling recomendamos probar
redrays-io SAP-Threat-Modeling
.
The SAP Threat Modeling Tool is an on-premises open-source web application designed to analyze and visualize connections between SAP systems, helping users identify security risks and vulnerabilities. With features like inputting SAP credentials, scanning for connections, and visualizing the network.
Próximos pasos:
Agregar el modelo SSVC: Stakeholder-Specific Vulnerability Categorization
que permite procesar y clasificar en relación a nuestro contexto / scope.
DevSecOps Pipelines SAP | Git & Abap.
Próximo post
ollama
LLM pipelines DevSecOps