Proyecto Data Driven Security

1 Tratamiento de datos a partir de un scan realizado con Qualys

1.1 Carga del archivo con la fuente de datos

Primero de todo, cargamos el archivo que contiene las vulnerabilidades encontradas tras realizar un scan con Qualys

El archivo ha sido descargado como en formato csv desde la web de Qualys

1.2 Seleccionamos los datos relevantes

Una vez tenemos nuestro dataframe, procedemos a filtrar para quedarnos únicamente con aquellos datos que serán relevantes para nuestro caso de estudio.

Nos hemos quedado con los siguientes campos:

## [1] "IP"       "QID"      "Type"     "Severity" "CVE ID"

Podemos observar un ejemplo de estos datos:

IP QID Type Severity CVE ID
64.41.200.250 13038 Vuln 5 CVE-2014-6271
64.41.200.250 42007 Vuln 5 CVE-2008-0166
64.41.200.250 38626 Vuln 4 CVE-2016-2107
64.41.200.250 42430 Vuln 4 CVE-2014-0160
64.41.200.250 38626 Vuln 4 CVE-2016-2107

1.3 Clasificación en función del tipo de vulnerabilidad y severidad

Clasificamos en una tabla los tipos de vulnerabilidad y severidad, mostrando un contador que indica cuantos casos se han identificado

Veamos la tabla que obtenemos, para poder entender la relación con la gráfica que vendrá a continuación:

Type Severity Count
Ig 1 169
Practice 1 0
Vuln 1 8
Ig 2 26
Practice 2 7
Vuln 2 40
Ig 3 14
Practice 3 52
Vuln 3 32
Ig 4 0
Practice 4 12
Vuln 4 4
Ig 5 0
Practice 5 0
Vuln 5 7

1.4 Visualización gráfica de la clasificación por tipo de vulnerabilidad

Mostramos un gráfico que representa los valores de la tabla

1.5 Visualización gráfica de la clasificación por tipo de vulnerabilidad, severidad y total de casuísticas identificadas.

Mostramos un gráfico que representa el total de vulns encontradas en función de su tipo y severidad

2 Relación de los datos obtenidos en el scan con la Knowledge Base de Qualys

Cargamos ahora el fichero que contiene la información de la Knowledge Base de Qualys en un dataframe

El archivo ha sido descargado como en formato csv desde la web de Qualys

2.1 Filtrado del dataframe

Una vez tenemos nuestro dataframe, procedemos a filtrar para quedarnos únicamente con aquellos datos que serán relevantes las relaciones que nos interesan realizar.

Nos quedamos con los siguientes campos:

## [1] "QID"       "Category"  "Modified"  "Published" "CVSS Base" "CVE ID"

Dado que nos interesará mostrar una relación entre lo que se ha detectado en el scan e información disponible en la KnowledgeBase, en este caso queremos obtener una relación para conocer en base a un QID que CVSS le corresponde, eliminamos todos aquellas entradas que no tengan valor CVSS en la KnowledgeBase.

2.2 Juntamos ambos input (El scan de Qualys y la Knowlegdge Base) en un mismo dataframe

Los relacionamos por la columna QID que es común en ambos datos y nos permitirá obtener una correcta correlación entre ellos.

Filtramos de nuevo para tener unos datos que se adapten más a nuestras necesidades, dado que existíann algunas columnas como CVE ID que están duplicadas (ambos dataframes la contenian por igual)

Nos quedan finalmente los siguientes campos:

## [1] "QID"       "IP"        "Type"      "Severity"  "CVSS Base" "CVE ID"

2.3 Clasifica por tipo, CVSS y un contador

Clasificamos las vulnerabilidades encontradas por tipo, su valor CVSS y un contador para cada casuística.

Podemos observar la clasificación en la tabla a continuación:

Type CVSS Base Count
Ig 0 61
Practice 0 0
Vuln 0 9
Ig 1.2 0
Practice 1.2 1
Vuln 1.2 0
Ig 10 0
Practice 10 0
Vuln 10 3
Ig 2.6 0
Practice 2.6 3
Vuln 2.6 11
Ig 3.5 0
Practice 3.5 6
Vuln 3.5 0
Ig 4.3 0
Practice 4.3 6
Vuln 4.3 19
Ig 4.7 0
Practice 4.7 0
Vuln 4.7 1
Ig 5 0
Practice 5 19
Vuln 5 23
Ig 5.1 0
Practice 5.1 3
Vuln 5.1 0
Ig 5.4 0
Practice 5.4 0
Vuln 5.4 2
Ig 5.5 0
Practice 5.5 1
Vuln 5.5 0
Ig 5.8 0
Practice 5.8 4
Vuln 5.8 6
Ig 6.4 0
Practice 6.4 4
Vuln 6.4 10
Ig 6.5 0
Practice 6.5 2
Vuln 6.5 0
Ig 6.8 0
Practice 6.8 7
Vuln 6.8 0
Ig 6.9 0
Practice 6.9 2
Vuln 6.9 0
Ig 7.3 0
Practice 7.3 1
Vuln 7.3 0
Ig 7.5 0
Practice 7.5 10
Vuln 7.5 0
Ig 7.8 0
Practice 7.8 0
Vuln 7.8 3
Ig 8.5 0
Practice 8.5 1
Vuln 8.5 0
Ig 9.3 0
Practice 9.3 1
Vuln 9.3 4

2.4 Visualización gráfica de la clasificación por tipo de vulnerabilidad, CVSS y total de casuísticas identificadas.

Mostramos un gráfico que representa el número de vulnerabilidades encontradas en el scan y su CVSS según la Knowledge Base de Qualys

Ivan Muñoz Lois, Stela-Mihaela Chioveanu

2020-01-05