Krypton Solid

¿Qué tan seguro es su sitio de WordPress?

¿Qué tan seguro es su sitio de WordPress?

Uno de los principales problemas de la tecnología son las frecuentes fallas de seguridad que experimentamos; Diariamente se roba mucha información y se utiliza para robar más información, enviar mensajes de spam, abrir puertas traseras a los sistemas y, a veces, incluso dañar nuestras computadoras.

Ninguno de estos problemas es desconocido para WordPress, una asombrosa cantidad de sitios se han convertido en víctimas de delincuentes desagradables que explotan a la comunidad para su propio beneficio personal.

Para que pueda vencer esta amenaza, hemos reunido un resumen de algunas buenas herramientas y consejos sobre cómo evitar ser la próxima víctima. O si tiene la mala suerte de ser una víctima, cómo contraatacar y arreglar su instalación.

Explotar ataques

Es posible que haya oído hablar de ello, es posible que incluso conozca los detalles, pero para aquellos que no lo han hecho, este es el problema: un exploit es un fragmento de código malicioso distribuido para explotar una debilidad en el código existente.

TimThumb fue susceptible a un ataque de este tipo; Una de sus funciones, que permite a los usuarios subir imágenes de diferentes sitios y acceder a ellas libremente, almacena imágenes en un directorio de caché para que Timthumb no tenga que volver a procesarlas. Esta función podría ser aprovechada por un pirata informático que cargue archivos en el servidor, lo que les permitirá acceder a tantos recursos de la instalación de WordPress como deseen.

Exactamente el mismo problema afectado Uploadify, un complemento que permite a los usuarios cargar archivos. Cuando no se controlaba adecuadamente, el complemento permitía a los piratas informáticos acceder libremente al sitio mediante la carga de scripts PHP para otorgar permisos de acceso.

Imagen de mantenimiento a través de Shutterstock.

El problema en estos casos, como en la mayoría de los ataques de exploits, no fue WordPress sino los complementos en sí. La solución es simple, mantenga sus complementos actualizados e informe cualquier error que encuentre a los desarrolladores para ayudarlos a corregir posibles problemas.

Inyecciones SQL

La instalación de WordPress en sí no es inmune a los problemas. Dependiendo de la versión, la inyección de SQL puede ser un gran dolor de cabeza. Una inyección SQL es un proceso mediante el cual un atacante busca pasar código SQL a través de un formulario de sitio web o un script con la esperanza de que el código SQL se analice «correctamente» y recupere datos de la base de datos. Esos datos pueden ser direcciones de correo electrónico, pero lo más probable es que sean nombres de usuario y contraseñas que luego le darían al usuario más acceso para otros ataques.

La razón por la que los ataques SQL pueden ser tan irritantes es que para combatirlos es necesario realizar copias de seguridad de su base de datos con frecuencia. Preferiblemente al menos una vez al día.

Mantenimiento

Imagen de mantenimiento a través de Shutterstock.

Para evitar eso, puede intentar proteger sus archivos usando Apache con un código como este en su archivo .htaccess:

<IfModule mod_rewrite.c>
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]
</IfModule>

Esto desanimará a un aficionado, pero un pirata informático profesional encontrará otro agujero de seguridad para explotar. Afortunadamente, la mayoría de los ataques son perpetrados por novatos o spammers, utilizando scripts como PHP r57 o Shell. Reducir estos ataques reducirá en gran medida la cantidad de problemas con los que tiene que lidiar.

Usuario predeterminado

El mayor agujero de seguridad en cada sistema es el usuario final. No importa qué tan compleja sea la contraseña que cree. De hecho, cuanto más compleja es la contraseña, peor es el riesgo de seguridad; porque las contraseñas muy complejas deben guardarse en algún lugar. Los usuarios guardan con frecuencia las contraseñas en archivos .txt o .doc en su computadora y eso deja el sistema expuesto a ataques de phishing utilizando archivos de virus como troyanos.

El único lugar seguro para almacenar una contraseña es dentro de su propia cabeza.

Sin embargo, incluso si solo almacena su contraseña en su propia memoria, todavía no está a salvo de los ataques de fuerza bruta. Un ataque de fuerza bruta simplemente intentará ‘adivinar’ su contraseña con intentos repetidos de iniciar sesión. Puede comenzar con ‘aaaaaa’, procediendo a ‘aaaaab’ y así sucesivamente hasta llegar a ‘000000’. Este proceso no se limita a una sola computadora, comúnmente cientos de máquinas ejecutan contraseñas potenciales en busca de acceso.

Una forma de manejar los ataques de fuerza bruta es instalar un limitador de inicio de sesión que solo permitirá unos pocos intentos de inicio de sesión antes de bloquear el acceso de ese usuario durante aproximadamente una hora. Esto reduce la cantidad de posibilidades de que el atacante ingrese. Hay varios complementos de WordPress que pueden ayudarlo con esto: Limitar los intentos de inicio de sesión, Mejor seguridad de WP y Solución de seguridad de inicio de sesión.

Finalmente, preste atención a los nombres de usuario. El nombre de usuario predeterminado para WordPress es ‘Admin’ y si lo deja como tal, está reduciendo a la mitad la cantidad de trabajo que el hacker necesita para acceder a su sitio. Si no cambió su nombre de usuario mientras estaba instalando WordPress, hágalo ahora. Simplemente inicie sesión en su cuenta, cree una nueva cuenta con el nombre de usuario que desee, dele permisos de administrador y luego elimine la cuenta de administrador.

Limpiar

Imagen de limpieza a través de Shutterstock.

Acceso directo

Otro problema que pueden tener nuestros sitios de WordPress es proporcionar acceso directo a la página de inicio de sesión, lo que simplifica el proceso de pirateo de su sitio.

Si bien proteger sus contraseñas es el problema más urgente, un usuario malintencionado no podrá hacer uso de nada que haya robado si no puede encontrar la página de inicio de sesión. La solución más simple para esto es usar un complemento como Ocultar inicio de sesión para ocultar la ubicación de la página de inicio de sesión.

También se puede acceder a ciertos archivos en nuestra instalación de WordPress si no están debidamente protegidos. Podemos aclarar estos cabos sueltos agregando algunas reglas más a nuestro archivo .htaccess, así:

Options All -Indexes
<files .htaccess>
Order allow,deny
Deny from all
</files>
<files readme.html>
Order allow,deny
Deny from all
</files>
<files license.txt>
Order allow,deny
Deny from all
</files>
<files install.php>
Order allow,deny
Deny from all
</files>
<files wp-config.php>
Order allow,deny
Deny from all
</files>
<files error_log>
Order allow,deny
Deny from all
</files>
<files fantastico_fileslist.txt>
Order allow,deny
Deny from all
</files>
<files fantversion.php>
Order allow,deny
Deny from all

Prefijo predeterminado

Debe quedar claro que cuanta más información le demos a nuestro aspirante a pirata informático, más fácil será para él tener éxito.

El prefijo predeterminado de la tabla de WordPress es ‘wp_’. ¿Por qué querríamos darles eso? Cambiemos ese prefijo por algo más difícil de adivinar, como ‘oijrr58_’, por ejemplo, les hará la vida mucho más difícil y aumentará las posibilidades de que su sitio permanezca seguro.

Para nuevas instalaciones, esto es una obviedad porque el script de instalación nos pide un prefijo. Para los sitios más antiguos, tiene dos opciones, puede realizar el cambio manualmente (solo intente esto si tiene mucho tiempo y está seguro de saber lo que está haciendo) o usar un complemento como Mejor seguridad de WP que se encargará de ello por ti.

Demasiado tarde…

Nunca es demasiado tarde. Siempre puedes combatir a los piratas informáticos y evitar convertirte en una víctima perpetua.

Si no está seguro de si su sitio ha sido infectado, existen herramientas que se lo dirán. Sucuri SiteCheck por ejemplo, escaneará su sitio y, si está infectado, le informará sobre los pasos que debe seguir para corregir el (los) problema (s).

Peligroso

Imagen peligrosa a través de Shutterstock.

Correcciones básicas

A continuación, se indican algunos pasos básicos a seguir:

  • Haga una copia de seguridad del sitio y la base de datos, pirateado o no, no querrá perder su contenido.
  • Haga copias de elementos que no están en su base de datos, como imágenes.
  • Descarga la última versión de WordPress.
  • Asegúrese de que todos los complementos estén actualizados, verifique qué versiones resuelven problemas conocidos.
  • Asegúrese de que las plantillas estén actualizadas, verifique qué versiones resuelven problemas conocidos.
  • Utilice un cliente FTP o cPanel para eliminar todo en el directorio de WordPress.
  • Sube los archivos nuevos que descargaste.
  • Ejecute la actualización de la base de datos.
  • Cambie su contraseña, no quiere que los piratas informáticos vuelvan a entrar.
  • Finalmente, revise cada publicación, corrigiendo cualquier daño que se haya hecho.

Lucha contra los scripts r57

r57 es un script PHP que le da al atacante una amplia gama de capacidades, aunque el atacante tiene estas capacidades, estas no funcionarán hasta que el shell esté en nuestro servidor web, por lo tanto podemos evitar que funcione usando los siguientes comandos:

find /var/www/  -name "*".php  -type f -print0  | xargs -0 grep r57 | uniq -c  | sort -u  | cut -d":" -f1  | awk '{print "rm -rf " $2}' | uniq

Este comando buscará archivos PHP ubicados en su carpeta WWW, luego, dentro de los archivos encontrados, buscará cualquier mención de r57 en el nombre del archivo y su contenido. Luego eliminará los archivos infectados.

find /var/www/  -name "*".txt  -type f -print0  | xargs -0 grep r57 | uniq -c  | sort -u  | cut -d":" -f1  | awk '{print "rm -rf " $2}' | uniq

Este código hace lo mismo, excepto para archivos TXT en lugar de archivos .php.

Tenga en cuenta que estos códigos son para Linux, no los pruebe en Windows o MacOS y tenga en cuenta que son potencialmente muy destructivos, ya que eliminarán archivos sin pedir permiso.

Código oculto

Un motivo importante de preocupación dentro de los temas es el código oculto, porque el código malicioso tiende a ser más difícil de encontrar dentro de los temas. Se pueden hacer todo tipo de daños, desde redirigir a los usuarios a otros sitios, hasta hundir su SEO.

Un arma clave para combatir este tipo de problema es Comprobador de autenticidad del tema. Este complemento no solo verificará el código en busca de líneas sospechosas, sino que también detectará enlaces estáticos y código oculto, como el código generado en base64 que es difícil de detectar a simple vista.

Si me engañas una vez, la culpa es tuya…

El hecho de que te hayan atrapado en el pasado no significa que tengas que seguir jugando.

Considere seguir estos pasos para protegerse aún más:

  • Solo permita PHP donde sea estrictamente necesario.
  • Asegúrese de que su servidor web no permita que los clientes modifiquen el archivo .htacess.
  • Implemente un firewall que restrinja el correo saliente en el puerto 25 a solo la raíz y el ID del servidor de correo electrónico.
  • Supervise las cargas a su sitio con una aplicación como Escáner de ConfigServer eXploit.
Reparar

Imagen de reparación a través de Shutterstock.

Finalmente

La seguridad de WordPress es tan importante como la seguridad de cualquier sitio. Debe asegurarse de que tanto usted como sus usuarios estén protegidos contra spam, malware y ataques de phishing. Pero recuerde que la primera línea de defensa es en realidad el software antivirus en su máquina de escritorio.

¿Ha tenido problemas con la seguridad de WordPress? ¿Cómo resolvió el problema? Háznoslo saber en los comentarios.

Escrito exclusivamente para WDD por The Shock Family: un equipo de profesionales web y creadores de Temas de WordPress Choque (Temas premium de wordpress), Generador de temas WP (Un gran creador de temas de wp), y DiseñoShock (uconjuntos de diseño completos).

Deja un comentario