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:

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:

  1. 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.

  2. Referenciar CVE-IDs SAP a CWE IDs y verificar Top 2023 CWE | Top 25 Most Dangerous Software Weaknesses

  3. 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:

  1. Recopilación de CVE-IDs del SAP Security Patch Day
  2. Procesamiento de CVE-IDs utilizando herramientas especializadas como CVE_Prioritizer y SploitScan
  3. Creación de un dataset robusto para exploración y análisis
  4. Filtrado de elementos por prioridad y criticidad
  5. Verificación de datos del Known Exploited Vulnerabilities Catalog (KEV)
  6. 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

image

SploitScan

➜ python sploitscan.py \
    CVE-2021-38163 CVE-2019-0388 CVE-2021-42061 CVE-2021-44233 \
    -m 'cisa,epss,prio' -e 'json'

Image

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.

image

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


--- config: sankey: showValues: False width: 700 height: 500 --- sankey-beta 2021, SAP Hot News, 27 2021, SAP High, 34 2021, SAP Medium, 99 2021, SAP Low, 4 2022, SAP Hot News, 27 2022, SAP High, 38 2022, SAP Medium, 95 2022, SAP Low, 4 2023, SAP Hot News, 28 2023, SAP High, 39 2023, SAP Medium, 109 2023, SAP Low, 13 2024, SAP Hot News, 8 2024, SAP High, 23 2024, SAP Medium, 83 2024, SAP Low, 10 SAP Hot News, Priority A+, 26 SAP Hot News, Priority B, 29 SAP Hot News, Priority D, 35 SAP High, Priority A+, 7 SAP High, Priority B, 65 SAP High, Priority D, 62 SAP Medium, Priority A+, 4 SAP Medium, Priority B, 96 SAP Medium, Priority D, 286 SAP Low, Priority D, 31 Priority A+, Priority 1+, 27 Priority A+, Priority 2, 10 Priority B, Priority 2, 178 Priority B, Priority 4, 12 Priority D, Priority 2, 211 Priority D, Priority 4, 203


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.

image

Sploitscan

Sploitscan directamente informa los datos del catálogo KEV

image

image

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

Github repo ➜

image



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.

image

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

Image





rhnux :: | | :: Made with MkDocs + Simple Blog