Los mejores consejos para asegurar su aplicación de WordPress

Resultado de imagen para seguridad wordpress

Los sitios de WordPress carecen notoriamente cuando se trata de seguridad. Ya sea debido a una experiencia en seguridad insuficiente del desarrollador, o el uso de uno de los muchos plugins disponibles (de los cuales no se puede garantizar la seguridad).

Con WordPress se ejecuta en 1 de cada 5 sitios en Internet, no es de extrañar que son un objetivo muy popular para los hackers experimentados y los script-kiddies por igual. En 2013 alrededor de 90.000 sitios de WordPress fueron secuestrados para su uso en una red de bots. También son un objetivo popular para el malware.

Es por esto que hemos tomado algo de tiempo a los detalles de algunas medidas que pueden adoptarse para hacer frente a los agujeros de seguridad básicas o malas prácticas que están comúnmente presentes en miles de sitios de WordPress.

1. La ejecución de la última versión de WordPress

Ejecutando la última versión del software es, probablemente, en primer lugar la medida de seguridad más obvio que se debe tomar. Sin embargo, con más del 86% de las instalaciones de WordPress que ejecutan versiones no actualizadas de WordPress , este punto es todavía uno que necesita ser subrayado.

Cada actualización de WordPress no sólo trae consigo nuevas características, pero lo más importante, que trae consigo correcciones de errores y mejoras de seguridad, que ayudan a su sitio de WordPress que sea segura frente común, explotar fácil de vulnerabilidades.
fig 1 WP

WordPress Pantalla (Core) Actualizaciones

2. Ejecución de las últimas versiones de temas y plugins

Ejecutando la última versión de WordPress por sí sola no es suficiente – plugins y temas de su sitio aún podrían contener vulnerabilidades que pueden comprometer la seguridad de su sitio de WordPress.

El plug-in Revolución Slider es un buen ejemplo de cómo los complementos obsoletos y los temas pueden comprometer la seguridad de su sitio. Revolución Slider es un plugin de WordPress muy popular, que también pasa a ser utilizado por un gran número de temas de WordPress se venden en el mercado Envato. El plug-in permite a los usuarios vulnerables maliciosos para robar credenciales de base de datos, que luego permitir potencialmente compromiso total del sitio de WordPress a través de su base de datos.
fig2 WP

Pantalla de actualización de plugins

Por lo tanto, asegurándose de que los temas y plugins que se están ejecutando son todos actualizados a sus últimas versiones es esencial. Al mantener sus plugins y temas hasta la fecha, puede asegurarse de que su sitio está cubierto con las últimas actualizaciones de seguridad.
fig3 WP

Temas de actualización de la pantalla

Acunetix realiza los análisis de seguridad de WordPress , la identificación de instalaciones de WordPress, y pondrá en marcha verificación de la versión de seguridad específicas para asegurar que su sitio es seguro.

3. Sea selectivo al elegir plugins y temas

WordPress te permite ampliar y personalizar su sitio con miles de plugins y temas. Al tiempo que amplía las capacidades de su sitio y la personalización es importante, no debería ser a costa de la seguridad de su sitio web.

Incluso si tu instalación de WordPress, plugins y temas son todo hasta la fecha, esto no significa que un sitio no es vulnerable a los ataques. enumeración Plugin permite a los atacantes descubre lo que su sitio de WordPress plugins está utilizando. Al evitar la instalación de plugins innecesarios que sería automáticamente la reducción de la superficie de ataque de su sitio.

Al elegir los plugins y temas para usar, ser selectivo. Antes de instalar un plugin o tema, leer sobre ello (a ser posible en fuentes que no sean el / sitio del desarrollador de temas plug-in). Esto impide que la instalación de programas maliciosos, como los Paquete de herramientas de plug-in de software malicioso .

Compruebe el número de descargas del plugin o tema tiene y cuando se actualizó por última por sus autores. Los más descargas y actualizaciones recientes del plugin o tema tiene indica que es de uso generalizado y que se mantiene activa por sus autores, lo que significa que si no se encuentra una vulnerabilidad, es probable que se fije más rápido.

4. Quitar usuarios inactivos

Mantener a los usuarios inactivos en su sitio de WordPress aumenta su superficie de ataque. Usuarios, especialmente los administradores y otros que tienen la capacidad de modificar el contenido, son posiblemente uno de los puntos más débiles de cualquier sitio porque por desgracia, la mayoría de los usuarios tienden a elegir contraseñas débiles.

Si es absolutamente necesario para mantener a los usuarios inactivos en su base de datos de WordPress, cambiar su papel de «abonado» con el fin de limitar las acciones que podrían realizarse.

5. Configuraciones de seguridad – Directorio prevenir listados

Aviso: En función de la configuración de su servidor web, plugins activados y / o temas, los siguientes podrían romper algunas funciones. Se recomienda encarecidamente a probar cualquier configuración en un entorno de prueba / puesta en escena antes de cambiar cualquier configuración en servidores de producción.

Lista de directorios se produce cuando el servidor web no encuentra un archivo de índice (es decir, un index.php o index.html), si el listado de directorios está activada, el servidor mostrará una página HTML que muestra el contenido del directorio.
wp pT3 fig 1

Lista de directorios en Apache HTTP Server en un sitio de WordPress

La divulgación de esta información podría hacer un sitio vulnerable a los ataques de revelar información que puede ser utilizado por un atacante buscando explotar una vulnerabilidad en un plugin de WordPress, tema, o incluso el propio servidor web.

Si bien no es una medida de seguridad de WordPress-específico para desactivar la lista de directorios, varios sitios de WordPress que se ejecutan en las instalaciones por defecto de Apache HTTP Server tienen habilitado listado del directorio.

Con el fin de desactivar la lista de directorios de Apache HTTP Server, tendrá que añadir la siguiente configuración en el archivo .htaccess de su sitio de WordPress (esto normalmente se encuentra en el directorio raíz de su sitio web).

Opciones -Indexes

6. Claves de seguridad complejas

Aviso: En función de la configuración de su servidor web, plugins activados y / o temas, los siguientes podrían romper algunas funciones. Se recomienda encarecidamente a probar cualquier configuración en un entorno de prueba / puesta en escena antes de cambiar cualquier configuración en servidores de producción.

WordPress hace uso de un conjunto de claves largas, al azar y complejos de seguridad. Estas teclas constan de una serie de claves de cifrado, así como sales de cifrado.

Claves de seguridad aseguran una mejor encriptación de la información almacenada en las cookies de los usuarios. Hay un total de ocho claves de seguridad que utiliza WordPress – auth_key , SECURE_AUTH_KEY , LOGGED_IN_KEY , NONCE_KEY, AUTH_SALT , SECURE_AUTH_SALT , LOGGED_IN_SALT , y NONCE_SALT .

A las funciones clave de seguridad de manera similar a una contraseña o frase de contraseña muy fuerte y debe contener elementos que hacen más difícil para generar suficientes opciones para tomar medidas. WordPress claves de seguridad también hacen uso de sales de cifrado para reforzar aún más la seguridad de los resultados generados.

Usted puede hacer sus propias claves aleatorias, o puede utilizar WordPress ‘ generador de claves en línea  para hacer esto para usted. Basta con copiar y pegar las claves generadas por el generador en su archivo wp-config.php.

7. Restringir el acceso a wp-admin Directorio

Contraseña proteger su área de administración de WordPress a través de una capa de autenticación HTTP es una medida eficaz para frustrar los atacantes tratan de adivinar las contraseñas de los usuarios. Además, si los atacantes se las arreglan para robar la contraseña de un usuario, que necesitarán para conseguir autenticación HTTP pasado con el fin de obtener acceso a la forma de la conexión de WordPress.

La autenticación HTTP básica

La autenticación HTTP básica

Advertencia:  Autenticación básica HTTP requiere que las contraseñas se envían como texto claro por la red. Hasta tal punto, que es altamente recomendable que haga uso de HTTPS para cifrar la transferencia de datos.

En Apache HTTP Server, se puede lograr esto mediante la creación de un archivo .htpasswd y añadiendo unas directivas de configuración que se describen a continuación.

El .htpasswd archivo almacena combinaciones de nombres de usuario y contraseñas, que hashes el servidor web utilizará para autenticar a los usuarios. Se puede crear un .htpasswdarchivo con el htpasswdde línea de comandos o utilizando un generador de archivos de contraseñas en línea .

Varias distribuciones Linux instalan la htpasswdutilidad junto con Apache en sí, sin embargo, la mayoría de los usuarios de Debian y Ubuntu tendrán que instalar el apache2-utilspaquete de la siguiente manera.

apt-get update
apt-get upgrade
apt-get install apache2-utils

Una vez que htpasswd está instalado, ejecute el siguiente comando para crear un nuevo .htpasswd archivo con un solo usuario. El siguiente comando creará un nuevo .htpasswd archivo que se encuentra en /srv/auth/.htpasswdun nombre de usuario de myuser. htpasswda continuación, se le pedirá que introduzca y confirme la contraseña de su elección.

htpasswd -c /srv/auth/.htpasswd myuser

Nota: Se recomienda no almacenar Htpasswd archivos en un directorio accesible web. Por defecto, todos los archivos con el .htprefijo no se sirven por Apache, sin embargo, esto no se debe asumir.

Para habilitar la autenticación básica HTTP en el área de administración de WordPress, es necesario activar la directiva se describe a continuación en el directorio wp-admin y hacer referencia al archivo .htpasswd creado anteriormente. Inserte las siguientes líneas en la apropiada sección del archivo de configuración de Apache de su servidor o en un archivo .htaccess en el directorio wp-admin.
AuthType Basic
AuthUserFile /srv/auth/.htpasswd
AuthName "WordPress Authenticated area."
Require valid-user

La AuthTypeDirectiva se especifica que el tipo de autenticación. En este caso, se configura la autenticación básica.

La AuthUserFile Directiva especifica la ruta completa del .htpasswdarchivo. Este archivo es el archivo que se utiliza para almacenar los hashes de contraseñas, que el servidor deberá utilizar posteriormente para autenticar a los usuarios.

La AuthName Directiva contiene un mensaje arbitrario, que presentará el navegador para el usuario al realizar la autenticación. La creación de usuario válido Requerir simplemente le dice a Apache que permite que cualquier usuario válido para autenticar.

Nota: Aunque este archivo puede estar ubicado en cualquier parte del sistema de archivos, se recomienda encarecidamente que no se los coloca en un directorio accesible web. Por defecto, todos los archivos que comienzan con .htno son accesible desde la web en la mayoría de las configuraciones por defecto de Apache, pero esto no se debe asumir.

8. Deshabilitar Archivo Edición

Por defecto, WordPress permite a los usuarios administrativos para editar archivos PHP de plugins y temas dentro de la interfaz de administración de WordPress. 

Esto es a menudo la primera cosa que un atacante podría buscar si se las arreglan para tener acceso a una cuenta administrativa ya que esta funcionalidad permite la ejecución de código en el servidor.

Al entrar en la edición siguiente constante en wp-config.php, desactiva desde la interfaz de administración.

define ( 'DISALLOW_FILE_EDIT', true);

9. Evitar la enumeración de usuarios de WordPress

En muchos blogs de WordPress, es posible enumerar los usuarios de WordPress utilizando página de archivo de un autor. Esto funciona si los enlaces permanentes de WordPress están habilitados y si el usuario ha publicado uno o más mensajes.

Usted puede leer acerca de WordPress la enumeración de usuarios con mayor detalle en el artículo de WordPress la enumeración de usuarios utilizando HTTP Fuzzer

Con el fin de evitar que la enumeración de usuarios de WordPress se puede añadir la siguiente regla en el archivo .htaccess de WordPress sitio (esto normalmente se encuentra en el directorio raíz de su sitio web).

RewriteCond% {QUERY_STRING} = d autor

RewriteRule ^ /? [L, R = 301]

10. Habilitación de HTTPS para todos los inicios de sesión y wp-admin

En sentido estricto, HTTPS no es un protocolo en sí mismo, sino que es más bien encapsulado en HTTP TLS / SSL . TLS o SSL, como se le conoce comúnmente, ofrece sitios web y aplicaciones web con el cifrado de los datos que se transmiten y autenticación para verificar la identidad de un huésped.

HTTPS es generalmente sinónimo de carros de compras y la banca por Internet, pero en realidad, que debe ser usado cada vez que un usuario es pasar información sensible al servidor web y viceversa.

TLS / SSL puede consumir significativamente los recursos del servidor, dependiendo del tráfico del sitio. Por consiguiente, para la mayoría de los sitios no se requiere para servir a todo el sitio utilizando HTTPS, formulario de acceso y admin área de WordPress, por el contrario, son probablemente las áreas más sensibles de un sitio de WordPress. Por tanto, se recomienda encarecidamente que TLS / SSL no sólo se lleva a cabo, pero lo impuso en tales áreas.

 WordPress ofrece una manera fácil de hacer cumplir TLS / SSL en ambos wp-login y wp-admin páginas. Esto se logra mediante la definición de dos constantes en su sitio de wp-config.phparchivo.
Nota - Debe tener ya TLS / SSL configurado y que funciona en el servidor antes de que 
su sitio funcionará correctamente con estas constantes establecidas en true.

Para asegurarse de que las credenciales de inicio de sesión se cifran durante el tránsito al servidor web, defina lo siguiente constante en wp-config.php.

define ( 'FORCE_SSL_LOGIN', true);

Para garantizar que los datos confidenciales en tránsito (como cookies de sesión) se cifra cuando se utiliza el panel de administración de WordPress, defina lo siguiente constante en wp-config.php.

> Define ( 'FORCE_SSL_ADMIN', true);

11. Restringir el acceso directo a archivos PHP plugin y temáticas

Permitiendo el acceso directo a archivos PHP puede ser peligroso para un número de razones. Algunos plugins y archivos de temas pueden contener archivos PHP que no están diseñados para ser llamado directamente debido a que el archivo se llama a las funciones que se han definido en otros archivos. Esto puede hacer que el intérprete PHP para mostrar errores o advertencias que pueden conducir a la divulgación de información.

Otra de las razones para restringir el acceso directo a archivos PHP es evitar que los atacantes puedan eludir o evitar las medidas de seguridad (como la autenticación) cuando el código se divide en marcha en archivos más pequeños (que luego se incluyó y se utiliza junto con otro código)

Algunos plugins y temas pueden separar código en archivos más pequeños e incluyen estos archivos en trozos más grandes de código. Un atacante puede a veces ser capaz de llamar a uno de los archivos más pequeños directamente y evitar diversas medidas de seguridad, tales como comprobaciones de validación de entrada desde entonces. La mayoría de las veces esto ocurre porque la validación no sería realizado en otros archivos y no en los módulos más pequeños mencionados.

Por otra parte, si la register_globalsdirectiva está habilitada en el servidor (Directiva está desactivado por defecto en las versiones de PHP 4.2.0 y mayores), con acceso directo a un archivo PHP, un atacante puede ser capaz de llevar a cabo varias acciones maliciosas, incluyendo la capacidad de definir las variables de PHP a partir de las solicitudes / POST y GET para eludir diversos mecanismos de protección.

La gran mayoría de los plugins y temas no se requiere un usuario para realizar peticiones HTTP a los archivos PHP directamente, sin embargo, no debe ser una excepción, puede lista blanca archivos y directorios que requieren un acceso directo a los archivos PHP. La siguiente regla desviar todas las peticiones directos a archivos PHP a una página de su elección (en el ejemplo siguiente, el servidor responderá con una página 404 y código de estado).

# Restringir el acceso a los archivos PHP de plugin y directorios temáticos

RewriteCond% {} REQUEST_URI! ^ / Wp-content / plugins / archivo / a / excluir .php

RewriteCond% {} REQUEST_URI! ^ / Wp-content / plugins / directorio / a / excluir /

RewriteRule wp-content / plugins / (* php..) $ - [R = 404, L]

RewriteCond% {} REQUEST_URI! ^ / Wp-content / themes / archivo / a / excluir .php

RewriteCond% {} REQUEST_URI! ^ / Wp-content / themes / directorio / a / excluir /

RewriteRule wp-content / themes / (* php..) $ - [R = 404, L]

12. archivos PHP no podrá ejecutar

Puesto que los sitios de WordPress deben permitir que sus usuarios subir nuevos contenidos, directorio de carga de WordPress ‘tiene que ser escribible. Hasta tal punto, que su wp-content/uploads directorio debe ser considerado como un posible punto de entrada.

La mayor amenaza potencial es la carga de archivos PHP. WordPress no permitirá a los usuarios subir archivos PHP dentro de su consola de administración, sin embargo, puede darse el caso de que un plugin o tema permite la carga de archivos sin necesidad de utilizar las API de WordPress designados para hacerlo. Esto podría resultar en un archivo PHP malicioso que había sido subido y, en consecuencia ejecutado en el servidor.

El mejor enfoque para mitigar este riesgo potencial de seguridad es negar el servidor web de servir todos los archivos PHP en el wp-content/uploadsdirectorio utilizando la siguiente regla.





Orden Denegar, Permitir

Negar todo



13. Asegure sus registros de depuración

Durante el desarrollo de plugins o temas, así como durante la implementación de un sitio de WordPress, los desarrolladores o administradores de sistemas pueden habilitar los registros de depuración para registrar cualquier error de PHP que se producen.

WordPress hace uso de la constante de WP_DEBUG que se define en wp-config.php. La constante se utiliza para activar la depuración modo a lo largo de WordPress. La constante se establece en falso de forma predeterminada.

Los desarrolladores y los administradores también pueden permitir a las constantes de compañía WP_DEBUG_LOG y WP_DEBUG_DISPLAY a WP_DEBUG. WP_DEBUG_LOG crea un archivo de registro en la carpeta wp-contents, mientras WP_DEBUG_DISPLAY controla si los mensajes de depuración se muestran dentro del código HTML de las páginas o no.

Cualquiera de los anteriores serán útiles mientras que un tema, plugin o sitio está en desarrollo, sin embargo, si está habilitado en un sitio web de producción, que podría causar la divulgación de información, permitiendo a los usuarios maliciosos para ver los errores y la información de registro adicional. La constante WP_DEBUG debe ser desactivado en los sistemas de producción ya sea por la eliminación de la constante desde el archivo wp-config.php, o el valor false de la siguiente manera.
define( 'WP_DEBUG', false );

Fuente: Acunetix

Follow me:
Twitter
Visit Us
Facebook
Facebook
Instagram
RSS
Follow by Email

También te puede interesar

Deja un comentario

error: Content is protected !!