Aumento de intentos de inicio de sesión fallidos, ¿ataques de fuerza bruta?
Instalé el plugin Simple Login Lockdown y desde hace unos días la base de datos está registrando más de 200 registros por día.
Creo que no es posible que mi sitio esté siendo atacado por tantas IPs
¿Crees que hay algo mal?

Actualmente hay una botnet activa, atacando sitios WordPress y Joomla. Y probablemente más. Deberías ver más intentos de inicio de sesión bloqueados. Si no es así, probablemente haya algo mal.
Pero ten en cuenta que bloquear direcciones IP no ayuda contra una botnet con más de 90,000 direcciones IP.
Y si lo haces a través de un plugin, evita Limit Login Attempts. Almacena las IPs en una opción serializada que debe deserializarse en cada solicitud. Esto es muy costoso y lento.
Busca un plugin que use una tabla de base de datos separada o bloquea las direcciones IP en tu .htaccess así:
order allow,deny
# top 30 IP addresses listed in
# http://blog.sucuri.net/2013/04/mass-wordpress-brute-force-attacks-myth-or-reality.html
deny from 31.184.238.38
deny from 178.151.216.53
deny from 91.224.160.143
deny from 195.128.126.6
deny from 85.114.133.118
deny from 177.125.184.8
deny from 89.233.216.203
deny from 89.233.216.209
deny from 109.230.246.37
deny from 188.175.122.21
deny from 46.119.127.1
deny from 176.57.216.198
deny from 173.38.155.22
deny from 67.229.59.202
deny from 94.242.237.101
deny from 209.73.151.64
deny from 212.175.14.114
deny from 78.154.105.23
deny from 50.116.27.19
deny from 195.128.126.114
deny from 78.153.216.56
deny from 31.202.217.135
deny from 204.93.60.182
deny from 173.38.155.8
deny from 204.93.60.75
deny from 50.117.59.3
deny from 209.73.151.229
deny from 216.172.147.251
deny from 204.93.60.57
deny from 94.199.51.7
deny from 204.93.60.185
allow from all
Consulta también:
- Codex: Ataques de Fuerza Bruta
- Protección de Inicio de Sesión con .htaccess por Ipstenu (Mika Epstein)
- Reglas Personalizadas de ModSecurity para WordPress por Liquid Web
- Protección contra Ataques de Fuerza Bruta en WordPress por Sucuri Blog, también: ¿Ataques Masivos de Fuerza Bruta en WordPress? – ¿Mito o Realidad? con detalles estadísticos interesantes
- Cómo Proteger con Contraseña el Archivo wp-login.php por HostGator
Nuestra etiqueta de seguridad también vale la pena revisar, especialmente:
- ¿Cómo verificar que he eliminado completamente un hack en WordPress?
- Protección de Cuentas de Administrador - Descubrimiento de Nombre de Usuario
- ¿Cómo sabe el atacante de fuerza bruta que la contraseña ha sido descifrada para un nombre de usuario específico?
Si has movido wp-admin
o tu wp-login.php
, estas URLs aún pueden ser adivinadas añadiendo /login
o /admin
a la URL principal. WordPress redirigirá estas solicitudes a la ubicación correcta.
Para detener este comportamiento, puedes usar un plugin muy simple:
<?php # -*- coding: utf-8 -*-
/* Plugin Name: No admin short URLs */
remove_action( 'template_redirect', 'wp_redirect_admin_locations', 1000 );
Creo que esto es seguridad por oscuridad – nada serio.

Tengo numerosos sitios que reciben miles de visitas algunos días, todo está completamente automatizado

También hemos visto un aumento notable de bloqueos en nuestros sitios WordPress, únete al club @Minapoli.

Uso y me encanta Limit Login Attempts, pero en este caso no ayudará del todo, porque la botnet parece ser lo suficientemente inteligente como para intentar solo un puñado de intentos con cualquier dirección IP dada. Por lo tanto, elude efectivamente el bloqueo por IP activado por intentos de inicio de sesión fallidos repetidos.

@Chip Bennett parece que solo está intentando 'aaa', 'administrator' y 'admin' en nuestros sitios, ¿has visto que se dirijan a otros nombres de usuario?

Idealmente, imagino que un sistema de bloqueo sería bueno. Así, si un usuario tiene más de x cantidad de intentos fallidos de inicio de sesión, se bloquearía durante un período de tiempo determinado y solo sería accesible si el usuario está en una IP conocida (tomada de sus inicios de sesión exitosos anteriores).

Una pregunta tonta: ¿Mantener WordPress en otro directorio te protege de esos ataques? Supongo que solo atacan siteurl/wp-login.php
?

@RRikesh No estoy seguro. Normalmente siteurl/login
redirige a la página de inicio de sesión correcta.

@RRikesh - No. Ve a domain.com/wp-admin ... ¡Oh mira! ¡Ahí es donde moviste el inicio de sesión! Tendrías que mover todo, e incluso así, DEBES poder iniciar sesión de alguna manera, así que mover la puerta no ayuda a la larga.

@Ipstenu Si mantienes WordPress en otro directorio, tendrás que iniciar sesión a través de domain.com/directorio/wp-admin
. Sin embargo, la sugerencia de Toscho de usar domain.com/login
redirige instantáneamente a la página de inicio de sesión real (incluso si has instalado WordPress en otro directorio).

@RRikesh - domain.com/admin en mi sitio que tiene WP instalado en un directorio aún funciona :/

Confirmo eso. /login
redirige a wp-login.php
y /admin
redirige a /wp-admin
.

Además de los recursos que toscho enumeró en su respuesta, también podrías usar la Autenticación HTTP Básica de PHP para proteger con contraseña wp-admin y/o wp-login.php para bloquear el acceso a wp-login.php.
Acabo de publicar un plugin que hace esto por ti junto con bloquear solicitudes sin referente (No-Referrer). (Actualmente, el bloqueo de No-Referrer no funciona para sitios instalados en un subdirectorio).

Ten en cuenta que esto bloqueará a los usuarios con PHP ejecutándose a través de (Fast-)CGI.

Puedes proteger tu área de administración de WordPress siguiendo estos métodos.
- Añade números, caracteres especiales y letras en tu contraseña de administrador para crear una contraseña segura
- Si tienes muchos registros en tu base de datos, esto puede ralentizar tu sitio web. Puedes evitarlo añadiendo un captcha de imagen en tu página de wp-admin. Hay plugins disponibles para esto, como https://wordpress.org/plugins/wp-limit-login-attempts/
