Cómo proteger WordPress de ataques
La información es poder y a las personas les gusta el poder, por esto hay personas especializadas en robar su información. Internet está en una carrera armamentista entre expertos en seguridad y agentes maliciosos, donde cada día se descubren, abusan y reparan nuevas vulnerabilidades.
Nunca es un problema de «si sucede» sino un problema de «cuándo sucederá». Siempre debe tratar de mantenerse en la cima, para que su información y la de sus clientes esté segura.
Hay algunas condiciones básicas para fortalecer sus sitios web. Me centraré en enumerarlos en el contexto específico de los sitios WordPress.
Asegure la comunicación de Internet
En el comienzo de Internet, donde todo era un sitio html simple, la información se transmitía entre el servidor y el cliente sin ningún tipo de encriptación. Esto le permite a cualquier persona en el canal leer su mensaje en texto plano. A medida que nacieron las aplicaciones web y se crearon una gran variedad de necesidades, la transmisión de información de manera segura se hizo obligatoria. El método utilizado para eso era SSL (SecureSocketsLayer) que luego fue reemplazado por TLS (TransportLayerSecurity). Los sitios que usan TLS se sirven a través de HTTPS:
Tratando de evitar detalles técnicos, cualquier información que se transmite a través de https está encriptada y solo las máquinas involucradas en el proceso pueden interpretar su significado. Esto depende de otros factores (como las cifras, la versión de protocolo, etc.), pero si su navegador se actualiza y muestra el bloqueo verde, puede asumir que la información es segura.
Actualmente hay un gran movimiento para mejorar la seguridad de internet. Entre esas iniciativas se puede encontrar:
- Los navegadores (comenzando con Chrome) comenzarán a etiquetar los sitios servidos en http como inseguros. Eso significa que en lugar de la cerradura verde, tendrá una roja, junto con una advertencia para los usuarios.
- Los certificados SSL, necesarios para servir sitios a través de HTTPS, se pueden adquirir de forma gratuita mediante el uso de letsencrypt.
- La migración a HTTPS se puede hacer en cuestión de horas sin demasiados problemas. Hay muchos recursos en Internet sobre cómo hacerlo para los sitios de wordpress (que se ejecutan en apache o nginx).
No hay excusa para evitar hacer eso si le importa su sitio. Como extra, HTTPS también importa cuando se trata de SEO.
Siempre en el lado seguro
Si está utilizando TLS en su servidor, su siguiente paso es desactivar su versión HTTP. Debe obligar a su sitio HTTP a redirigir a la versión HTTPS y habilitar HSTS (Seguridad de transporte HTTP estricta), que le dice a su navegador que debe interactuar con su sitio con HTTPS únicamente.
No dejes accesible aquello que no debes
Si el servidor http no está configurado correctamente, puede estar dando acceso a información que no debería. Por ejemplo, si deja el archivo readme wordpress en la carpeta, los atacantes pueden leerlo para conocer la versión que está ejecutando y con eso un conjunto completo de vulnerabilidades que pueden usarse en su contra.
Otro caso es habilitar la lista de directorios. Los atacantes pueden enumerar la estructura de su carpeta y obtener información que pueda ayudarlos a encontrar vulnerabilidades en su servidor. Evite hacer archivos públicos que puedan contener información confidencial.
WordPress core actualizado
WordPress es muy popular y esa es una gran razón para atacarlo. Hay vulnerabilidades que se reparan con cada nueva versión, y debe mantener su sitio actualizado debido a eso. Un sitio vulnerable no solo está poniendo en peligro su servidor y su información, sino que también puede utilizarse para atacar a sus usuarios u otros servidores.
Mantenga el mínimo de plugins posible
Los plugins son una excelente manera de mejorar la funcionalidad de WordPress, pero están escritos en PHP y tienen acceso básicamente a todo en el servidor. Debe instalar únicamente plugins de confianza que proporcionen una función que realmente necesita, ya que con cada plugin viene una nueva forma de atacar su servidor. Al igual que con WordPress core, manténgalos actualizados para obtener las últimas correcciones de rendimiento y seguridad.
Esconda su versión de WordPress
Si el atacante no tiene forma de conocer su versión de WordPress, y su sitio está actualizado, será muy difícil para él encontrar la manera de atacarlo.
Por otro lado, si el agente malicioso sabe que está usando una versión obsoleta de WordPress (o de algún plugin) sabrá cómo y dónde atacar.
El sistema
Recuerde que todo en su servidor es un posible punto de entrada para un atacante. Todos los componentes en su web son propensos a ser atacados.
Esos componentes, al igual que WordPress, deben actualizarse constantemente. No configure un servidor WordPress, habilite las actualizaciones automáticas y evite volver a ingresar. El mantenimiento debe realizarse regularmente, pero esto no se puede hacer desde el administrador de WordPress. Debe asegurarse de que las versiones para PHP y apache estén actualizadas. Es normal encontrar sitios que utilicen PHP 5.4, una versión que ya no es compatible y no obtiene soluciones de seguridad. Evite ser el dueño de uno de esos sitios.
En el momento de escribir, PHP 7.1 es la última versión. La migración de PHP 5.4 a 7 no debería ser extremadamente complicada. WordPress es compatible, los plugins populares son compatibles. Solo necesita asegurarse de que su propio código sea compatible. Si hay plugins que no se pueden actualizar, busque otro plugin que proporcione la funcionalidad. Tener un código vulnerable puede ser demasiado peligroso.
Herramientas de diagnóstico
Para diagnosticar sitios, uso wpscan. Esta herramienta comprueba la información del sitio, incluida la versión de WordPress, la versión de php, la versión de Apache, las entradas interesantes de robots.txt, el estado de la lista de directorios, etc. También enumera las vulnerabilidades que tiene su sitio, según la versión de WordPress y los plugins.
Esta herramienta es bastante fácil de usar, pero si va a utilizarla para probar sitios grandes, debe configurarla aún más para evitar problemas en el servidor al que se dirige, ya que envía MUCHAS solicitudes muy rápido.
TL;DR
Use SSL con HSTS, mantenga wordpress y sus plugins actualizados, mantenga sus paquetes de sistema actualizados (incluidos PHP y Apache) y verifique que su configuración funciona bien con alguna herramienta de diagnóstico.