Durante estas últimas semanas hemos tenido el placer de trabajar con dos nuevos clientes que tenían unas web realizadas con plantillas gratuitas y con plugin desactualizados trabajando sobre la versión WordPress 4.
No tenían ningún sistema de protección para la página web como podría ser el cambio de wp-admin, para ocultar el backend de nuestra página web o deshabilitar el sistema de xmlrpc o utilizar alguno de los plugin para WordPress orientados a la seguridad y como podría ser el WordFence.
Si algo sabemos en digitalDot es que un buen diseño de página web deben contar con:
Si no cumplimos estas premisas, estaremos dañando la imagen de nuestro cliente y fallando a la confianza que depositaron en unos profesionales en el diseño y desarrollo web.
Contenido
En verdad, no solo nuestro WordPress debe contener unas medidas mínimas de seguridad, un plan de actuación ante desastres y copias de seguridad sino que también deberá contar con antivirus, un firewall y sistemas IDS, sistemas que detectan si nos están intentando atacar y poder tomar las medidas oportunas.
Como decíamos todas estas técnicas y medidas de seguridad web pueden ser para todo tipo de gestor de contenidos (CMS) como WordPress, Joomla, Drupal, Prestashop y Magento.
Bien, dicho esto, vamos a conocer cómo detectamos y desinfectamos un WordPress que ha sufrido una intrusión o hackeo aprovechando alguna vulnerabilidad web.
Si tenemos alguna mínima intuición dado a que contamos con un WordPress muy desactualizado, o vemos que el rendimiento es alto en cuanto a consumo de recursos de la página web, deberemos seguir este procedimiento para analizar y detectar la infección.
En algunas ocasiones en proyectos anteriores, lo hemos detectado nada más acceder a Google Analytics. Estudiando las estadísticas pudimos observar salidas de tráfico desde una web de póker o juegos. Desde ahí pudimos encontrar la URL de origen añadiendo una segunda dimensión a nuestro informe. De esta forma encontramos el JavaScript o código malicioso que se ejecutaba aleatoriamente cada 5 visitas para llevar tráfico a web rusas.
En esta infección de WordPress habían realizado un aleatorio para que no fuera detectado fácilmente por los visitantes de la web.
Otra forma de detección puede ser si contamos con un buen sistema de hosting o plan de alojamiento web, los hostings suelen contar con sistemas de antivirus perimetrales que detectan algunas de las técnicas más conocidas.
Podéis preguntar a vuestro proveedor de alojamiento si contáis con sistemas como ModSecurity, CloudFlare o similar.
Una tercera opción podría ser bajar una copia local a nuestro equipo y analizarla con antivirus. Nuestro antivirus de ordenador no protege nuestra página web, hace tiempo en una conferencia de marketing escuchamos como el ponente se enfadaba con una marca de antivirus por no detectar que su blog había sido infectado. El antivirus del ordenador suele detectar solo un 35% de las infecciones, pero siempre que estén en el disco o memoria del ordenador, por eso habría que bajar con anterioridad el WordPress.
En digitalDot contamos con un repositorio Linux para sistemas de preproducción, cuando bajamos el WordPress es automáticamente analizado en busca de virus o código malicioso.
Para seguir con nuestras opciones de detección, podemos hacer uso del buscador interno de ficheros Linux. Este procedimiento consiste en buscar en todos los archivos del WordPress secuencias usadas habitualmente por hacker para evadir los sistemas de intrusión. Un HASH o un base64, son códigos de programación para ofuscar el funcionamiento o una intrusión web. También podemos encontrar códigos JavaScript como windows.location.
Esta técnica evidentemente suele ser más costosa, pero ha sido bastante depurada por nuestro equipo de sistemas y soporte y tenemos ya un programa que lo automatiza.
En muchos casos los clientes siempre nos dicen lo mismo: quién va a atacar mi página web, o nuestro sistema de correo si somos autónomos, o si solo somos una pequeña empresa, quién va a tener la necesidad de hackear o dañar la imagen de mi empresa.
Evidentemente sí que existen ataques dirigidos a TODO TIPO de empresas. ¿Por qué? En muchos casos con el objetivo de minar a la competencia o dañar su imagen, incluso el robo de clientes. Pero en la mayoría de los ataques a páginas web no hay un objetivo específico, simplemente son arañas y códigos que detectan un sistema vulnerable y lo atacan automáticamente.
En la mayoría de los ataques web según el informe OWASP detectan los siguientes motivos:
Veamos ahora cómo desinfectar nuestro WordPress.
Primeramente, una opción bastante sencilla, seria hablar con nuestro servicio de hosting y páginas web para preguntar por una copia de seguridad anterior a la detección de la infección. Si contamos con ella o contamos con una copia inicial podremos trabajar con ella para iniciar un proceso de recuperación. Si estamos ante un WordPress que es un blog es algo sencillo.
Si lo que tenemos es un Woocomerce, un plugin para montar una tienda online, y contamos con miles de productos podría ser algo más complejo y la copia de seguridad de poco nos podría valer salvo para obtener el diseño Web limpio de infección.
Otra técnica, sencilla y muy potente, que ponemos en práctica es una instalación limpia de WordPress, con esto todo, nuestro núcleo es seguro, estable y no hay ninguna alteración o modificación. Posteriormente instalamos los plugin que hemos visto activados en la web original (siempre que el plugin tenga un 100% de seguridad y una fuente fiable).
A continuación descargamos la base de datos en un fichero mysql. Es un fichero de texto en el que podremos navegar buscando código malicioso, redirecciones, páginas web, cambio de enlaces externos o búsqueda de código JavaScript.
Una vez hemos verificado que nuestra base de datos esta limpia, la añadimos a nuestra instalación nueva de WordPress y ahora solo nos quedaría traspasar la parte de diseño.
En este caso, como hemos comentado anteriormente, una copia de seguridad inicial sería lo ideal, contaríamos con alguna mínima variación en diseño pero sería muy fácil de recuperar.
Como hemos comentado si no disponemos de plan de copias esto complica un poco el asunto y nos tocaría revisar una a una la plantilla del WordPress buscando la alteración o infección.
Ahora nos quedaría monitorizar la instalación. Lo que solemos hacer durante los dias posteriores es realizar una comprobación de alteración de ficheros mediante un MD5. De esta forma detectaremos cualquier nueva infección o alteración del sistema.
Otra técnica que usamos es revisión de log. Miramos el log en busca de envió de email, uso o errores de la página web, de tráfico saliente y de esta forma detectaríamos cualquier tráfico o uso inadecuado.
Por otro lado, nos encantó el sistema realizado por el Lado del Mal, desde aquí somos muy fan de Chema Alonso ?. Os dejamos el video que muestra cómo proteger nuestra web con Latch en 10 minutos.
Evidentemente esta técnica es muy recomendable para lanzamientos o para instalaciones de páginas web nuevas o ya desinfectadas.
Si os ha parecido muy complejo y queréis contar con nuestro equipo de sistemas informáticos y soporte web, podréis contactarnos aquí, estaremos encantados de poder ayudaros, no solo en la posible desinfección, si no en el mantenimiento preventivo que toda web, tienda online o empresa necesita.