7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. WordPress

La Guía Definitiva de Seguridad para WordPress

Scroll to top
Read Time: 39 mins

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

En este tutorial de Tuts+ aprenderás a proteger tu web de hackers, spammers, software automático y robots o "bots" que proliferan desenfrenadamente online. WordPress es sin duda la solución más habitual para crear blogs personales, y por eso es una de las plataformas que más intentos para explotar vulnerabilidades sufre.

WordPress es tan fácil de instalar y gestionar desde el panel de control de un servidor compartido que mucha gente sin formación técnica crea sus sitios web y blogs sin tener plena consciencia de la facilidad con la que pueden ser destruidos por completo en un instante, y con ello todo el duro trabajo en ellos invertido. Aunque seas un experimentado hacker de WordPress, si no has protegido tu propio sitio web, no te vas ha librar de un ataque. Es probable que te sorprenda lo fácil que es tomar medidas preventivas para proteger tu web creada con Wordpress, y todo el duro trabajo que has invertido en ella.


¿Por Qué Corres Riesgos?


Quizá te sientas seguro porque ninguna de tus webs ha sido nunca hackeada, pero sinceramente, ¿merece la pena correr el riesgo de perder todo o parte de tu trabajo? Los spammers quieren saturar tu blog con comentarios en los que introducir enlaces que dirijan a su casino online o a webs de potenciadores masculinos. Los hackers que usan malware quieren inyectar en tu blog redirecciones para llevarse tu tráfico a su propio dominio. Estás expuesto a todo tipo de amenazas, desde miles de comentarios spam a inyecciones de código javascript para crear redirecciones en cada archivo php de tu web hacia webs extrañas. Un virus podría incluso filtrarse y propagarse por toda tu base de datos MySQL destruyendo todo el contenido de tu web. Si perdieses toda tu web mañana, ¿cuál es la fecha es tu última copia de seguridad? ¿Cuánto perderías? ¿Haces copias de seguridad periódicas de tu web? Si tu web es un medio que te ayuda a generar ingresos, durante el periodo que no esté disponible estarías perdiéndolo, y es posible que el posicionamiento en buscadores que hayas conseguido se vea afectado, costándote finalmente visitas y más dinero.


¿Cómo Puede Suceder Esto?


El mundo está lleno de escépticos que piensan que esto no les puede suceder a ellos. La razón por la que hoy en día es más importante que nunca proteger tu WordPress, es que existen literalmente ejércitos de villanos online listos y deseando atacarte.

Hay cosas concretas contra las que deberías protegerte:

  • Malware, troyanos y virus - ¡oh! Lo creas o no, tu sitio web o blog puede ser hackeado por un virus. Normalmente pensamos que un virus es algo que ataca a tu ordenador personal. Pero existen virus y troyanos diseñados para robar tus datos de inicio de sesión en WordPress y los de tu cuenta FTP para acceder a tu sitio web. Una vez consiguen el acceso pueden introducirse y roer tus archivos PHP igual que un ratón se come el queso. Normalmente este tipo de ataques tienen su origen en ordenadores que usan el sistema operativo Windows.
  • Hackers, Spam-bots, y software automático - mientras duermes, tu sitio web está siendo bombardeado por ataques online. Esto sucede continuamente, durante el día y la noche. Algunos de estos ataques provienen de personas reales, pero en su mayoría se trata de ataques automáticos creados por hackers que usan robots o "bots" y software automatizado. El software no duerme, y está diseñado para encontrar sitios webs que tienen brechas de seguridad, vulnerabilidades o "exploits". Los objetivos más comunes son aquellos sitios webs con versiones antiguas de WordPress o de plugins cuyas brechas de seguridad son ya conocidas. Este tipo de ataques se dan con la misma frecuencia o volumen que las visitas reales o humanas, y probablemente ni siquiera seas consciente de que esto está sucediendo porque no conoces la forma de registrarlo o detectarlo.
  • Malos Proveedores de Alojamiento Web - ¿Comprarías conscientemente una vivienda en un barrio en el que te sientes inseguro? En este sentido, crear un sitio web online es como construir un hogar, la seguridad de tu "hogar-web" depende de tus webs vecinas. ¿Y si esa fantástica oferta de alojamiento web por 9,95$ al mes implicase que tu blog va a quedar aparcado en un ghetto online? La seguridad de tu web depende de la seguridad del servidor en la que esté alojada, y será más susceptible a ataques si la seguridad de éste no es muy buena. Dependiendo de su configuración podrías incluso estar en riesgo a causa del resto de sitios webs con las que compartes alojamiento. Quizá nunca, hasta ahora, te habías planteado que tu web pueda ser atacada por cuentas vecinas o proveedores de alojamiento con laxa seguridad.
  • Tu propio ordenador - Lo creas o no, tú eres tu peor enemigo. La probabilidad de que seas tú mismo el que infecte tu web o que proporciones acceso a tu cuenta FTP a través de un troyano es un 80% superior a que seas atacado por cualquier otro medio. Esto se debe a que la mayoría de la gente tiene ordenadores que usan Windows, y un gran porcentaje de ellos está infectado con algún tipo de malware, virus o troyano. Incluso aunque fueses la persona más meticulosa del planeta, es posible que cualquier otra persona que haya usado tu ordenador, por ejemplo tus hijos, no lo haya sido tanto. Tu programa antivirus o Windows podrían no estar actualizados.
  • Seguridad de Internet - Aunque hayas hecho todo lo posible por proteger tu ordenador, si te conectas a tu web mediante una conexión FTP normal seguirás estando en riesgo. ¿Estás usando una conexión a internet con un router inalámbrico que no está encriptado? ¿Usas conexiones wifi públicas para revisar tu correo electrónico y administrar tu blog? ¿Todavía inicias sesión en tu blog WordPress sin garantías de hacerlo de forma segura? Todas o cualquiera de estas cosas por separado podrían poner en riesgo la seguridad de tu web.

¿Por Dónde Deberías Empezar?


Si quieres proteger y securizar tu web WordPress existen algunas sencillas medidas que puedes implementar para protegerte:

  1. Actualiza WordPress y todos los plugins instalados a la última versión disponible.
  2. Escanea o examina tu web en busca de vulnerabilidades o brechas de seguridad.
  3. Limita el acceso a tu sitio web mediante ajustes de permisos y configuraciones en los archivos robots.txt y .htaccess.
  4. Evalúa la seguridad de tu alojamiento web.
  5. Aumenta la seguridad de todos los nombres de usuario, contraseñas e inicios de sesión.
  6. No alientes los malos comportamientos permitiendo el acceso a cuentas o los comentarios que propagan spam.
  7. Registra y monitoriza los intentos de ataque contra tu web para estar al corriente de potenciales problemas o amenazas.
  8. Usa siempre conexiones a internet seguras.
  9. Protege tu archivo wp-config.
  10. Mantén tu ordenador personal actualizado y protegido.

Esta guía explica en pasos muy comprensibles cómo hacer todas estas cosas y muchas más. Al final de este tutorial serás capaz de formar a otros bloggers sobre la seguridad de WordPress y potenciales ataques online.


¡Haz Ahora Mismo una Copia de Seguridad!


Antes de realizar ningún cambio crea primero una copia de seguridad de tus archivos web y de tu base de datos. Si no lo estabas haciendo, ¡ya es hora de empezar! Existen multitud de plugins que te facilitarán la tarea, pero honestamente, no soy un gran fan de esta técnica. Principalmente porque probablemente en algún momento el archivo de tu base de datos será demasiado grande como para que lo pueda gestionar un plugin a través de WordPress, especialmente si tu blog está activo u operativo. No obstante, si eliges este método, el plugin WordPress Backup podría servirte para realizar esta tarea.

Descargar todos los archivos de WordPress a un directorio en tu ordenador es tan sencillo como subir un tema o un plugin. Descarga todo, de forma que dispongas de una versión actual de tus archivos WordPress, de tus temas y de tus plugins que puedas poner en funcionamiento de nuevo si fuese necesario. Casi todos los proveedores de alojamiento web proporcionan un panel de control para gestionar tu web. Inicia sesión en el mismo y localiza la sección desde la que trabajar con tu o tus bases de datos. Deberías tener acceso a una herramienta web llamada "phpMyAdmin" que te permite administrar tu base de datos a través de una página web. Encuentra esta herramienta, selecciona tu base de datos desde el menú desplegable y expórtala.

En el Codex de WordPress existe una página dedicada a phpMyAdmin, y también otra sobre cómo Restaurar Tu Base de Datos desde una Copia de Seguridad en caso de que necesitases hacerlo.


1. Actualiza WordPress y los Plugins


Ahora que dispones de copias de seguridad o "backups" de tu actual instalación de WordPress, puedes actualizarlo tranquilamente. Desde la versión 2.8 de WordPress, es posible actualizarlo desde su escritorio de administración, también podrás actualizar las versiones de tus plugins conforme vayan estando disponibles. Si todavía no tienes la versión 2.7 de WordPress, tendrás que actualizarlo descargando la última versión desde wordpress.org, y después subir los archivos vía FTP. Después serás capaz de actualizar tus plugins a través del la página de plugins del escritorio. Este es el primer paso, pero es uno de los más importantes, ya que los hackers buscan precisamente vulnerabilidades en versiones antiguas de WordPress y de plugins. Mantenerte actualizado es tu mejor defensa ante problemas de este tipo.

Las siguientes imágenes te mostrarán lo sencillo que es actualizar tanto WordPress como los plugins a partir de la versión 2.7, basta con hacer clic sobre un enlace desde tu escritorio para conseguirlo.



Los lanzamientos de nuevas versiones de WordPress son bastante estables, pero a veces estas entran en conflicto con algunos temas o plugins, y estos dejan de funcionar correctamente hasta que son a su vez actualizados. Siempre es aconsejable la compatibilidad de cada plugin con las últimas versiones de WordPress ANTES DE ACTUALIZAR, por si algo importante pudiese dejar de funcionar o romperse de inmediato. No debes temer actualizar por miedo a romper algo, pero sí ser consciente de los conflictos que pudieses tener que solucionar después. Simplemente haz una búsqueda en Google del tipo compatibilidad de wordpress x.x para comprobar la última lista oficial (sustituye "x.x" por el número de la versión que quieras comprobar).


2. Examina Tu Web en Busca de Vulnerabilidades


Existen plugins realmente buenos que pueden ayudarte a encontrar problemas ya existentes en tu web WordPress. Aquí tienes algunos plugins de seguridad que escanean y monitorizan tu web alertándote sobre ataques.

Acunetix WP Security

Acunetix WP Security revisará elementos esenciales de tu blog. Una vez lo hayas descargado e instalado, te mostrará los resultados, mostrándote alertas en verde o en rojo si ah detectado algún problema.


Puedes ver en la imagen de arriba que en el test que pasé a mi blog, solo dos cosas requerían mi atención. Aquí tienes una lista con las comprobaciones que ejecuta el plugin.

1. Si tienes la última versión de WordPress (como ya hemos mencionado, ¡mantente actualizado!).

2. El prefijo de las tablas de tu base de datos, que por defecto es "wp_". Puedes modificar el prefijo de tu base de datos para que sea distinto, dejar el prefijo predeterminado te expone a ataques de inyección SQL. Aprende a cambiar el prefijo predeterminado de la base de datos de WordPress en 6 sencillos pasos desde aquí.

3. Si tu versión de WordPress está oculta.

4. Que los errores de la base de datos de WordPress estén desactivados. La mayoría de los alojamientos web ya tienen los "errores MySQL" desactivados, consulta a tu proveedor de alojamiento si esta alerta aparece en rojo.

5. Que el metatag de WordPress haya sido eliminado, aprende aquí a eliminarlo.

6. Que el usuario admin haya sido eliminado (añade tu propio usuario, proporciónale permisos como administrador y elimina la cuenta admin que viene por defecto).

7. Si existe un archivo .htaccess protegiendo tu directorio /wp-admin (aprende sobre el archivo .htaccess más adelante en este artículo, o visita este generador de archivos .htaccess).

También tiene una función de escaneo que comprobará los permisos de archivos críticos dentro de tu instalación WordPress, permitiéndote conocer si estás expuesto a ataques. El resultado verde significa que los permisos son adecuados, si es rojo significa que estos deben ser modificados cuanto antes.


Este plugin es una buena herramienta para comprobar automáticamente algunos de los aspectos más importantes de nuestro listado sobre seguridad, pero aunque nos informa de los problemas, no te posibilita hacer los cambios necesarios desde el panel de administración de WordPress. Sí dispone de una sección para cambiar el prefijo de las tablas de tu base de datos, pero aunque la web que yo he testeado tenía los permisos ALTER adecuados, el plugin todavía no podía hacer los cambios por mi. Pero tu experiencia podría ser distinta en esta parte del plugin. El resto de elementos los debes cambiar manualmente por tu cuenta.

Wordpress Exploit Scanner

Otra forma de examinar si tu blog tiene potenciales brechas de seguridad es instalando el plugin Exploit Scanner. El autor del plugin es Donncha O Caoimh, autor del plugin WP Super Cache. Solo tiene una función, rastrear los archivos de tu WordPress y tu base de datos para comprobar si tienes instalados plugins con problemas conocidos, o ver si hay entradas o comentarios sospechosos. Esto es muy importante, tus plugins serán cotejados tomando como referencia una base de datos que lista "plugins sospechosos", y si tienes entradas o comentarios spam tu instalación WordPress podría estar ya comprometida, el plugin comprobará todo esto. Yo pasé un escaneo a mi blog de pruebas.


Como puedes ver en la imagen, yo no tenía instalado ningún plugin sospechoso, y tan solo una entrada sospechosa a revisar, al final resultó ser una falsa alarma ya que todo estaba bien. Este plugin sirve sobre todo para asegurarte de que no has sido hackeado de alguna manera. Si los resultados indican que tu blog ha sido afectado, tendrás que tomar las acciones oportunas, algo que vamos a ver en breve.

WP Antivirus

Tras ver el anterior plugin, probablemente te estés preguntando si existe por ahí algún plugin que pueda monitorizar tu web y avisarte en caso de sufrir un ataque. Otro plugin de escaneo a tener en cuenta es WP Antivirus. Una vez instalado escaneará automáticamente los archivos de tu tema WordPress para verificar que no hayan sido hackeados o comprometidos por un virus. No hace nada más, pero sí que ENVÍA un email al administrador del sitio si encuentra un "virus" en los archivos de tu tema. También puedes realizar comprobaciones manuales para revisar los archivos de tu tema en caso de que no quieras habilitar las notificaciones vía email.


Todos los archivos de mi blog estaban bien excepto uno, no era ningún virus, pero detectó un potencial problema en una parte de mi archivo "functions.php". Como ves en la imagen los archivos seguros aparecen en verde, y los posibles problemas en rojo. Sería genial que este plugin también hiciese el mismo tipo de escaneo sobre la base de datos que hace WordPress Exploit Scanner (actualización, ¡ya lo hace!).

Acunetix Secure WordPress

A diferencia de algunos de los plugins anteriores que pretenden localizar problemas, Secure WordPress se ocupa de algunos de ellos estableciendo ciertas opciones en los ajustes del plugin.


Como ves en las imagen superior, es tan sencillo como activar una casilla para ocultar la versión de WordPress en todas las áreas, eliminar los enlaces de actualización para usuarios que no sean administradores, y también puede crear un archivo index en el directorio de tus plugins para evitar que la gente navegue a través de ellos. Lo último que puede hacer es añadir un comentario a tu código html y al mismo tiempo te posibilita usar la herramienta de la que vamos a hablar a continuación, "WP Scanner".

BlogSecurity WP Scanner

WordPress Exploit Scanner revisa tu blog a través de la web. Pero antes de hacerlo, se aseguran de que tú eres realmente su propietario (!no vaya a ser que escaneen el blog de otra persona¡), por eso hay que añadir un simple comentario en tu código html. Ofrecen un plugin gratuito que añade este código automáticamente en caso de que no quieras editar tú mismo los archivos de tu tema, o puedes añadir el código marcando una opción en el plugin mencionado anteriormente, "Acunetix Secure WordPress".


Una vez hayas habilitado el plugin, visita el sitio web de WP Scanner para iniciar un escaneo. La imagen de arriba muestra el aspecto que tiene el informe de los resultados de WP Scanner. Asigna un factor de riesgo a cada uno de los elementos que encuentra, pero no proporciona mucha información más. Yo he obtenido resultados que no me ofrecía el otro plugin, como algunos archivos "readme" que pueden dar pistas a un hacker sobre la versión de WordPress o de los plugins que estoy usando.


3. Limita el Acceso a Tu Sitio

Limita el Acceso Usando .htaccess


Probablemente un 95% de los sitios web creados con WordPress funcionan en un servidor "Linux" que usa el servidor web "Apache". Mediante el archivo ".htaccess" puedes controlar muchas de las cosas ubicadas dentro de un directorio, también existen plugins que te ayudan a automatizar este proceso. Por desgracia, los dos más populares no están actualizados y no funcionan en versiones posteriores a WordPress 2.6x, además existen muchas noticias sobre problemas relacionados con ambos (gente que se ha quedado bloqueada sin poder acceder a su propio blog).

Para dejar constancia (y por si por un casual fuesen actualizados en un futuro), aquí tienes los enlaces a dichos plugins:

WordPress Guard

htaccess Password Protect

Tal y como he dicho, proporciono estos enlaces solo por si te topas con ellos un día y te dices "¡guau!, debería probar uno de estos". Asegúrate antes que han sido actualizados, y sé consciente de que tu experiencia podría ser distinta. Muchos comentarios y entradas en la sección de soporte indican que algunas personas han experimentado problemas importantes tras instalarlos (incluso en las versiones adecuadas de WordPress), por ejemplo han quedado bloqueados sin poder volver acceder a sus propios blogs.

Los archivos .htaccess son muy confusos, la causa es que permiten hacer muchos tipos de cosas, y los proveedores de alojamiento tienen en ocasiones distintas configuraciones y ajustes unos de otros. Normalmente el archivo .htaccess se usa para hacer algunas de las siguientes cosas:

  • Reescribir URL's: ¿conoces eso que llamamos "permalinks" en WordPress? Un archivo .htaccess reescribe las páginas cambiando las URL's del tipo "/?p=106" a "/el-titulo-de-mi-articulo".
  • Redirecciones 301: Puedes establecer redirecciones 301 permanentes para redirigir las peticiones entrantes hacia nuevas páginas cuando tu URL haya cambiado. Esto es útil cuando cambias la estructura de tus enlaces permanentes.
  • Limitar el acceso a Direcciones IP: Puedes limitar el acceso a determinadas direcciones IP, por ejemplo la de tu ordenador, o a un rango de direcciones IP.
  • Limitar el acceso mediante Contraseña: Puedes limitar el acceso estableciendo una contraseña.
  • Detén la Indexación de Directorios: Puedes evitar que la gente penetre en determinados directorios sin necesidad de usar un archivo index.
  • Muestra un archivo index distinto: Aunque no concierne a WordPress, podrías usar un archivo .htaccess para mostrar un archivo index distinto al predeterminado de tu web. En otras palabras, podrías usar index.htm, index.html, index.php, etc.

Debido a las distintas configuraciones de apache y las configuraciones de los servidores web, no puedo dar unas  instrucciones definitivas que vayan a funcionar en cualquier situación para todo el mundo. Aunque puedes añadir protección mediante contraseña a un archivo .htaccess, todavía tienes que añadir usuarios y contraseñas a un archivo ".htpasswd". Los usuarios se añaden fácilmente, pero las contraseñas que introduzcas en este archivo deben estar encriptadas. Este tutorial sobre contraseñas para .htaccess puede ayudarte con esta tarea, pero yo te recomiendo que uses el panel de control de tu web en caso de que lo tengas, y añadas tu protección mediante contraseña allí (ya que es automático). Podrías incluso usar el generador de archivo .htaccess que mencionamos antes y subir los archivos manualmente. Aquí tienes la documentación oficial de cPanel sobre la protección de directorios mediante contraseña. Si no estás seguro, envía un ticket a tu proveedor de alojamiento para que te ayuden a proteger tu directorio /wp-admin.

Otra cosa que podrías considerar es limitar el acceso a tu directorio /wp-admin permitiendo el acceso exclusivamente a una dirección IP, o a un rango de ellas. De esta forma no tendrás que recordar la contraseña, y podrías limitar fácilmente el acceso solo ciertas personas. De nuevo, si tienes problemas haciéndolo, envía un ticket de soporte a tu proveedor de alojamiento para que te ayuden.

Limita el acceso mediante permisos

La gran mayoría de proveedores de alojamiento para WordPress están basados en Linux, y el acceso a los archivos de tu sitio están controlados mediante permisos en un archivo UNXI. Los permisos básicos son de 3 tipos, "leer, escribir, y ejecutar". Y pueden ser asignados a tres grupos, "usuario, grupo, y mundo". El Codex de WordPress tiene toda una página dedicada al Cambio de los Permisos de Archivo. En esencia, es peligroso conceder permisos de escritura a todo el mundo desde un navegador web cuando no es necesario. Es una hueco que los hackers pueden utilizar en potencia para escribir archivos y acceder a tu sitio. Es mejor usar permisos de archivo 755 (e inferiores) siempre que sea posible porque esto elimina la posibilidad de "escribir" al grupo y al mundo.

Normalmente puedes cambiar los permisos de los archivos desde tu programa de FTP, por ejemplo en "Filezilla" puedes pulsar con el botón derecho sobre un archivo como ves en la siguiente imagen:


También puedes hacerlo en "telnet" si dispones de ese tipo de acceso, y en algunos proveedores de alojamiento puedes cambiar los permisos desde el panel de control usando el editor de permisos de archivos o un programa de FTP.

Limita el acceso a través del archivo robots.txt

Hay un viejo dicho que dice "una onza de prevención equivale a una libra de cura", y hay mucha verdad en ello. Al limitar el acceso a tu web mediante un archivo robots.txt, puedes evitar que ciertos elementos sean indexados por los motores de búsqueda de forma accidental, cuantos menos hackers encuentren tu web, menor será la probabilidad de ser hackeado. Deberías denegar el acceso a los tres directorios de tu instalación de WordPress (wp-admin, wp-content, wp-includes), y cualquier directorio adicional que tengas, si no quieres que sean indexados.

Por ejemplo, podrías incluir estas líneas en tu archivo robots.txt:


User-agent: *
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /trackback
Disallow: /trackback
Disallow: /comments
Disallow: /category/*/*
Disallow: */trackback
Disallow: */feed
Disallow: */comments
Disallow: /*?*
Disallow: /*?
Allow: /wp-content/uploads

Este ejemplo extraído de la página sobre SEO del Codex de WordPress limita el acceso a tus directorios wp-admin, wp-includes, y wp-content así como a tu feed, tus trackbacks, comentarios y a las páginas de categorías. Visita las páginas sobre robots para aprender más sobre los archivos robots.txt, los robots y las arañas de la web.


4. Examina la Seguridad de Tu Servidor Web


El coste de un alojamiento web no tiene nada que ver con la seguridad o la calidad de su departamento de soporte. Si tienes un proveedor de alojamiento, o estás buscando uno nuevo, haz dos sencillas búsquedas en Google sobre este tema: "alojamiento web malo" y "alojamiento web hackeado". Sustituye "alojamiento web" con el nombre del proveedor sobre el que deseas obtener información. Después, lee los blogs y las entradas en foros que hablen de los problemas que tuvieron con él. Hacerlo solo te costará unos minutos y siempre es bueno tener opiniones del "mundo real". Es bueno comprobar si un proveedor de hosting tiene tan solo algunas quejas, o cientos.

Después, plantéale algunas importantes preguntas a tu potencial proveedor.

  • ¿Con qué frecuencia realizan copias de seguridad? Necesitarás saber si es posible recuperar tus datos por si alguna vez te hackean.
    • ¿Durante cuánto tiempo se conservan las copias de seguridad?
    • ¿A qué hora del día se realizan?
    • ¿Puedo escoger una fecha y hora concretas para la restauración de las copias?
  • ¿Ofrecen "SFTP" o FTP seguro? Si no es así, no deberías alojar tu web con ellos, lo vamos a explicar más adelante.
  • ¿Qué "cuenta" usa el servidor web Apache para servir las páginas? Debería usar un tipo de usuario "www-data" de forma que los archivos de la cuenta de tu alojamiento se ejecute con tu usuario, y que el resto de cuentas del mismo servidor compartido se ejecuten con sus propios usuarios, esto te ayudará a prevenir ataques entre cuentas.
  • ¿Se ejecuta mi base de datos MySQL en el mismo servidor que el servidor web? Los mejores proveedores de alojamiento normalmente usan bases de datos que se ejecutan en servidores independientes.
  • ¿Permite tu alojamiento web permisos de archivo "777"? No solo es peligroso, además es innecesario. Normalmente los permisos "755" son más que suficientes para cualquier sitio web, y un alojamiento que no proporcionan permisos "777" (todo el mundo puede escribir) son generalmente más conscientes en temas de seguridad que aquellos que sí los conceden.
  • ¿Podría un virus de una web de otro usuario infectar la mía? Si la respuesta es negativa, ¿por qué? Haz que el proveedor de alojamiento web te explique exactamente qué precauciones han tomado para asegurarse de que una cuenta infectada no pueda tumbar todo su servidor. No vale la pena contratar el servicio a aquellas empresas que no te puedan dar una respuesta inteligente a esta pregunta.

Y sobre todo, querrás asegurarte de que en el caso de que algo malo suceda serás informado de inmediato y que habrá alguna persona de soporte con la que puedas contar en todo momento. Pregunta a tu actual o potencial empresa de alojamiento si monitoriza las 24 h. durante los 7 días de la semana, y si su servicio de soporte es gratuito y está disponible también 24/7. Además, nunca hace daño llamar a la empresa a media noche para comprobar que te responde la llamada una persona real, o lo hace un servicio automático que promete devolverte la llamada.


5. Haz Que los Nombres de Usuario y las Contraseñas Sean Más Seguras


Elige nombres de usuario y contraseñas seguras:

Por defecto todos los sitios web basados en WordPress empiezan con una "cuenta admin". Cualquier hacker del mundo sabe que todas las webs creadas con WordPress tienen esta cuenta. Por tanto lo primero que deberías hacer es crear una nueva cuenta, asignarle privilegios de administrador, y eliminar la cuenta original cuyo usuario es "admin".

Nombres de Usuario Fuertes: Haz que tu nombre de usuario sea único usando tanto letras como números, y que tenga una longitud de 8 caracteres como mínimo. El nombre de usuario que elijas debería ser único, no uses la misma información que empleas para iniciar sesión online en otros sitios, por ejemplo igual que el acceso a tu email, a tu panel de control o a tu base de datos.

Contraseñas Seguras: Haz que tus contraseñas sean únicas usando letras, números, Y símbolos - y que contenga 8 caracteres o más. No uses la misma combinación de contraseña y nombre de usuario que en cualquier otro inicio de sesión, y definitivamente NO uses las mismas contraseñas para tu acceso a WordPress que para tu acceso a la base de datos MySQL, o al panel de control de tu servidor web. Visita Strong Password Generator para ver algunos ejemplos.

Escoge nombres de usuario y contraseñas únicos para cada cuenta de inicio de sesión: esto ya lo hemos mencionado, pero merece la pena insistir. Querrás usar distintas combinaciones de usuarios/contraseñas para tu acceso a WordPress, a la base de datos MySQL, y al panel de control de tu alojamiento. Si alguien logra introducirse en una de esas cuentas, al menos no tendrá acceso a las demás.

Cambia periódicamente las contraseñas: WordPress y la mayoría de proveedores de alojamiento web no te solicitan que cambies tus contraseñas de forma regular, sin embargo sí lo hacen la mayoría de los bancos. ¿No es el momento de invertir en tu web o blog como si estuviese depositando dinero en el banco? Si perdieses todo tu trabajo, ¿no estarías perdiendo dinero? Es buena idea cambiar tu contraseña cada 30, 60, o 90 días es como hacen los bancos.


6. No Alientes Malos Comportamientos


¿Recibes muchos comentarios spam en tu sitio web? Si permites que los usuarios se registren en tu blog, ¿has observado algunas cuentas sospechosas de haber sido creadas por software automático o robots? Si no estás protegido contra este tipo de cosas, estarás alentando "malos comportamientos" en tu blog. La instalación de WordPress viene por defecto con el plugin "askimet" instalado, y funciona muy bien para evitar comentarios spam, pero aun así algunos todavía consiguen pasar, ¿cierto?

Valora la posibilidad de añadir una protección extra, por ejemplo Wp Spamfree. Lo recomiendo porque funciona de forma silenciosa, y a diferencia de otros plugins no requiere ninguna intervención por parte del usuario, como complicadas preguntas o Captchas de verificación. Elimina todos los comentarios automatizados procedentes de bots, y el spam de trackbacks y pingbacks. Además, funciona con WP Cache y Super Cache, así como con instalaciones Multisitio de WordPress. Oh - mencioné que está actualizado (al menos mientras escribo), de forma que funciona hasta con la versión 2.1 de WordPress.


Basta con que lo instales, WP Spamfree se pondrá de inmediato en funcionamiento. En su documentación menciona que puede funcionar sin problemas mientras Askimet está activado, aunque no sería necesario ya que este plugin es más eficaz.

Si permites que los usuarios se registren en tu sitio WordPress, eres un objetivo de ataques deseado. Instalar un plugin WordPress para prevenir el registro de robots te ahorrará más de un dolor de cabeza. Evitará que estos se registren en tu web, bloqueará cualquier robot cuya IP aparezca más de una vez, y a cualquiera que aparezca listado en spamhaus, o que tú hayas colocado manualmente en una lista negra.


Ya has bloqueado los robots y el spam, pero ¿qué sucedería si una persona real accede a la web con la intención de crear un comentario para perjudicarte? Algunos de los últimos ataques que han infectado blogs usan técnicas cross-site-scripting o "XSS". Para protegerte de esto podrías instalar HTML Purified. Sustituye el filtro predeterminado para los comentarios de WordPress por una magnífica librería de filtros HTML. Genera código XHTML adecuado para tus comentarios, pero lo más importante es que te protege de ataques XSS. Tendrás un control exacto sobre qué etiquetas están permitidas, o si deseas filtrar también, o no, a usuarios con privilegios de administración.



7. Registra los Intentos de Ataque


Además de protegerte contra ataques potenciales, deberías registrar siempre que sea posible los intentos de ataque. En primer lugar porque es un manera de ser proactivo y hace que tomes consciencia de que los ataques deambulan por ahí e intentan asaltar tu web constantemente. Pero además te permite saber si las medidas de seguridad y protección que has tomado están funcionando. Y más importante, si ves ataques constantes o repetidos que provienen de una ubicación concreta, podrás crear tu propia lista negra.

Tripwire

Tripwire es un plugin que escanea los archivos de tu WordPress para comprobar que no hayan sido modificados. Una vez instalado, lo único que tienes que hacer es indicarle desde qué fecha debe comprobar los cambios, a continuación enumerará todos los archivos que hayan sufrido cambios durante ese periodo. Como ves en la imagen de ejemplo, he actualizado WordPress el 11 de junio, por tanto todos esos archivos fueron señalados. Si compruebas los cambios de tus archivos durante los últimos 30 días y el resultado es que muchos han cambiado sin que tú hayas modificado nada, es posible que tengas algún problema. No olvides que el plugin WP Antivirus comprobará los archivos del tema de tu wordpress y te notificará automáticamente vía email si alguno de ellos es sospechoso de contener virus. Tripwire comprobará todos los archivos de tu sitio WordPress, pero no tiene ninguna función de notificación automática.


Login Lockdown

Login Lockdown es un plugin que monitoriza los intentos de inicio de sesión en tu sitio WordPress. Registra las direcciones IP y la hora en la que se produce cada intento. Si se da un cierto número de intentos fallidos de inicio de sesión en un margen de tiempo, queda bloqueado el acceso para el rango de IPs desde las que se han producido. Por defecto el máximo número de intentos fallidos permitido son tres a lo largo de 5 minutos, y el periodo de bloqueo se extiende durante 1 hora. Por supuesto puedes cambiar estos ajustes en las opciones del plugin como desees. Si no tuvieses este plugin instalado nunca sabrías si se han producido estos intentos de acceso.

Error Reporting

Error Reporting es un plugin de WordPress que almacenará en un archivo de registro cualquier error que genere WordPress para que los puedas consultar. En las opciones de configuración puedes elegir qué tipo de errores quieres almacenar, de qué carpetas y si quieres que se guarden los errores que se repiten más de una vez. Puedes incluso hacer que te envíe los errores a través de un email. Me gusta este plugin porque también detecta intentos fallidos de pings. En todo sitio WordPress se dan errores de vez en cuando, y son contadas las ocasiones en las que solo son uno o dos. Se convierte en un asunto problemático cuando se dan errores de forma constante a causa de un tema, un plugin o del propio WordPress. Un plugin como este es el único medio para comprobar esos errores.
Aunque no puedas ocuparte del problema por ti mismo, al menos tendrás un mensaje de error sobre el que posteriormente puedas consultar en la Ayuda de WordPress, o encargar su resolución a un consultor de WordPress.

Aquí tienes una imagen con las opciones para el archivo de registros del plugin "Error Reporting".


404 Notifier

Otro útil plugin es "404 Notifier". Una vez instalado, te enviará un email cada vez que tu sitio genere un error 404 "Página no encontrada". Esto es útil por dos motivos. Primero, si recibes errores continuos originados por la misma página, podrías solucionarlo creando justamente esa página. Lo más probable, y más importante, es que los errores que recibas sean inesperados para ti, por ejemplo de archivos CSS o includes de plugins o temas, repáralos también. Probablemente desconozcas el segundo motivo, es el siguiente, muchos atacantes enviarán basura a tu sitio web solicitando URL's del tipo "http://mysite.com/crap/garbargeurl?=3o2349-admeknow.js" y similares. Básicamente están intentando conocer qué hará tu servidor, si generará un error 404, o les mostrará un índice con directorios. También intentan comprobar si usas WordPress (o cualquier otra cosa), y qué versión del mismo.

Aunque esta información por sí sola no es mucho, es un buen inicio. Yo una vez tuve una web que recibía un montón de peticiones de URL's basura como esa al día, lo descubrí en los registros un mes más tarde. Un plugin de notificaciones 404 como este me hubiese dado pistas sobre la dirección correcta a seguir. Después puedes bloquear la dirección IP de la que proceden, y contactar con el servicio de soporte de tu servidor para que te ayude o seguir las instrucciones que hemos expuesto anteriormente para limitar el acceso a tu web mediante tu archivo .htaccess.

Aquí tienes una imagen con las opciones de ajuste de 404 Notifier. Verás que no sólo puedes recibir una notificación vía email, sino que los eventos también se almacenan vía RSS feeds.


Con todos estos plugins de registro y alertas, tu experiencia puede variar. Te recomiendo que los pruebes uno a uno para ver cual te funciona mejor a ti. Recuerda también que es posible que no necesites tenerlos activos todo el tiempo. Podrías ejecutar un análisis cuando lo consideres necesario, bloquear accesos fallidos de forma permanente y activar los informes de errores y las notificaciones 404 cuando lo creas conveniente.


8. Usa Conexiones Seguras


Todo lo que hemos mencionado es muy importante, pero nada lo es tanto como una conexión segura. ¿Sabías que cuando hablas desde un teléfono, incluso desde un teléfono inalámbrico, estás usando una línea insegura? Cualquiera con un escáner con la frecuencia correcta podría escuchar tu conversación. Si proporcionas el número de tu tarjeta de crédito a través de una línea insegura, siempre existirá la posibilidad de que alguien la pueda escuchar y capturar. Aun así, la mayoría de nosotros damos los números de nuestra tarjeta de crédito a través de nuestro teléfono docenas (e incluso cientos) de veces.

Cuando haces transacciones bancarias online, usas el protocolo "https" o conexión segura que usa un encriptado de 128 bits para asegurar que nadie obtiene tus datos de acceso o tus datos bancarios. Si usas WordPress con nombres de usuario y contraseñas seguras pero la conexión a internet se realiza a través del protocolo normal "http" inseguro. Cuando subes archivos de temas o plugins vía FTP a tu instalación WordPress también estás usando una conexión "insegura" de FTP. Si te conectas desde casa a internet de forma inalámbrica, es muy probable que esta conexión sea también "insegura", no encriptada, ya que la mayoría de los routers para el hogar están configurados para no estar encriptados.

Esto significa que cualquiera que esté husmeando en busca de datos de acceso podría extraer tu información cuando te conectas al panel de administración de tu WordPress o cuando conectas a tu cuenta vía FTP. Podría tratarse de ese chico que se sienta en la mesa próxima de Starbucks, el hijo de tu vecino que resulta que es un hacker, o robots o software online que rastrea buscando datos de acceso mientras tú estás conectado. Las dos cosas más importantes que puedes hacer son fortalecer tu inicio de sesión a WordPress y securizar tu conexión FTP. Al menos si estás usando una conexión wifi encriptada, tu panel de administración y tus conexiones FTP estarán seguras.

Añade autenticación segura a tu inicio de sesión en WordPress:

Ahora que te he contado los motivos por los que deberías usar una autenticación segura para tu inicio de sesión en WordPress, tengo algunas noticias desagradables, no es muy sencillo implementarla. Primero, necesitas un alojamiento que admita SSL, y en segundo lugar necesitas tener un certificado. Por ejemplo para adquirir tu propio certificado Thawte SSL necesitas invertir como mínimo 249$ anuales. Esto es más del doble de los que muchos invertimos para disponer de un alojamiento compartido. No obstante, si deseas pagar para obtener tu propio certificado de seguridad, puedes añadir una simple línea de código a tu archivo "wp-config.php" para forzar el "inicio de sesión con SSL", tal y como se describe en esta página del Codex de WordPress sobre la Gestión de SSL.

Muchos proveedores de alojamiento compartido proporcionan acceso a un certificado de seguridad "compartido", y el plugin Admin SSL no parece admitirlos. Incluso es mencionado en la página del Codex de WordPress sobre inicios de sesión con SSL, pero las última descarga es para versiones de WoprdPress inferiores a la 2.7x, y la versión que citan como compatible para WordPress 2.8 (todavía) no tiene enlace de descarga. Una vez actualizado, este plugin es probablemente la mejor apuesta para situaciones en las que necesitas un certificado SSL compartido.

Entonces, ahora qué, no quieres asumir el elevado coste de un certificado de seguridad propio, pero sí securizar lo máximo posible el inicio de sesión en WordPress. No te preocupes, todavía quedan soluciones que puedes valorar.

Con Semisecure Login Reimagined puedes aumentar la seguridad de tu inicio de sesión usando la clave pública de RSA para encriptar tu contraseña. Como se afirma en la página del plugin, éste es útil en situaciones en las que no es posible emplear un inicio de sesión SSL en WordPress. Una vez instalado y activado funciona de forma automática (es compatible con WordPress 2.8+). Existen opciones para encriptación de 512 bits, 2048 bits y 3072 bits, puedes elegir la opción que más te guste, pero la predeterminada es la de 1014 bits.


Usa Siempre FTP Seguro (SFTP):

Cuando te conectes a tu servidor web usa siempre una conexión segura, "SFTP" (FTP seguro) en lugar de FTP. Casi todos los proveedores de alojamiento la ofrecen gratuitamente como parte de su paquete de alojamiento, aunque la mayoría de la gente no la aprovecha. Si usas la conexión FTP todo lo que transmitas vía internet estará en formato de "texto claro" (legible de forma que cualquier hacker podrá interceptarlo). Si tu servicio de alojamiento no soporta FTP Seguro, busca uno que sí lo tenga.

Lo creas o no, todo lo que tienes que hacer es cambiar los ajustes en el programa que uses para conectarte a FTP a "SFTP" y el puerto a "2222". Comprueba la documentación de tu proveedor de alojamiento si no consigues que funcione, posiblemente esté usando un puerto para SFTP no estandar. Pulsa conectar y, ¡ya lo tienes, estás usando FTP seguro!



9. Fortalece la Seguridad de Tu Archivo "wp-config.php"

Quizá no lo sepas, pero existen dos formas de añadir mayor seguridad a tu archivo wp-config.php. La primera es usando la "secret key" (clave secreta) incluida, la mayoría de la gente que conozco no aprovecha esta funcionalidad, y eso que está disponible desde la versión 2.6 de WordPress.

Todo lo que tienes que hacer es abrir tu archivo wp-config.php en un editor de texto y editar las siguientes líneos:


WordPress hasta te ofrece su propio Secret Key Generator (Generador de Claves Secretas) que puedes usar para crear claves únicas y fuertes. Guarda el archivo y vuelve a subirlo al directorio raíz de tu sitio WordPress.

Otra cosa que puedes hacer es mover tu archivo wp-config.php fuera del directorio público del sitio WordPress a otra zona con mayor protección de tu cuenta de alojamiento web. Solemos referirnos a esto como moverlo "fuera de la raíz", o fuera de la parte pública ("public_html") o "www" de tu sitio. Es razonable hacerlo ya que contiene la información más sensible (tus datos de conexión), y es muy difícil para un hacker potencial acceder al nivel estructural del servidor que está fuera de tu sitio web. Para hacerlo, la cuenta de tu alojamiento web debe tener acceso a al menos un nivel "por encima de la raíz o root" de tu sitio web (public_html), y todo lo que tienes que hacer para agregar esta capa extra de seguridad es mover el archivo wp-config.php un nivel por encima en esta jerarquía de directorios, WordPress buscará el archivo automáticamente en ese nivel superior, y tu web seguirá funcionando con total normalidad como antes.

WordPress tiene una página oficial en el Codex con instrucciones para editar tu archivo wp-config.php, por si necesitas más información.


10. Mantén Tu Ordenador Actualizado


He dejado este punto para el final porque tu ordenador personal es lo que puede hacer más daño a tu web creada con WordPress, y además más rápidamente que cualquier otra cosa. La mayoría de la gente usa ordenadores que funcionan con Windows, y 1 de cada 16 ordenadores personales (6%) están infectados con Downadup aka Conficker. ¡Es sorprendente leer en la sección de consultas Computerworld Downadup FAQ que para eliminar este gusano no tienes que hacer nada! Solo tienes que tener instalado Windows 2000, Windows XP o Windows 2003 Server el cual no ha sido parcheado todavía por completo (a fecha de octubre de 2008). Si no estás "parcheado", y recibes un solo paquete en forma de robot desde Internet, ¡te habrás infectado! No es necesario que hagas ningún clic, ni que instales nada, además la mayoría de tus antivirus y programas de "spyware" tampoco te servirán de nada. Una vez estés infectado, este gusano se habrá auto-instalado en cualquier dispositivo media que tengas, como tarjetas SD, teléfonos con tarjetas de memoria, cámaras digitales, discos duros externos, reproductores mp3 con tarjetas de memoria, etc. Antes de lo que piensas habrás infectado cada ordenador de tu casa y la mitad de los de tu oficina.

Una Caso Real: El mes pasado me llamó un cliente porque su blog WordPress había sido hackeado. Le hice muchas preguntas, y me comentó que había trabajado con su servidor web durante los tres días anteriores a su llamada. Estos le aconsejaron que eliminase todos sus blog creados con WordPress (6 webs), y que después reinstalase y actualizase WordPress. Tras hacerlo y en menos de una hora todas sus webs habían vuelto a ser hackeadas. El servicio de soporte de su alojamiento web estaba confuso. Me contrató para solucionar el problema, y cambié su panel de control y sus contraseñas de acceso FTP a otras más fuertes. Después cree un usuario independiente y una nueva contraseña para cada una de las bases de datos MySQL de sus 6 sitios web. Eliminé todos los archivos de sus sitios, reinstalé WordPress y habilité el tema predeterminado sin activar ningún plugin. Todo funcionaba bien. Esperé 24 horas, todo seguía perfecto.

Le llamé al día siguiente y le pregunté, "¿Usas Windows en tu PC?". "¿Por qué?", me dijo. "¿Cuándo fue la última vez que actualizaste el escáner de tu antivirus?", pregunté. "La verdad es que la licencia me caducó hace un tiempo", dijo. "Hazme un favor", le respondí. Dirígete a housecall.trendmicro.com ahora mismo, y escanea tu ordenador, después llámame con los resultados." 2 horas después me devolvió la llamada, su ordenador con Windows XP había sido infectado con un troyano, el tipo de virus que registra las pulsaciones del teclado. Había robado sus datos de acceso FTP, y destrozado todos los sitios web de su alojamiento compartido (¡dos veces!).

Tú eres tu peor enemigo. ¡Mantén tu ordenador siempre actualizado!


Conclusión

Espero que hayas descubierto este artículo antes de que tu blog WordPress haya sido hackeado y todo lo que hemos aprendido es mantenimiento preventivo. Si implementas tan solo algunos de estos consejos tendrás una instalación de WordPress con mayor seguridad. Si los implementas todos, estarás super-seguro en comparación con la mayoría de los sitios WordPress que hay por ahí. 

Qué puedes hacer si tu blog WordPress ha sido hackeado

Si estás leyendo este artículo porque tu web WordPress ha sido hackeada, mi consejo es el siguiente:

  • Sustituye todos tus nombres de usuario y contraseñas en el panel de control del servidor, en tu cuenta de FTP, y en tus bases de datos My SQL.
  • Si te es posible, actualiza WordPress y todos los plugins instalados.
  • Escanea tu sitio WordPress con los plugins que he mencionado para descubrir si existe algún problema.
  • Escanea tu ordenador personal para asegurarte de que su seguridad no está en riesgo o se haya visto comprometida.
  • Detecta vulnerabilidades y brechas de seguridad utilizando las herramientas que hemos explicado en este artículo.

Si no lo puedes solucionar tú solo, puedes contratar a un profesional para reparar y poner tu blog en funcionamiento de nuevo.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.