Top Banner
Herramienta para monitoreo de bitácoras relacionadas con servicios web José Juan Armenta Segura Diego Alfonso Serrano Guillén
35

Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

May 16, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Herramienta para monitoreo de

bitácoras relacionadas con servicios

web

José Juan Armenta Segura

Diego Alfonso Serrano Guillén

Page 2: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Contar con una herramienta que permita

reportar eventos de seguridad relacionados con:

• Servidor web

• Servidor de base de datos

Objetivo

Page 3: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Los eventos que se reportarán son:

• Cross-site scripting (XSS)

• SQL injection (SQLi)

• Web crawler

• Defacement

• Path traversal

Objetivo

Page 4: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

• Inyección de código malicioso del lado del cliente

• Robo de credenciales

• Modificar el contenido de un sitio web

XSS (Cross-site scripting)

Page 5: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

• Acceso a directorios o archivos fuera de la raíz del

directorio del sitio

Path traversal

/

bin/ etc/ tmp/ var/

website

images scripts html

Page 6: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Path traversal

Page 7: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

• Herramienta para explorar sitios web automáticamente

• Usado por buscadores y atacantes

• Realiza muchas peticiones

Web crawler

Page 8: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

• Inserción de sentencias SQL

• Manipular una base de datos

SQLi

Page 9: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Defacement

Page 10: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

• Para el entorno de pruebas

Herramientas utilizadas

Page 11: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Herramientas utilizadas

• Para generar datos en las bitácoras

Page 12: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Funcionamiento

Obtener actividad reciente

Análisis

Reporte de hallazgos

Page 13: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Obtener actividad reciente

ModSecurity 2.9 (Proxy inverso)

Servidor Web (Apache 2.2)

Servidor de Base de Datos

PostgreSQL 9.1

Cliente

Page 14: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Obtener actividad reciente

Cliente

SSH

SSH

Page 15: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Se obtienen las líneas

de la actividad

reciente.

Se cambio el formato

de las bitácoras de

Apache.

Obtener actividad reciente

Page 16: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Obtener actividad reciente

192.168.35.129 - - [25/Oct/2016:03:54:11 -0500] "GET

/ejemplo.php?name=diego%3Cscript%3Ealert(%22XSS%22)%3C/s

cript%3E HTTP/1.1" 200 332 "-" "Mozilla/5.0 (Windows NT 6.3;

WOW64; rv:49.0) Gecko/20100101 Firefox/49.0“

192.168.35.129<-->25/Oct/2016:03:54:11<-->GET<--

>/ejemplo.php?name=diego%3Cscript%3Ealert(%22XSS%22)%3C/

script%3E<-->HTTP/1.1<-->200<-->332<-->-<-->Mozilla/5.0

(Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101

Firefox/49.0

Antes:

Después:

Page 17: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

• Codificación en hexadecimal

y doble codificación

• Case insensitive

• No se analizan los datos enviados por POST

• Se puede indicar la omisión de algún ataque

Análisis

%3Cscript%253Ealert('XSS')%253C%252FsCrIpT%253E

<script>alert('XSS')</sCrIpT>

Page 18: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

• Existencia de variables en la URL

• ¿Existe una etiqueta HTML en alguna variable?

• Lista negra ( script, src, entre otros)

Análisis: XSS reflejado

192.168.35.129<-->25/Oct/2016:03:54:11<-->GET<--

>/ejemplo.php?name=diego%3Cscript%3Ealert(%22XSS%22)%3C/

script%3E

Page 19: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

• ¿El recurso solicitado tiene variables?

• Lista negra (../, etc/, tmp/, home/, etc/passwd)

Análisis: Path traversal

192.168.35.129<-->25/Oct/2016:03:54:11<-->GET<--

>/ejemplo.php?name=../etc/passwd

Page 20: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

• Múltiples peticiones del mismo cliente

• Promedio de peticiones por segundo (3 por segundo)

• User-Agent de buscadores

• Solicitud de recursos distintos

Análisis: Crawler

Page 21: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

• Buscar los métodos PUT o DELETE en la petición

• Considerar si se tiene WebDAV instalado

• No hay más elementos para detectar este ataque

Análisis: Defacement

Page 22: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Análisis: SQLi

• Buscar sentencias SQL dentro de la petición

• No clasifica el tipo de ataque SQLi (Blind, DOM, entre

otros)

• Relaciona la entrada de la bitácora del servidor web

con la del servidor de base de datos

Page 23: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Herramienta

Page 24: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Herramienta

Page 25: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Herramienta

Page 26: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Herramienta

Page 27: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Reporte de hallazgos

´

Page 28: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Reporte de hallazgos

Page 29: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Reporte de hallazgos

Page 30: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Reporte de hallazgos

Page 31: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Reporte de hallazgos

Page 32: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Reporte de hallazgos

Page 33: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Beneficios

• No requiere de gran cantidad de procesamiento

• Flexible a modificaciones

• No requiere configuraciones extra en las bitácoras

• Puede analizar bitácoras de distintas instancias

Page 34: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

Oportunidades de mejora

• Tiempo de ejecución

• Detección de herramientas

• Clasificar los tipos de ataques

• Determinar si el intento exitoso o fallido

Page 35: Herramienta para monitoreo de bitácoras …...Servidor de Base de Datos PostgreSQL 9.1 Cliente Obtener actividad reciente Cliente SSH SSH Se obtienen las líneas de la actividad reciente.

¡GRACIAS!

Diego Alfonso Serrano Guillén

UPIICSA (IPN)

[email protected]

José Juan Armenta Segura

Departamento de Seguridad en Sistemas

UNAM-CERT

[email protected]