Prevenir ataques en WordPress – Parte I

Prevenir ataques en WordPress – Parte I
18 junio, 2014 Leandro Padula

Un sorprendente número de sitios se han convertido en víctimas de los hackers que explotan la comunidad para su propio beneficio personal. Para ayudar a vencer esta amenaza preparamos un resumen de algunas herramientas y consejos sobre cómo evitar ser la próxima víctima o en caso de ser ya una víctima, la forma de luchar y resolver su instalación.

Exploits

Un exploit es una pieza de código malicioso construido para explotar una vulnerabilidad en el código existente.

TimThumb era susceptible a un ataque de este tipo, una de sus funciones permitía e a los usuarios subir imágenes desde diferentes sitios y acceder a ellos libremente. Las imágenes quedaban almacenadas en un directorio de caché para que Timthumb no tenga que volver a procesarlas de nuevo. Esta función podía ser utilizada por hackers para subir algunos archivos al servidor, lo que les permite el acceso a todos los recursos de la instalación de WordPress. Exactamente el mismo problema afectó a Uploadify.

El problema en estos casos, como con la mayoría de los exploits, no es WordPress sino más bien los propios plugins.

La solución es simple, mantener los plugins al día e informar de cualquier error que encuentre a los desarrolladores para ayudarles a arreglar posibles problemas.

SQL injections

La instalación de WordPress en sí no es inmune a los problemas. Dependiendo de la versión, la inyección SQL puede ser un gran dolor de cabeza. Una inyección SQL es un proceso por el cual un atacante trata de pasar el código SQL a través de un formulario web o script en la esperanza de que el código SQL recupere datos de la base de datos. Esos datos pueden ser direcciones de correo electrónico, nombres de usuario y contraseñas, que luego dan al usuario un mayor acceso para otros ataques.

Para evitar este tipo de ataques podemos segurizar nuestros archivos usando el .htaccess de Apache:

[sourcecode language=”plain”]
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC]
RewriteRule ^(.*)$ – [F,L]
RewriteCond %{QUERY_STRING} ../ [NC,OR]
RewriteCond %{QUERY_STRING} boot.ini [NC,OR]
RewriteCond %{QUERY_STRING} tag= [NC,OR]
RewriteCond %{QUERY_STRING} ftp: [NC,OR]
RewriteCond %{QUERY_STRING} http: [NC,OR]
RewriteCond %{QUERY_STRING} https: [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR]
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [NC,OR]
RewriteCond %{QUERY_STRING} ^.*([|]|(|)|<|>|ê|”|;|?|*|=$).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(“|’|<|>||{||).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%24&x).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127.0).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare).* [NC]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^(.*)$ – [F,L]
[/sourcecode]

Esto detendrá a un aficionado, pero un hacker profesional encontrará otro agujero de seguridad por explotar. Afortunadamente la mayoría de los ataques son perpetrados por novatos o spammers, usando scripts como PHP o r57 Shell. La reducción de estos ataques bajará en gran medida la cantidad de problemas a enfrentar.

Conclusión

En la parte II de esta serie de posts hablaremos de como instalar y configurar WordPress de manera que podamos evitar una mayor cantidad de ataques y usuarios maliciosos. Está tu sitio seguro de estos potenciales ataques?

Passionate about the web, entrepreneur, gamer and co-founder of Broobe.

3 Comentarios

  1. Lautaro 6 años hace

    No existen plugins para hacer esto? El tutorial esta bueno, pero es bastante técnico.

  2. Autor
    Leandro Padula 6 años hace

    Existen algunos plugins, seguramente los mencionaremos en el próximo artículo de esta serie de post 🙂

Dejar una respuesta

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*