Ataques de negação de serviço
Os ataques de negação de serviço são uma ameaça comum a considerar ao hospedar um site na Internet. Embora a maioria das vulnerabilidades de segurança possa ser evitada evitando hábitos / técnicas de codificação perigosas, a proteção do DOS requer uma abordagem diferente.
Ataques de DOS preguiçosos
Especificamente, eu não estou tão preocupado com spammers sofisticados na net com equipamentos caros (talvez superiores aos meus) que aceitarão pagamento para derrubar sites. Eu não posso imaginar alguém iria pagar essa quantia de dinheiro apenas para levar o meu site para baixo um pouco. O que mais me preocupa são os "ataques preguiçosos", que provavelmente viriam de adolescentes inteligentes que tentam testar seus poderes destrutivos em sites desavisados, especificamente aqueles que ouviram sobre meu site e projetos por meio de hackathons e eventos.
Esses 'ataques preguiçosos' são extremamente baratos e fáceis de realizar, e podem assumir a forma de um simples script de navegador ou programa de inundação que envia uma quantidade enorme de solicitações aos servidores do meu site. Um sistema poderoso (como o meu servidor dedicado) só pode ser derrubado por um sistema fraco (como um script de recursos leves) através da exploração de pontos fracos no sistema mais poderoso e usando seu poder para trabalhar contra si mesmo.
Em particular, quero dizer quando o mesmo usuário continuamente faz solicitações ao servidor que não exigem quase nenhum esforço. Se a proporção de recursos do servidor usados para os recursos do cliente usados for maior do que pelo menos a proporção de recursos do servidor para o cliente disponível, meu site poderá ser removido com facilidade.
if (Server Resources : Client Resources > Server Power : Client Power)
{
ServerDown();
}
Protegendo a política de devolução de solicitações no Apache
Eu não estou perguntando como fazer a prova DOS do meu site Apache, mas como torná-lo menos vulnerável a ataques DOS baratos e preguiçosos, bloqueando o número de solicita que um cliente possa enviar um período de tempo definido antes de ser tratado como um invasor. Isso se aplica especificamente a scripts php e outras páginas que exigem mais recursos para retransmitir conteúdo para o cliente.
Qual é a melhor abordagem (tabela banida do mysql, configurações do Apache, honeypot etc.) para proteger um site relativamente pequeno contra ataques DOS baratos?
Originalmente perguntado sobre Stack Exchange