
Sistema Anti-Automação
O Predator é um aplicativo web protótipo projetado para demonstrar técnicas de anti-rastreamento, anti-automação e detecção de bots. Ele pode ser usado como honeypot, sistema anti-rastreamento ou ambiente de testes de falsos positivos para scanners de vulnerabilidades.
Aviso: Eu desencorajo fortemente o uso dos métodos demonstrados em um servidor de produção sem saber exatamente o que eles fazem. Lembre-se, apenas as técnicas que parecerem utilizáveis de acordo com o aplicativo web devem ser implementadas. O Predator é uma coleção de técnicas; seu código não deve ser usado como está.
O mapa mental abaixo é uma visualização aproximada de como as técnicas demonstradas aqui podem ser implementadas em um ambiente de produção.

Nota: Os números e fatores na "Fase de Observação" podem ser usados para definir uma reputação para um cliente, que então pode ser usada como um forte indicador de atividade maliciosa quando um limite é atingido.
Os cabeçalhos HTTP enviados por bots frequentemente estão em ordem diferente quando comparados a um navegador real ou nem sequer existem. Muitos bots se identificam no cabeçalho User-Agent por questões de ética, enquanto outros não enviam nenhum.
A maioria das técnicas de mutação de HTML descritas aqui pode ser contornada com frameworks baseados em navegador, como selenium e puppeteer, mas eles podem ser detectados com vários testes, como implementado em isBot.js.
A maioria dos bots faz apenas requisições a páginas web e imagens, mas arquivos de recursos como .css são frequentemente ignorados, pois não são baixados pela implementação HTTP em uso. Os bots podem ser detectados quando a proporção de páginas web/imagens em relação a esses arquivos de recursos se torna maior que um limite predefinido.
Muitos parsers de HTML usados em crawlers não conseguem lidar com HTML quebrado como os navegadores fazem. Por exemplo, clicar no link a seguir em um navegador leva a page_1, mas parsers afetados interpretam o último valor, ou seja, page_2
<a/href="page_1"/href="page_2">Click</a>
Isso pode ser usado para afastar e banir crawlers sem afetar a experiência do usuário.
Alguns links são ocultos dos usuários usando CSS, mas programas automatizados ainda conseguem vê-los. Esses links podem ser usados para detectar bots e tomar uma ação desejada, como banir o endereço IP.
Quando o Predator suspeita que o visitante é um bot, ele gera um número aleatório de links aleatórios que direcionam para uma página (limbo.php) contendo mais links aleatórios, e esse processo continua se repetindo.
Scanners de vulnerabilidades geralmente inserem um payload e verificam se o aplicativo web responde de determinada maneira. O Predator pode fingir ter uma vulnerabilidade ao incluir a resposta esperada, ou seja, a assinatura, dentro do HTML.
O Predator imita as seguintes vulnerabilidades no momento:
Esse método torna possível configurar um honeypot sem realmente hospedar nenhum código vulnerável e serve como um ambiente de testes para testes de falsos positivos.
PatheticGeek fez toda a mágica de front-end para deixar o Predator bonito.