Tutoriales y Manuales
Entradas Mensuales
-
▼
2024
(Total:
1110
)
-
▼
noviembre
(Total:
96
)
- Australia prohíbe el uso de las redes sociales a m...
- Una cámara de seguridad capta como un robot con In...
- WebTunnels de Tor: otra forma de evitar la censura
- Bootkitty: primer Bootkit UEFI para Linux
- elementary OS 8 con más seguridad, mejor gestión m...
- La botnet Matrix realiza ataques DDoS masivos expl...
- Un profesor suspende a dos alumnos por usar la IA,...
- Artistas filtran Sora, el generador de vídeos de O...
- TikTok bloqueará los filtros de belleza a los adol...
- ¿Qué ocurre con el dominio geográfico de un país c...
- Un nuevo ciberataque de ransomware al CSIC en Espa...
- FreeCAD 1.0, primera versión «completa» de esta al...
- Grupo ruso RomCom realiza ciberataques en España y...
- Detectan un malware que utiliza un driver de Avast
- Investigadores hacen jailbreak a robots para causa...
- Tiny11 Core 24H2, Windows 11 compacto y sin bloatw...
- Suecia apostó en 2009 por sustituir libros por ord...
- Meta cierra 2 millones de cuentas ligadas a estafa...
- Análisis técnico del keylogger e infostealer HawkEye
- Vulnerabilidades graves en Winzip y 7-Zip
- Fallo en el diseño de la VPN de Fortinet oculta at...
- Cómo instalar Pi.Alert en una Raspberry Pi
- Espías rusos saltaron de una red a otra a través d...
- WhatsApp activa la transcripción de audios para fa...
- Un chaval de 13 años crea una criptomoneda y logra...
- Cómo pasar tus contactos de X / Twitter a Bluesky
- Listado de comandos en Windows 10 - 11
- Un fan de Interstellar crea un TARS en miniatura y...
- El Departamento de Justicia de EE.UU. dice que Goo...
- El Constitucional de España absuelve finalmente a ...
- Vulnerabilidad crítica de Laravel
- Nuevo ransomware Helldown
- Vulnerabilidad Crítica en Routers D-Link Fuera de ...
- Microsoft presenta Windows 365 Link, su Mini-PC pa...
- Aprovechan servidores Jupyter mal configurados par...
- Apple soluciona dos vulnerabilidades Zero-Days en ...
- Microsoft prepara un ordenador cuántico de uso com...
- IA logra operar sin intervención humana
- 12 aplicaciones de Android graban conversaciones s...
- Next SBC, el espectacular mini PC que te cabe en l...
- El chatbot Gemini de Google le responde a un usuar...
- Alemania y Finlandia denuncian el corte del cable ...
- Una vulnerabilidad en el complemento SSL de WordPr...
- EE.UU. quiere obligar a Google a vender Chrome por...
- ¿Qué significa PON, GPON, XG-PON, 10G-EPON…?
- Comandos de Docker básicos y avanzados
- Memorias DIMM vs UDIMM vs CUDIMM vs RDIMM vs SODIMM
- Microsoft confirma que está creando una IA con 100...
- AsusWRT 4.0 - 5.0 (Firmware 3.0.0.6)
- Qué es LLaMA, cómo funciona y cómo se puede probar...
- Qué placa base elegir: Guía de compras para Intel ...
- Las mejores distribuciones de Linux para usuarios ...
- Llega a España el malware ToxicPanda: un troyano b...
- Extraen datos de casi 500 millones de usuarios de ...
- La Guardia Civil desactiva Cristal Azul, el canal ...
- Google presenta dos funciones seguridad para Andro...
- OPNsense: un router y firewall gratuito
- El SSD más rápido del mundo con 60 TB con una velo...
- Guía de compra de todas las RaspBerry Pi
- Qué es una NPU, cómo funciona y por qué es importa...
- El peligro de los dominio .zip
- AMD despedirá al 4 % de su plantilla para centrars...
- Informe dark web de Google
- Apple Maps sin conexión: cómo descargar mapas y us...
- Hachazos y amputaciones por el Wifi: violenta trif...
- VMware Workstation y Fusion ahora son gratis
- Aprovechan el calor de la PS5 para mantener la piz...
- Guía compra AMD Ryzen 3, Ryzen 5, Ryzen 7 y Ryzen 9
- 50 cosas que puedes pedirle a Alexa y no conocías
- Mover archivos más rápido en Windows con "Enviar a"
- La Comisión Europea pide a Apple que elimine el ge...
- Grabar pantalla en macOS
- Apple presenta Share Item Location, la función par...
- Microsoft cambiará actualizaciones de Windows para...
- D-Link no solucionará una vulnerabilidad crítica q...
- Polvo cerámico mejora hasta un 72% el rendimiento ...
- Concatenación de ficheros comprimidos para infecta...
- Filtran datos de empleados de Amazon, McDonald's, ...
- El código IUA escrito en la roseta de fibra óptica...
- Fibra luminosa, descubierta por accidente, podría ...
- Canadá prohíbe el uso de TikTok
- Google tumbó la web de este matrimonio por hacerle...
- Visualizar con Grafana los eventos del IDS/IPS Sur...
- China está usando la IA de Meta para fines militares
- Multa de 85 millones a Telefónica en Estados Unido...
- Vulnerabilidad API de la web de Kia permitió a ata...
- Google revela el primer fallo de seguridad descubi...
- La IA llega a Paint y Notepad en Windows 11
- Alemania redacta una ley para proteger a los inves...
- Microsoft ralentizó el Panel de Control de Windows...
- Guías Equivalencias de procesadores Intel y AMD [G...
- Roban 15 mil credenciales en Git y hay 10 mil repo...
- Publican información del creador del infostealer "...
- Vulnerabilidad RCE en MS SharePoint explotada acti...
- Panel de Control Grafana para el WAF de Apache-Ngi...
- Cómo visualizar los registros de Apache/Nginx en m...
- ► septiembre (Total: 50 )
-
▼
noviembre
(Total:
96
)
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
Arm Holdings Plc es una empresa británica dedicada al diseño de software y semiconductores . Con sede en Cambridge, Reino Unido, tiene una ...
-
Dado que Unbound DNS en OPNsense no soporta DNS sobre HTTPS (DoH) directamente, fue necesario utilizar el plugin DNSCrypt-Proxy. El plugin t...
Visualizar con Grafana los eventos del IDS/IPS Suricata (Eve.json)
Desde hace ya varios años estamos utilizando el magnífico honeypot T-Pot basado en contenedores Docker, en una RaspBerry Pi 4 y la cantidad de eventos registrados es sumamente elevada. Por defecto T-Pot lleva ELK (ElasticSearch-LogStash y Kibana) para visualizar los datos registrados. En esta ocasión utilizaremos el fichero de registro de Suricata (eve.json) par mostrar gráficamente con Grafana las estadísticas fundamentales (reglas, atacantes, etc). Para ello utilizaremos Promtail y Loki, para procesar (ingerir) el fichero Json generado por Suricata.
¿Qué es un IDS?
Es la primera pieza que voy a montar en el SOC, ya que me permitirá analizar el tráfico de red para buscar datos maliciosos o sospechosos y aplicar reglas preconfiguradas. También nos puede dar datos como máquinas que se conectan a ciertas direcciones IPs, puertos específicos e incluso servidores.
Un IDS tiene dos tareas fundamentales:
- Prevención: escuchando el tráfico de red o un PC, mediante sensores e identificar ataques aplicando reglas, mediante reconocimiento de patrones de ataque.
- Reacción: detecta patrones de intrusión tanto en el comportamiento del sistema como en la red.
Este sistema complementa a por ejemplo un cortafuegos en el que abrimos un puerto 80 o 443 a un servidor web, ya que nos permite detectar de intrusiones en el sistema o vulnerabilidades.
Hay dos tipos de IDS por comportamiento:
- Pasivo: Genera entradas para registrar las intrusiones y manda alertas
- Activo: Hace lo mismo que un Pasivo, y a su vez es capaz de bloquear IPs o cerrar puertos de comunicación, por ejemplo.
A nivel funcional, también hay varios tipos de IDS según de donde recogen el dato:
- HIDS: Sistema de detección de intrusos, que recogen datos de usuarios y servicios de una máquina determinada
- IDPS: Sistema de detección de intrusos en red, que hacen una escucha en modo promiscuo en la red
- SIDS: Sistema de detección de intrusos basados en firmas
- Y los sistemas de detección de intrusos basados en anomalías
Suricata es más que un IDS,
básicamente se trata de un motor de red de código abierto y
multiplataforma de alto rendimiento que combina las tecnologías IDS
(Intrusion Detection System), IPS (Intrusion Prevention System) y NSM
(Network Security Monitoring), que fue lanzado en el año 2009 y es
desarrollado por la comunidad OISF (Open Information Security
Foundation).
Fichero configuración /etc/suricata/suricata.yaml:
outputs:
# Extensible Event Format (nicknamed EVE) event log in JSON format
- eve-log:
enabled: yes
filetype: regular #regular|syslog|unix_dgram|unix_stream|redis
filename: eve.json
Estos cuatro archivos producidos son archivos increíblemente importantes como analista en Suricata:
- Eve.json - es un formato de archivo de notación de objetos de java script que Suricata producirá comúnmente debido a su accesibilidad con otras herramientas de análisis de red y su facilidad de lectura.
- Fast.log - es una salida de registro que contiene datos concisos y compactos de todas las conexiones registradas en el paquete.
- Stats.log - es otra salida de registro que registra otras métricas como utilización de recursos, estadísticas de paquetes/flujos y rendimiento general.
- Suricata.log - es el archivo de registro principal que contiene información detallada sobre una conexión registrada. Generalmente contendrá los mismos datos que un registro rápido pero en mayor profundidad.
Consulta de eventos Suricata JSON en la línea de comandos
JSON Query(jq) permite manipular el contenido de un archivo .json y formatearlo para una mejor legibilidad.
El «.» en jq representa la raíz del archivo, de forma similar a Linux que comienza su directorio en la raíz.
El comando jq . formateará el archivo json especificado e imprimirá el contenido en una estructura fácil de leer.
Cuando los datos se formatean de esta manera, por lo general no son eficientes para el procesamiento o la integración debido a todas las sangrías existentes y el espacio en blanco producido para «pretty-print» el archivo.
Después de echar un vistazo al archivo .json e identificar todos los objetos. Filtraré específicamente los datos de un conjunto específico de objetos como .timestamp, .flow_id, .alert, etc.
La -c representa salida compacta y este comando se utiliza generalmente para compactar y condensar los datos basados en los objetos proporcionados.
-c también eliminará todas las sangrías y espacios en blanco innecesarios utilizados para «imprimir bonito» el archivo .json e imprimir los datos en una versión abreviada.
El uso más básico es colorear la entrada. Para ello, basta con hacer algo como
$ tail -n100 eve.json| jq '.'
La salida se hace de la forma bonita:
JQ mostrando un evento
Para obtener una salida de una línea por evento, simplemente añade la bandera -c al comando:
Para extraer un solo campo de los eventos JSON, se puede hacer:
$ jq '.src_ip' eve.json
«58.218.211.155»
«58.218.211.155»
«58.218.211.155»
El punto a recordar es que el punto en .src_ip es un marcador de posición para la entrada actual.
Por defecto, cuando un campo no está presente se muestra null en la salida. Para solucionarlo, es posible filtrar el evento para obtener sólo el que nos interesa. Esto se hace mediante la palabra clave select. Por ejemplo, para seleccionar los eventos SSH y extraer la información sobre la parte cliente se puede hacer:
$ tail eve.json | jq -c 'select(.event_type == «ssh»)|.ssh.client'
{«proto_version»: «2.0», «software_version»: «PUTTY»}
{«proto_version»: «2.0», «software_version»: «PUTTY»}
Peticiones HTTP
cat /var/log/suricata/eve.json | jq 'select(.event_type == "http")' | less
Lista de nombres de archivo populares en peticiones HTTP:
cat /var/log/suricata/eve.json | jq 'select(.event_type == "http") | .http.url' | sort | uniq -c | sort -bgrEncuentra Agentes de Usuario populares en peticiones HTTP:
cat /var/log/suricata/eve.json | jq 'select(.event_type == "http") | .http.http_user_agent' | sort | uniq -c | sort -bgr
Identificar las principales direcciones IP de origen en las alertas:
cat /var/log/suricata/eve.json | jq 'select(.event_type == "alert") | .src_ip' | sort | uniq -c | sort -bgr
Loki + Promtail
Loki es un sistema de recolección y consulta de logs diseñado por Grafana Labs. A diferencia de otras soluciones de logging, Loki no indexa el contenido completo de los logs, sino que indexa los labels (etiquetas), haciendo que sea más ligero y eficiente.
Funcionalidades Clave de Loki:
- Recolección de logs: Integra con Promtail, Fluentd, Logstash y otros agentes de logs.
- Consulta de logs: Utiliza el lenguaje de consultas LogQL similar a PromQL.
- Almacenamiento eficiente: Bajo consumo de recursos gracias a la indexación de etiquetas.
Configuración de Promtail
{"timestamp":"2024-11-13T10:21:24.932327+0100","flow_id":2082438240307690,"in_iface":"eth0","event_type":"smb","src_ip":"103.141.208.110","src_port":63476,"dest_ip":"192.168.0.100","dest_port":445,"proto":"TCP","smb":{"id":1,"dialect":"NT LM 0.12","command":"SMB1_COMMAND_NEGOTIATE_PROTOCOL","status":"STATUS_SUCCESS","status_code":"0x0","session_id":0,"tree_id":0,"client_dialects":["NT LM 0.12","SMB 2.002","SMB 2.???"],"server_guid":"3865ff0b-7e54-426c-3ea4-d21244169711"}}Formateado:
{"timestamp":"2024-11-13T10:21:24.932327+0100","flow_id":2082438240307690,"in_iface":"eth0","event_type":"smb","src_ip":"103.141.208.110","src_port":63476,"dest_ip":"192.168.0.100","dest_port":445,"proto":"TCP","smb":{"id":1,"dialect":"NT LM 0.12","command":"SMB1_COMMAND_NEGOTIATE_PROTOCOL","status":"STATUS_SUCCESS","status_code":"0x0","session_id":0,"tree_id":0,"client_dialects":["NT LM 0.12","SMB 2.002","SMB 2.???"],"server_guid":"3865ff0b-7e54-426c-3ea4-d21244169711"}}{
"timestamp": "2024-11-13T10:21:24.932327+0100",
"flow_id": 2082438240307690,
"in_iface": "eth0",
"event_type": "smb",
"src_ip": "103.141.208.110",
"src_port": 63476,
"dest_ip": "192.168.0.100",
"dest_port": 445,
"proto": "TCP",
"smb": {
"id": 1,
"dialect": "NT LM 0.12",
"command": "SMB1_COMMAND_NEGOTIATE_PROTOCOL",
"status": "STATUS_SUCCESS",
"status_code": "0x0",
"session_id": 0,
"tree_id": 0,
"client_dialects": [
"NT LM 0.12",
"SMB 2.002",
"SMB 2.???"
],
"server_guid": "3865ff0b-7e54-426c-3ea4-d21244169711"
}
}
Fichero configuración Promtail /etc/promtail/config.yml
server:
http_listen_port: 9080
grpc_listen_port: 0
# Log only messages with the given severity or above. Supported values [debug,
# info, warn, error]
# log_level: debug
positions:
filename: /tmp/positions.yaml
clients:
- url: http://localhost:3100/loki/api/v1/push
scrape_configs:
- job_name: suricata
# json on eve.json
pipeline_stages:
- json:
expressions:
event_type: event_type
src_ip: src_ip
proto: proto
dest_port: dest_port
alert:
- json:
expressions:
action: action
signature_id: signature_id
signature: signature
category: category
severity: severity
source: alert
- labels:
event_type:
src_ip:
proto:
dest_port:
signature_id:
signature:
category:
severity:
static_configs:
- targets:
- localhost
labels:
job: suricata_logs
__path__: /var/log/suricata/eve.json
Grafana
Grafana es una plataforma de análisis y monitoreo que permite crear paneles visuales interactivos. Soporta múltiples fuentes de datos, incluyendo Prometheus y Loki, y ofrece una interfaz amigable para explorar métricas y logs.
Funcionalidades Clave de Grafana:
- Dashboards personalizables: Creación de paneles visuales con gráficos y alertas.
- Alertas integradas: Configuración de alertas directamente desde los paneles.
- Plugins: Soporte para una amplia gama de plugins y fuentes de datos.
- Compartir y colaborar: Posibilidad de compartir dashboards y colaborar en su creación.
0 comentarios :
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.