Julio Cesar Gaviria Jaramillo nos compartió en el #DragonJARCON 2020 una charla titulada "Analysis of Time Windows to detect Botnet’s Behaviour" cuya descripción es:
Las Botnet hoy en día son estructuras comúnmente utilizadas por cibercriminales con el fin de generar ataques de distinta índole. Realizamos una investigación con el fin de detectar patrones de comportamiento entre los servidores de C\u0026C y un host infectado utilizando distintos modelos de ML.","description":"La primera fase fue la adquisición de datos, donde utilizamos un proyecto llamado Stratosphere Lab creado por el investigador Sebastia Garcia para realizar su tesis de doctorado sobre detección de Botnets. Se utilizaron diferentes muestras de benignas y malignas provistas por ellos mas unas muestras benignas generadas por nosotros.
Realizamos el montaje del laboratorio de investigación, bajo una distribución Ubuntu, con el fin de pasar los archivos .pcaps a una serie de ventanas de tiempo para su posterior análisis. Se realizo un contraste entre el enfoque que se iba a utilizar, siendo este desde Netflows o desde Ventanas de tiempo. Debido a la complejidad de los Netflows, decidimos trabajar con las ventanas de tiempo, para lo cual realizamos 4 experimentos. Los experimentos fueron analizados y testeados con diferentes tipos de variables creadas por nosotros mismos en la investigación y otras usando las provistas por la utilidad de nfdump, pero variando la cantidad y el tipo de datos benignos y malignos con los cuales íbamos a realizar el entrenamiento y el testing.
Obtuvimos un excelente desempeño en los últimos 2 experimentos, donde pudimos evidenciar que la cantidad de VP y VN alcanzaba el 99% de exactitud. Por ultimo pudimos evidenciar comportamientos particulares de la comunicación C\u0026C y el host infectado, donde existen claras diferencias entre los protocolos y puertos utilizados por los botmaster y las comunicaciones benignas. Nuestro siguiente paso es desarollar una herramienta que permita a un host verificar si es o no un zombie, donde esté sera notificado via correo electronico si llega a ser un positivo para infectado!
-----------------------------------------------------------------------------------------------
Youtube: DragonJARtv (http://bit.ly/DragonJARtv)
Facebook: La.Comunidad.DragonJAR (http://bit.ly/DragonJARfb)
Twitter: @DragonJAR (http://bit.ly/DragonJARt)
Instagram: Dragon.JAR (http://bit.ly/DragonJARig)
Discord: https://invite.gg/DragonJAR
Blog: Comunidad DragonJAR (http://bit.ly/DragonJAR)
-----------------------------------------------------------------------------------------------
3. Christian Urcuqui MSc
Security Data Scientist
Investigador - U ICESI
Director de TI - Quantil S.A.S
ulcamilo@gmail.com
https://github.com/urcuqui
Julio Cesar Gaviria J
Aspirante Ing. Sistemas - U ICESI
Junior Developer
ITEFECTIVOS S.A.S
julio.gaviria@correo.icesi.edu.co
https://github.com/JulioCe98
Anderson Ramirez
Aspirante Ing. Sistemas - U ICESI
anderson.ramirez@correo.icesi.edu.co
https://github.com/anzeloo
3
5. 5
Amenazas digitales no registradas o
estudiadas
Malas prácticas y desconocimiento en
ciberseguridad
Requerimientos no funcionales
Vulnerabilidades
Nuevas tecnologías
El empleado infeliz / insiders
Motivación
8. 8
Las soluciones convencionales de ciberseguridad requieren de un
proceso de identificación, es decir, un esfuerzo humano que implica
tiempo y recursos
Motivación
9. 9
Uno de los caminos más prometedores es la aplicación de algoritmos de aprendizaje de
máquina (machine learning) que permitan ser más eficiente la labor de identificación de
nuevas amenazas
Motivación
Chan, P. K. & Lippmann, R. P. (2006). Machine learning for computer security. The Journal of Machine Learning Research, 7, 2669-
2672.
10. 10
IEEE COMPUTER SOCIETY. (2019). IEEE Computer Society’s Top 12 Technology Trends for
2020. Via https://www.computer.org/press-room/2019-news/ieee-computer-societys-top-12-technology-trends-
for-2020
11. 11
Resultados
MLSec y ciencia de datos
● Para detección de
Android Malware
● Detección de sitios web
maliciosos
● Detección de deepfake
● Detección de
cryptojacking
https://librerianacional.com/producto/ciberseguri
dad-un-enfoque-desde-la-ciencia-de-datos
https://www.icesi.edu.co/editorial/ci
berseguridad
13. 13
La ciencia de datos es un área que tiene como
objetivo obtener elementos de valor de distintas
fuentes de información a través de técnicas y
herramientas que incluyen métodos de estadística,
minería de datos, machine learning y visualización.
Es decir, esta área busca entender y encontrar
patrones en los datos con la finalidad de
generar modelos que representan al contexto
de la información.
Ciencia de datos
Urcuqui, Christian., García, M., Osorio, J., Navarro, A. Ciberseguridad, un
enfoque desde la ciencia de datos. (2018). Editorial Universidad ICESI
16. 16
Análisis estático Análisis
dinámico
Machine Learning
Busca que un sistema tenga la capacidad de aprender en entornos variables sin ser programado de
forma explícita.
● Aprendizaje supervisado
● Aprendizaje no supervisado
● Aprendizaje semisupervisado
● Aprendizaje por refuerzo
Urcuqui, C., & Navarro, A. (2016). Machine learning classifiers for
android malware analysis. In 2016 IEEE Colombian Conference on
Communications and Computing (COLCOM) (pp. 1-6). IEEE.
18. 18
Comunicación
López, C. C. U., Peña, M. G., Quintero, J. L. O., & Cadavid,
A. N. (2016). Antidefacement-State of art. Sistemas &
Telemática, 14(39), 9-27.
Urcuqui, C., Navarro, A., Osorio, J., & García, M. (2017).
Machine Learning Classifiers to Detect Malicious
Websites. In SSN (pp. 14-17).
Urcuqui, C, Villarreal, J., Belalcazar, A., Navarro, A. , &
Cely, J. (2018). Features to Detect Android Malware. In
2018 IEEE Colombian Conference on Communications
and Computing (COLCOM) (pp. 1-6). IEEE.
25. Adquisición
de datos
25
18
80
● Peticiones
HTTP Top
Alexa
Pcaps
benignos
Service title here
A peep at some distant orb has power to
raise and purify our thought
● Tráfico de
Comando y
Control
Pcaps
malignos
● En un archivo
CSV
Guardar los
pcaps
32. Enfoque
32
Decidimos escoger el enfoque
de ventanas de tiempo porque
superaba en muchos aspectos
al enfoque de trabajar con
netflows
Time
windows
Netflow
35. Variables del
dataset insumo
35
Gaviria, J. Julio Cesar, Ramirez H
Anderson (2020). Analysis of Time
Windows to Detect Botnets Behavior
Tesis de pregrado, ingeniera de
sistemas. Universidad Icesi.
36. 36
Preparación de datos &
modelos de ML
Knn
Naive
bayes
Regresión
logística
Random Forest
Classifier
38. 38
Fase III: Analitica
de Datos
En esta fase se procede a
transformar la materia prima
(los datos) en gráficos, los cuales
permitirán evidenciar patrones
de comportamiento propios de
las Botnets
39. Experimentos
39
I II
Experimento I Comparación
Datasets
Benignos
Experimento
II
“Cada vez que el hombre realiza un experimento, aprende más. Es
imposible que aprenda menos” Richard Buckminster Fuller
III
Experimento
III
Intermediate
40. Experimento I
40
519 Benignas
1319
Ventanas de
Tiempo
Descripción
Debido a la poca cantidad de
ventanas de tiempo benignas, se
procedió a utilizar una cantidad
equilibrada de datos con el fin de
obtener resultados no
desbalanceados.
800 Malignas
41. Experimento I
41
70% Training
100%
Datos de
testeo
Descripción
Se procedió hacer uso de la
técnica de holdout para separar
los datos de entrenamiento y
testeo
30% Testing
42. 42
Variables
P1_ib
Percentil 25% de todas las entradas de
bytes en la ventana de tiempo
Avg_bps
Promedio de bits por segundo en la
ventana de tiempo
First_sp
Top 1 de los puertos de origen en la
ventana de tiempo
Duration
Duración total de la ventana de tiempo
Number_dp
Número total de puertos de destino
usados en la ventana de tiempo
EDA + Feature
Importance
Total Variables - Feature Importance = 14
43. 43
Variables
First_Protocol
Top I de los protocolos usados en la
ventana de tiempo
Number_sp
Número total de puertos de origen
usados en la ventana de tiempo
Bytes
Número total de Bytes de la ventana de
tiempo
P2_ib
Percentil 50% de todas las entradas de
bytes en la ventana de tiempo
First_dp
Top I de los puertos de destino en la
ventana de tiempo
EDA + Feature
Importance
Total Variables - Feature Importance = 14
44. 44
Variables
P3_d
Percentil 75% de todas las duraciones
de la ventana de tiempo
Netflows
Cantidad de Netflows en la ventana de
tiempo
P3_ib
Percentil 75% de todas las entradas de
Bytes en la ventana de tiempo
Second_Protocol
Top II de los protocolos usados en la
ventana de tiempo
EDA + Feature
Importance
Total Variables - Feature Importance = 14
46. 46
Prueba Real
Experimento I
Una vez obtenidos los
resultados de entrenamiento
y testeo, se procede a probar
con datos REALES obtenidos
en nuestro laboratorio Ventanas de tiempo
Benignas
649
50. Variables P3_ib,
Number_sp y
Number_dp
50
Descripción
Existen diferencias significativas en el
número de puertos de origen y
destino usados en ambas
investigaciones. Además, el percentil
75% de bytes de ingreso presenta
una mayor distribución en nuestra
investigación
Percentil 75% de todas las
entradas de bytes en la
ventana de tiempo
Número total de puertos de
origen usados en la ventana de
tiempo
Número total de puertos de
destino usados en la ventana
de tiempo
51. Variable Netflows
51
Descripción
En esta variable existe una baja
concentración de Netflows en las
ventanas de tiempo que obtuvimos
con nuestro Lab. Stratosphere ofrece
un mayor número de conexiones p2p
Cantidad de Netflows en la ventana de tiempo
52. Variable
First_Protocol
52
Descripción
Podemos observar que el protocolo
UDP fue uno de los protocolos más
utilizados y tanto en los datos de
Stratosphere como en los nuestros,
se presenta en grandes cantidades.
Sin embargo, el protocolo UDP tiene
más registros en los datos de
Stratosphere y TCP tiene más
registros en los datos generados por
nuestro laboratorio.
Nuestra Investigación
Stratosphere Lab
Top I de los protocolos
usados en la ventana de
tiempo
53. Variable
Second_Protocol
53
Descripción
Podemos observar que existe una alta
concentración de datos en el protocolo
TCP. Sin embargo, nuestros datos
presentan más registros TCP que
Stratosphere. De igual forma sucede en los
protocolos UDP e ICMP.
Sin embargo, Stratosphere presenta más
registros de datos en un protocolo no
evidenciado en nuestros registros, el cual
es el protocolo None. None es un protocolo
no identificado por la herramienta NFDUMP,
el cual es categorizado como un protocolo
desconocido.
Nuestra Investigación
Stratosphere Lab
Top II de los protocolos más
usados en la ventana de
tiempo
54. Experimento II
54
519 Benignas Stratosphere
2368
Ventanas de
Tiempo
Descripción
Se procedió a incluir los datos
obtenidos por nuestro laboratorio,
con el fin de entrenar de una
manera robusta los algoritmos de
Machine Learning
649 Benignas Nuestra
Investigación
1200 Malignas
55. 55
Variables
Bytes
Número total de Bytes en la ventana de
tiempo
Avg_pps
Promedio de paquetes por segundo en
la ventana de tiempo
Avg_bps
Promedio de bits por segundo en la
ventana de tiempo
P2_ib
Percentil 50% de todas las entradas de
Bytes en las ventanas de tiempo
Number_sp
Número total de puertos de origen
usados en las ventanas de tiempo
EDA + Feature
Importance
Total Variables - Feature Importance = 12
56. 56
Variables
Duration
Duración total de la ventana de tiempo
Number_dp
Número total de puertos de destino
usados en la ventana de tiempo
First-Protocol
Top I de los protocolos usados en la
ventana de tiempo
First_sp
Top I de los puertos de origen en la
ventana de tiempo
Netflows
Cantidad de Netflows en la ventana de
tiempo
EDA + Feature
Importance
Total Variables - Feature Importance = 12
57. 57
Variables
P3_d
Percentil 75% de todas las duraciones
en la ventana de tiempo
P3_ib
Percentil 75% de todas las entradas de
Bytes en la ventana de tiempo
EDA + Feature
Importance
Total Variables - Feature Importance = 12
60. Experimento III
60
Descripción
Este experimento permitió verificar la
calidad de nuestros modelos de ML.
Los datos que se pueden observar
corresponden a datos malignos y se
inyectaron directamente al aplicativo
con el fin de comprobar si
efectivamente eran detectados.
61. Experimento III
61
Descripción
Una vez comprobado los datasets
malignos, se procedió a realizar una
serie de pruebas con datos
“benignos”, extrayendolos
directamente de la red, variando la
cantidad de paquetes en las
muestras, con el fin de verificar aún
más los modelos
62. 62
Fase IV:
Aplicativo Web
En esta fase se procede a
desarrollar el aplicativo web, que
permitirá automatizar el proceso
de toma de muestras y
generación de predicciones
63. 63
El aplicativo permite ingresar con tu
correo electrónico, al cual enviará un
mensaje si efectivamente encuentra
un comportamiento anómalo
Command and
Control
Detector
Descripción
64. Command and
Control
Detector
64
Descripción
Permite a un usuario generar
predicciones acerca de si el tráfico que
presenta actualmente su red, posee
evidencias de comportamientos
propios de la fase de comando y
control de las Botnets.
66. 66
Resultados más
importantes
En este apartado se procede a
analizar y sacar conclusiones
sobre los resultados obtenidos
en el Experimento II de la
presente investigación
67. Variables
Avg_bps, Avg_pps
y
Bytes
67
Descripción
Los datos benignos poseen un rango
mucho mayor que los malignos.
Podemos explicar este comportamiento
en que:
● Las comunicaciones producidas por
servidores de C&C, tienden a enviar
periódicamente comandos de
sincronización, pero no desean
mantener conexiones que perduren
en el tiempo, a diferencia de las
comunicaciones normales
Promedio de bits por segundo en la ventana de tiempo
Promedio de paquetes por segundo en la ventana de tiempo
68. Variables
Avg_bps, Avg_pps
y
Bytes
68
Descripción
Los datos benignos poseen un rango
mucho mayor que los malignos.
Podemos explicar este comportamiento
en que:
● Las comunicaciones producidas por
servidores de C&C, tienden a enviar
periódicamente comandos de
sincronización, pero no desean
mantener conexiones que perduren
en el tiempo, a diferencia de las
comunicaciones normales
Número total de bytes en la ventana de tiempo
69. Variables
Duración y
Netflows
69
Descripción
En los gráficos de estas variables
podemos confirmar la hipótesis reflejada
en las la anterior presentación
Duración total de la ventana de tiempo
Cantidad total de Netflows en la ventana de tiempo
70. Variables
Number_dp y
Number_sp
70
Descripción
Podemos observar que los flujos
normales de datos utilizan un rango
mucho más amplio de puertos, definidos
en el tipo de comunicaciones y
protocolos que desean utilizar. En
cambio, las comunicaciones malignas
utilizan un número de puertos mucho
más bajo, debido a que los
cibercriminales de por sí ya conocen
cuales puertos son los más vulnerables
Número total de puertos de destino en la
ventana de tiempo
Número total de puertos de origen en la
ventana de tiempo
71. Variables
First_Protocol
71
Descripción
Podemos evidenciar que los datos
benignos utilizan protocolos como UDP,
TCP e ICMP para la trasmisión de datos
Las comunicaciones malignas pueden
transmitir su flujo de datos por medio de
estos mismos protocolos, pero la
diferencia radica en que también hacen
uso de protocolos como ICMP6 y un
protocolo no reconocido por la
herramienta de NFDUMP.
Top I de los protocolos más usados en las
ventanas de tiempo
72. Variables P1_ib y
p3_ib
72
Descripción
Podemos evidenciar que las
comunicaciones malignas presentan un
rango mucho mayor que los flujos
normales de datos. Podemos pensar que
esto se debe a que los servidores de C&C
periódicamente pueden obligar a los
“zombies“ a realizar diferentes tipos de
actividades ilícitas
Percentil 25% de todas las entradas de bytes en
la ventana de tiempo
Percentil 75% de todas las entradas de bytes en
la ventana de tiempo
73. Variable First_sp
73
Descripción
Podemos evidenciar que los datos
benignos utilizan frecuentemente puertos
como el 53 (DNS), 443 (HTTPS), 80 (HTTP)
y otros puertos relacionados con
protocolos TCP/UDP.
Sin embargo, podemos observar que en
los datos malignos existe un alto uso del
puerto 0, siguiéndole el 443 (HTTPS) y el
8080 (HTTP).
Benignos
Malignos
Top 1 de los puertos de origen en la ventana de
tiempo
75. Las conexiones
malignas
NO
perduran en el
tiempo
Netflows
Duration
“Cantidad de Netflows
en la ventana de tiempo”
“Duración total de la
ventana de tiempo”
75
76. Las conexiones
malignas
ya conocen
los puertos mas
vulnerables
Number_dp
Number_sp
“Número total de puertos
de origen usados en las
ventanas de tiempo”
“Número total de puertos
de destino usados en las
ventanas de tiempo”
76
78. y qué es ese
Protocolo
None?
First_Sp
Benignos
Malignos
“Top I de los puertos de
origen en la ventana de
tiempo”
78
79. ¿Puerto 0?
79
Descripción
La explicación del puerto 0 lo hace
realmente efectivo para los ataques de
agotamiento de ancho de banda DDoS
(Jones, 2013). Si la víctima intenta
bloquear el puerto 0, el equipo de reenvío
de red puede rechazar la ACL como
referencia a un puerto no legítimo y en
este caso podríamos pensar que los
servidores de C&C lo utilizan por esa
misma justificación.
Benignos
Malignos
Variable First_sp
80. 80
El uso de 259.346 ventanas de
tiempo permitió reducir almacenamiento y
procesamiento de datos, a diferencia de haber
trabajado con Netflows, lo cual permitió entrenar
modelos de ML con una detección entre 90.4 y 99.8%
El experimento II través del entrenamiento de 1.168
benignas y 1.200 malignas obtener al KNN y random
forest como los mejores modelos con una precisión
de 99.8% y kappa de 99.7%
A través del uso de 13 variables pudimos concluir que
las conexiones malignas conocen puertos más
vulnerables, no perduran en tiempo y evidencian
tráfico por puerto 0 como técnica para DDoS.
81. 81
El uso de 259.346 ventanas de
tiempo permitió reducir almacenamiento y
procesamiento de datos, a diferencia de haber
trabajado con Netflows, lo cual permitió entrenar
modelos de ML con una detección entre 90.4 y 99.8%
El experimento II través del entrenamiento de 1.168
benignas y 1.200 malignas obtener al KNN y random
forest como los mejores modelos con una precisión
de 99.8% y kappa de 99.7%
A través del uso de 13 variables pudimos concluir que
las conexiones malignas conocen puertos más
vulnerables, no perduran en tiempo y evidencian
tráfico por puerto 0 como técnica para DDoS.
82. 82
El uso de 259.346 ventanas de
tiempo permitió reducir almacenamiento y
procesamiento de datos, a diferencia de haber
trabajado con Netflows, lo cual permitió entrenar
modelos de ML con una detección entre 90.4 y 99.8%
El experimento II través del entrenamiento de 1.168
benignas y 1.200 malignas obtener al KNN y random
forest como los mejores modelos con una precisión
de 99.8% y kappa de 99.7%
A través del uso de 13 variables pudimos concluir que
las conexiones malignas conocen puertos más
vulnerables, no perduran en tiempo y evidencian
tráfico por puerto 0 como técnica para DDoS.
84. Muchas Gracias por
su atención!
84
Christian Urcuqui MSc
ulcamilo@gmail.com
https://github.com/urcuqui
Julio Cesar Gaviria
julio.gaviria@correo.icesi.edu.co
https://github.com/JulioCe98
Anderson Ramirez
anderson.ramirez@correo.icesi.edu.co
https://github.com/anzeloo