Mollom claves de la API de alojamiento Drupal

Su sitio Drupal hackeado. ¿Ahora que?

Lamentablemente. El peor de los casos ha llegado a pasar: una vulnerabilidad permitía algún lugar a un individuo malintencionado (o bot, lo más probable) para hacerse cargo de su sitio. Una buena noticia: usted ha notado que lo hicieron. Las malas noticias: ahora se tiene que limpiar.

Esta guía le dará una serie de pasos para saber cómo hacer frente a la situación. Puede que no sea exhaustiva. Si usted siente que le falta algo, por favor contribuir. Las ideas se presentan en orden cronológico. En cada paso, tendrá que tomar decisiones y realizar acciones que sean más apropiadas para su situación.

hospedaje

Paso 1: Haga una copia forense del sitio

Una vez que esté seguro de que usted ha sido hackeado debe dejar todo y hacer una copia forense de la misma. Algunas personas prefieren dar un tirón, literalmente, el cable de red y el cable de alimentación del servidor, sin embargo, que, evidentemente, no siempre es adecuada y no funciona para todos los entornos (en la nube, alguien?). Si se puede, esta copia forense podría ser una instantánea a nivel de sistema operativo del servidor (s) en cuestión. De lo contrario, ir a por una copia de la base de datos y archivos. Almacenar una copia a los medios de comunicación que no se pueden modificar como un CD o DVD.

Paso 2: decidir mantener, rollback, reconstruir, o lanzar el sitio de distancia.

"Mantener" un sitio que requiere gastar mucho tiempo y esfuerzo revisarlo. Usted puede decidir, en función de la naturaleza del sitio, que es perfectamente aceptable para tirar a la basura o reconstruirlo. Tal vez las necesidades del sitio han cambiado y se planea reconstruir ya. Tal vez fue para un evento que ha ido y venido y se puede hacer una copia estática o simplemente borrar todo. Incluso si usted ha decidido para reconstruir o eliminar un sitio que no haya terminado con este proceso, pero al menos se ha cortado a cabo una gran parte del trabajo de remediación. Puede que no sea capaz de tomar esta decisión, o puede cambiar de opinión basada en la investigación que hace como parte de la remediación. Iniciar el proceso por considerar esta cuestión y puede ayudar a aliviar su vida. Si conoce la fecha específica de que su sitio fue hackeado, que puede ser capaz de reconstruir el sitio con facilidad, simplemente usando una base de datos y el archivo de copia de seguridad anterior (los haces y mantenerlos en todo, ¿verdad?).

Recuadro: Documentación y aprendizaje

Una de las primeras cosas que debe hacer es abrir dos blocs de notas. Uno de documentar todo lo que has descubierto y que se está haciendo ahora. Si usted nota un detalle importante que demuestra cómo los atacantes llegaron en, añadir la fuente de la información y como parte de esa información como sea posible. El segundo documento es para cosas que quiere hacer para endurecer su sitio que usted piensa a medida que avanza el proceso. Usted puede darse cuenta de una gran cantidad de cosas que puede hacer que sea más difícil para los atacantes, pero su no fácil o lo suficientemente crítica para hacer en este momento. Salvar a esas ideas valiosas para más adelante.

Mollom claves de la API de Drupal alojamiento de acceso al

Paso 3: ¿Quién debe notificarle?

Usted debe empezar a decidir quién debe notificar sobre el tema. Si su sitio tenía los usuarios y cree que su sitio estaba completamente sobre el contenido y luego privada como su dirección de correo electrónico, dirección IP y cualquier otra cosa privada en el sitio se vea comprometida. En algunos lugares que están obligados por ley a informar a la gente de esta exposición (por ejemplo, en el caso de los sitios que requieren HIPAA o PCI Compliance), si no también moralmente obligado.

Si usted no es el propietario del sitio, debe tener en cuenta, que las partes interesadas para informar. Los visitantes del sitio pueden haber estado expuestos a malware. El propietario debe participar en la toma de decisiones.

Dependiendo de la naturaleza del lugar y que sospechan que la atacaron, es posible que desee notificar a uno o más grupos encargados de hacer cumplir la ley. Muchos grupos locales de la ley están mal equipados para hacer frente a este tipo de problemas. Pero tal vez van a ser capaces de ayudar o referir el caso a otro grupo de aplicación de la ley.

Paso 4: En caso de tomar el sitio fuera de línea?

Una vez más, dependiendo de la naturaleza del sitio es posible que desee tomar fuera de línea. Si sospecha que está siendo utilizada activamente para distribuir malware, enviar spam o como punto de pivote para más ataques luego de tomarlo fuera de línea y la instalación de un marcador de posición será, al menos, evitar daños mayores.

Tenga en cuenta que el sitio fuera de línea teniendo probablemente no inclinar los atacantes que usted es consciente de su presencia.

Si no se toman el sitio fuera de línea en el nivel de servidor web:

Asegúrate de que tienes tu copia forense y luego eliminar a cabo todas las sesiones.

Si se han cambiado las contraseñas le sospechosas, puede actualizar a los nuevos valores mediante una consulta como la siguiente:

usuarios de actualización del conjunto pass = concat ( 'ZZZ', sha (concat (pasar, md5 (rand ()))));

Los usuarios podrán utilizar la herramienta de restablecimiento de contraseña para cambiar su contraseña.

Paso 5: comenzar a investigar el ataque

Cualquier cosa que avisó al hecho de que fueron comprometidos es el primer paso en la investigación del ataque. Si el contenido de la página se cambió, correos electrónicos no deseados fueron enviados, información robada y utilizada para algún propósito, el malware cargado en el sitio, cualquiera que sea el compromiso es - tener en cuenta la forma en que el atacante podría haber logrado. Haz una lista de todas las maneras que se pueda imaginar que alguien pudiera hacer ese cambio. Hay dos goles a este ejercicio: en primer lugar, usted ayudará a precisar la forma en que fue atacado para que pueda cerrar ese agujero. En segundo lugar, usted podrá identificar otras cosas, el atacante podría haber hecho sobre la base de los medios que utilizan para atacar a su sitio. Trate de ser creativo y no tire ninguna posibilidad como "demasiado duro" o "técnicamente imposible" - su atacante era probablemente creativa y su sitio puede no funcionar exactamente como usted piensa que lo hace.

Una vez que tenga una lista de formas, empezar a tratar de definir lo que es más probable. Lo que requiere el menor esfuerzo? ¿Qué evidencia habría para cada uno? Qué ves ejemplos de esa evidencia? Para cada método, es el ataque de una cosa razonable para alguien que hacer si tuvieran ese tipo de acceso? ¿Se requieren tanto esfuerzo que no vale la pena?

En caso de duda, pedir ayuda a un colega que puede tener más experiencia en TI y seguridad de aplicaciones web. A veces, el sencillo ejercicio de hablar a través de otra persona saldrá a la superficie ideas adicionales. Además, debe revisar la lista de OWASP Top 10 para asegurarse de que está consciente de los diversos tipos de ataques. Por último, le resulta muy útil para buscar en Internet para ver si hay otros que experimentan una ruptura similar. Muchas veces estos ataques se llevan a cabo por los robots que exploran una gran cantidad de sitios web, lo que puede haber algunas firmas conocidas para buscar, así como soluciones para corregir y / o mitigar la vulnerabilidad.

Si tiene suerte, una o dos de las formas posibles de romper en la que será la elección obvia. Por lo tanto, bloquear esa debilidad!

Recuadro: Los atacantes han Flujos de trabajo demasiado

Al igual que usted tiene un flujo de trabajo para la construcción de un sitio, los atacantes tienen flujos de trabajo para atacar a un sitio. En términos generales, el primer paso que le importa es cuando se han roto en el sitio. A menudo hay un robot de software y / o grupo de personas que están trabajando en esta pieza y no son necesariamente las personas que van a explotar el sitio. Una vez que han establecido un punto de apoyo, el siguiente paso no puede venir por días o meses.

A continuación está aprendiendo sobre el sitio y decidir qué hacer con él. Si el sitio alberga un gran número de cuentas o datos sensibles, entonces eso es un recurso. Si está en una red privada grande, entonces eso se convierte en algo nuevo para explorar y explotar. Tal vez es sólo una limpia IP a usar para enviar correo no deseado. Tal vez se pone un montón de tráfico y es un buen punto de usar para distribuir malware. Si se tiene un rango de motores de búsqueda puede ser un lugar desde el que vincular a otros sitios y ganar la reputación del motor de búsqueda.

Una vez que se entiende el valor potencial de su sitio es el momento de comenzar a explotarla. Los atacantes pueden hacer varias cosas al mismo tiempo: empezar por exfiltrating la lista de correo electrónico / contraseña y luego dejar algunos enlaces de malware y los motores de búsqueda. Si su contenido es particularmente sensible pueden copiarlo y luego limpiar sus pistas para que no se sospecha que cualquier dato fue robada.

Si ve signos de un robo, pero no de cualquier daño, tal vez se detuvo el proceso temprano, o tal vez abusado el sitio de una manera que no dejan huellas y luego no han hecho otra cosa.

¿De dónde los atacantes explotan sistemas de Drupal?

index.php, o en realidad cualquier archivo de código

Un truco común es simplemente modificar el index.php o cualquier archivo de código en el sitio como un archivo de plantilla. Los métodos son varias:

  • Un virus en el ordenador utilizado para administrar el sitio que utiliza credenciales almacenadas en una herramienta de FTP para editar y subir los archivos (en serio).
  • la ejecución de código arbitrario en los permisos de archivo de servidor del servidor y sueltos utilizados para editar o sobrescribir un archivo.
  • carga de archivos arbitrarios que se utilizó para cargar un intérprete de comandos que luego se utiliza para modificar el código.

Comparar archivos de código de buenas copias conocidas, ya sea en el sistema de control de revisión o de drupal.org (el hackeado! Módulo puede ayudar con eso.)

Buscar archivos en el servidor que no son parte de su conocida base de código de Drupal, por ejemplo, módulos / sistema / qseboj.php

Revisar los archivos en el directorio "archivos" para asegurarse de que son todos apropiados.

Puede ser útil revisar los metadatos combinada de propietario, grupo, los permisos y las marcas de tiempo como una huella digital de los archivos en el servidor. Si la mayoría de los archivos tienen una huella digital y un único otro archivo tiene una huella digital diferente (editado por ejemplo, acerca de cuándo comenzó el ataque) que puede ayudar a entender lo que pasó.

Código dentro de su contenido o de administración de interfaz

El php.module en el núcleo es realmente útil para los administradores del sitio para poner un poco de fragmento de código en la interfaz de Drupal para hacer un pellizco con el comportamiento de un nodo o bloque. Es también una gran manera para que un atacante ejecutar cualquier código que quieren.

Revisar el contenido de todos los nodos, bloques, perfiles de usuario, campos, etc. Si no puede legítimamente hacer esto a mano y luego buscar contenido malicioso.

El módulo de importación o Reglas Vistas interfaz de usuario o CDN o Google Analytics o unas pocas docenas de otros módulos muy populares en todo permiten ejecutar PHP a través de sus interfaces. Ay. Estos son rara vez la forma en curso un sitio es explotado, pero puede ser útil en la localización del punto de que un atacante entró. Revisar las formas de ejecutar PHP en su interfaz de sitio y busque en los registros del servidor web para las visitas a las direcciones URL. Son las visitas de direcciones IP conocidas? Están fuera de las horas normales de trabajo? Conociendo el tiempo y la IP del atacante puede ayudarle a unir más pistas sobre el atacante de buscar en la base de datos en el watchdog.hostname o comment.hostname.

Un nuevo usuario y / o una nueva función

Mira todos los papeles en su sitio. ¿Qué permisos tienen? Que han avanzado los permisos que se podrían utilizar para hacerse cargo de un sitio? Tal vez hay un nuevo papel que sabe que no hizo. ¿Existe un usuario con ese papel? Probablemente tiene un correo electrónico y / o contraseña controlado por el atacante. Con su lista de funciones que tienen permisos avanzados, echar un vistazo a los usuarios de su sitio. ¿Conoce a cada uno que ha avanzado permisos? Mientras estás en ello: auditar los usuarios y quitar las funciones avanzadas de la gente que no los puedan necesitar. Bloquear a los usuarios ya no participan en la administración del sitio.

Modificación de un usuario existente

Como se mira a todos los usuarios en el sitio, asegúrese de buscar no sólo por su nombre de usuario, sino también su dirección de correo electrónico. ¿Tiene sentido para esa persona? Si no está seguro, bloquear la cuenta y vuelva a comprobar con la persona. Un truco que puede utilizar para ver si el correo electrónico ha cambiado desde que el usuario registrado es buscar en la base de datos y compara users.init con users.mail.

Nota especial: Mientras que usted debe buscar en la base de datos para ayudar a tomar decisiones, si su sitio ha sido bien y verdaderamente comprometido recuerde que el atacante puede haber modificado cualquier fila o columna en la base de datos. Use buenas conocidos copias de seguridad de la base de datos (si las hay) para validar teorías.

La tabla de sesiones

Muchos ataques dejan rastros detrás, pero una sesión sólo dura hasta que el usuario hace clic en Cerrar sesión. Usando su lista de roles con permisos avanzados, buscar todas las sesiones asociadas a los usuarios que tienen esas funciones. ¿La IP en su sessions.hostname tiene sentido para ellos? ¿Ves una sesión abierta para un usuario que se cree que ya no está involucrado en la organización? ¿Ve una sesión para un nuevo usuario que no creó? Compruebe la cantidad de tiempo entre el momento los usuarios registrados en el sitio en el valor users.login y su más reciente visita la página en el session.timestamp: seleccionar (s.timestamp - u.login) / 60/60/24 como days_since_login, u.uid de sesiones s combinación interna usuarios U en s.uid = u.uid; Un atacante puede insertar una sesión para un usuario que no ha iniciado sesión durante mucho tiempo, por lo que es fácil de detectar su sesión.

La tabla menu_router

menu_router mesa de Drupal se accede bastante temprano en el ciclo de solicitud de la página y es un gran lugar para plantar un poco de código de ataque. Si se ha despejado a propósito o accidentalmente la memoria caché del menú desde el inicio de la investigación que puede haber perdido algo de información de esta tabla, ya que se reconstruyó a partir del código en su sitio en ese proceso. Ahora no eres feliz que usted hizo una copia forense en el principio?

Una solución fácil a esta laboriosa tarea es tomar su copia forense y luego compararla con una versión de la tabla menu_router después de haber reconstruido esa tabla. Si hay nuevas filas, las filas que faltan, o filas con diferentes contenidos que merece investigación. También puede buscar firmas comunes de un ataque como "file_put_contents" o "afirmar" en la devolución de llamada de acceso.

Atacar a otros sitios en el mismo servidor o misma red

Si alguien tiene el control, incluyendo la capacidad de ejecutar código PHP arbitrario, que potencialmente pueden extender su control a otros sitios servidos desde el mismo servidor o misma red. Si no puede encontrar ninguna indicación de cómo un atacante violó su sitio, es el momento de examinar otras vías como otros sitios en el servidor o red. Del mismo modo, si su sitio es violada es una buena práctica para aconsejar a otros en el servidor (por ejemplo, a través de su administrador del sistema o empresa de alojamiento) para que puedan revisar los problemas que puedan haber surgido.

El robo de información sensible

Piense en la información sensible dentro de su sitio: direcciones de correo electrónico, los hashes de contraseñas, direcciones IP de los clientes de las tablas de vigilancia y de comentario, todos los nodos que fueron publicados o escondido de acceso público de otra manera. Pero ¿qué otra cosa? Drupal tiene varias variables internamente que son privadas: settings.php contiene la información de autenticación de base de datos y probablemente $ drupal_hash_salt, ambos de los cuales son información privada sensible. El drupal_hash_salt se utiliza para una variedad de propósitos relacionados con la seguridad y tener ese pedazo de información puede hacer que sea más fácil de romper de nuevo en un sitio. La información confidencial también puede existir dentro del sistema de las variables (llamado en código con variable_set y variable_get, por lo general almacena en una variable de tabla de base de datos llamada). El drupal_private_key, en particular, es una pieza importante de información secreta que se debe eliminar (se regenera la próxima vez que sea necesario). Si su sitio utiliza las API de 3 ª parte como Facebook o conectarse Mollom continuación, las teclas de la API se utiliza para autenticar a esos servicios se vean comprometidos. Comprometer las teclas 3 ª parte puede hacer que su sitio menos seguro y exponer su cuenta con estos servicios. Si su sitio permite a los usuarios iniciar sesión con OAuth o servicios similares que proporcionan señales a largo plazo, a continuación, los tokens de OAuth almacenan en su sitio deben ser considerados en peligro.

¿Cómo arreglas esto?

  • Reemplazar todos los secretos sensibles - generar una nueva $ drupal_hash_salt, trabajar con herramientas de 3 ª parte para invalidar claves antiguas y crear nuevas claves, crear nuevas credenciales para su base de datos, etc ..
  • Siempre que sea posible, limitar la capacidad asociada a ningún sitio tercera partes (por ejemplo, si usted no tiene acceso a publicar en Facebook a nombre de esa persona, entonces no pedir ese permiso cuando llegue a su token FB Connect).

Paso 6: Revisar la pregunta: remediar, reconstruir, o basura el sitio?

Dependiendo de lo que has encontrado puede ser el momento de volver a examinar su decisión inicial. Si el acceso al atacante ganó era extenso y los cambios que han hecho dispersa. puede ser difícil tener confianza en lo que el sitio de nuevo en línea.

¡Mira este video!

Artículos relacionados

Cargar comentario Hosting DrupalAbdulrahman comentado 18 de febrero de 2011 a 19:23 (a mikeaja) Tengo dos notas sobre esto: - Drupal 6 es menor en términos de los recursos necesarios (especialmente el uso de CPU) de 7, que lo convierten en un útil ...
Conectado de alojamiento DrupalTodos los visitantes a su sitio, si tienen una cuenta e iniciar sesión en o visitan el sitio de forma anónima, se considera que un usuario de Drupal. Cada usuario tiene un ID de usuario numérico especial al tipo de ...
registro de administrador en la organización de DrupalTodos los visitantes a su sitio, si tienen una cuenta e iniciar sesión en o visitan el sitio de forma anónima, se considera que un usuario de Drupal. Cada usuario tiene un ID de usuario numérico especial al tipo de ...
páginas impresora amistosa de alojamiento DrupalDrupal es un robusto sistema de gestión de contenido que se ejecuta en un servidor LAMP. El servidor LAMP utiliza MySQL por defecto, pero PostgreSQL también se puede utilizar con Drupal. Puede alojar blogs, foros y una ...
Drupal alojamiento compartido vs VPSPublicado por davidmac el 21 de diciembre de 2013 a las 11:12 am Hay una serie de factores como siempre a considerar y tener en cuenta con el SEO y la ubicación del servidor es uno de ellos. Un agente de bienes locales ...