
Sistema Anti-Automatización
Predator es una aplicación web prototipo diseñada para demostrar técnicas anti-crawling, anti-automatización y detección de bots. Puede usarse como honeypot, sistema anti-crawling o banco de pruebas de falsos positivos para escáneres de vulnerabilidades.
Advertencia: Desaconsejo firmemente el uso de los métodos demostrados en un servidor de producción sin saber exactamente lo que hacen. Recuerde, solo deben implementarse las técnicas que parezcan utilizables según la aplicación web. Predator es una colección de técnicas, su código no debe usarse tal cual.
El mapa mental a continuación es una visualización aproximada de cómo las técnicas demostradas aquí pueden implementarse en un entorno de producción.

Nota: Los números y factores en la "Fase de Observación" pueden usarse para establecer una reputación a un cliente, que luego puede usarse como un fuerte indicador de actividad maliciosa una vez que se alcanza un umbral.
Las cabeceras HTTP enviadas por los bots suelen tener un orden diferente en comparación con un navegador real o faltan por completo. Muchos bots se revelan en la cabecera User-Agent por razones éticas, mientras que otros no envían ninguna.
La mayoría de las técnicas de mutación HTML descritas aquí pueden ser eludidas con frameworks basados en navegadores como selenium y puppeteer, pero pueden ser detectadas con varias pruebas como las implementadas en isBot.js.
La mayoría de los bots solo hacen solicitudes a páginas web e imágenes, pero los archivos de recursos como .css a menudo se ignoran porque no son descargados por la implementación HTTP en uso. Los bots pueden detectarse cuando la proporción de páginas web/imágenes y dichos archivos de recursos se vuelve mayor que un umbral predefinido.
Muchos analizadores HTML utilizados en crawlers no pueden manejar HTML roto como lo hacen los navegadores. Por ejemplo, hacer clic en el siguiente enlace en un navegador lleva a page_1, pero los analizadores afectados interpretan el último valor, es decir, page_2
<a/href="page_1"/href="page_2">Click</a>
Puede usarse para mantener alejados y banear crawlers sin afectar la experiencia del usuario.
Algunos enlaces se ocultan a los usuarios mediante CSS, pero los programas automatizados aún pueden verlos. Estos enlaces pueden usarse para detectar bots y tomar una acción deseada, como banear la dirección IP.
Cuando Predator sospecha que el visitante es un bot, genera un número aleatorio de enlaces aleatorios que dirigen a una página (limbo.php) que contiene más enlaces aleatorios, y este proceso se repite continuamente.
Los escáneres de vulnerabilidades suelen introducir un payload y ver si la aplicación web responde de cierta manera. Predator puede fingir tener una vulnerabilidad incluyendo la respuesta esperada, es decir, la firma, dentro del HTML.
Predator imita las siguientes vulnerabilidades por el momento:
Este método hace posible configurar un honeypot sin tener que alojar código vulnerable y sirve como banco de pruebas para la detección de falsos positivos.
PatheticGeek hizo toda la magia del front-end para que Predator se vea bien.