SlideShare una empresa de Scribd logo
1 de 47
Descargar para leer sin conexión
Introducción
Derivado del rápido tecnologismo desenfrenado y su
irresistible invasión en todo proceso enfocado en el buen vivir
de los seres humanos, los ciberataques se han incrementado
en todo el mundo, permitiendo la exposición de datos
sensibles.
Actualmente, aproximadamente el 90% de los dispositivos
conectados a una red (incluyendo los IoT) se cree pueden ser
atacados.
Introducción
Existe una gran cantidad de metodologías de evaluación y
detección de riesgos (vulnerabilidades), que son aplicados al
desarrollo y construcción de los dispositivos.
Muchos de estos métodos suelen ser privativos y
desarrollados específicamente por las mismas empresas que
crean los dispositivos.
Dentro de estas metodologías se encuentran las pruebas Fuzz.
Introducción
El trabajo que se presenta se enmarca dentro de la
investigación tecnológica orientada a la práctica
metodológica, permitiendo así proponer el desarrollo e
implementación de un fuzzer, que es la parte esencial de una
metodología fuzzing.
Introducción
El objetivo principal es elaborar una metodología basada en
fuzzing para la detección de vulnerabilidades en componentes
IoT.
● Investigar y analizar pruebas aplicadas a los dispositivos IoT.
● Desarrollo de un fuzzer.
● Analizar los resultados de las pruebas realizadas.
Marco teórico
Muchas de nuestras necesidades como seres humanos están
ligadas a la interacción con un dispositivo que debe de contar
con algún tipo de conexión a Internet.
Marco teórico
Internet de las Cosas (IoT), es un
término introducido en 1999 por Kevin
Ashton durante una presentación a
P&G™.
IoT un proceso de evolución dentro del
mundo de la tecnología, que ha invadido
desde la industria hasta el cuerpo
humano.
Referencia de la figura: Vermesan, O. & Friess, P. (2013). Internet of Things: Converging Technologies for Smart Environments and Integrated Ecosystems. River Publishers.
Marco teórico
Marco teórico
Internet de las Cosas es el paradigma
tecnológico más moderno y con un
crecimiento impresionante en la
actualidad, puede considerarse como
una red altamente interconectada de
entidades tecnológicas heterogéneas,
tales como, sensores, actuadores,
Internet, Cómputo en la Nube y algunas
de la infraestructura de comunicación
más moderna.
Referencia de la figura: Europe, O. (2020). ¿EN QUÉ GRANDES ENTORNOS ESTÁ SIENDO BENEFICIOSO EL USO DE IOT? Consultado desde
https://openexpoeurope.com/es/en-que-grandes-entornos-esta-siendo-beneficioso-el-uso-de-iot-informe-things-matter-de-telefonica/
Fuente: Elaboración propia
PROTOCOLOS
DE IoT
Marco teórico
Referencia de la figura: CLIPARTMAX. https://www.clipartmax.com/max/m2i8d3G6m2d3K9H7/
Marco teórico
Marco teórico
Proyecto: Desarrollo e Implementación de una Arquitectura de Iot (Internet-of-Things) segura, basado en
pruebas de penetración, utilizando modelos Fuzz y Sistemas de Detección con un IDS e IPS, con clave
5774.19-P aprobado en el año de 2019 por el Tecnológico Nacional de México (TecNM) en la
Convocatoria de Apoyo a la Investigación Científica y Tecnológica 2019 para los Institutos
Tecnológicos Federales, Descentralizados y Centros.
Fuente: Elaboración propia
Marco teórico
Pruebas de penetración (pentesting) son la aplicación/ejecución de una gran diversidad de
pruebas (ataques) dirigidos a diferentes entornos con la finalidad de encontrar la mayoría de
las vulnerabilidades posibles.
Debido a que se requieren demasiado conocimientos en una infinidad de tecnologías son los
expertos en seguridad (o hackers) los que aplican estas pruebas.
Las pruebas se clasifican dependiendo de la información que se tiene respecto del objetivo
en: Black-, White- y Grey-Box.
Godefroid, 2020; Sutton ,Greene y Amini, 2007
Fuente de la imagen: Elaboración Propia.
Godefroid, 2020; Sutton ,Greene y Amini, 2007
Fuente de la imagen: Elaboración Propia.
Marco teórico
Actualmente, es imposible desarrollar algún tipo de sistema sin que éste tenga
defectos, detectarlos y “explotarlos” son puntos básicos para las personas que
se dedican de manera legal e ilegal a esta tarea.
El término detección en el área de la seguridad informática lo podemos definir
como el "proceso de hacer consciente al usuario o sistema sobre la presencia de una
amenaza", dejando claro que esto no impide que la amenaza pueda causar o
haya causado algún daño (Pipa, 2008).
Las vulnerabilidades se pueden categorizar en 3 grandes grupos:
1. Fase de diseño,
2. Fase de implementación, y
3. Fase de operación.
Pipa, D. (2008). Intrusion Detection and Prevention: Immunologically Inspired Approaches. University of London. Consultado desde http : / /www. rhul . ac . uk /mathematics/techreports
Marco teórico
Existen técnicas o tipos de análisis para
el descubrimiento de vulnerabilidades,
entre ellas el Fuzzing, puesto que es una
herramienta “poderosa”.
Muchas compañías lo utilizan para
probar sus desarrollo.
La popularidad del fuzzing se debe a que
ha ido adoptando cualidades de
diferentes áreas de las ciencias
computacionales como son los
algoritmos genéticos, técnicas de
mutación de datos, etc.
Fuente de la imagen: Adaptada de Xavi. (2019). Fuzzing - Finding bugs using BooFuzz. Consultado desde https://xavibel.com/2019/06/23/fuzzing-how-to-find-bugs-using-boofuzz/
Marco teórico
Tabla elaborada con información recopilada durante la investigación y es propia del trabajo presentado..
Marco teórico
Python es un lenguaje de programación
dinámico, interpretado, multiplataforma
y multiparadigma.
Sintaxis de fácil aprendizaje.
Gran cantidad de librerías y soporte.
Lenguaje ideal para el desarrollo de
proyectos enfocados en la seguridad de la
información.
Referencia de la figura: Logo de Python, sitio web oficial de Python (www.python.org). Top 10 de lenguajes de programación, de l sitio webde la revista SPECTRUM de la IEEE; https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2020
Fuzz Testing (Fuzzing)
Barton Miller y su equipo de trabajo de la Universidad de Wisconsin-Madison
llama así por su descubrimiento casi accidental.
Durante una tormenta eléctrica en el año de 1988; observaron la impresión
de caracteres aleatorios en la línea de comandos al provocarse una
interferencia electromagnética durante la tormenta, lo que provocaba que los
programas ejecutados se bloquearan o comenzarán a trabajar de manera
errónea.
Fuzz Testing (Fuzzing)
Es un generador aleatorio
(semialetorio) de caracteres basado
en una “semilla”.
Aplicable en cualquier fase del
desarrollo de un producto.
Su implementación sigue la
metodología top-down, lo que obliga
a que ninguna de las etapas pueda
pasarse por alto.
Fuente de la imagen: Elaboración Propia.
Fuzz Testing (Fuzzing)
Para un desarrollador de software el
fuzzing le permite hacer software
mucho más robusto.
Los expertos en ciberseguridad lo
utilizan para saber si existen errores
que pueden ser potenciales y que
deben corregirse.
El hacker el fuzzing le permite
saber qué vulnerabilidades existen y
así explotarlas antes de que éstas
sean solucionadas o corregidas
(Wilson,2018).
Wilson, T. (2018). Evaluation of Fuzzing as a Test Method for an Embedded System(Electrical Engineering y Information Technology, Novia University of Applied Sciences / Yrkeshögskolan Novia).
Fuente de la imagen: Elaboración Propia.
Fuzz Testing (Fuzzing)
Clarke (2009) considera como
etapas opcionales dentro de la
metodología
● La Detección del objetivo,
● la Monitoreo y registro, y
● la Determinación de la
explotabilidad.
Clarke, T. (2009). Fuzzing for software vulnerability discovery. University of London. Consultado desde http://www.rhul.ac.uk/mathematics/techreports
Fuente de la imagen: Elaboración Propia.
Fuzz Testing (Fuzzing)
El Fuzzer, que es el componente
principal de este tipo de pruebas.
Está conformado por tres etapas
fundamentales que son:
1) Generación de los datos,
2) Transmisión de los datos, y
3) Monitoreo y registro
Fuente de la imagen: Elaboración Propia.
Fuzz Testing (Fuzzing)
Respecto a cómo se ha construido
el fuzzer, es como se pueden
clasificar este tipo de pruebas:
● Fuzzer basados en mutación.
● Fuzzer basados en
generación.
En la actualidad existen diferentes
situaciones donde se mezclan las
técnicas permitiendo la inexistencia
de una categorización (Wilson,
2018; Takanen y col., 2018; Clarke,
2009; Sutton y col., 2007).
Wilson, T. (2018). Evaluation of Fuzzing as a Test Method for an Embedded System (Electrical Engineering y Information Technology, Novia University of Applied Sciences / Yrkeshögskolan Novia).
Takanen, A., DeMont, J., Miller, C. & Kettunen, A. (2018). Fuzzing for Software Security Testing and Quality Assureance (A. Takanen, Ed.). Artech House.
Clarke, T. (2009). Fuzzing for software vulnerability discovery. University of London. Consultado desde http://www.rhul.ac.uk/mathematics/techreports
Sutton, M., Greene, A. & Amini, P. (2007). Fuzzing: brute force vulnerability discovery (M. Sutton, Ed.). Addison-Wesley.
Fuente de la imagen: Elaboración Propia.
Fuzz Testing (Fuzzing)
Fuzzer basado en mutación, o de
fuerza bruta, también se conocen
como dump fuzzer.
Poco o nulo conocimiento del
objetivo y sus entradas.
Rápidos y efectivos para producir
resultados.
Consumo alto de recursos de
cómputo y algoritmos sin
optimización.
Fuente de la imagen: Elaboración Propia.
Fuzz Testing (Fuzzing)
Fuzzer basado en generación, se
conocen como smart fuzzer.
Cierto nivel de conocimiento del
objetivo, permitiendo la creación de
frameworks.
Los datos generados preservan
ciertas estructuras pero con datos
inconsistentes.
Fuente de la imagen: Elaboración Propia.
Fuzz Testing (Fuzzing)
Los Random o blind fuzzer (Aleatorios), no requieren conocimientos
previos, permitiéndoles iniciar las pruebas con el mínimo esfuerzo.
No se limitan en el alcance que pueda tener la prueba, lo que permite la
viabilidad para generación de errores sobre los objetivos, o lo contrario nunca
encontrar combinaciones correctas para generación de error.
Desde 2007, salen las primeras implementaciones de los fuzzer evolutivos,
basados en la combinación de los algoritmos genéticos, los de
mutación-generación, etc. para entregar una mejor cobertura (DeMott,
Enbody y Punch, 2007; Hillman, 2013; Zhang, 2008).
DeMott, J. D., Enbody, R. J. & Punch, W. F. (2007). Revolutionizing the Field of Greybox Attack Surface Testing with Evolutionary Fuzzing. Black Hat and DEFCON 2007. Consultado desde https://www.
blackhat.com/presentations/bh-usa-07/DeMott_Enbody_and_Punch/Whitepaper/bh-usa-07-demott_enbody_and_punch-WP.pdf
Hillman, M. (2013). 15 Minute Guide to Fuzzing. Consultado desde https://www.mwrinfosecurity.com/our-thinking/15-minute-guide-to-fuzzing/
Zhang, K. Y. (2008). Evaluating Software Security Aspects through Fuzzing and Genetic Algorithms (Tesis de maestría, Electrical Engineering, Mathematics y Computer Science). Consultado desde
https://repository.tudelft.nl/islandora/object/uuid:8660f6f6-248a-4c50-8127-e8f8b3aab582?collection=education
Fuzz Testing (Fuzzing)
Fuzzing locales, trabajan sobre el
objetivo (archivos, variables de
entorno, etc.), siendo los más
utilizados en los sistemas
embebidos.
Fuzzing remotos, trabajan a
distancia, son los más comunes
dentro del área de los servidores o
aplicaciones basadas en web.
Son más lentos que los locales.
Sus usos más comunes son a
través de los protocolos de
comunicación externa o interna a los
sistemas.
Fuzz Testing (Fuzzing)
Limitaciones de este tipo de pruebas:
● Errores mucho más complejos debido a checksums,
● Encriptación de información,
● Detección de lógicas deficientes,
● Daños en la memoria principal del sistema,
● No tiene conocimientos de lo que accedió.
Desencadenamiento de otro tipo de errores en los sistemas u objetivos
analizados.
ACM Fuzz
ACM Fuzz
ACM Fuzz
ACM Fuzz
Pruebas
Pruebas
Pruebas
Pruebas
Pruebas
Pruebas
Conclusiones
El desarrollo e implementación de dispositivos fabricados en masa con nulos
o muy bajos niveles o protocolos de seguridad, lleva a que sigan en aumento
los índices de delincuencia informática, esto se traduce en la exposición de
información sensible.
Dispositivos utilizados cuentan con muy poca información sobre las pruebas
a las que son sometidos.
Herramientas fuzzing con curvas de aprendizaje, aplicación y utilización muy
amplias.
Poca información (documentación) de muchas herramientas libres, caso
contrario a las heramientas privativas.
Conclusiones
Desarrollar una herramienta para fuzzing, es una tarea que lleva mucho
tiempo y requiere de conocimientos en diferentes campos de la computación.
Se recomienda:
● Delimitación de pruebas y el enfoque de las mismas.
● Implementación de firewalls, IDS/IPS, antivirus, etc.
● Inteligencia Artificial.
Conclusiones
La legalidad del fuzzing, es un tema muy controvertido, ya que la mayoría
de las leyes que protegen la propiedad intelectual de los sistemas no se
basan en prohibir los exámenes o pruebas injustificados como pueden ser las
que hace el mismo usuario final.
En general las pruebas tipo Black-Box son los que se refieren a los análisis
de entrada/salida, lo que puede servir para argumentar que el usuario está
actuando bajo total legalidad de uso del sistema, ya que no pretende conocer
o comprender lo que protege la ley, que es la lógica de programación del
sistema.
Por otro lado, no se estaría rompiendo ningúno de los puntos que se incluyen
en los documentos de legalidad de los sistema y tampoco de alguna ley
sobre Anti-Ingeniería Inversa.
Detección de vulnerabilidades IoT mediante fuzzing

Más contenido relacionado

Similar a Detección de vulnerabilidades IoT mediante fuzzing

Uso packet tracer y aplicaciones
Uso packet tracer y aplicacionesUso packet tracer y aplicaciones
Uso packet tracer y aplicacioneserizitoh
 
Nuevo presentación de microsoft office power point mejoramiento de primera pr...
Nuevo presentación de microsoft office power point mejoramiento de primera pr...Nuevo presentación de microsoft office power point mejoramiento de primera pr...
Nuevo presentación de microsoft office power point mejoramiento de primera pr...Pablo Rivas
 
Nuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointNuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointPablo Rivas
 
Fase6_100414_66_Colaborativo
Fase6_100414_66_ColaborativoFase6_100414_66_Colaborativo
Fase6_100414_66_ColaborativoWilliamBeltran007
 
03 seguridadeninformaticav1.0
03 seguridadeninformaticav1.003 seguridadeninformaticav1.0
03 seguridadeninformaticav1.0OttoLpezAguilar
 
03SeguridadenInformaticaV1.0.pptx
03SeguridadenInformaticaV1.0.pptx03SeguridadenInformaticaV1.0.pptx
03SeguridadenInformaticaV1.0.pptxJhon887166
 
Redes y seguridad
Redes y seguridadRedes y seguridad
Redes y seguridadRobertoRcSp
 
Seguridad y vulnerabilidad s.o - Security and vulnerability S.O
Seguridad y vulnerabilidad s.o - Security and vulnerability S.OSeguridad y vulnerabilidad s.o - Security and vulnerability S.O
Seguridad y vulnerabilidad s.o - Security and vulnerability S.Oangel soriano
 
9-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.5 Tendencia...
9-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.5 Tendencia...9-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.5 Tendencia...
9-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.5 Tendencia...Luis Fernando Aguas Bucheli
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informáticaelena valiente
 
Herramientas de analisis forense en delitos informaticos
Herramientas de analisis forense en delitos informaticosHerramientas de analisis forense en delitos informaticos
Herramientas de analisis forense en delitos informaticosCarmen Castillo
 
Seguridad informatica eliana galeano -- valeria loaiza.
Seguridad informatica eliana galeano  -- valeria loaiza.Seguridad informatica eliana galeano  -- valeria loaiza.
Seguridad informatica eliana galeano -- valeria loaiza.Once Redes
 

Similar a Detección de vulnerabilidades IoT mediante fuzzing (20)

Semillero hackingetico
Semillero hackingeticoSemillero hackingetico
Semillero hackingetico
 
Uso packet tracer y aplicaciones
Uso packet tracer y aplicacionesUso packet tracer y aplicaciones
Uso packet tracer y aplicaciones
 
Nuevo presentación de microsoft office power point mejoramiento de primera pr...
Nuevo presentación de microsoft office power point mejoramiento de primera pr...Nuevo presentación de microsoft office power point mejoramiento de primera pr...
Nuevo presentación de microsoft office power point mejoramiento de primera pr...
 
Nuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointNuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power point
 
Presentacion_1
Presentacion_1Presentacion_1
Presentacion_1
 
Fase6_100414_66_Colaborativo
Fase6_100414_66_ColaborativoFase6_100414_66_Colaborativo
Fase6_100414_66_Colaborativo
 
03 seguridadeninformaticav1.0
03 seguridadeninformaticav1.003 seguridadeninformaticav1.0
03 seguridadeninformaticav1.0
 
03SeguridadenInformaticaV1.0.pptx
03SeguridadenInformaticaV1.0.pptx03SeguridadenInformaticaV1.0.pptx
03SeguridadenInformaticaV1.0.pptx
 
Samuel Álvarez - Jornada Ciberseguridad COIT AEIT: Retos, Oportunidades Profe...
Samuel Álvarez - Jornada Ciberseguridad COIT AEIT: Retos, Oportunidades Profe...Samuel Álvarez - Jornada Ciberseguridad COIT AEIT: Retos, Oportunidades Profe...
Samuel Álvarez - Jornada Ciberseguridad COIT AEIT: Retos, Oportunidades Profe...
 
Redes y seguridad
Redes y seguridadRedes y seguridad
Redes y seguridad
 
Desarrollo de aplicaciones seguras
Desarrollo de aplicaciones segurasDesarrollo de aplicaciones seguras
Desarrollo de aplicaciones seguras
 
Seguridad y vulnerabilidad s.o - Security and vulnerability S.O
Seguridad y vulnerabilidad s.o - Security and vulnerability S.OSeguridad y vulnerabilidad s.o - Security and vulnerability S.O
Seguridad y vulnerabilidad s.o - Security and vulnerability S.O
 
Trab. inv
Trab. invTrab. inv
Trab. inv
 
9-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.5 Tendencia...
9-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.5 Tendencia...9-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.5 Tendencia...
9-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.5 Tendencia...
 
Seguridad 1
Seguridad 1Seguridad 1
Seguridad 1
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informática
 
Analizando un delito informático
Analizando un delito informáticoAnalizando un delito informático
Analizando un delito informático
 
Herramientas de analisis forense en delitos informaticos
Herramientas de analisis forense en delitos informaticosHerramientas de analisis forense en delitos informaticos
Herramientas de analisis forense en delitos informaticos
 
Tecnologias emergentes
Tecnologias emergentesTecnologias emergentes
Tecnologias emergentes
 
Seguridad informatica eliana galeano -- valeria loaiza.
Seguridad informatica eliana galeano  -- valeria loaiza.Seguridad informatica eliana galeano  -- valeria loaiza.
Seguridad informatica eliana galeano -- valeria loaiza.
 

Último

CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfMirthaFernandez12
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 

Último (20)

CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 

Detección de vulnerabilidades IoT mediante fuzzing

  • 1.
  • 2.
  • 3. Introducción Derivado del rápido tecnologismo desenfrenado y su irresistible invasión en todo proceso enfocado en el buen vivir de los seres humanos, los ciberataques se han incrementado en todo el mundo, permitiendo la exposición de datos sensibles. Actualmente, aproximadamente el 90% de los dispositivos conectados a una red (incluyendo los IoT) se cree pueden ser atacados.
  • 4. Introducción Existe una gran cantidad de metodologías de evaluación y detección de riesgos (vulnerabilidades), que son aplicados al desarrollo y construcción de los dispositivos. Muchos de estos métodos suelen ser privativos y desarrollados específicamente por las mismas empresas que crean los dispositivos. Dentro de estas metodologías se encuentran las pruebas Fuzz.
  • 5. Introducción El trabajo que se presenta se enmarca dentro de la investigación tecnológica orientada a la práctica metodológica, permitiendo así proponer el desarrollo e implementación de un fuzzer, que es la parte esencial de una metodología fuzzing.
  • 6. Introducción El objetivo principal es elaborar una metodología basada en fuzzing para la detección de vulnerabilidades en componentes IoT. ● Investigar y analizar pruebas aplicadas a los dispositivos IoT. ● Desarrollo de un fuzzer. ● Analizar los resultados de las pruebas realizadas.
  • 7. Marco teórico Muchas de nuestras necesidades como seres humanos están ligadas a la interacción con un dispositivo que debe de contar con algún tipo de conexión a Internet.
  • 8. Marco teórico Internet de las Cosas (IoT), es un término introducido en 1999 por Kevin Ashton durante una presentación a P&G™. IoT un proceso de evolución dentro del mundo de la tecnología, que ha invadido desde la industria hasta el cuerpo humano. Referencia de la figura: Vermesan, O. & Friess, P. (2013). Internet of Things: Converging Technologies for Smart Environments and Integrated Ecosystems. River Publishers.
  • 10. Marco teórico Internet de las Cosas es el paradigma tecnológico más moderno y con un crecimiento impresionante en la actualidad, puede considerarse como una red altamente interconectada de entidades tecnológicas heterogéneas, tales como, sensores, actuadores, Internet, Cómputo en la Nube y algunas de la infraestructura de comunicación más moderna. Referencia de la figura: Europe, O. (2020). ¿EN QUÉ GRANDES ENTORNOS ESTÁ SIENDO BENEFICIOSO EL USO DE IOT? Consultado desde https://openexpoeurope.com/es/en-que-grandes-entornos-esta-siendo-beneficioso-el-uso-de-iot-informe-things-matter-de-telefonica/
  • 12. Marco teórico Referencia de la figura: CLIPARTMAX. https://www.clipartmax.com/max/m2i8d3G6m2d3K9H7/
  • 14. Marco teórico Proyecto: Desarrollo e Implementación de una Arquitectura de Iot (Internet-of-Things) segura, basado en pruebas de penetración, utilizando modelos Fuzz y Sistemas de Detección con un IDS e IPS, con clave 5774.19-P aprobado en el año de 2019 por el Tecnológico Nacional de México (TecNM) en la Convocatoria de Apoyo a la Investigación Científica y Tecnológica 2019 para los Institutos Tecnológicos Federales, Descentralizados y Centros.
  • 16. Marco teórico Pruebas de penetración (pentesting) son la aplicación/ejecución de una gran diversidad de pruebas (ataques) dirigidos a diferentes entornos con la finalidad de encontrar la mayoría de las vulnerabilidades posibles. Debido a que se requieren demasiado conocimientos en una infinidad de tecnologías son los expertos en seguridad (o hackers) los que aplican estas pruebas. Las pruebas se clasifican dependiendo de la información que se tiene respecto del objetivo en: Black-, White- y Grey-Box. Godefroid, 2020; Sutton ,Greene y Amini, 2007 Fuente de la imagen: Elaboración Propia.
  • 17. Godefroid, 2020; Sutton ,Greene y Amini, 2007 Fuente de la imagen: Elaboración Propia.
  • 18. Marco teórico Actualmente, es imposible desarrollar algún tipo de sistema sin que éste tenga defectos, detectarlos y “explotarlos” son puntos básicos para las personas que se dedican de manera legal e ilegal a esta tarea. El término detección en el área de la seguridad informática lo podemos definir como el "proceso de hacer consciente al usuario o sistema sobre la presencia de una amenaza", dejando claro que esto no impide que la amenaza pueda causar o haya causado algún daño (Pipa, 2008). Las vulnerabilidades se pueden categorizar en 3 grandes grupos: 1. Fase de diseño, 2. Fase de implementación, y 3. Fase de operación. Pipa, D. (2008). Intrusion Detection and Prevention: Immunologically Inspired Approaches. University of London. Consultado desde http : / /www. rhul . ac . uk /mathematics/techreports
  • 19. Marco teórico Existen técnicas o tipos de análisis para el descubrimiento de vulnerabilidades, entre ellas el Fuzzing, puesto que es una herramienta “poderosa”. Muchas compañías lo utilizan para probar sus desarrollo. La popularidad del fuzzing se debe a que ha ido adoptando cualidades de diferentes áreas de las ciencias computacionales como son los algoritmos genéticos, técnicas de mutación de datos, etc. Fuente de la imagen: Adaptada de Xavi. (2019). Fuzzing - Finding bugs using BooFuzz. Consultado desde https://xavibel.com/2019/06/23/fuzzing-how-to-find-bugs-using-boofuzz/
  • 20. Marco teórico Tabla elaborada con información recopilada durante la investigación y es propia del trabajo presentado..
  • 21. Marco teórico Python es un lenguaje de programación dinámico, interpretado, multiplataforma y multiparadigma. Sintaxis de fácil aprendizaje. Gran cantidad de librerías y soporte. Lenguaje ideal para el desarrollo de proyectos enfocados en la seguridad de la información. Referencia de la figura: Logo de Python, sitio web oficial de Python (www.python.org). Top 10 de lenguajes de programación, de l sitio webde la revista SPECTRUM de la IEEE; https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2020
  • 22. Fuzz Testing (Fuzzing) Barton Miller y su equipo de trabajo de la Universidad de Wisconsin-Madison llama así por su descubrimiento casi accidental. Durante una tormenta eléctrica en el año de 1988; observaron la impresión de caracteres aleatorios en la línea de comandos al provocarse una interferencia electromagnética durante la tormenta, lo que provocaba que los programas ejecutados se bloquearan o comenzarán a trabajar de manera errónea.
  • 23. Fuzz Testing (Fuzzing) Es un generador aleatorio (semialetorio) de caracteres basado en una “semilla”. Aplicable en cualquier fase del desarrollo de un producto. Su implementación sigue la metodología top-down, lo que obliga a que ninguna de las etapas pueda pasarse por alto. Fuente de la imagen: Elaboración Propia.
  • 24. Fuzz Testing (Fuzzing) Para un desarrollador de software el fuzzing le permite hacer software mucho más robusto. Los expertos en ciberseguridad lo utilizan para saber si existen errores que pueden ser potenciales y que deben corregirse. El hacker el fuzzing le permite saber qué vulnerabilidades existen y así explotarlas antes de que éstas sean solucionadas o corregidas (Wilson,2018). Wilson, T. (2018). Evaluation of Fuzzing as a Test Method for an Embedded System(Electrical Engineering y Information Technology, Novia University of Applied Sciences / Yrkeshögskolan Novia). Fuente de la imagen: Elaboración Propia.
  • 25. Fuzz Testing (Fuzzing) Clarke (2009) considera como etapas opcionales dentro de la metodología ● La Detección del objetivo, ● la Monitoreo y registro, y ● la Determinación de la explotabilidad. Clarke, T. (2009). Fuzzing for software vulnerability discovery. University of London. Consultado desde http://www.rhul.ac.uk/mathematics/techreports Fuente de la imagen: Elaboración Propia.
  • 26. Fuzz Testing (Fuzzing) El Fuzzer, que es el componente principal de este tipo de pruebas. Está conformado por tres etapas fundamentales que son: 1) Generación de los datos, 2) Transmisión de los datos, y 3) Monitoreo y registro Fuente de la imagen: Elaboración Propia.
  • 27. Fuzz Testing (Fuzzing) Respecto a cómo se ha construido el fuzzer, es como se pueden clasificar este tipo de pruebas: ● Fuzzer basados en mutación. ● Fuzzer basados en generación. En la actualidad existen diferentes situaciones donde se mezclan las técnicas permitiendo la inexistencia de una categorización (Wilson, 2018; Takanen y col., 2018; Clarke, 2009; Sutton y col., 2007). Wilson, T. (2018). Evaluation of Fuzzing as a Test Method for an Embedded System (Electrical Engineering y Information Technology, Novia University of Applied Sciences / Yrkeshögskolan Novia). Takanen, A., DeMont, J., Miller, C. & Kettunen, A. (2018). Fuzzing for Software Security Testing and Quality Assureance (A. Takanen, Ed.). Artech House. Clarke, T. (2009). Fuzzing for software vulnerability discovery. University of London. Consultado desde http://www.rhul.ac.uk/mathematics/techreports Sutton, M., Greene, A. & Amini, P. (2007). Fuzzing: brute force vulnerability discovery (M. Sutton, Ed.). Addison-Wesley. Fuente de la imagen: Elaboración Propia.
  • 28. Fuzz Testing (Fuzzing) Fuzzer basado en mutación, o de fuerza bruta, también se conocen como dump fuzzer. Poco o nulo conocimiento del objetivo y sus entradas. Rápidos y efectivos para producir resultados. Consumo alto de recursos de cómputo y algoritmos sin optimización. Fuente de la imagen: Elaboración Propia.
  • 29. Fuzz Testing (Fuzzing) Fuzzer basado en generación, se conocen como smart fuzzer. Cierto nivel de conocimiento del objetivo, permitiendo la creación de frameworks. Los datos generados preservan ciertas estructuras pero con datos inconsistentes. Fuente de la imagen: Elaboración Propia.
  • 30. Fuzz Testing (Fuzzing) Los Random o blind fuzzer (Aleatorios), no requieren conocimientos previos, permitiéndoles iniciar las pruebas con el mínimo esfuerzo. No se limitan en el alcance que pueda tener la prueba, lo que permite la viabilidad para generación de errores sobre los objetivos, o lo contrario nunca encontrar combinaciones correctas para generación de error. Desde 2007, salen las primeras implementaciones de los fuzzer evolutivos, basados en la combinación de los algoritmos genéticos, los de mutación-generación, etc. para entregar una mejor cobertura (DeMott, Enbody y Punch, 2007; Hillman, 2013; Zhang, 2008). DeMott, J. D., Enbody, R. J. & Punch, W. F. (2007). Revolutionizing the Field of Greybox Attack Surface Testing with Evolutionary Fuzzing. Black Hat and DEFCON 2007. Consultado desde https://www. blackhat.com/presentations/bh-usa-07/DeMott_Enbody_and_Punch/Whitepaper/bh-usa-07-demott_enbody_and_punch-WP.pdf Hillman, M. (2013). 15 Minute Guide to Fuzzing. Consultado desde https://www.mwrinfosecurity.com/our-thinking/15-minute-guide-to-fuzzing/ Zhang, K. Y. (2008). Evaluating Software Security Aspects through Fuzzing and Genetic Algorithms (Tesis de maestría, Electrical Engineering, Mathematics y Computer Science). Consultado desde https://repository.tudelft.nl/islandora/object/uuid:8660f6f6-248a-4c50-8127-e8f8b3aab582?collection=education
  • 31. Fuzz Testing (Fuzzing) Fuzzing locales, trabajan sobre el objetivo (archivos, variables de entorno, etc.), siendo los más utilizados en los sistemas embebidos. Fuzzing remotos, trabajan a distancia, son los más comunes dentro del área de los servidores o aplicaciones basadas en web. Son más lentos que los locales. Sus usos más comunes son a través de los protocolos de comunicación externa o interna a los sistemas.
  • 32. Fuzz Testing (Fuzzing) Limitaciones de este tipo de pruebas: ● Errores mucho más complejos debido a checksums, ● Encriptación de información, ● Detección de lógicas deficientes, ● Daños en la memoria principal del sistema, ● No tiene conocimientos de lo que accedió. Desencadenamiento de otro tipo de errores en los sistemas u objetivos analizados.
  • 33.
  • 44. Conclusiones El desarrollo e implementación de dispositivos fabricados en masa con nulos o muy bajos niveles o protocolos de seguridad, lleva a que sigan en aumento los índices de delincuencia informática, esto se traduce en la exposición de información sensible. Dispositivos utilizados cuentan con muy poca información sobre las pruebas a las que son sometidos. Herramientas fuzzing con curvas de aprendizaje, aplicación y utilización muy amplias. Poca información (documentación) de muchas herramientas libres, caso contrario a las heramientas privativas.
  • 45. Conclusiones Desarrollar una herramienta para fuzzing, es una tarea que lleva mucho tiempo y requiere de conocimientos en diferentes campos de la computación. Se recomienda: ● Delimitación de pruebas y el enfoque de las mismas. ● Implementación de firewalls, IDS/IPS, antivirus, etc. ● Inteligencia Artificial.
  • 46. Conclusiones La legalidad del fuzzing, es un tema muy controvertido, ya que la mayoría de las leyes que protegen la propiedad intelectual de los sistemas no se basan en prohibir los exámenes o pruebas injustificados como pueden ser las que hace el mismo usuario final. En general las pruebas tipo Black-Box son los que se refieren a los análisis de entrada/salida, lo que puede servir para argumentar que el usuario está actuando bajo total legalidad de uso del sistema, ya que no pretende conocer o comprender lo que protege la ley, que es la lógica de programación del sistema. Por otro lado, no se estaría rompiendo ningúno de los puntos que se incluyen en los documentos de legalidad de los sistema y tampoco de alguna ley sobre Anti-Ingeniería Inversa.