WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS

7
WHITEPAPER AUMENTANDO LA SEGURIDAD DE WORDPRESS

Transcript of WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS

Page 1: WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS

WHITEPAPER

AUMENTANDO LA SEGURIDAD DE WORDPRESS

Page 2: WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS

ESET / WHITEPAPER 2015 / WORDPRESSESET / WHITEPAPER 2015 / WORDPRESS

32

ÍndiceOverview 4

Introducción 5

• ¿Qué es un CMS?• ¿Quién usa WordPress?• Vulnerabilidades en WordPress

Medidas de seguridad básicas 6 - 7

• Mantener WordPress y plugins actualizados• Desinstalar temas y plugins que no usamos• Doble factor de autenticación• Forzar contraseñas robustas• Copia de seguridad del sitio• Antivirus en el servidor• Permisos correctos en el servidor

Medidas de seguridad avanzadas 8 - 9

• Protección contra fuerza bruta• Forzar SSL en el login• Bloquear “user agents” maliciosos• Renombrar y cambiar ID del usuario “admin”• Bloquear ejecución de código en la carpeta uploads• Bloquear métodos http innecesarios

Ocultando nuestro WordPress 10 - 11

• Cambiar URL del administrador• Detección y bloqueo de errores 404 consecutivos• Cambiar mensajes de error por defecto• Renombrar y cambiar ID del usuario “admin”• Eliminar cabeceras informativas de WordPress y componentes• Bloquear el acceso a archivos de WordPress

Soluciones automáticas 12

• Plugins• ESET Secure Authentication• Web Application Firewalls

Conclusiones 12

Page 3: WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS

ESET / WHITEPAPER 2015 / WORDPRESSESET / WHITEPAPER 2015 / WORDPRESS

54

Desde siempre en ESET España hemos promovido la idea de que un factor fundamental en la seguridad informática es la concienciación y la educación tanto de usuarios como de ingenieros, administradores o personal técnico de nuestra empresa.

En este documento encontrareis los motivos por los que debemos te-ner en cuenta la seguridad a la hora de trabajar con uno de los ges-tores de contenidos más populares del panorama actual, WordPress, y orientaremos tanto a los usuarios como a los administradores con algunos pasos a seguir y medidas de seguridad a tener en cuenta a la hora de implementar este tipo de sistemas.

Overview

¿Qué es un CMS?Los CMS o Content Management System son programas informáticos diseñados para facilitar el manejo y la visualización de contenidos ge-neralmente utilizados para la creación de portales web, blogs, foros, etc.

Los CMS más conocidos dentro del mundo de la creación de webs son WordPress, Joomla! y Drupal, y por ello vamos a dedicar este White Pa-per a hablar de un aspecto tan importante como es la seguridad en el más utilizado de ellos: WordPress.

Introducción

¿Quién usa WordPress?Gracias a la versatilidad y a la comodidad que los CMS proporcionan tanto a los administradores de las webs como a los creadores de con-tenido, su uso está altamente extendido a lo largo y ancho de Internet.

Los últimos estudios realizados al respecto dicen que aproximadamen-te el 55% de los CMS utilizados en Internet son WordPress y además calculan que existen más de 14 millones de sitios web creados a partir de este gestor de contenidos.

Vulnerabilidades en WordPress

Debido a su amplia extensión, WordPress es cada día más objetivo de ciberdelincuentes que intentan encontrar y explotar vulnerabilidades de todo tipo en estos sistemas.

En la actualidad podemos encontrar vulnerabilidades publicadas tanto en el propio CMS como en los te-mas, plugins y todo tipo de piezas de software adicionales que continuamente se utilizan en la creación y configuración de sitios web.

!

55%

Page 4: WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS

ESET / WHITEPAPER 2015 / WORDPRESSESET / WHITEPAPER 2015 / WORDPRESS

76

Como hemos visto hasta el momento, WordPress ofrece a usuarios y administradores una gran comodidad a la hora de mantener y gestionar las páginas web, pero debido a su popu-laridad debemos tomar medidas de seguridad adicionales si queremos mantener nuestros sitios web seguros.

Medidas de seguridad básicas

Mantener WordPress y plugins actualizados

Los desarrolladores de WordPress trabajan continuamente para mejortar la seguridad de su CMS y lo mismo ocurre con los temas y plugins.

Por este motivo una medida de seguridad de vital importancia es mantener siempre nuestros sitios web bien actualizados para evitar que nos afecten antiguas vulnerabilidades en cualquier componente o en el propio CMS.

Desinstalar temas y plugins que no usamos

Los gestores de contenidos traen por defecto varios temas o plugins instalados, incluso los administra-dores tienden a dejar instalados plugins o temas que en algún momento usaron en el sitio.

Una buena práctica es la desinstalación total de los componentes que no se usan en nuestras webs para minimizar los vectores de ataque que tendremos que proteger.

Doble factor de autenticaciónBien es sabido que en la actualidad el simple uso de una contraseña ya no es suficiente para certificar la seguridad de un acceso, por ello es recomendable usar doble factor de autenticación en nuestros sitios web.

Existen muchos tipos de sistemas de autenticación de doble factor como por ejemplo la autenticación biométrica o los tokens físicos o virtuales, entre muchos otros.

En ESET España recomendamos el uso de ESET Secure Authentication para mejorar la seguridad de WordPress en este aspecto.

Forzar contraseñas robustasA pesar de utilizar doble factor de autenticación sigue siendo impor-tante que todas las contraseñas sean robustas, con lo que es una buena práctica forzar a todos los usuarios de WordPress a que así sea.

Existen infinidad de plugins que facilitan esta tarea.

Copia de seguridad del sitioLas copias de seguridad no son una medida de fortificación pero sí una importantísima medida de recuperación ante desastres, con lo que recomendamos encarecidamente tener siempre las copias al día.

Antivirus en el servidorMuchos de los ataques a páginas web tienen como objetivo subir ficheros al servidor que pueden ser detectados y eliminados por un antivirus.

Permisos correctos en el servidorComo se explica en el punto anterior, algunos ataques intentan subir archivos maliciosos o ilegítimos al servidor.

Una simple y muy buena medida de seguridad es no dar permisos de escritura al servidor web (Apache, Nginx, IIS…) en las carpetas del si-tio donde no sea estrictamente necesario.

1

2

3

4

5

6

7

Page 5: WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS

ESET / WHITEPAPER 2015 / WORDPRESSESET / WHITEPAPER 2015 / WORDPRESS

98

Como hemos visto hasta el momento, WordPress ofrece a usuarios y administradores una gran comodidad a la hora de mantener y gestionar las páginas web, pero debido a su popu-laridad debemos tomar medidas de seguridad adicionales si queremos mantener nuestros sitios web seguros.

Medidas de seguridad avanzadas

Protección contra fuerza brutaAdemás de las recomendaciones anteriores en relación a las contraseñas, es importante controlar y bloquear los ataques de fuerza bruta (se denomina  ataque de fuerza bruta  a la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso) lo antes posible en la página de login de nuestro WordPress.

Para ello existen plugins que nos facilitan la tarea, o a un nivel más bajo, existen aplicaciones que se encargan de leer e interpretar los logs en busca de este tipo de ataques y tomar medidas de contención al respecto, como por ejemplo fail2ban en servidores Linux.

1

Forzar SSL en el loginSi nuestros usuarios se tienen que conectar al Dashboard desde redes públicas o inseguras, es impor-tante forzar que la conexión sea bajo https para evitar ataques de MITM (Man in the middle).

2

Bloquear “user agents” maliciososUna buena medida de seguridad para evitar rastreos o ataques automatizados es bloquear las peti-ciones que provengan de user agents conocidamente maliciosos, como por ejemplo el user agent por defecto de herramientas como Acunetix, Nikto o similares.

Como en casi todos los ejemplos que aparecen en este documento, esta medida se puede adoptar de diferentes modos, uno de ellos es a través del .htaccess con las siguientes líneas:

3

RewriteCond %{HTTP_USER_AGENT} ^USERAGENT default [NC,OR]RewriteRule ^.* - [F]

Renombrar y cambiar ID del usuario “admin”Por defecto en WordPress el ID del usuario admin es el 1. Muchas vul-nerabilidades usan este dato para elevar privilegios de otros usuarios.

Si cambiamos el ID del admin o incluso el nombre del usuario evitare-mos muchos problemas de este tipo.

4

Bloquear ejecución de código en la carpe-ta uploadsLa mayoría de plugins, temas y el propio CMS cuando suben un archi-vo al servidor, lo hacen a la carpeta “uploads”. Esto significa que en la mayoría de los casos esta carpeta tendrá permisos de escritura para el servidor web.

Con lo cual la mayoría de ataques que tengan como objetivo subir un fichero con código php para ejecutarlo de forma ilegítima en nuestro servidor irán dirigidos a este directorio.

Para evitar que Apache ejecute código en esta carpeta en el .htaccess colocaremos la siguiente línea:

5

Bloquear métodos http innecesariosLa navegación a través de un WordPress no necesita ni de lejos todas las funcionalidades que ofrece el protocolo HTTP.

Los métodos Trace, Delete y Track no son utilizados y pueden ser ob-jetivo o herramienta para realizar distintos tipos de ataques.

Siguiendo la filosofía de uno de los puntos anteriores, si no lo vamos a usar mejor deshabilitarlo con la siguiente línea en el .htaccess:

6

RewriteRule ^(.*)/uploads/(.*).php(.?) - [F]

RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK) [NC]

Page 6: WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS

ESET / WHITEPAPER 2015 / WORDPRESSESET / WHITEPAPER 2015 / WORDPRESS

1110

Debido a la gran popularidad de este gestor de contenidos, existen centenares de vulnerabilidades ya conocidas. Por este motivo nos será muy útil ocultar todo lo posible la identidad real de nuestra web.

Ocultando nuestro WordPress

Cambiar URL del administrador

La URL de acceso al Dashboard por defecto en WordPress es “http://mipagina.es/wp-admin”.

Si esta dirección existe ya de por sí nos da el dato de que la página está hecha con WordPress, pero, además, le da al atacante acceso directamente a la página de login de nuestra web.

RewriteRule ^/loginwp/?$ /wp-login.php [QSA,L]

Detección y bloqueo de errores 404 consecutivos

Cuando un atacante intenta descubrir el contenido de nuestra web suele usar varias técnicas como fuzzing o spi-ders web.

Casi todas tienen una característica en común, que es que incurren muchas veces en errores 404. Es decir, si desde el mismo origen tenemos muchos errores 404 consecutivos podemos considerarlo un ataque y bloquear al origen en nuestro servidor.

Combinado con la medida anterior, además de ocultar el acceso al Dashboard, bloquearemos la IP de los atacan-tes que intenten encontrarlo mediante este tipo de técnicas.

Cambiando esta dirección conseguimos ocultar ambas cosas y combinándolo con el punto siguiente podemos detectar y bloquear atacantes de forma permanente.

Como siempre esta medida se puede adoptar de diferentes formas, pero la más sencilla es a través del .htaccess redireccionando las peticiones de la URL de login a otra de nuestra elección.

En el siguiente ejemplo dejamos “http://mipagina.es/loginwp” como URL de acceso al Dashboard:

!Cambiar mensajes de error por defectoComo casi todos los sistemas, WordPress también tiene sus propios mensajes de error.

Un atacante con experiencia podría identificarlos y tirar por tierra toda nuestra estrategia de ocultación.

Se recomienda cambiar o eliminar todos los mensajes de error por defecto del CMS.

Eliminar cabeceras informativas de WordPress y componentes

Todos los componentes de WordPress, al igual que el propio CMS, tienen archivos o partes de archivos, generalmente cabeceras, donde identifican al componente y la versión utilizada.

Es recomendable siempre que sea posible eliminar este tipo de información o en todo caso falsearla para dificultar la labor de los atacantes y repeler ataques automatizados.

Bloquear el acceso a archivos de WordPress

Todos los componentes de WordPress, al Todos los CMS contienen archivos dirigidos a una labor especí-fica como por ejemplo la instalación, la actualización o el típico “readme” que no son en absoluto necesa-rios para el correcto funcionamiento de la web una vez puesta en producción.

Es altamente recomendable ocultar este tipo de archivos para que no sea posible acceder a ellos desde el navegador, ya que pueden dar información valiosa a los atacantes.

NOTA: se pueden eliminar, pero cuando actualicemos el CMS o los componentes volverán a crearse.

Para bloquear el acceso a estos ficheros pondremos las siguientes líneas en el .htaccess sustituyendo “readme.html” por todos los ficheros que queremos ocultar.

Los más comunes son: readme.html, readme.txt, install.php, wp-config.php

<files readme.html>Order allow,deny

Deny from all</files>

Page 7: WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS

ESET / WHITEPAPER 2015 / WORDPRESS

12

Todas las medidas se pueden aplicar de forma manual pero existen muchos métodos que nos facilitan la labor, como pueden ser aplicaciones específicas para el servidor o plugins para el propio CMS.

PluginsExisten muchos plugins de seguridad para WordPress que nos automatizan prácticamente todas las medidas de seguridad descritas anteriormente, como pueden ser iThemes Security o Wordfence Security o BackUpWordPress.

ESET Secure AuthenticationESET Secure Authentication proporciona más seguridad en el acceso remoto a la red y la información de la em-presa, de forma totalmente sencilla. Incorpora un programa para móviles que ofrece una contraseña de doble factor y un solo uso (2FA OTP). Las OTPs que utiliza se generan aleatoriamente, por lo que no se pueden predecir o reutilizar.

Web Application FirewallsLos WAF funcionan de forma parecida a los firewalls tradicionales. Se colocan en medio del flujo de datos e inter-ceptan, examinan y actúan sobre el tráfico dependiendo de unas condiciones.De forma gratuita podemos instalar el módulo Mod_Security a Apache ,que actúa como tal.

Soluciones automáticas

ConclusionesLos sistemas como los CMS son muy útiles, ya que nos facilitan muchísimo la vida tanto a administradores como a desarrolladores y a usuarios a la hora de crear y mantener sitios web, pero debido a su popularidad debemos hacer especial hincapié en su seguridad.

A pesar de implementar mucha seguridad por defecto gracias al trabajo de los desarrolladores de este tipo de sistemas, debemos aplicar medidas extra de fortificación para asegurarnos de que nuestros sitios web no se van a ver comprometidos.

@eset_es fb.com/Eset.Espana