ATAQUE HACKERS DEL 15 DE OCTUBRE. NECESITO AYUDA

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
narcisoweb's picture

Hola a todos, tengo un nivel bajo de Drupal y necesito ayuda.
El ataque de hackers del 15 de Octubre, me ha infectado proyectos que estoy desarrollando. Tengo instalados 3 sitios distintos en dos servidores distintos. El antivirus de uno de los servidores no ha dejado progresar el ataque, pero ha borrado los archivos infectados y me ha destrozado la página. Ahora no se ve nada, puedo acceder a ella como administrador, pero concretamente los temas con Omega no se muestran.
En el otro servidor, aparentemente no ha pasado nada, pero he detectado que ha creado un usuario nuevo llamado “drupaldev” con un nuevo rol llamado “megauser” con todos los privilegios. He borrado el rol y el usuario, pero supongo que el ataque será más profundo y que todo el sitio está comprometido.
Uno de los sitios no lo tenía actualizado, pero el otro instalé la actualización al día siguiente de recibir la notificación, pero ya era tarde.
He visto en la red muchos artículos sobre la vulnerabilidad de Drupal que ha permitido este ataque y algunas formas de intentar resolverlo, pero son demasiado complejas para mi nivel. Tengo copias de seguridad, pero con todo el desarrollo que habré perdido, no sé si me compensa restaurarlas o empezar de cero y asegurarme de que el sitio está limpio. Afortunadamente no tengo contenido importante, ya que estaban todos los sitios en fase de diseño.
Os agradecería mucho que me orientarais sobre cómo resolver el problema y como estar preparado para un caso parecido en el futuro, para lo cual, si sois tan ambles, me gustaría que me contestarais a las siguientes preguntas:
1. No he visto ningún comentario vuestro sobre este ataque. ¿No os ha afectado? ¿o lo habéis resuelto con facilidad?
2. ¿Está comprometido también el correo electrónico que me proporciona el servicio de hosting?
3. Aparte de las copias de seguridad ¿Hay algo que se pueda hacer para optimizar la seguridad?, algún modulo como CloudFlare, etc.
4. Creo que en mi caso es mejor empezar de cero. ¿Cómo lo hago?
a. ¿Tengo que borrar primero todos los archivos del servidor?
b. ¿Después instalar de nuevo la última versión de Drupal con una base de datos nueva?
c. ¿Después volver a instalar todos los módulos que utilizo?.
5. Si tengo una copia de seguridad de la base de datos y copiado todo el sistema de archivos del sitio, ¿cómo se restaura todo eso?
6. Como hacéis vosotros cuando empezáis un proyecto nuevo, ¿hay que instalar cada vez todos los módulos adicionales después de instalar Drupal en el servidor?, o tenéis algún sistema para tener una copia de Drupal con los módulos que más se usan instalados, (pero sin diseño ni contenido). El proceso de instalación y configuración de módulos adicionales al core es muy pesado. ¿Hay alguna forma de que sea fácil?, ¿Cómo lo hacéis vosotros?.
Perdonar por lo pesado y muchas gracias de antemano a todos.

Comments

backup and migrate

pinueve's picture

Hola Narcisoweb
también soy algo nuevo en drupal, te voy a dar la solución que yo hice, tienes que comenzar todo otra vez, ya tienes el código, base de datos y archivos, supongo que tu base de datos local de "backup" no tienes el virus, entonces reinstala un nuevo drupal en tu servidor remoto, esto eliminara todo tu sitio, después sube el código restante (modulos, temas, etc.) y archivos, después haces un "backup and migrate" a tu sitio remoto con tu base de datos local y listo.
Para evitar en un futuro esto, siempre actualiza el core de drupal. Otro consejo es que utilices el modulo "feautures", casi todas tus configuraciones las guardas como modulos. espero te sirva. saludos.

EDIT
busca en google "drupal al sur", tiene excelentes videotutoriales en español acerca de todo esto.

Por aca esta un post al respecto!

koffer's picture

Hola. en el grupo de spanish y de México esta este post que arme sobre el tema:

https://groups.drupal.org/node/447398

Tiene ligas a que hacer para recuperar, pero si puedes lo mejor es regresar todos tus sitios a un respaldo antes de que pasara el suceso y actualizar la versión.

¿Pero el ataque no ha afectado a Sites?

narcisoweb's picture

Muchas gracias por vuestra contestación.

Dices que instale de nuevo drupal en el servidor, pero cuando dices que suba el código restante, ¿te refieres a toda la carpeta "sites"?, ¿tenemos la seguridad de que el virus no está en ningún archivo de esa carpeta?.

Por otro lado, os preguntaba, cual es la mejor forma de empezar un proyecto nuevo sin tener que instalar y configurar todos los módulos contribuidos que habitualmente uso. A mi se me ocurre crear una copia de drupal en local, instalar y configurar todos los módulos que uso (sin crear contenido), y cuando tenga que empezar un proyecto nuevo, instalar en remoto drupal, subir la carpeta "sites" que ya tiene los módulos contribuidos instalados. Pero no se si esto funciona, o si tengo que subir también la base de datos que corresponde a la instalación que hice en local ...

En fin estoy un poco liado con eso, pero me gustaría saber si hay algún procedimiento para evitar tener que instalar todos los módulos contribuidos, cada vez que creo un sitio nuevo.

Features me parece muy practico, pero no es lo a lo que me refiero.

Muchas gracias de nuevo.

Hola Narciso, Con Features se

jansete's picture

Hola Narciso,

Con Features se puede hacer lo que quieres :)

Features: Para pasar toda la configuración de base de datos a código.
Features Extra: Permite exportar algunas otras configuraciones que no vienen por defecto, como los bloques.
Featuers Override: Permite exportar configuraciones que venían por defecto y que hemos sobreescrito.
Node Export: Permite exportar nodos enteros a código.
Diff: VIsualiza las diferencias entre base de datos y código, ideal para saber si tienes que pasar de base de datos a código (recrear) o de código a base de datos (revertir).
Role export: Permite exportar roles.
Strongarm: Permite exportar todas las variables de configuración de tus módulos.

Por lo tanto, una vez tengas todos, el proceso es que pases todo tu sitio de base de datos a código, y una vez lo tengas, puedes empezar un nuevo sitio con ese código activando las features que has creado con una base de datos nueva, todo por supuesto, haz pruebas en una instalación independiente, otra super ventaja de tenerlo todo en código, es que puedes utilizar un sistema de control de versiones como GIT, y tener siempre la capacidad de volver a un estado anterior, crear diferentes ramas de desarrollo y un largo etcétera de ventajas, y más aún si trabajas en equipo.

Hay módulos también que te pueden ayudar para saber si hay partes del código que están modificadas, como el módulo hacked, y luego drupalgeddon y security_review también te pueden ayudar en este tema.

Algunos otros consejos

interdruper's picture

Hola Narciso,

Jansete te acaba de indicar la forma recomendada (en D7) de mantener la configuración versionable y en código, en vez de en la BBDD, usando Features y Git.

Si lo que estás buscando es algo más sencillo, tener algo parecido a una 'distro' propia con los módulos que habitualmente usas para arrancar nuevos proyectos, y que se instale con un solo comando, tienes que mirarte drush, y en concreto el comando 'makefile', que te permite tener un script de instalación.

Para no solo instalar, sino posteriormente configurar a tu gusto los módulos, si no quieres meterte con Features, tendrías que preparar un Profile de instalación. No es complicado, aunque para esto hay que tocar código. Puedes orientarte consultando el código de cuaquier distro de Dupal de las muchas que hay.

El tema de la gestión de la configuración y del deployment es todo un mundo, no muy bien resuelto en D7 (mucho mejor en D8), por eso resulta un poco complicado meterse con ello.

Respecto al Drupalgeddon: la mayoría de las infecciones lo que han hecho es diseminar código ofuscado PHP en los directorios de la instalación Drupal que son backdoors para que el atacante pueda ejecutar código PHP en tu servidor. También grababan ficheros en los directorios públicos (/files/...), y no solo como ficheros php, sino también como gifs, jpegs, que dentro realmente tienen PHP ofuscado. Este es un ejemplo de un caso real, /default/files/btn_prev-min.gif

<?php ##8u8j5EZ=n*thMtn1l(G+;RJ^X7Zg6p
$jox='; ....

La solución "definitiva" es restaurar un backup previo al 15 de Octubre, tanto del código, como de los ficheros de datos, como de la BBDD. Solo así estarás seguro de que no hay ningún archivo infectado. Si eso no se puede hacer, hay que hacer limpieza 'manual' de todo.

Suerte.

Probaré con Drush, (pero mas adelante)

narcisoweb's picture

Muchas gracias Jansete e Interdruper,

Acabo de conocer por vuestros comentarios, lo que son los "distro", y efectivamente eso es lo que quiero, un paquete propio que pueda instalar cada vez que quiera crear un sitio. Hasta ahora, había estado evitando meterme con drush, porque no lo veía imprescindible y me parecía mas complicado, pero si tu me dices, que entre otras cosas, puedo hacer esto, voy a tener que meterme con él, aunque a mas largo plazo, porque lo veo un poco complicado para mi nivel. (Si tenéis algún link de tutorial bueno de drush, por favor indicármelo.

No sabia que existían paquetes que recogían varios módulos enfocados a actividades concretas. ¿Estos paquetes se instalan como un modulo normal?, ¿que pasa si incluyen un modulo que ya tengo instalado?, ¿son fiables?, lo digo porque la mayoría son versiones beta. ¿se pueden complementar con otros módulos?....

Respecto a la infección, voy a restaurar desde antes del 15 de Octubre y en uno de los proyectos, empezar de cero.

Muchas gracias de nuevo, me habéis abierto los ojos sobre algunos temas.

hola narcisowebcomienza con

mgzrobles's picture

hola narcisoweb

comienza con estos links de drush, drush make y features, aunque no te será nada complicado encontrar mucha más documentación sobre el tema.
espero que te ayuden en lo que buscas

http://www.drushcommands.com/
http://www.forcontu.com/descarga/d7u62pdf
http://www.forcontu.com/descarga/d7u58pdf

y algunos vídeos
(el segundo) http://vimeo.com/channels/drupalcampspain2011/33806288
http://2012.drupalcamp.es/es/sesiones/procedimientos-herramientas-y-estr...
http://2012.drupalcamp.es/es/sesiones/arquitectura-de-proyectos-drupal-78

saludos!

Martín González Robles
web: http://elsabrosista.com
email: martin.glez.robles@gmail.com
Unidad sobre OG para Drupal 7: http://www.forcontu.com/descarga/d7u66pdf

Gracias mgzrobles

narcisoweb's picture

Muchas gracias, leeré la información que me has dado a ver si no me resulta muy duro.

Me he quedado frio

gbelot2003's picture

Me he quedado frió con los comentarios sobre este ataque, en lo personal afecto a un proyecto que desarrolle, pero que no tenia mantenimiento, y el ataque fue exitoso porque la versión de drupal era 7.22, así que como imagináis estaba vulnerable. pero precisamente porque estaba sin actualizar y sin mantenimiento, tengo algunos años de trabajar con drupal y si algo he aprendido es que un proyecto actualizado constantemente y siguiendo buenas practicas y #the drupal way# difícilmente hackeable.

notar que es necesario que se aprenda a manejar drush para facilitar las actualizaciones, de versión y los módulos, buscar host con acceso a shh es imprescindible. aprender a trabajar correctamente con los overwrite de las plantillas también es absolutamente necesario.

Sobre la recuperación del sitio fue lo mas sencillo, simplemente, sacar el back-up de la base de datos que no fue alterada por el ataque, cambiar y/o borrar los archivos exogenos, habían alterado también el index, solo se sobrescribe con uno existente, luego drush up para actualizar la versión de drupa. por ultimo revisar el estado de permisos de las carpetas y actualizar el .htaccess de tmp y de files

Suerte

-Aprende a Preguntar, Pregunta para aprender- ya que -La educación es cara, cierto, pero la ignorancia cuesta mucho mas - :P

Madrid

Group organizers

Group events

Add to calendar

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: