Consejos de seguridad para proteger un blog de WordPress

Consejos de seguridad para proteger un blog de WordPress

Recientemente algunos clientes me han escrito quejándose de que sus sitios web han sido atacados, en este post voy a hablar sólo de los ataques a blogs de WordPress, de hecho, el hosting que lleva programadorphp.org es atacado diariamente por atacantes/spammers y algunas veces logran hacerse un hueco, así que vienen a mí para que les solucione la papeleta.

INTRODUCCIÓN

Procedencia de los ataques

Normalmente los ataques vienen de agujeros de seguridad en plugins, temas, o el propio motor de WordPress, por eso es importante ir actualizando todo lo rápido que se pueda y tener mecanismos que guarden copias de seguridad periódicamente para recuperar los datos fácilmente.

Los spammers están al día de los agujeros de seguridad y cuando se descubre uno no tienen más que buscar en Google sitios potencialmente vulnerables, esto es, realizan la búsqueda con filtros como «inurl» donde aparezcan los scripts que necesitan «explotar».

Procedimientos de los spammers (mal llamados hackers)

Lanzan ataques a la lista de sitios web vulnerables y si es fructífero, suben un script con código malicioso que al ejecutarse envían un correo al atacante, por lo que sabremos incluso quién es el spammer…estos no suelen ser muy buenos, pero los hay que sí lo son…

Si tu hosting no te avisa de que tienes un script malicioso en una de tus páginas de WordPress puedes buscarlo por tí mismo, hay software PHP que puede hacerlo por tí, pero en mi caso me gusta hacerlo con una consola SSH, si no tienes acceso siempre puedes subir un shell escrito en PHP y lanzar los comandos desde el navegador, y si no tienes soporte de comandos de consola por el safe_mode o cualquier otra opción de seguridad, lo mejor es que te descargues todo el contenido para analizarlo en local.

Si crees que puedes tener spam en tu blog, usa un buscador como Google con parámetros «site:urldetublog.es», «inurl:», y otras técnicas de Black-hat SEO, y busca palabras que los spammers usan en sus anuncios como segundo parámetro, quizás te lleves una sorpresa…

 

Detección

Localizar los ficheros maliciosos

Para encontrar los ficheros maliciosos debes buscar dentro de todos los scripts php las instrucciones del tipo eval, base64_decode, gzinflate, posix_getuid, system, shell_exec, etc. Esto se puede hacer con un script de consola bash o con un programa que busque texto dentro de los ficheros como notepad++ o bien por un plugin de un IDE con FTP que busque dentro de ficheros.

Seguramente habrá ficheros que usen algunas de estas instrucciones y no sean maliciosos, de hecho WordPress los tiene y los necesita para realizar algunas de sus funciones más importantes, del núcleo.

Pero los que sean maliciosos serán bastante sospechosos, contendrán cadenas encriptadas y largas, direcciones de blogs de los propios spammer, y los hay que incluyen una consola shell escrita en PHP completa, extrae información del usuario, del sistema, de los directorios, se copia a sí mismo,…cosas bastante sospechosas , indicios de que el fichero es de un atacante.

Detectar ficheros maliciosos dentro de los temas de WP

Para detectar un script malicioso en un tema lo primero que debes buscar son scripts dentro de directorios como cache, images, etc., hay un agujero de seguridad en timthumb.php que está afectando a millones de blogs hoy en día, debes buscar su reemplazo en seguida, aquí tienes la versión actualizada y parcheada. Si encuentras ficheros con nombres raros con extensión php en la caché, ya sabes que algo raro pasa…Es posible que el script malicioso busque otros ficheros php o genere copias de sí mismo con otros nombres, puedes usar parte del propio código encontrado en un script malicioso para buscarlo en todo el servidor con una expresión regular…

¿Y en los plugins?

Evidentemente, los plugins no se salvan, algunos de los más peligrosos son los que contienen formularios, como cforms, contact-form, etc. Los spammers usan vulnerabilidades encontradas por los hackers buenos para utilizarlos en contra de los que mantienen los blogs.

Si encuentras que hay contenido spam dentro de plugins quizás debas plantearte borrar el plugin por completo y descargarlo de nuevo parcheado o substituirlo por uno más fiable, incluso de cosecha propia.

 

Ejemplo de comando para consola

Para encontrar en todo tu host scripts maliciosos puedes usar un comando como este

$ grep ‘base64_decode’ `find ./ -iname *.php` > results_b64.txt

$ grep ‘eval’ `find ./ -iname *.php` > results_eval.txt

puedes probar con varias expresiones y luego analizar los ficheros encontrados mediante los logs guardados en los ficheros de texto. Es posible que los ficheros tengan nombres codificados y que no tengan la extensión .php ,tenlo en cuenta por si hay códigos maliciosos escondidos en ficheros aparentemente inofensivos pero de contenido codificado, por ejemplo, en base64.

 

Qué hacer con los ficheros maliciosos

Debes copiarlos a tu ordenador para poder analizarlos con más detenimiento, si los administradores del hosting no han des-habilitado los scripts/directorios en cuestión es mejor que les quites los permisos de ejecución y les dejes sólo los de lectura, esto se puede hacer por FTP o bien usando el comando

$ chmod +r -R ./directorio_de_mi_blog

Una vez hayas copiado los ficheros maliciosos o los hayas enviado por email , desde la consola con el comando cat fichero.php | mail tuemail o bien unicode ficheros.php | mailx tuemail , e incluso comprimirlos todos y envíartelos por email con un tar czf ficheros.php comprimido.tgz

entonces ,una vez hecho, lo mejor es que los borres o bien los reemplaces, si lo que se ha infectado es un tema o una parte de este, te recomiendo no usar ese tema hasta haber encontrado un parche para el mismo.

Si encuentras ficheros dentro del directorio de temas o el principal de wordpress con nombres raros como injektor.php, caracteresraros.php, nombresraros.php, te recomiendo que borres por completo el directorio de wordpress menos las imágenes, que están en wp-content, ah, y wp-config.php que es la configuración del blog…y vuelvas a subir WordPress actualizado.

 

Protección de un blog de WordPress

Ahora que has eliminado el contenido, ¿como protegerte para que no vuelva a pasar?, las medidas básicas de seguridad de un sistema de WordPress son

  • Cambiar el nombre de usuario de administrador
  • Proteger el directorio wp-admin con una clave de Apache
  • Tener una clave larga para administrar el contenido
  • Usar temas que sean seguros y fiables
  • Tener copias de seguridad de los ficheros y la base de datos automatizadas en el servidor
  • Restringir acceso a usuarios y si no es posible, darles el rol de menor permiso
  • No usar temas que usen scripts de generación de thumbnails o imágenes previas ni meta-programación
  • Proteger directorios con .htaccess y reglas avanzadas, por ejemplo, que sólo alguien con una sesión de wordpress pueda escribir en los directorios de wp-content, quitar permisos de escritura a wp-admin una vez configurado el blog ,etc.
  • No permitir comentarios o si no es posible, no permitir código XHTML sino BBCODE, para evitar ataques de tipo XSS y derivados
  • Instalar un script en el servidor que avise de los correos enviados desde el mismo, esto es algo más complejo pero es algo que te dará datos reales sobre los envíos de emails desde tu hosting y así localizarás rápidamente un spammer el mismo día que haga una irrupción
  • Usar los plugins justos, mucho cuidado con los plugins de contacto,formularios, bases de datos,etc. mientras menos mejor, si podéis programarlos vosotros mismos, genial
  • .htaccess: es decir, usar enlaces personalizados, que sean SEO amigables :)
  • No confíes en indexar todo el contenido con un plugin generador de robots.txt ni sitemap.xml, el de Google está bien pero tienes que tener muy actualizado, además podrás comprobar si las url’s que contienen tus posts siguen siendo válidas y no están marcadas como spam dentro de las propias herramientas para webmasters de Google

 

Unos consejos para saber más

Intenta decodificar usando la propia instrucción que usa el spammer para saber qué hace el script malicioso y entender qué es lo que busca, lo normal es que esté buscando un ordenador para hacer ataques DDOS o enviar correos de spam/scam (estafa) masivos, y si lo consigue nuestro host entrará a formar parte de una lista de spammers y los clientes no podrán recibir correos de nuestras cuentas de correo…

Enlaces del blog de @chemaalonso , experto en seguridad informática:

 

Ninguna protección es totalmente fiable, hay que estar al día de actualizaciones y saber en qué puedes confiar, siempre es bueno contar con un programador y un técnico de redes y sistemas que te ayuden y te aconsejen cuando el infierno se desata en tu sitio web.Proteger WordPress de spammers

Artículos relacionados:

  • No hay artículos relacionados

 

footer
jbelon © | sitemap.xml