Gestión de Incidentes Público
Base de conocimiento público que contiene guías, procedimientos y técnicas de respuesta a incidentes informáticos
- Código malicioso
- Wordpress comprometido
- SEO Japonés
- Joomla comprometido
- Ransomware
- Adware
- Backdoors/webshells
- Herramientas sandbox
- Desfiguraciones
- Phishing
- Forense
- Misceláneo
- Recrear datastore eliminado VMware vSphere
- Exportar e importar posts de wordpress a una nueva instalación
- Recuperar acceso root mediante cambio de contraseña
- Denegación de Servicio (DoS)
- Manejo de la plataforma MISP
- Ransomware
- Análisis de registros logs
- Verificación de Incidentes
- Eventos MISP
Código malicioso
Capítulo destinado a acciones de respuesta ante incidentes de malware
Wordpress comprometido
Revisión Online
Verificar que no tenga instalado malware:
Verificar con herramientas de google el grado de compromiso del sitio:
- https://transparencyreport.google.com/safe-browsing/overview
- https://www.youtube.com/watch?v=lG5lOix9b9k
Es necesario acceder a la consola de búsqueda de google:
Para verificar enlaces comprometidos, obtener el contenido en línea, recuperar posible código malicioso.
Coordinación con el RSI
- Solicitar al RSI que no debe eliminar ningún archivo ni realice cambio s en la base de datos.
- Si el sitio web sufrió un defacement solicitar al RSI que mueva los archivos de la instalación wordpress a otra ruta que no sea accesible desde el servidor web. Ej. /homve/[USUARIO] y que establezca un sitio web temporal mientras dure la investigación.
- Solicitar los archivos de la instalación de wordpress.
- Solicitar el envió del backup de la base de datos.
- Solicitar el envió de los logs del servidor web.
Revisión Offline
1. Comprobar la integridad de los archivos WordPress (Core y Plugins)
- Descargar la versión de wordpress que se tiene instalada de https://wordpress.org/download/releases/
diff -r wordpress_Instalado wordpress_descargado
- De manera similar proceder con los plugins y themes.
- Alternativamente se puede usar:
wp core verify-checksums --allow-root
2. Buscando patrones de cadena maliciosos:
2.1. Buscar webshells/backdoors en el sistema de archivos
2.1.1. Usando GREP
Guardar en el archivo pattern.txt
eval($_REQUEST
eval($_GET
eval($_POST
eval(
$GLOBALS[
$strrev('dedoce
base64_decode
str_replace
preg_replace
gzinflate
$f53[
hacked
FilesMan
\x73\x74\x72\x5f
str_rot13
Location:
google.com
bing.com
Ejecutar el comando:
fgrep -rf pattern.txt folderInstalacion | egrep -iv "\.js|\.css|\.po|\.html|Binary" > resultado.txt
Eliminar los falsos positivos.
Otros patrones sospechosos (ejecutar dentro del directorio principal):
grep -r '\\x' * | egrep -iv "\.gif|\.js|\.png|\#|entities"
grep -r '\\057' * | egrep -iv "\.gif|\.js|\.png|\#|binary|Crypto|zip|case|elseif|ChaCha|\\x00|pie|escaper"
2.1.2. Usando la herramienta webshell-scanner-client
Descargar e instalar webshell-scanner-client
wget https://github.com/baidu-security/webshell-scanner-client/releases/download/v1.0/webdir-linux32.bin
sudo mv webdir-linux32.bin /usr/bin/webshell-scanner-client
sudo chmod a+x /usr/bin/webshell-scanner-client
Escanear un archivo
webshell-scanner-client.bin archivo.php-
Solicitar al RSI que mueva los archivos de la instalacion wordpress a otra ruta que no sea accesible desde el servidor web.
Ej: /home/[USUARIO]
2.1.3. Usando la herramienta webshell-scan
Descargar e instalar webshell-scan:
git clone https://github.com/tstillz/webshell-scan
go build main.go
sudo mv main /usr/bin/webshell-scan
Escanear en busca de webshells con extensión en php:
webshell-scan -dir . -exts php
2.1.4. Usando findbot
Instalación:
wget https://raw.githubusercontent.com/wellr00t3d/findbot.pl/master/findbot.pl
chmod a+x findbot.pl
sudo mv findbot.pl /usr/bin
Buscar archivos maliciosos:
findbot.pl directorio
Verificando archivos de wordpress
- .htaccess
- wp-config.php
- Revisar los archivos functions.php
find . -iname "functions.php"
- Verificar que archivos se han modificado recientemente:
find . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '
Escanear el servidor en busca de códigos maliciosos en los archivos
Buscar código malicioso en archivos y carpetas de WordPress:
find wp-includes -iname "*.php"
find wp-content/uploads -name "*.php" -print
Escanear la base de datos en busca de códigos maliciosos
- Descargar un back de la base de datos "backup.sql"
- Guardar en el archivo pattern.txt
<script>
eval
base64_decode
gzinflate
preg_replace
str_rot13
- Ejecutar el comando:
fgrep -rf pattern.txt backup.sql > resultado.txt
- Eliminar los falsos positivos.
Detección de cuentas de administrador falsas
Encuentre y elimine nuevos usuarios administradores o cuentas FTP que no ha creado.
Restauración del stitio:
- Eliminar los backdoors identificados y restaurar el sitio web con los archivos antiguos.
- Borrar themes no usados.
- Borrar plugins no usados.
- Actualizar el core, theme y plugins.
- Instalar el plugin WP Hardening (https://wordpress.org/plugins/wp-security-hardening/)
- Cambiar la contraseña de los usuarios de :
- WordPress
- Base de datos
- Hosting/Cpanel
Herramientas
Anexos
Instalar wp-cli y checksum:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp package install git@github.com:wp-cli/checksum-command.git --allow-root
SEO Japonés
Joomla comprometido
Revisiones Online
Verificar que no tenga instalado malware:
- https://www.virustotal.com/#/home/upload
- https://sitecheck.sucuri.net/
- https://transparencyreport.google.com/safe-browsing/search
Coordinación con el RSI
- Solicitar al RSI que no debe elimine ningun archivo ni realize cambios en la base de datos
- Si es un incidente de defacement, solicitar al RSI que establezca un sitio web temporal mientras dure la investigacion. En el archivo configuration.php configurar la variable $offline = ‘1’;
- Solicitar los archivos de la instalacion de jomla
- Solicitar el envio del backup de la base de datos
- Solicitar el envio de los logs del servidor web
Revisiones Offline
- Borrar themes no usados
- Borrar plugins no usados
- Revisar el archivo .htaccess, verificar que no hay redirecciones extrañas
- Verificar integridad de archivos core de la instalación de joomla con https://audit-fs.co.za/
- Descargar los componentes usados del repositorio oficial
- Actualizar el core: https://www.youtube.com/watch?v=Duba0GEj2L8
- Revisar integridad de archivos, comparar con los archivos descargados https://downloads.joomla.org/es/latest
diff -r joomla-3.6.4 ./public_html
Restauración del sitio
- Eliminar los backdoors identificados y restaurar el sitio web con los archivos antiguos
- Cambiar las contraseñas de los usuarios de:
- Joomla
- Base de datos
- hosting/Cpanel
Modificar permisos:
- chmod 444 .htaccess
- chmod 444 index.php
Instalar las extensiones
- https://extensions.joomla.org/extension/securitycheck/ (Revisa componentes con vulnerabilidades)
- https://www.akeebabackup.com/products/akeeba-backup.html (Realizar backups)
- https://extensions.joomla.org/extension/brute-force-stop/
- https://www.richeyweb.com/software/joomla/plugins/1-adminexile ()
Reemplazar el contenido del archivo .htaccess con:
Herramientas
Actualización del core de Joomla a la última versión
- Descargar el paquete de actualización https://downloadas.joomla.org/es/
- Sobre escribir los archivos en el servidor con los del paquete de actualización.
- Si sale el error "Fatal error: Call to undefined method JApplicationSite::set()"
- Reemplazar la carpeta libraries con las de la instalación completa.
- Si sale un error "Unknown column 'a.cliente_id' in 'where clause': Unknown column 'a.client_id' in 'where clause'" en el panel de administración.
- Ejecutar (Reemplazar XXXXX por el prefijo usado en la base de datos):
ALTER TABLE `XXXXXX_menu_types` ADD COLUMN `client_id` int(11) NOT NULL DEFAULT 0 AFTER `description`;
UPDATE `XXXXXX_menu` SET `published` = 1 WHERE `menutype` = 'main' OR `menutype` = 'menu';
Realizar correcciones en la base de datos. En el menú de administración:
Extensiones> Gestor de extensiones> Database> Corregir
Hardening de Joomla
- Cambiar el nombre del usuario administrador (admin) ycrear un password robusto
- Los archivos deben tener los siguientes permisos:
Tipo de archivo |
Permisos |
Archivos PHP | 644 |
Archivos de configuración | 644 |
Otros folders | 755 |
- Cambiar la ruta por defecto del panel de administración
- Deshabilitar el registro de usuarios:
tudominio.com/administrador/index.php?option=com_config&view=component&component=com_users
Ransomware
El ransomware es un tipo de software malicioso (malware) que se utiliza para bloquear el acceso a los archivos o sistemas de una víctima y exigir un rescate para restaurar el acceso. Los atacantes utilizan el ransomware para extorsionar a individuos y empresas mediante el cifrado de archivos o el bloqueo del acceso a sistemas críticos, lo que les impide acceder a sus datos y archivos importantes.
Una vez que el ransomware infecta un sistema, se suele mostrar una pantalla de advertencia que exige un pago en criptomonedas para obtener una clave de cifrado que permita desbloquear los archivos o sistemas afectados. En algunos casos, los atacantes también amenazan con publicar los datos de la víctima si no se paga el rescate.
El ransomware se propaga a menudo mediante técnicas de ingeniería social, como correos electrónicos de phishing, enlaces maliciosos o descargas de software ilegal. Además, algunos tipos de ransomware también pueden propagarse a través de vulnerabilidades en el software o sistemas no actualizados.
Es importante destacar que no se recomienda pagar el rescate exigido por los atacantes ya que no hay garantía de que los archivos o sistemas afectados sean restaurados, además de que esto puede animar a los ciberdelincuentes a continuar con sus actividades ilícitas. En lugar de pagar el rescate, es recomendable tomar medidas preventivas para evitar la infección por ransomware, como mantener el software actualizado, utilizar software de seguridad y educar a los empleados en técnicas de seguridad informática.
Intentar recuperar "shadow copy"
Listar si existen "shadow copies"
vssadmin list shadows
En caso que hubiera copias, usar ShadowExplorer.exe (portable) para recuperar archivos.
Determinar la forma de infección
- Información básica del sistema
systeminfo
- Información de red
ipconfig/all
- Identificar con que equipos se comunicó
arp -a
- Extraer el historial de navegación (Ejecutar como el usuario que infecto el equipo)
- Chrome History View (AGAVE)
- Mozilla History View (AGAVE)
- IE History View (AGAVE)
- Registro de actividades (Necesita permisos de administrador)
- LastActiivityView
- MyEventViewer
- RecentFileView
- USBDBView
Nota: Transformar los archivos a UTF-8 con el comando dos2unix.
Análisis forense
- Realizar el apagado brusco del equipo. Desconectar el cable (PC de escritorio), Usar el boton de apagado (Laptop)
- Realizar copia bit a bit del disco duro
dd if=/dev/sdc of=/media/parrot/disk600Gb/backup.img bs=64M conv=sync,noerror status=progress
Si fuera necesario convertir la imagen forense en disco virtual
qemu-img convert -O vmdk -o compat6 backup.img vmdkname.vmdk
qemu-img convert -f raw -O vmdk rawdisk200gb.img vdisk200gb.vmdk
Herramientas útiles
- Identificar exactamente que variante de ransomware infecto al host
- https://id-ransomware.malwarehunterteam.com/index.php
- https://www.nomoreransom.org/crypto-sheriff.php?lang=en
- Buscar IoC (IPs, dominios, etc) en los logs del firewall/proxy
Identificar si el ransomware usa llave simetrica (AES) o asimetrica (RSA). Si el ransomware usa una llave simetrica buscar la llave de encriptación en la copia de la memoria RAM.
Buscar herramientas para desencirptar
- https://docs.google.com/spreadsheets/d/1TWS238xacAto-fLKh1n5uTsdijWdCEsGIM0Y0Hvmc5g/pub?output=html
- https://heimdalsecurity.com/blog/ransomware-decryption-tools/
- https://www.nomoreransom.org/en/decryption-tools.html
- https://www.avast.com/ransomware-decryption-tools
- https://decrypter.emsisoft.com/
- https://support.kaspersky.com/viruses/utility
- https://noransom.kaspersky.com/?tool=. [EXTENSION ARCHIVOS CIFRADOS]
- https://malpedia.caad.fkie.fraunhofer.de/
Intentar recuperar archivos de la copia forense
- Usar Autopsy con la copia forense
- Usar FTK para montar la imagen forense y usar el software de recuperacion “recuva”
Anexos
- Links de descarga:
- Extracción de llave de cifrada estático (AES) de memoria RAM
- https://medium.com/@0xINT3/jigsaw-ransomware-analysis-using-volatility-2047fc3d9be9
- Posibles vectores:
- pop-ups
- facebook messenger
- Cracks
Adware
Backdoors/webshells
1. Usando GREP
- Guardar en el archivo pattern.txt
eval($_REQUEST
eval($_GET
eval($_POST
eval(
$GLOBALS[
$strrev('dedoce
base64_decode
str_replace
preg_replace
gzinflate
$f53[
hacked
FilesMan
\x73\x74\x72\x5f
str_rot13
Location:
google.com
bing.com
- Ejecutar al comando
fgrep -rf pattern.txt folderInstalacion | egrep -iv "\.js|\.css|\.po|\.html|Binary" > resultado.txt
- Eliminar los falsos positivos
- Otros patrones sospechosos (Ejecutar dentro del directorio principal)
grep -r '\\x' * | egrep -iv "\.gif|\.js|\.png|\#|entities"
grep -r '\\057' * | egrep -iv "\.gif|\.js|\.png|\#|binary|Crypto|zip|case|elseif|ChaCha|\\x00|pie|escaper"
2. Usando la herramienta webshell-scanner-client
- Descargar e instalar webshell-scanner-client
wget https://github.com/baidu-security/webshell-scanner-client/releases/download/v1.0/webdir-linux32.bin
sudo mv webdir-linux32.bin /usr/bin/webshell-scanner-client
sudo chmod a+x /usr/bin/webshell-scanner-client
- Escanear un archivo
webshell-scanner-client.bin archivo.php- Solicitar al RSI que mueva los archivos de la instalacion wordpress a otra ruta que no sea accesible desde el servidor web. Ej: /home/{usuario}
3. Usando la herramienta webshell-scan
- Descargar e instalar webshell-scna
git clone https://github.com/tstillz/webshell-scan
go build main.go
sudo mv main /usr/bin/webshell-scan
- Escanear en busca de webshells con extensión en php
webshell-scan -dir . -exts php
4. Usando findbot
- Instalar
wget https://raw.githubusercontent.com/wellr00t3d/findbot.pl/master/findbot.pl
chmod a+x findbot.pl
sudo mv findbot.pl /usr/bin
- Buscar archivos maliciosos
findbot.pl directorio
Herramientas sandbox
Una sandbox (en español, caja de arena) es un entorno aislado y seguro en el que se pueden ejecutar aplicaciones y procesos sin afectar al sistema principal. La idea detrás de una sandbox es crear un espacio limitado en el que los programas pueden ejecutarse sin afectar el resto del sistema, lo que permite a los usuarios probar o ejecutar aplicaciones sin preocuparse por los posibles efectos negativos.
Las sandboxes se utilizan a menudo para ejecutar software no confiable o potencialmente peligroso, como archivos de correo electrónico adjuntos, scripts descargados de Internet, software malicioso o programas que pueden dañar el sistema. Al ejecutar estos programas en una sandbox, el usuario puede analizarlos o probarlos sin exponer su sistema a posibles amenazas.
Además, las sandboxes también se utilizan para desarrollar y probar aplicaciones en un entorno seguro y aislado. Esto permite a los desarrolladores probar sus aplicaciones sin preocuparse por los posibles efectos negativos en el sistema principal.
Sandbox Online
Puede utilizar las siguientes sandbox:
- https://sandbox.anlyz.io/
- https://app.any.run/
- https://www.hybrid-analysis.com/
- https://www.joesandbox.com
Desfiguraciones
Capítulo destinado a acciones de respuesta ante incidentes de desfiguraciones (defacement).
Defacement principal
Defacement secundario
Phishing
Capítulo destinado a acciones de respuesta ante incidentes de phishing
Denunciar sitios y correos
Para sitios web
1. Reportar a:
- http://antiphishing.org/report-phishing/
- https://www.phishtank.com/add_web_phish.php
- reportphishing@apwg.org
- report@openphish.com
Si el sitio de phising esta en USA
- phishing-report@us-cert.gov
Si el sitio de phising esta en hospedado en GoDaddy (Tarda 3 dias)
- https://supportcenter.godaddy.com/AbuseReport/Index
- Enviar un correo a phishing@godaddy.com
Si el sitio de phising esta en hospedado en Weebly (Tarda 2 horas)
- weebly-abuse@squareup.com
Si el sitio de phising esta en hospedado en Wix (Tarda 3 dias laborales)
- https://www.wix.com/about/abuse-form
Si el sitio de phising esta en hospedado en Blogspot
2. Notificar a la entidad afectada para que saquen una comunicado oficial
3. Reportar a las organizaciones de boliviaverifica (wa.me/59162535868) y chequeabolivia (whatsapp wa.me/59178370590)
4. De ser necesario notificar a la unidad de comunicación de la AGETIC para que publiquen sobre el sitio falso
Para correos electrónicos
1. Aparente compromiso de la cuenta origen comunicar al CERT/CSIRT nacional correspondiente.
2. Si se trata de campañas genéricas con origen gmail, hotmail reportar a:
- Reenviar como adjunto a reportphishing@apwg.org
- Denunciar la cuenta a gmail https://support.google.com/mail/contact/abuse
- Denunciar la cuenta outlook phish@afficce phish@office365.microsoft.com
Analizar cabeceras y configuraciones de correo
Análsis de cabeceras
- https://www.ip2location.com/free/email-tracer
- https://mxtoolbox.com/Public/Tools/EmailHeaders.aspx
- https://toolbox.googleapps.com/apps/messageheader/analyzeheader
Validar DMARC
Visualizar reporte DMARC (xml)
Forense
Capítulo destinado a técnicas y herramientas de análisis forense en sistemas operativos y otros
Sistema operativo Linux
Captura de memoria RAM
Requisitos:
- Aceso al sitema
- Privilegios de administrador
- Dispositivo USB con almacenamiento mayor a la RAM
Herramientas:
- LiME (Linux Memory Extractor)
- Volatility
Análisis forense al tráfico de red (Local)
Requisitos:
- Acceso al sistema
- Privilegios de administrador
Herramientas:
- Wireshark
- NetworkMiner
- PcapXray
Analisis forense al trafico de red (Remoto)
Requisitos:
- Logs de switches, routers, and firewalls
Herramientas
- Análisis manual
Copia forense del disco de almacenamiento de datos ( Sin apagar el sistema)
Requisitos:
- Acceso al sistema
- Privilegios de root
- Dispositivo usb con almacenamiento mayor al disco a analizar
Posibles herramientas:
- Solo se identificaron herramientas para el sistema operativo Windows
Copia forense del disco de almacenamiento de datos ( Servidor Apagado)
Requisitos
- Acceso fisico al disco de almacenamiento
- Dispositivo usb con almacenamiento mayor al disco a analizar
Posibles herramientas
- dc3dd
- dd
- FTK Imager
Otras técnicas
Ver los puertos abiertos y proceso asociados
lsof -i -P
Ver los archivos abiertos por un proceso
lsof -p <pid>
Ver los últimos logeos
last
Quién está logeado actualmente
who
w
Ver el historial de comandos
more ~/.bash_history
Investigar proceso sospechoso
cd /proc/<pid>
strings ./exe
Fuentes:
- Learn Computer Forensics: A beginner’s guide to searching, analyzing, and securing digital evidence
- Digital Forensics and Incident Response - Second Edition
Sistema operativo Windows
Análisis de conexiones
netstat -naob
netstat -f
Ver recursos compartidos
net view
Ver que equipos se estan comunicando con el sistema actual
net session
net use
Análisis de procesos
Ver servicios
tasklist /svc
Ver las DLLs asociadas a un proceso
tasklist /m /fi "pid eq <pid>"
Misceláneo
Capítulo destinado a diferentes acciones, técnicas, procedimientos en respuesta a casos de incidentes no categorizados e incluye incidentes por errores de configuración en software que tienen el objetivo de recuperar el servicio e información.
Recrear datastore eliminado VMware vSphere
- Identificar el “Device Name”
esxcli storage vmfs extent list
En este ejemplo el resultado del comando anterior es “mpx.vmhba0:C0:T0:L0” (Device Name) , reemplazar con el valor correspondiente a su instalación
- Identificar el bloque de inicio
offset="128 2048"; for dev in `esxcfg-scsidevs -l | grep "Console Device:" | \
awk {'print $3'}`; do disk=$dev; echo $disk; partedUtil getptbl $disk; \
{ for i in `echo $offset`; do echo "Checking offset found at $i:"; \
hexdump -n4 -s $((0x100000+(512*$i))) $disk; \
hexdump -n4 -s $((0x1300000+(512*$i))) $disk; \
hexdump -C -n 128 -s $((0x130001d + (512*$i))) $disk; done; } | \
grep -B 1 -A 5 d00d; echo "———————"; done
En este ejemplo el inicio del bloque es 2048:
Checking offset found at 2048
:
- Obtener los sectores usables. Usar el “device name” correspondiente a su instalación
partedUtil getUsableSectors /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0
En este ejemplo el valor de los sectores usables es 83886046
- Recrear partición usando los “sectores usables” y el “device name” correspondiente a su instalación
partedUtil mklabel /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 gpt
partedUtil setptbl "/vmfs/devices/disks/mpx.vmhba0:C0:T0:L0" gpt "1 2048 83886046 AA31E02A400F11DB9590000C2911D1B8 0"
Exportar e importar posts de wordpress a una nueva instalación
Exportar los posts
- Instalar y activar este plugin en la instalación de wordpress de donde se exportara los posts
https://wordpress.org/plugins/export-media-with-selected-content/ - Exportar los posts (Seleccionar la opción de exportar con contenido multimedia)
- Se descargara un archivo xml con los posts. Si se genera muchos errores 50x debido a la sobrecarga del servidor se recomienda exportar el contenido por meses para que el servidor no tenga que procesar tantos archivos en una sola petición
Importar los posts
- Ejecutar el importador de WordPress
- Cargar el archivo generado anteriormente
- Asignar con que autor se importara el contenido (Seleccionar la opción de descargar e importar adjuntos)
- Importará automáticamente las categorias
Recuperar acceso root mediante cambio de contraseña
Reiniciando el sistema
- Reiniciar el sistema y presione cualquier tecla para detener el proceso de inicio. Presione “e” para editar los parámetros de la línea de comandos del kernel.
- Adicionar el parámetro “init=/bin/bash“ e iniciar el sistema (F10)
- Para montar el sistema de archivos raíz en “modo lectura-escritura”.
- Cambiar el password con el comando passwd
- Reiniciar el sistema y ingresar con el nuevo password
Sin reiniciar el sistema
La unica opcion para este escenario es la ejecución romota de código (RCE) mediante la explotación de alguna vulnerabilidad para cambiar password del usuario root. Las vulnerabilidades identificadas para Debian 9 son:
- CVE-2019-11815 Dificil de explotar y existe una gran probabilidad de causar una denegacion de servicio. No existe exploit público
- CVE-2020-15862 No existe exploit público
Fuente: https://security-tracker.debian.org/tracker/CVE-2019-11815
Denegación de Servicio (DoS)
Capítulo destinado a acciones de respuesta ante ataques de denegación de servicio.
Fail2ban para HTTP
Anti - DoS con fail2ban (WebSites [ports:80/443])
Implementacion de anti-DoS con fail2ban en Sistema Operativo Debian 9
Instalar los paquetes “fail2ban” y “iptables-persistent”
~$ sudo apt-get install iptables-persistent fail2ban
Modificar la configuracion por defecto de fail2ban y agregar las siguientes lineas al archivo mencionado
~$ vim /etc/fail2ban/jail.conf
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[http-get-dos]
enabled = true
port = http,https
filter = http-get-dos
# Cambiar a la ruta de los logs de Apache/Nginx/etc..
logpath = /var/log/*apache2*/*access.log
maxretry = 300
findtime = 300
#ban por 5 minutos
bantime = 600
action = iptables[name=HTTP, port=http, protocol=tcp]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Crear un archivo en la ruta correspondiente con el siguiente contenido
~$ vim /etc/fail2ban/filter.d/http-get-dos.conf
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Fail2Ban archivo de configuracion
[Definition]
# Opcion: failregex
# Se debe configurar el maxretry y findtime en jail.conf muy cuidadosamente para evitar los falsos positivos.
failregex = ^<HOST> -.*"(GET|POST).*
# Optcion: ignoreregex (El IP de este campo no sera bloqueado)
ignoreregex =
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Reiniciar el servicio de fail2ban
~$ sudo systemctl restart fail2ban.service
Para revisar las IP bloqueados
~$ sudo iptables -nvL
Remover IP “banneada”
//Desplegara las reglas que creamos en este caso seria http-get-dos
~$ sudo fail2ban-client status
//Elimina la IP "banneada"
~$ sudo fail2ban-client set http-get-dos unbanip <IP_ADDRESS>
Análisis de registros posterior a un ataque DDoS
El sitio web contiene información sobre múltiples actores de amenaza. Es posible buscar información para recolectar datos sobre actores maliciosos.
Degradación de los servicios.
Verificar la página de Uptime Kuma para concluir, en base a los registros, el tiempo de respuesta de los sitios web afectados. En caso de caída del sitio, verificar el tiempo que se mantuvo fuera de línea.
Prevención interna.
- Configuración y mejora de los mecanismos de respuesta ante la detección de actividad de red inusual.
- Verificación de la configuración del firewall disponible ante la respuesta ante ataques de tipo SYN DDoS (ataque de denegación de servicio que explota el proceso de establecimiento de conexiones TCP).
Análisis con Goaccess.
Se ejecuta el comando "goaccess access.log" en la terminal para generar un informe con las solicitudes realizadas al servidor.
Con base a los resultados obtenidos con la herramienta
- Se revisan las métricas presentadas por GoAccess, incluyendo cantidad de solicitudes, IPs más activas y horas con mayor tráfico.
- Se utiliza cat access.log para visualizar el contenido del archivo de registros en los horarios que se haya tenido mas actividad, separando primero horas luego minutos y por ultimo si es necesario por segundos.
- Se aplica grep para filtrar líneas relevantes que contienen información sobre las solicitudes más frecuentes en determinadas horas.
- Se usa cut para extraer las direcciones IP de las solicitudes en los períodos de mayor actividad.
Obtención de las IPs en las horas de mayor tráfico
- Se ejecuta un pipeline con cat, grep, y cut para procesar los datos y obtener las IPs más activas durante los picos de tráfico.
- Se genera un listado de direcciones IP correspondiente a las horas con mayor número de solicitudes.
Análisis y posible uso de datos
- Se analizan las IPs extraídas para identificar posibles patrones, ataques o actividad inusual en el servidor.
- Se pueden utilizar estos datos para aplicar bloqueos, realizar auditorías o mejorar la seguridad del sistema.
Análisis con Wazuh Manager.
Realizar un laboratorio de prueba para simular la carga de registros en un servidor de prueba, descartando los registros de información y seleccionando alertas de nivel medio y alto.
- Utilizar un script de simulación de carga de registros en el mismo directorio donde se almacenan los registros a analizar.
nano simulador.sh
#!/bin/bash
#Archivo de entrada al script que contiene los registros del objetivo del ataque
input_file="access.log"
#Archivo de salida monitorizado por Wazuh para la generación de alertas
output_file="archivoaccess.log"
# Verifica si el archivo de salida existe y, si es así, lo elimina
# para evitar duplicar los registros o mezclarlos con anteriores
if [ -f "$output_file" ]; then
rm "$output_file"
fi
# Lee el archivo línea por línea
while IFS= read -r line
do
# Simula la recepción de logs añadiendo un retraso de 90 ms
# para no sobrepasar el humbral de deteccion de eventos que tiene wazuh manager
sleep 0.09
# Escribe la línea en el archivo de salida
echo "$line" >> "$output_file"
echo "Log añadido: $line"
done < "$input_file"
# Registro de la cantidad de lineas copiadas mientras se ejecuta el script
echo "El archivo ha sido copiado línea por línea a $output_file"
- Añadir permisos de ejecución del archivo.
sudo chmod +x simulador.sh
- Añadir al archivo "ossec.conf" la configuración para el análisis del archivo de salida del script y que las alertas se generen en base a este comportamiento.
<ossec_config>
<localfile>
<log_format>syslog</log_format>
<location>/home/wazuh/monitoreo/archivoaccess.log</location>
</localfile>
</ossec_config>
- Reiniciar el servicio de Wazuh manager o Wazuh agent que se esté utilizando para aplicar los cambios realizados.
sudo systemctl restart wazuh-manager
sudo systemctl restart wazuh-agent
- Ejecutar el script de simulación para observar las alertas.
./simulador.sh
- Analizar las alertas en base a los resultados
Análisis de resultados con la plataforma MISP.
Con la lista de direcciones IP únicas, agruparlas de 1000 en 1000 para poder copiar la lista y observar qué direcciones IP tienen correlación con otro evento dentro de la región.
Distribución de la información.
Extraer de los archivos de registro las direcciones IP involucradas y crear un evento con nivel alto de peligrosidad dentro de la plataforma MISP, indicando todos los indicadores de compromiso para proporcionar la información a las instituciones.
Identificación de los países implicados.
Descargamos la base de datos de IP's y países disponible en github con el nombre de "GeoLite2-Country.mmdb"
Iniciamos y activamos el entorno virtual para iniciar el programa "geoip2" dentro del mismo directorio de la base de datos descargada.
python3 -m venv myenv
source myenv/bin/activate
Instalamos dentro del entorno virtual la herramienta.
pip install geoip2
Utilizamos un script en python para el uso de esta base de datos con un archivo de direcciones IP identificadas.
import csv
import geoip2.database
from collections import Counter
# Archivos de entrada y salida
archivo_entrada = "entrada.csv"
archivo_salida_temp = "salida.csv"
archivo_salida_final = "conteo_paises.csv"
# Cargar la base de datos GeoIP
ruta_db = "GeoLite2-Country.mmdb"
lector = geoip2.database.Reader(ruta_db)
def obtener_pais(ip):
try:
respuesta = lector.country(ip)
return respuesta.country.name
except geoip2.errors.AddressNotFoundError:
return "IP no encontrada"
except Exception as e:
return f"Error: {e}"
# Leer IPs desde entrada.csv y procesarlas
resultados = []
conteo_paises = Counter()
total_ips = 0
with open(archivo_entrada, "r", encoding="utf-8") as archivo:
lector_csv = csv.reader(archivo)
next(lector_csv, None) # Saltar la cabecera si existe
for fila in lector_csv:
if not fila: # Evitar líneas vacías
continue
ip = fila[0]
pais = obtener_pais(ip)
resultados.append((ip, pais))
conteo_paises[pais] += 1
total_ips += 1
# Guardar resultados en salida.csv
with open(archivo_salida_temp, "w", newline="", encoding="utf-8") as archivo:
escritor = csv.writer(archivo)
escritor.writerow(["IP", "País"])
escritor.writerows(resultados)
# Guardar conteo de países en conteo_paises.csv
with open(archivo_salida_final, "w", newline="", encoding="utf-8") as archivo:
escritor = csv.writer(archivo)
escritor.writerow(["IP", "País", "Conteo"])
for ip, pais in resultados:
escritor.writerow([ip, pais, conteo_paises[pais]])
# Cerrar la base de datos
lector.close()
print(f"Proceso completado. Se procesaron {total_ips} IPs.")
print("Revisa los archivos 'salida.csv' y 'conteo_paises.csv'.")
Ejecutamos el script con el archivo de entrada:
python geo.py
La salida del archivo "salida.csv" tiene las direcciones IP acompañadas del país de origen:
Mientras que la salida del archivo "conteo_paises.csv" tiene las direcciones IP, el país de origen y la cantidad de solicitudes que realizó cada país, se toman en cuenta solamente las direcciones IP las cuales realizaron más de 1000 solicitudes al servidor.
Con esta información se procede a comunicar a los países origen mediante una investigación en la plataforma RTIR.
Manejo de la plataforma MISP
Espacio en disco duro servidor MISP
Con la recepción contínua de eventos hacia la plataforma MISP y el almacenamiento ocupado en disco se requerirá periódicamente eliminar eventos antiguos que ya no representan información actualizada, para este propósito se ingresa a la base de datos de la plataforma desplegada.
Detener los servicios de Docker Compose
Una vez seguro de que la base de datos está en un estado consistente, se procede a detener los servicios de Docker Compose:
docker-compose down
Ingresamos a la consola del contenedor que almacena la base de datos
docker exec -it misp-docker-db-1 bash
Dentro de la instancia de base de datos se realizan los siguientes comandos:
USE misp;
DELETE FROM events WHERE date < '2020-01-01';
DELETE FROM attributes WHERE event_id NOT IN (SELECT id FROM events);
DELETE FROM objects WHERE event_id NOT IN (SELECT id FROM events);
DELETE FROM event_tags WHERE event_id NOT IN (SELECT id FROM events);
Reiniciar los servicios de Docker Compose
SELECT * FROM attributes WHERE event_id NOT IN (SELECT id FROM events);
SELECT * FROM objects WHERE event_id NOT IN (SELECT id FROM events);
SELECT * FROM event_tags WHERE event_id NOT IN (SELECT id FROM events);
docker-compose up -d
Ransomware
Recursos en línea
Consultar ataques de Ransomware
https://www.ransomware.live/map/BO
https://darkfeed.io/
Análisis de registros logs
Herramientas y técnicas para el análisis de logs de diferentes servicios, entre ellos apache2 y nginx
Análisis de archivos de logs con Wazuh
Mediante el uso de un script personalizado, Se realizará la copia línea por línea de los archivos recibidos hacia un archivo monitorizado por Wazuh, simulando así el comportamiento del agente que recibe los logs en tiempo real.
Siguiendo estos pasos se podrán gestionar y analizar los datos de manera más eficiente, por que se filtraran las alertas por nivel de criticidad en el dashboard y no tendremos que analizar los logs que tienen criticidad nula o no tienen que ver con la investigación, para lograrlo realizaremos los siguientes pasos:
Edición del archivo de configuración.
Abrimos el archivo de configuración del agente o manager de Wazuh ossec.conf posteriormente agregamos la configuración para monitorear el archivo de logs.
nano /var/ossec/etc/ossec.conf
Configuración de ejemplo:
<localfile>
<log_format>syslog</log_format>
<location>/ruta/al/archivo/authlog.log</location>
</localfile>
Se debe verificar el formato del archivo de los registros para que sea decodificado de manera correcta y posteriormente analizado.
Una vez realizada la edición del archivo se debe reiniciar el agente o el manager donde se haya realizado la configuración.
systemctl restart wazuh-agent
systemctl restart wazuh-manager
Automatización.
Este script leerá el archivo de logs línea por línea y lo copiará a un archivo que será monitorizado por Wazuh.
#!/bin/bash
# Archivo de entrada (registros proporcionados)
input_file="authlog.log"
# Archivo de salida (Archivo monitorizado por wazuh)
output_file="archivoauthlog.log"
# Verifica si el archivo de salida existe y, si es así, lo elimina
if [ -f "$output_file" ]; then
rm "$output_file"
fi
# Lee el archivo línea por línea
while IFS= read -r line
do
# Simula la recepción de logs añadiendo un retraso de 200 ms
sleep 0.2
# Escribe la línea en el archivo de salida
echo "$line" >> "$output_file"
echo "Log añadido: $line"
done < "$input_file"
echo "El archivo ha sido copiado línea por línea a $output_file"
chmod +x /ruta/al/script.sh
Verificación la Configuración.
Acceder al panel de Wazuh Manager y verificar que los logs estén siendo recibidos y analizados correctamente.
Para comprobar que se trata del archivo analizado inspeccionamos el elemento deseado y verificamos que se trata del archivo de logs escogido.
Verificación de Incidentes
En caso de que exista un posible incidente de seguridad informática seguir estos pasos:
- Verificar los subdominios del nombre de dominio
Se pueden utilizar diversas herramientas, como:
- Google dorks
- site:example_domain.com
- https://dnsdumpster.com/
- https://hackertarget.com/find-dns-host-records/
- https://osint.sh/subdomain/
- https://pentest-tools.com/information-gathering/find-subdomains-of-domain
Eventos MISP
Manual de creación de eventos en la plataforma MISP
00- Doble factor de autenticación para cuenta MISP
Para fortalecer la seguridad de su cuenta en la plataforma, se debe habilitar la autenticación de dos factores debido a la información que se encuentra en la plataforma.
A continuación, se detallan los pasos para activar esta función en su perfil de usuario:
Acceda a su perfil de usuario:
- Inicie sesión en su instancia de MISP.
- Haga clic en “Admin” ubicado en la esquina superior derecha.
Habilite TOTP.
- En la sección de su perfil, busque la opción para habilitar TOTP.
- En la sección de su perfil, busque la opción para habilitar TOTP.
Configure la aplicación de autenticación:
- Utilice una aplicación de autenticación compatible con TOTP, como Google Authenticator, Microsoft Authenticator o Authy.
- Abra la aplicación en su dispositivo móvil.
- Seleccione la opción para agregar una nueva cuenta y escanee el código QR proporcionado por MISP.
- Después de escanear el código QR, la aplicación generará códigos temporales de seis dígitos.
- Ingrese uno de estos códigos en el campo de verificación en MISP para confirmar la configuración y de click al botón "Submit" para guardar.
Guarde sus códigos de recuperación (HOTP):
- Una vez verificado el TOTP, MISP le proporcionará una lista de códigos de un solo uso (HOTP) que puede utilizar en caso de no tener acceso a su dispositivo móvil.
- Guarde los códigos en un lugar seguro, ya que serán esenciales para acceder a su cuenta si pierde el acceso a la aplicación de autenticación.
- A partir de ahora, al iniciar sesión, después de ingresar su nombre de usuario y contraseña, se le solicitará un código TOTP generado por su aplicación de autenticación.
01- Distribución de phishing evento MISP
Introducción
MISP es una herramienta de código abierto diseñada para facilitar el intercambio de información sobre amenazas cibernéticas, permitiendo a los usuarios compartir indicadores de compromiso (IOC's), análisis de malware y otros datos relevantes de seguridad.
Esta guía te ayudará a utilizar la plataforma MISP (Malware Information Sharing Platform & Threat Sharing) para crear y distribuir eventos de manera eficiente y completa. Tenemos como finalidad proporcionar un paso a paso detallado para crear, configurar y publicar eventos en MISP, tomando distintos ejemplos. Su objetivo es estandarizar el proceso de documentación y compartir inteligencia sobre amenazas de manera eficiente, asegurando que los usuarios de la plataforma puedan aprovechar la información para fortalecer sus defensas y prevenir incidentes similares.
Contexto
El Centro de Gestión de Incidentes Informáticos ha identificado una campaña de phishing masiva que distribuye malware a través de adjuntos en correos electrónicos.
Los pasos para publicar el evento en MISP pueden variar según la información disponible, pero en este ejemplo se detallarán los indicadores de compromiso (IOCs) más comunes asociados a correos de phishing. En casos específicos, es posible que no se encuentren todos los datos mencionados, por lo que solo se debe incluir información verificada.
CREACIÓN DEL EVENTO.
- Distribution.
Define el alcance de visibilidad del evento. - Threat level.
Define el nivel de amenaza del evento. - Analysis.
Define el evento en Inicial,Ongoing (en curso) o finalizado. - Event info.
Incluir el resumen de una descripción del evento. - Extends Event.
Si el evento está relacionado con uno previo, agregar el UUID correspondiente para vincularlos.
- TLP "GREEN". La información no está restringida y puede compartirse para prevenir ataques.
- "email phishing". indica el método de distribución del malware.
- Taxonomías estandarizadas de CIRCL y CSIRT Américas. Estas etiquetas facilitan la contextualización del evento, especialmente para organizaciones y países que filtran amenazas basándose en dichas taxonomías.
- TAG local. Al añadirlo se utilizará esta etiqueta personalizada para filtrar eventos específicos de Bolivia.
Asignación de Atributos y Objetos
Los atributos se agruparán en objetos para este caso, esto nos sirve para organizar la información (cuerpo del correo, archivo adjunto, etc.).
OBJETOS.
Para crear los objetos nos dirigimos al menú lateral de la derecha y seleccionamos la opción Add Object.
Objeto 1. Correo electrónico. Extraemos los datos relevantes del correo malicioso.
- En al correo electrónico recibido, podemos extraer (remitente, asunto, adjuntos, etc.).
- Los atributos correspondientes se añaden al objeto Correo de la siguiente manera:
Objeto 2. Archivo adjunto (malware).
Es posible analizar el archivo en herramientas como VirusTotal, Any.Run o Hybrid Analysis.
- En este caso la información que puede ser extraída para el análisis contiene hashes (MD5, SHA-1, SHA-256), nombre del archivo y metadatos como podemos ver a continuación.
- Los objetos y sus atributos se listarán en la sección correspondiente.
EVENT REPORT.
- Para contextualizar el impacto del malware complementando la información del evento creamos un Event Report de forma manual en primera instancia.
- Opcionalmente, generamos un informe automático con Generate Report From Event, este reporte agrupará los indicadores de compromiso e información de los tags existentes de manera que puede ser enviado como alerta al personal que no tiene la cuenta de MISP habilitada facilitando la comprensión del evento.
- Al realizar click en cualquiera de los objetos se tendrá como resultado los atributos que lo componen.
Publicación del evento.
Para modificar el estado inicial del evento y permitir que los demás usuarios de la plataforma accedan a él, según su nivel de distribución, observamos inicialmente que el evento aparece con el estado 'Published=No', como se muestra en la siguiente captura de pantalla
Con la opción 'Publish (No Email)', se realiza la publicación en la plataforma sin enviar un correo electrónico a los usuarios. Si se requiere el envío de correos, debe seleccionarse la opción 'Publish Event'. Después de elegir cualquiera de las dos opciones, el estado del evento cambia a 'Published=Yes'
Cuando el evento es publicado se asigna un ID al evento en este caso "3" y el primer valor del evento en la lista es un check que indica que los usuarios que están dentro del criterio de distribución pueden ver la información del evento como se muestra a continuación.
02- Direcciones IP con actividad de malware evento MISP
Introducción
MISP es una herramienta de código abierto diseñada para facilitar el intercambio de información sobre amenazas cibernéticas, permitiendo a los usuarios compartir indicadores de compromiso (IOC's), análisis de malware y otros datos relevantes de seguridad.
Esta guía te ayudará a utilizar la plataforma MISP (Malware Information Sharing Platform & Threat Sharing) para crear y distribuir eventos de manera eficiente y completa. Tenemos como finalidad proporcionar un paso a paso detallado para crear, configurar y publicar eventos en MISP, tomando distintos ejemplos. Su objetivo es estandarizar el proceso de documentación y compartir inteligencia sobre amenazas de manera eficiente, asegurando que los usuarios de la plataforma puedan aprovechar la información para fortalecer sus defensas y prevenir incidentes similares.
Contexto
El Centro de Gestión de Incidentes Informáticos recibió una alerta de seguridad que contiene información delicada (Lista de direcciones IP) de una red de distribución de malware activa dentro del país.
Los pasos para publicar el evento en MISP pueden variar según la información disponible, pero en este ejemplo se detallarán los indicadores de compromiso (IOCs) más comunes asociados a distribución de malware. En casos específicos, es posible que no se encuentren todos los datos mencionados, por lo que solo se debe incluir información verificada.
CREACIÓN DEL EVENTO.
- Distribution.
Define el alcance de visibilidad del evento. - Threat level.
Define el nivel de amenaza del evento. - Analysis.
Define el evento en Inicial,Ongoing (en curso) o finalizado. - Event info.
Incluir el resumen de una descripción del evento. - Extends Event.
Si el evento está relacionado con uno previo, agregar el UUID correspondiente para vincularlos.
- TLP "AMBER+STRICT". La información está restringida y es compartida solamente con individuos autorizados (usuarios MISP del nodo nacional).
- Taxonomías estandarizadas de CIRCL y CSIRT Américas. Estas etiquetas facilitan la contextualización del evento, especialmente para organizaciones y países que filtran amenazas basándose en dichas taxonomías.
- TAG local. Al añadirlo se utilizará esta etiqueta personalizada para filtrar eventos específicos de Bolivia.
Asignación de Atributos
Los atributos para este caso son de actividad de red, esto nos sirve para organizar la información.
OBJETOS.
En este caso específico no se tienen objetos, como muestras de malware o distribución por phishing o spam debido a que el origen de la información nos detalla direcciones IP que distribuyen malware.
ATRIBUTOS.
Para agregar la lista de IP's procedemos a seleccionar el boton de "+" para añadir los atributos.
Estos atributos se clasifican en la categoría de actividad de red e IP destino por que son las direcciones IP a las que se comunican los equipos infectados.
Una vez seleccionada la opción Submit podemos observar que los atributos han sido agregados correctamente observando si existe una correlación con otros eventos
CORRELACIÓN DE EVENTOS.
- El evento creado automáticamente se correlaciona con el evento 2 y 16298 como podemos ver a en la columna Related Events a continuación.
- La forma recomendada para visualizar la correlación se encuentra en la esquina superior derecha donde podemos encontrar eventos que fueron relacionados con las direcciones IP reportadas como maliciosas por el proveedor de información, con esta nueva información comprobamos que las direcciones IP están relacionadas con malware Agent tesla y se vio involucrada en realización de solicitudes maliciosas a dominios del país.
EVENT REPORT.
- Generamos un event report automático con Generate Report From Event, este reporte agrupará los indicadores de compromiso e información de los tags existentes de manera que puede ser enviado como alerta al personal que no tiene la cuenta de MISP habilitada facilitando la comprensión del evento.
- Una vez generado el reporte se observa en el apartado de Event Reports el resumen de los datos relevantes del reporte.
- El reporte generado resume la información del evento en la siguiente plantilla:
Publicación del evento.
Para modificar el estado inicial del evento y permitir que los demás usuarios de la plataforma accedan a él, según su nivel de distribución, observamos inicialmente que el evento aparece con el estado 'Published=No', como se muestra en la siguiente captura de pantalla
Con la opción 'Publish (No Email)', se realiza la publicación en la plataforma sin enviar un correo electrónico a los usuarios. Si se requiere el envío de correos, debe seleccionarse la opción 'Publish Event'. Después de elegir cualquiera de las dos opciones, el estado del evento cambia a 'Published=Yes'
Cuando el evento es publicado se asigna un ID al evento en este caso "36748" y el primer valor del evento en la lista es un check que indica que los usuarios que están dentro del criterio de distribución pueden ver la información del evento como se muestra a continuación.
03- Campaña DDoS evento MISP
Introducción
MISP es una herramienta de código abierto diseñada para facilitar el intercambio de información sobre amenazas cibernéticas, permitiendo a los usuarios compartir indicadores de compromiso (IOC's), análisis de malware y otros datos relevantes de seguridad.
Esta guía te ayudará a utilizar la plataforma MISP (Malware Information Sharing Platform & Threat Sharing) para crear y distribuir eventos de manera eficiente y completa. Tenemos como finalidad proporcionar un paso a paso detallado para crear, configurar y publicar eventos en MISP, tomando distintos ejemplos. Su objetivo es estandarizar el proceso de documentación y compartir inteligencia sobre amenazas de manera eficiente, asegurando que los usuarios de la plataforma puedan aprovechar la información para fortalecer sus defensas y prevenir incidentes similares.
Contexto
El Centro de Gestión de Incidentes Informáticos realiza la investigación de un intento de ataque de denegación de servicio (DDoS) hacia servidores gubernamentales en Bolivia, durante esta investigación se pudo recopilar una gran cantidad de direcciones IP que pertenecen a la botnet para realizar ataques, se utilizaron criterios de numero de solicitudes realizadas y tipo de solicitudes para identificar estas solicitudes.
Los pasos para publicar el evento pueden variar ligeramente según el contenido y la información proporcionada a la plataforma. En este ejemplo de creación de un evento en MISP, se detallan conjuntos de direcciones IP que luego fueron reportadas a los respectivos países para tomar acciones de mitigación desde sus jurisdicciones. En casos específicos de DDoS, los datos más importantes son las direcciones IP de origen, los rangos de IP y la geolocalización, ya que son atributos clave para correlacionar. Como contexto adicional, los tiempos entre solicitudes son muy útiles para identificar patrones en solicitudes automatizadas.
CREACIÓN DEL EVENTO.
- Distribution.
Define el alcance de visibilidad del evento. - Threat level.
Define el nivel de amenaza del evento. - Analysis.
Define el evento en Inicial,Ongoing (en curso) o finalizado. - Event info.
Incluir el resumen de una descripción del evento. - Extends Event.
Si el evento está relacionado con uno previo, agregar el UUID correspondiente para vincularlos.
- TLP "GREEN". La información no está restringida y puede compartirse para prevenir ataques.
- "DDoS Botnet" y "DDoS attack Evidence campaign". Debido al comportamiento malicioso observado en la mayoría de las direcciones IP y la investigación realizada donde se anuncia el ataque de denegación de servicio.
- Taxonomías estandarizadas de CSIRT Américas. Estas etiquetas facilitan la contextualización del evento, especialmente para organizaciones y países que filtran amenazas basándose en dichas taxonomías.
- TAG local. Al añadirlo se utilizará esta etiqueta personalizada para filtrar eventos específicos de Bolivia.
Asignación de información al evento.
Los atributos para este caso pertenecen a la categoría de actividad de red, esto nos sirve para organizar la información.
OBJETOS.
En este caso específico no se incluyen objetos, como muestras de malware o archivos maliciosos, ya que el origen de la información se limita a direcciones IP que forman parte de la botnet responsable del ataque DDoS. Por este motivo, no se añadirán objetos al análisis.
ATRIBUTOS.
Para agregar la lista de direcciones IP procedemos a seleccionar el botón "+" para añadir los atributos.
Estos atributos se clasifican en la categoría de actividad de red e IP fuente por que son las direcciones IP desde las que se realizó el intento de denegación de servicio.
Una vez seleccionada la opción 'Submit', podemos verificar que los atributos se han agregado correctamente y comprobar si existe correlación con otros eventos. En este caso particular, dado el volumen elevado de direcciones IP, se recomienda revisar las correlaciones en la esquina superior derecha de la interfaz. En la columna adyacente pueden observarse los atributos que han sido añadidos al evento
CORRELACIÓN DE EVENTOS.
La forma recomendada para visualizar la correlación se encuentra en la esquina superior derecha donde podemos encontrar eventos que fueron relacionados con nuestro evento.
En la esquina superior derecha de la interfaz se visualizan los eventos relacionados con las direcciones IP identificadas como parte de la red involucrada en el ataque DDoS, extraídas durante la investigación. Este contexto nos permite establecer que:
-
Direcciones IP asociadas a actividad maliciosa.
-
Dispositivos IoT comprometidos.
-
Direcciones dedicadas a enumeración de usuarios.
-
Intentos de exploración no autorizados.
EVENT REPORT.
- Generamos un event report automático con Generate Report From Event, este reporte agrupará los indicadores de compromiso e información de los tags existentes de manera que puede ser enviado como alerta al personal que no tiene la cuenta de MISP habilitada facilitando la comprensión del evento.
- Una vez generado el reporte se observa en el apartado de Event Reports el resumen de los datos relevantes del reporte.
- El reporte generado resume la información del evento en la siguiente plantilla:
Publicación del evento.
Para modificar el estado inicial del evento y permitir que los demás usuarios de la plataforma accedan a él, según su nivel de distribución, observamos inicialmente que el evento aparece con el estado 'Published=No', como se muestra en la siguiente captura de pantalla.
Con la opción 'Publish (No Email)', se realiza la publicación en la plataforma sin enviar un correo electrónico a los usuarios. Si se requiere el envío de correos, debe seleccionarse la opción 'Publish Event'. Después de elegir cualquiera de las dos opciones, el estado del evento cambia a 'Published=Yes'
Cuando el evento es publicado se asigna un ID al evento en este caso "53289" y el primer valor del evento en la lista es un check que indica que los usuarios que están dentro del criterio de distribución pueden ver la información del evento como se muestra a continuación.