Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Webinar - Seguridad en WordPress

297 views

Published on

Presentación del webinar Seguridad en WordPress, impartido el 10 de mayo.

En este webinar, José María Baquero, Desarrollador Web en Arsys, explica cómo podemos reducir las vulnerabilidades de WordPress con una serie de medidas muy fáciles de implementar.

Vídeo del webinar disponible en https://www.youtube.com/arsys

Más información en https://blog.arsys.es y https://www.arsys.es

Published in: Internet
  • Be the first to comment

Webinar - Seguridad en WordPress

  1. 1. www.arsys.es Seguridad en WordPress
  2. 2. Seguridad en WordPress Consideraciones Previas Protege el inicio de sesión Plugins Recomendados Acciones una vez instalado Roles de Usuario Copias de Seguridad Certificado SSL
  3. 3. Consideraciones Previas ¿Qué debemos tener en cuenta antes de empezar un proyecto web con WordPress?
  4. 4. Consideraciones Previas Antes de instalar WP: • Hosting donde va ha estar alojado: es la base de la seguridad de nuestro proyecto web y debemos estar en un entorno seguro. • Creación de las cuentas FTP necesarias con los accesos que queramos darles a cada una. • Creación de la base de datos, definiendo una buena contraseña. • Definir los usuarios que van a tener acceso a la administración de WordPress. Indicando si es necesario los Roles y accesos que van a tener.
  5. 5. Consideraciones Previas Durante la instalación de WP • Debemos establecer un prefijo diferente a “wp_” a las tablas de nuestro proyecto. • El usuario principal no debe ser “admin” ni utilizar nombres propios ni el del dominio. • Si estamos en desarrollo, y el proyecto no queremos que se indexe todavía, debemos bloquear los motores de búsqueda.
  6. 6. Consideraciones Previas - Usuario ¿Qué pasa si ya tenemos un nombre de usuario que queremos cambiar? • Accedemos al panel de control  Bases de Datos • Accedemos a la base de datos por medio de phpMyAdmin y vamos a la tabla que contiene los datos de los usuarios “[prefijo]_users”
  7. 7. Consideraciones Previas - Usuario • Accedemos al panel de control  Bases de Datos  BBDD  [prefijo]_users
  8. 8. Protege tu inicio de sesión Tenemos que protegernos de ataques externos que quieran entrar en la administración
  9. 9. Protege tu inicio de sesión 1. Cambiar la página de administración por defecto “wp-admin”. 2. Limita el número de accesos a la página de login. 3. Implementar un segundo factor de autentificación. 4. Evitar los errores de inicio de sesión.
  10. 10. Cambiar la página de administración por defecto Para cambiar la administración por defecto podemos utilizar varios plugins, o uno que tenga múltiples opciones como iThemes Security, del cual hablaremos mas tarde o plugins específicos para esta tarea como: WPS Hide Login URL del plugin: https://es.wordpress.org/plugins/wps-hide-login/
  11. 11. Cambiar la página de administración por defecto  WPS Hide Login Una vez activo, en las opciones generales: Ajustes  Generales Si intentamos acceder al panel de administración de la forma tradicional, tendremos la siguiente respuesta:
  12. 12. Limita el número de accesos a la página de login Debes dejar un par de intentos por si acaso te equivocas pero hay que protegerse de los hackers que intentan acceder a nuestro WordPress por la fuerza bruta. ¿Qué plugin podemos utilizar? Login LockDown URL del plugin: https://wordpress.org/plugins/login-lockdown/ Es un plugin muy sencillo que nos facilita esta funcionalidad.
  13. 13. Limita el número de accesos a la página de login • Configurar el número de intentos de conexión fallidos. • Elegir el tiempo de restricción entre intentos de conexión. • El tiempo que será bloqueada una IP después de hacer varios intentos superando el tiempo de restricción. • Configurar que al introducir un nombre de usuario incorrecto cuente como intento de conexión fallido. • Quitar los mensajes que informan si has fallado en el nombre o en la contraseña para no dar pistas a los infractores, con este plugin cumplimos con el 4º punto que comentábamos al inicio de este bloque. • Sección donde podemos ver que IP están bloqueadas.
  14. 14. Implementar un segundo factor de autenticación Mantener una política de contraseñas robusta es clave para una buena seguridad, pero cada vez mas se está haciendo necesario el uso de dobles factores de autenticación, como por ejemplo códigos OTP (Códigos de uso temporal). De esta forma, nos protegemos contra ataques de fuerza bruta. ¿Qué plugins podemos utilizar? Loginizer URL del plugin: https://es.wordpress.org/plugins/loginizer/ Permite la autentificación por mail o por APP, Captcha, pregunta de inicio…
  15. 15. Implementar un segundo factor de autenticación ¿Qué plugins podemos utilizar? Google Authenticator URL del plugin: https://es.wordpress.org/plugins/google- authenticator/ Permite la autentificación por APP, muy sencillo de utilizar.
  16. 16. Plugins Recomendados
  17. 17. Plugins Recomendados  iThemes Security https://es.wordpress.org/plugins/better-wp-security/
  18. 18. Plugins Recomendados  iThemes Security • Remover el meta generador de etiquetas. • Cambiar las direcciones o urls del escritorio de WordPress dashboard incluidas por defecto en login, admin, y más. • Desactiva la posibilidad de mantenerte loggeado por un determinado período de tiempo (away mode) • Remueve las notificaciones de actualización, temas, plugins en los usuarios que no tienen permisos. • Remueve información del header en Windows Live Write. • Remueve información del header en RSD • Renombra la cuenta “admin” • Cambia en ID en el usuario con ID 1 • Cambia los prefijos en las bases de datos de WordPress. • Cambia la ruta al contenido de WP alojado en wp-content • Remueve mensajes de error de login • Muestra un mensaje aleatorio del número de versión a los usuarios que no son administrativos. • Analiza tu sitio para decirte al instante que vulnerabilidades tienes.
  19. 19. Plugins Recomendados  iThemes Security • Bloquea bots y agentes problemáticos y otros hosts • Prevenir ataques de fuerza bruta baneando hosts y usuarios con demasiados intentos de inicio de sesión no válidos. • Fortalecer la seguridad del servidor. • Obligar al uso de contraseñas seguras para todas las cuentas configurando un rol mínimo. • En servidores que lo soporten obliga al uso de SSL para las páginas de administración o páginas y posts. • Deshabilita la edición de archivos desde dentro del área de administración de WordPress. • Detectar y bloquear numerosos ataques a su sistema de archivos y base de datos.
  20. 20. Plugins Recomendados  Wordfence https://es.wordpress.org/plugins/wordfence/
  21. 21. Plugins Recomendados  Wordfence • Forzar a los usuarios para que utilicen contraseñas fuertes. • Elegir el número de errores de inicio de sesión antes de un bloqueo. Esto bloqueará una dirección IP durante un período de tiempo especificado si ese visitante genera el número especificado de errores de inicio de sesión. • Elegir el número de veces que se puede olvidar la contraseña antes de un bloqueo. • Periodo de tiempo en el que se producen los intentos de sesión: es el periodo de tiempo en el que se cuentan los intentos fallidos, después de ese periodo de tiempo el contador de fallos se reiniciará. • Periodo de tiempo que un usuario es bloqueado al superar los intentos de sesión fallidos. • Bloquear una IP si se utilizan usuarios que no existan. Esta opción es muy restrictiva y si te equivocas al poner tu propio nombre de usuario te bloqueara si no has configurado tu IP en la lista blanca de Wordfence. • Configurar los mensajes de WordPress para que no revelen los usuarios válidos en los errores de inicio de sesión, muy útil para no dar pistas sobre los nombres de usuarios o contraseñas válidas. • No permitir que los usuarios registren el usuario ADMIN, ya que es uno de los más frecuentes y por lo tanto de los más atacados. • Evitar que descubran los nombres de usuario utilizados en una instalación de WordPress a través de exploraciones avanzadas de las URL de autor. • Bloquear automáticamente IP que utilicen un nombre de usuario concreto.
  22. 22. Acciones una vez instalado WordPress ¿Y ahora que lo tenemos montado, está todo correcto?
  23. 23. Acciones una vez instalado WordPress • Controlar el número de errores 404 desde un mismo origen. Un usuario normal navega por páginas accesibles, es recomendable su control para evitar que un usuario malintencionado se haga un perfil detallado de los plugins y/o temas que tenemos instalados en nuestro WordPress. • Eliminar archivos de instalación. Eliminar archivos readme.html e install.php ya que permiten conocer la versión exacta de nuestro WordPress y actuar en consecuencia. • Control de actualizaciones. Mantener el CMS en su última versión es totalmente necesario para mantener la web con unos niveles de seguridad adecuados. Las actualizaciones y la instalación de parches se deberían llevar al día y desde el punto de vista de seguridad anteponiéndolo a la compatibilidad con los plugins previamente instalados.
  24. 24. Acciones una vez instalado WordPress • Elimina temas y plugins que no utilices. Cada plugin o tema puede presentar agujeros de seguridad si no se tienen controlados adecuadamente. • Generar un archivo robots.txt adecuado. El archivo robots.txt es utilizado por los crawlers. Son programas (como Googlebot) que analizan la web de forma automática. Entre otras cosas, se encargan de el contenido de la web se indexe en los buscadores. Rastrea todo lo que encuentra por el camino a no ser que nosotros le indiquemos lo contrario. El generar por nuestra cuenta un archivo robots.txt nos ayudará a que Google (y otros buscadores) sepa qué mostrar en los resultados de búsqueda y qué no. Este archivo debe estar en el raíz de la página. User-agent: * Disallow: /feed/ Disallow: /trackback/ Disallow: /wp-admin/ Disallow: /wp-content/ Disallow: /wp-includes/ robots.txt
  25. 25. Acciones una vez instalado WordPress • Eliminar información de la cabecera de la página <head>. Las siguientes líneas se añaden en el archivo functions.php del tema activo. remove_action('wp_head', 'wp_generator'); remove_action('wp_head', 'rsd_link'); remove_action('wp_head', 'wlwmanifest_link'); remove_action('wp_head', 'wp_shortlink_wp_head'); remove_action('wp_head', 'index_rel_link'); remove_action('wp_head', 'parent_post_rel_link', 10); remove_action('wp_head', 'start_post_rel_link', 10); remove_action('wp_head', 'adjacent_posts_rel_link', 10); add_filter('show_admin_bar','__return_false'); add_filter('the_generator', '__return_false'); remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); • Desactivar editor del panel de administración. La siguiente línea se añade al final del archivo wp- config.php de la raíz de nuestro WordPress. define('DISALLOW_FILE_EDIT', true);
  26. 26. Acciones una vez instalado WordPress • Desactivar actualizaciones de plugins desde el panel. La siguiente línea se añade al final del archivo wp-config.php de la raíz de nuestro WordPress. define('DISALLOW_FILE_MODS', true); • Desactivar el código HTML en los comentarios. La siguiente línea se añade al final del archivo wp- config.php de la raíz de nuestro WordPress. add_filter('pre_comment_content', 'wp_specialchars');
  27. 27. Roles de usuario ¿Todos los usuarios accediendo a lo mismo? NO!!!!
  28. 28. Roles de usuario Hay varios tipos de usuarios en WordPress con diferentes permisos sobre las acciones: • Suscriptor. Éste sólo puede leer las entradas públicas. • Colaborador. Envía entradas que moderaremos su publicación. • Autor. Puede editar, publicar y borrar sus propias entradas. • Editor. Puede editar, publicar y borrar sus propias entradas y las de los demás. • Administrador. Tiene todos los permisos.
  29. 29. Roles de usuario Si queremos dotar de permisos especiales a un usuario para poder actuar sobre las páginas, entradas que no son suyas, actualización de plugins,… podemos utilizar plugins como el siguiente para crearnos roles personalizados: User Role Editor https://es.wordpress.org/plugins/user-role-editor/
  30. 30. Copias de Seguridad Llevar una correcta política de copias de seguridad nos puede librar de malas pasadas. Podemos realizar la copia de seguridad de forma manual, conectándonos por FTP a nuestro servidor y bajando todos los archivos a un dispositivo externo o interno, y realizar un backup de la base de datos por medio del phpMyAdmin disponible en el panel. Si no queremos hacerlo de forma manual y poder tener copias de seguridad periódicas de base de datos y ficheros podemos utilizar plugins como: UpdraftPlus WordPress Backup Plugin https://es.wordpress.org/plugins/user-role-editor/ Xcloner – Backup and Restore https://es.wordpress.org/plugins/xcloner-backup-and- restore/
  31. 31. Certificado de Seguridad SSL El protocolo SSL dota a la web de una capa de seguridad adicional que permite cifrar los datos de nuestro WordPress garantizando que los datos que enviamos se transmiten codificados y no pueden ser interceptados por terceros. ¿Cómo configurar tu SSL? • Accede a tu sitio WordPress como administrador • Ve a Ajustes, Generales • En el campo Dirección de WordPress (URL): cambia http:// por https:// • En el campo Dirección del sitio (URL): cambia http:// por https:// En el archivo wp-config.php situado en el directorio raíz añadimos estas líneas: define('FORCE_SSL_LOGIN', true); define('FORCE_SSL_ADMIN', true); RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://[dominioseleccionado].com/$1 [R=301,L,NE] Para forzar que todas las entradas http a https debemos añadir en el archivo .htaccess las siguientes líneas, fuera de los comentarios # Begin WordPress # END WordPress:
  32. 32. Certificado de Seguridad SSL Si no queremos modificar ningún archivo o nos resulta complicado, podemos utilizar el siguiente plugin y, una vez contratado el SSL, con un solo clic podemos configurarlo. Really Simple SSL URL del Plugin: https://es.wordpress.org/plugins/really-simple-ssl/
  33. 33. Gracias

×