Si hemos sido atacados y detectamos que un intruso ha hecho modificaciones en nuestra tienda, el primer paso es restaurar la web tal y como estaba antes.
No todo se reduce a restaurar copias de seguridad, es mucho mas complicado que restaurar una copia de la BBDD del día anterior, o de hace unas horas.
El primer paso es saber que modificaciones ha hecho exactamente el intruso. Necesitaremos saber por donde ha venido el ataque (Via administrador, bbdd, ftp…) y cuales han sido todos y cada uno de sus movimientos.
Teniendo estos datos y sabiendo exactamente el alcance total, es cuando toca tomar la decisión de como actuar.
Un administrador de Prestashop sabrá a simple vista cual ha sido el origen, que principalmente pueden ser tres:
Sabiendo cual es exactamente el origen sabremos si mirar en un sitio u otro a la hora de buscar el alcance total.
Lo primero que tenemos que hacer es cerrar la puerta que teníamos abierta y por la que sabemos que ha entrado, cambiar contraseñas de BBDD, FTP, administración y muy importante, mails vinculados a las cuentas de administración.
Nota: Todos los comandos, rutas, ficheros, etc que citaré son para un sistema CentOS 7, con Plesk instalado.
Los accesos por FTP, dependiendo de la configuración de nuestro servidor los podremos mirar en:
/var/log/plesk
Aquí podremos ver:
Otra ruta donde hay logs muy útiles es un directorio por debajo:
/var/log/
Aquí podremos encontrar:
Se hace uso principalmente de dos comandos básicos en Linux:
cat FICHEROQUESEA find DIRECTORIOQUESEA
Supongamos que nuestro intruso hemos detectado que entró por FTP, y tenemos su IP.
La ip del intruso figuro como la 95.13.13.15
El siguiente comando, sacará por pantalla los ficheros que han sido modificados en una ruta concreta durante el último día:
find ./* -type f -mtime -1
Si queremos buscar en un log o carpeta de logs la IP, podemos poner:
grep -rnw ./* -e '95.13.13.15'
Podemos filtrar búsquedas y guardarla en ficheros específicos, luego, volver a buscar sobre ese fichero resultado y volver a guardar, así continuamente hasta tener un fichero resultado con lo que queremos, es decir, tenemos un log que ocupa 10 dias. Pues hagamos un filtro de solo el día del ataque:
cat ./* | grep "11/Jul/2017" > fichero_con_logs_dia_11_jul.log
Nuestro fichero resultado tendrá solo los logs del día que queremos buscar.
Ahora sobre ese, filtraremos solo las lineas que contengan la IP de nuestro intruso.
cat fichero_con_logs_dia_11_jul.log | grep '95.13.13.15' > log_dia_11_con_ip.log
El resultado será un log donde podremos buscar todo lo que hizo nuestro intruso.
Esta decisión se toma en caliente, dependiendo de las perdidas ocasionadas podremos optar por reparar aquello que el atacante ha perjudicado o bien directamente haciendo un volcado de copias controlado.
Si has sufrido esto, y estas en el punto de relajación toca volver hacia atrás y preguntarte porque te atacó, buscar el origen del ataque y cerrar todas las puertas que puedas llegar a tener abiertas.
Toda esta información la podrás sacar de los logs del servidor, echando un ojo a semanas anteriores, seguro que el intruso no era la primera vez que entraba:
Podemos ampliar este post entre todos si se os ocurren formas de detectar un intruso, estoy abierto a cualquier sugerencia.
Modifica tu tienda en un solo sitio Si por algún motivo, no utilizas multitienda y…
En el proceso de compra no se muestran las opciones de pago Si te has…
/migrations#rm -rf ./* #php bin/console doctrine:migrations:generate #php bin/console doctrine:migrations:migrate #php bin/console doctrine:migrations:current #php bin/console doctrine:migrations:diff…
Pasos para inicializar un proyecto Symfony 5 y un panel de control de entidades Inicializando Symfony:…
MODULOS DE ODOO NECESARIOS PARA UN ECOMMERCE Enlaces de OCA de interes: En el siguiente…
Migración de un prestashop 1.7 de un dominio a otro. Copiamos la BBDD del antiguo…