С усилением DDoS-атак как по используемой полосе, так и по логике инструментов защита также усложнилась. Теперь отличить нормальных посетителей сайта от роботов почти невозможно: нужно применять многоуровневую фильтрацию. Коллеги из Incapsula поделились своим взглядом на решение этой проблемы.
Усы, лапы и хвост — вот мои документы!
Мы уже публиковали краткий экскурс в проблему распознавания людей и роботов — история DDoS и Люди против роботов. Если суммировать в двух словах, то на момент сейчас отделить вредоносное посещение сайта от легитимного практически невозможно: злоумышленники научились подделывать все параметры запросов, включая отправляемые заголовки, возвращаемые заголовки и частоту запросов.
Но остается единственный параметр, который недоступен злоумышленникам, — это время или история посещений сайта с определенного IP или подсети (географической локации). В совокупности с другими факторами это позволяет с очень большой вероятностью отсекать вредоносные запросы и гарантировать прохождение легитимных.
Учимся на кошках
При большом количестве обслуживаемых сайтов (как в случае Айри) для каждого IP-адреса собирается история посещений: когда и на какие страницы пользователь (или робот) заходил. И при следующем заходе они учитываются. Явно пользовательские запросы пропускаются дальше, запросы от явных роботов обслуживаются соответствующим образом (легитимных — отдаются из кэша, нелигитимных — блокируются).
Если истории по указанному IP адресу еще нет, то анализируется база данных по провайдеру IP-адреса (на какую компанию он зарегистрирован), анализируются заголовки запросы, характер запросов и другая информация — и уже принимается решение, является ли посетитель пользователем или роботом. В дальнейшем эта информация заносится в общую для всех узлов Айри базу знаний и используется в будущем.
Таким образом, явно «левые» запросы можно гарантированно отсечь. А в случае однократного нарушения не блокировать пользователя надолго.
По материалам Incapsula