SlideShare una empresa de Scribd logo
1 de 58
Descargar para leer sin conexión
Machine learning para
proyectos de seguridad
José Manuel Ortega @jmortegac
UA | October 4 - 6, 2019
About me
About me
Agenda
● Introducción al Machine Learning
● Algoritmos y SKLearn con python
● Casos de uso(Spam,fraude)
● Detección de anomalías
● Conclusiones y recursos
AI vs ML
La inteligencia artificial es un término utilizado para describir
un sistema que percibe su entorno y toma medidas para
maximizar las posibilidades de lograr sus objetivos.
El aprendizaje automático es un conjunto de técnicas que
permiten a las computadoras realizar tareas sin ser
programadas explícitamente. Los sistemas de ML generalizan a
partir de datos pasados para hacer predicciones sobre datos
futuros.
Tipos de ML
Tipos de ML
El aprendizaje supervisado se centra en modelos que predicen las
probabilidades de nuevos eventos en función de las probabilidades
de eventos observados previamente. Por ejemplo: determinar si un
archivo es malware o no.
Los modelos de aprendizaje no supervisado intentan encontrar
patrones en datos no etiquetados. Por ejemplo : determinar
cuántas familias de malware existen en el conjunto de datos y qué
archivos pertenecen a cada familia.
Aprendizaje supervisado
Clasificación: Los algoritmos de clasificación predicen a qué
categoría pertenece una entrada en función de las
probabilidades aprendidas de las entradas observadas
previamente. Por ejemplo: determinar si un archivo es
malware o no.
Regresión: los modelos de regresión (lineal, logística) predicen
un valor de salida continuo para una entrada determinada en
función de los valores de salida asociados con las entradas
anteriores. Por ejemplo: predecir cuántas muestras de
malware se detectarán el próximo mes.
Aprendizaje no supervisado
Clustering:Consiste en agrupar un conjunto de
objetos de tal manera que los objetos en el mismo
grupo(cluster) sean más similares entre sí que con los
de otros grupos
Detección de anomalías
ML en seguridad
Proceso de ML
Construir un modelo
● Recopilar muestras de datos de ambas clasificaciones para
entrenar el modelo de aprendizaje automático.
● Extraer características de cada ejemplo de entrenamiento para
representar el ejemplo numéricamente.
● Entrenar al sistema de aprendizaje automático para identificar
elementos que sigan un patrón específico.
● Probar el sistema con datos que no se utilizaron durante el
entrenamiento para evaluar su precisión o accuracy.
Extracción características
python Machine learning
Sklearn
Selección de características
Clustering
Clustering Sklearn
Árboles de decisión
Sklearn
● El proceso consiste en:
○ Elegir el modelo.
○ Seleccionar los hiperparámetros.
○ Extraer la matriz de características y vector de
predicción.
○ Ajustar el modelo a los datos (entrenamiento).
○ Predecir etiquetas para datos desconocidos.
Módulos python
● import numpy as np
● import pandas as pd
● from sklearn.model_selection import
train_test_split
● from sklearn.metrics import
accuracy_score , confusion_matrix
Entrenar nuestro modelo
● In [19]: from sklearn.tree import
DecisionTreeClassifier
● In [21]: model = DecisionTreeClassifier()
● In [22]: X_train , X_test , y_train , y_test =
train_test_split (X , y , test_size =0.2,
random_state =1)
● In [23]: model.fit (X_train ,y_train );
Evaluar nuestro modelo
● In [23]: y_pred = model.predict ( X_test )
● In [24]: accuracy_score ( y_pred , y_test )
● Out [24]: 0.9745454545454545
Evaluar nuestro modelo
● from sklearn.metrics import
confusion_matrix
● print(confusion_matrix(Y_test,Y_pred))
Matriz de confusión
Métricas
Sobreentrenamiento
● Para evitar el sobreajuste se divide
el dataset en dos partes:
○ Datos de entrenamiento
○ Datos de evaluación
● K-fold cross validation
Cross-validation
https://www.kaggle.com/ishansoni/sms-spam-collection-dataset
Detección de spam
Detección de spam
Detección de spam
Detección de spam
Detección de spam
Detección de fraude
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix,accuracy_score
df = pd.read_csv('payment_fraud.csv')
print(df.sample(3))
df = pd.get_dummies(df,columns=['paymentMethod'])
Y = df['label']
X = df.drop('label',axis=1)
X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.3)
clf = LogisticRegression()
clf.fit(X_train,Y_train)
Y_pred = clf.predict(X_test)
print(confusion_matrix(Y_test,Y_pred))
print("Precision",accuracy_score(Y_test,Y_test))
Detección de fraude
Detección de fraude
Detección de fraude
Detección de intrusiones
● La detección de intrusiones se cataloga principalmente en dos
categorías:
○ Basado en reglas y heurísticas: Genera un numero
reducido de falsos positivos. Detecta ataques
conocidos. No funciona correctamente para la
detección de nuevos ataques.
○ Basado en anomalías: Perfila el comportamiento
normal del sistema. Es capaz de detectar ataques
nuevos. Puede generar un numero mayor de falsos
positivos.
Detección de anomalías
● ¿Cómo saber si hay una anomalía en su red?
○ Exfiltración de datos
○ Inicios de sesión atípicos
● Observar eventos anómalos es raro, por lo que los
conjuntos de datos de anomalías son relativamente
pequeños.
● Mejor ajuste: aprendizaje no supervisado
Distribución Gaussiana
Distribución Gaussiana
● 1. Seleccionar características que pueden determinar
que un ejemplo sea anómalo.
● 2. Ajustamos los parámetros del modelo.
○ Se calculan los parámetros para cada una de
las características
● 3. Dado un nuevo ejemplo, computamos la
probabilidad p(x)
● 4. Si p(x) < epsilon*, lo consideramos una anomalía
Distribución Gaussiana
Distribución Gaussiana
Distribución Gaussiana
Distribución Gaussiana
Distribución Gaussiana
Isolation forest
Isolation forest
A-Detector: un IDS basado en anomalías
A-Detector: un IDS basado en anomalías
A-Detector: un IDS basado en anomalías
https://github.com/bschieche/python-anomaly-detection
https://nbviewer.jupyter.org/github/bschieche/python-anomaly
-detection/blob/master/anomaly_detection.ipynb
https://github.com/albertcthomas/anomaly_detection_lab
https://github.com/slrbl/Intrusion-and-anomaly-detection-with-
machine-learning
Repositorios con ejemplos
Conclusiones
Resources
Resources
Resources
Resources
Resources
● https://towardsdatascience.com/machine-learning-for-
cybersecurity-101-7822b802790b

Más contenido relacionado

La actualidad más candente

Utp sirn_s3_aprendizaje automatico
 Utp sirn_s3_aprendizaje automatico Utp sirn_s3_aprendizaje automatico
Utp sirn_s3_aprendizaje automatico
jcbp_peru
 
Argentesting 2019 - Machine learning en testing priorizacion de casos de pr...
Argentesting 2019 - Machine learning en testing   priorizacion de casos de pr...Argentesting 2019 - Machine learning en testing   priorizacion de casos de pr...
Argentesting 2019 - Machine learning en testing priorizacion de casos de pr...
Argentesting
 
Estructuras de datos_hexagonos
Estructuras de datos_hexagonosEstructuras de datos_hexagonos
Estructuras de datos_hexagonos
Lic_Tomas Maestria
 

La actualidad más candente (8)

Aprendizaje de máquina
Aprendizaje de máquinaAprendizaje de máquina
Aprendizaje de máquina
 
Utp sirn_s3_aprendizaje automatico
 Utp sirn_s3_aprendizaje automatico Utp sirn_s3_aprendizaje automatico
Utp sirn_s3_aprendizaje automatico
 
Argentesting 2019 - Machine learning en testing priorizacion de casos de pr...
Argentesting 2019 - Machine learning en testing   priorizacion de casos de pr...Argentesting 2019 - Machine learning en testing   priorizacion de casos de pr...
Argentesting 2019 - Machine learning en testing priorizacion de casos de pr...
 
Wilmer rodriguez
Wilmer rodriguezWilmer rodriguez
Wilmer rodriguez
 
Switch case operaciones
Switch case operacionesSwitch case operaciones
Switch case operaciones
 
Evaluacion2
Evaluacion2Evaluacion2
Evaluacion2
 
Introducción a Machine Learning
Introducción a Machine LearningIntroducción a Machine Learning
Introducción a Machine Learning
 
Estructuras de datos_hexagonos
Estructuras de datos_hexagonosEstructuras de datos_hexagonos
Estructuras de datos_hexagonos
 

Similar a Machine Learning para proyectos de seguridad(Pycon)

slides-espanol-curso-introduccion-machine-learning-por-mindsdb_8c5ff985-0581-...
slides-espanol-curso-introduccion-machine-learning-por-mindsdb_8c5ff985-0581-...slides-espanol-curso-introduccion-machine-learning-por-mindsdb_8c5ff985-0581-...
slides-espanol-curso-introduccion-machine-learning-por-mindsdb_8c5ff985-0581-...
elianatorales
 

Similar a Machine Learning para proyectos de seguridad(Pycon) (20)

Machine learning para proyectos de seguridad
Machine learning para proyectos de seguridadMachine learning para proyectos de seguridad
Machine learning para proyectos de seguridad
 
Modelamiento predictivo en Analítica Predictiva
Modelamiento predictivo en Analítica PredictivaModelamiento predictivo en Analítica Predictiva
Modelamiento predictivo en Analítica Predictiva
 
Introduccion-de-Machine-Learning-Con-Python (2).pptx
Introduccion-de-Machine-Learning-Con-Python (2).pptxIntroduccion-de-Machine-Learning-Con-Python (2).pptx
Introduccion-de-Machine-Learning-Con-Python (2).pptx
 
Machine learning
Machine learningMachine learning
Machine learning
 
ETAPAS DEL PROCESO DE SIMULACION
ETAPAS DEL PROCESO DE SIMULACIONETAPAS DEL PROCESO DE SIMULACION
ETAPAS DEL PROCESO DE SIMULACION
 
APRENDIZAJE SUPERVISADO Y APRENDIZAJE NO SUPERVISADO
APRENDIZAJE SUPERVISADO Y APRENDIZAJE NO SUPERVISADOAPRENDIZAJE SUPERVISADO Y APRENDIZAJE NO SUPERVISADO
APRENDIZAJE SUPERVISADO Y APRENDIZAJE NO SUPERVISADO
 
Introducción al Machine Learning con BigML
Introducción al Machine Learning con BigMLIntroducción al Machine Learning con BigML
Introducción al Machine Learning con BigML
 
Fundamentos IA
Fundamentos IAFundamentos IA
Fundamentos IA
 
Algoritmos Aprendizaje Automático.2012
Algoritmos Aprendizaje Automático.2012Algoritmos Aprendizaje Automático.2012
Algoritmos Aprendizaje Automático.2012
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
T1-AprendizajeAutomatico.pdf
T1-AprendizajeAutomatico.pdfT1-AprendizajeAutomatico.pdf
T1-AprendizajeAutomatico.pdf
 
Conceptos
ConceptosConceptos
Conceptos
 
slides-espanol-curso-introduccion-machine-learning-por-mindsdb_8c5ff985-0581-...
slides-espanol-curso-introduccion-machine-learning-por-mindsdb_8c5ff985-0581-...slides-espanol-curso-introduccion-machine-learning-por-mindsdb_8c5ff985-0581-...
slides-espanol-curso-introduccion-machine-learning-por-mindsdb_8c5ff985-0581-...
 
Machine Learning Para Definir Clusters De Usuarios Y Acciones Concretas. Medi...
Machine Learning Para Definir Clusters De Usuarios Y Acciones Concretas. Medi...Machine Learning Para Definir Clusters De Usuarios Y Acciones Concretas. Medi...
Machine Learning Para Definir Clusters De Usuarios Y Acciones Concretas. Medi...
 
Que es Azure Machine Learning 2015
Que es Azure Machine Learning 2015Que es Azure Machine Learning 2015
Que es Azure Machine Learning 2015
 
Joakin simulacion
Joakin simulacionJoakin simulacion
Joakin simulacion
 
Técnicas de Inteligencia Artificial
Técnicas de Inteligencia Artificial Técnicas de Inteligencia Artificial
Técnicas de Inteligencia Artificial
 
CIITEC Fundamentos de Deep Learning.pptx
CIITEC  Fundamentos de Deep Learning.pptxCIITEC  Fundamentos de Deep Learning.pptx
CIITEC Fundamentos de Deep Learning.pptx
 
ML QSAR Congreso de Química.pptx
ML QSAR Congreso de Química.pptxML QSAR Congreso de Química.pptx
ML QSAR Congreso de Química.pptx
 
Algunas consideraciones
Algunas consideracionesAlgunas consideraciones
Algunas consideraciones
 

Más de Jose Manuel Ortega Candel

Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops
Jose Manuel Ortega Candel
 

Más de Jose Manuel Ortega Candel (20)

Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf
Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdfAsegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf
Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf
 
PyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdfPyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdf
 
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
 
Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops
 
Evolution of security strategies in K8s environments.pdf
Evolution of security strategies in K8s environments.pdfEvolution of security strategies in K8s environments.pdf
Evolution of security strategies in K8s environments.pdf
 
Implementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdfImplementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdf
 
Computación distribuida usando Python
Computación distribuida usando PythonComputación distribuida usando Python
Computación distribuida usando Python
 
Seguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloudSeguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloud
 
Construyendo arquitecturas zero trust sobre entornos cloud
Construyendo arquitecturas zero trust sobre entornos cloud Construyendo arquitecturas zero trust sobre entornos cloud
Construyendo arquitecturas zero trust sobre entornos cloud
 
Tips and tricks for data science projects with Python
Tips and tricks for data science projects with Python Tips and tricks for data science projects with Python
Tips and tricks for data science projects with Python
 
Sharing secret keys in Docker containers and K8s
Sharing secret keys in Docker containers and K8sSharing secret keys in Docker containers and K8s
Sharing secret keys in Docker containers and K8s
 
Implementing cert-manager in K8s
Implementing cert-manager in K8sImplementing cert-manager in K8s
Implementing cert-manager in K8s
 
Python para equipos de ciberseguridad(pycones)
Python para equipos de ciberseguridad(pycones)Python para equipos de ciberseguridad(pycones)
Python para equipos de ciberseguridad(pycones)
 
Python para equipos de ciberseguridad
Python para equipos de ciberseguridad Python para equipos de ciberseguridad
Python para equipos de ciberseguridad
 
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanShodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
 
ELK para analistas de seguridad y equipos Blue Team
ELK para analistas de seguridad y equipos Blue TeamELK para analistas de seguridad y equipos Blue Team
ELK para analistas de seguridad y equipos Blue Team
 
Monitoring and managing Containers using Open Source tools
Monitoring and managing Containers using Open Source toolsMonitoring and managing Containers using Open Source tools
Monitoring and managing Containers using Open Source tools
 
Python Memory Management 101(Europython)
Python Memory Management 101(Europython)Python Memory Management 101(Europython)
Python Memory Management 101(Europython)
 
SecDevOps containers
SecDevOps containersSecDevOps containers
SecDevOps containers
 
Python memory managment. Deeping in Garbage collector
Python memory managment. Deeping in Garbage collectorPython memory managment. Deeping in Garbage collector
Python memory managment. Deeping in Garbage collector
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (10)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

Machine Learning para proyectos de seguridad(Pycon)