Evitar que o servidor seja inutilizável em ataques de força bruta do wordpress

1

Eu administro um servidor com muitas instalações de wordpress nele. Pesquisando uma solução para evitar alta CPU em ataques de força bruta, isso torna o servidor inutilizável algumas horas por dia.

Estes são os alvos:

  • Detecção de referencias não é suficiente ( EXEMPLO ) (já tentei esta solução, mas hackers que me atacam podem contornar isso e encha a CPU de qualquer maneira).
  • A proteção por senha em "wp-login.php" via .htaccess não é uma boa solução ( EXEMPLO ) (requisitos da empresa).
por elijabaley 21.08.2013 / 10:55

3 respostas

0

Há muitas coisas que você pode fazer para impedir que os invasores consigam seus recursos.

(re) considere o uso de proteção por senha para áreas administrativas

Você pode ter razões válidas para não usar isso em todos ou em alguns sites, mas não subestime a utilidade dessa técnica. Use sempre que possível.

Ao exigir que os usuários façam login no nível do servidor Web, você minimiza os danos que os invasores podem causar, limitam os recursos necessários para lidar com esses ataques e protegem ainda mais seus sites com vulnerabilidades.

restringir login de administrador a uma lista de permissões de ip (servidor da web)

Você pode negar acesso a partes do seu site. Mesmo que você tenha que abrir uma grande sub-rede de IPs, é melhor do que deixar o mundo todo entrar!

No nginx, pode parecer algo assim:

location /wp-admin {
  # block one workstation
  deny    192.168.1.1;
  # allow anyone in 192.168.1.0/24
  allow   192.168.1.0/24;
  # drop rest of the world
  deny    all;
}

dificulta a localização

Os ataques de força bruta fazem várias suposições. Se você pode renomear sua pasta wp-admin, renomeie wp-login.php ou execute wp-admin em uma porta não padrão, então você não terá que gastar seus preciosos recursos tentando validar esses logins de força bruta.

tente o fail2ban

link

fail2ban is one of the simplest and most effective security measures you can implement to prevent brute-force password-guessing attacks.

O fail2ban tem alguns recursos interessantes:

Bloqueia tentativas de login com nome de usuário incorreto

Muitos invasores tentam fazer login com nomes de usuários comuns, como admin. É uma boa prática não usar esses nomes de usuário. Nesse caso, você pode bloquear qualquer pessoa que tente fazer login com eles.

O WPf2b agora permite que você especifique um regex que ative o processo de login se o nome de usuário solicitado corresponder a

define('WP_FAIL2BAN_BLOCKED_USERS','^admin$');

ip-whitelist (fail2ban)

A ideia aqui é listar os endereços IP dos proxies confiáveis que aparecerão como o IP remoto da solicitação.

define('WP_FAIL2BAN_PROXIES','192.168.0.42,192.168.0.43');
    
por 22.08.2013 / 07:25
0

Eu posso pensar em algumas possibilidades logo no topo da minha cabeça; em ordem de aumentar a invasividade para usuários legítimos:

  • Renomear wp-login.php para outra coisa? (Precisa ser mantido durante a atualização, depende da segurança por meio da obscuridade, mas deve parar a maioria dos ataques com script não direcionados com o mínimo de problemas para usuários legítimos.)
  • CPU-limita o processo do servidor web? (Faz com que o servidor da web fique um pouco mais lento durante as inundações de pedidos, mas deve permitir a manutenção do servidor mesmo em face de ataques pesados; mesmo apenas 5% da CPU restante deve ser suficiente. Também precisa de coordenação com o processo do servidor de banco de dados. / li>
  • Solicitações de limite de taxa para wp-login.php em um balanceador de carga ou firewall no front-side? (Dará problemas aos usuários legítimos durante uma inundação de solicitações, mas pelo menos o restante do servidor, incluindo o acesso público ao conteúdo do blog, deve continuar se movimentando alegremente.)
por 21.08.2013 / 11:07
0

Eu escrevi um plugin para WordPress que você provavelmente achará útil.

Comportamento ruim tem um bom histórico de parar esses tipos de ataques de força bruta. É uma espécie de firewall de aplicativo web minimalista que bloqueia o spam de link e algum outro tráfego malicioso muito cedo, antes que todo o WordPress seja carregado, economizando CPU e outros recursos. (Eu digo minimalista porque o que pode ser feito somente nessa camada é mínimo comparado ao que você pode fazer no servidor da Web ou mesmo com um dispositivo separado, embora tenha sido projetado para pessoas sem outra opção. )

Você o encontrará no repositório de plugins do WordPress .

Como você executa o servidor, você também pode querer usar ModSecurity com as Core Rule Set . Muitas das regras do Bad Behavior são reimplementadas aqui (procure meu nome e / ou o nome do Bad Behavior) e o conjunto de regras também contém muitas outras regras que podem ser úteis para você.

    
por 21.08.2013 / 13:40