CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart), один из вариантов обратного теста Тьюринга, все чаще и чаще появляется на сайтах, страдающих под натиском ботов, то есть автоматических программ — имитаторов деятельности пользователей. Это происходит в случае столкновения интересов нескольких сторон: администрации сайта, программистов, «хакеров», пользователей сайта и, возможно, некоего заказчика атаки. Впрочем, слово «хакер» здесь вполне можно употреблять без кавычек: для успешной сложной атаки необходимо действительно хорошо разбираться в веб-технологиях и противодействовать специально защищенным системам.
Рассмотрим интересы и мотивации каждой из сторон. Администрация сайта занимается своим проектом: зарабатывает на нем деньги (или получает моральное удовольствие), управляет своим персоналом (программистами, администраторами, редакторами) и радуется высокой популярности ресурса. Популярность, как правило, измеряется количеством людей, посещающих сайт и пользующихся его сервисами: читающих статьи, переписывающихся в почте, оставляющих и читающих комментарии и так далее.
Любая обширная интернет-аудитория тут же вызывает интерес тех людей, кому необходимо привлечь внимание как можно большего количества интернет-пользователей к чему-то. Назовем их заказчиками атаки. В зависимости от этики и мировоззрения заказчиков атаки это может быть как привлечение внимания к какому-то вполне нормальному сервису или информации (в таком случае мы называем это рекламой), так и вполне может оказаться, что им необходимо вовлечь максимум людей в какую-то аферу (в таком случае мы называем это мошенничеством). Привлечение внимания организуется, например, таким способом: пишется программа, сканирующая все статьи сайта и оставляющая к каждой по комментарию с привлекающими внимание словами и нужными ссылками. Как показывает практика, эта схема отлично работает — далеко не все люди понимают, что комментарий не имеет никакого отношения к статье, и переходят по ссылке. Этическая сторона таких действий, понятное дело, не берется во внимание: главное — результат.
Если вас атакуют — это обязательно кому-нибудь нужно
В первую очередь следует определить цели и средства атаки. Если атакуются комментарии в вашем блоге, построенном на одном из распространенных движков, то, скорее всего, именно ваша аудитория не является целью. Целью является аудитория всех блогов, построенных на этом движке. С позиции атакующего это выглядит примерно так: найти какой-то популярный движок блогов, написать бот, который сможет пройтись по всем записям в блоге и оставить по комментарию к каждой, затем найти список блогов, построенных на этом движке (очень поможет любой поисковик), и затем отдать адреса боту. Даже если хозяин блога удалит комментарий — некоторое время он будет виден. А учитывая масштабы атаки (реально оставлять подобные комментарии чуть ли не миллионами в день), а также бюджеты на «черное SEO» — вполне достойная цель для хакера. Его работы в данной схеме — всего несколько дней. Что характерно — такие атаки являются весьма характерными и постоянными. Поскольку к конкретному блогу атака не имеет никакого отношения, то и противодействовать ей крайне легко: достаточно слегка изменить движок так, чтобы стандартная схема атаки уже не подходила — например, изменить имя скрипта, на который уходит форма комментариев. То есть достаточно стать в чем-то уникальным, чтобы выпасть из общего ряда.
Помимо варианта массовой «бомбежки» малопосещаемых ресурсов есть также и противоположный вариант — целевая атака конкретного ресурса. То есть, например, популярного портала. В таком случае есть шанс привлечь внимание сотен тысяч пользователей, атаковав всего один сайт. В отличие от предыдущего варианта сайт будет активно защищаться — ведь его, как правило, поддерживает команда профессиональных программистов. Атаку смогут обнаружить и пресечь гораздо раньше и оперативнее, но и цель прекраснее — аудитория достаточно велика.
И, как вариант, может также случиться и атака с целью атаки — для дискредитации ресурса, удара по бренду в конкурентной борьбе. В таком случае годятся любые средства — не только рекламные сообщения в местах, где пользователи могут что-то написать, но и попытки нарушения функционирования системы как таковой. Впрочем, при разных целях инструментарий и предметная область остаются все теми же — веб-программирование. так, что же может противопоставить программист хакеру? Было бы наивно считать, что программист обладает большими знаниями или навыками — по сути, эти люди отличаются лишь ролями в нашей модели, сами же по себе они вообще ничем не отличаются и обладают одинаковым уровнем профессионализма. Современное состояние технологий таково, что со стороны сервера при обработке запроса нет вообще никаких предпосылок считать данные подлинными или как-то их проверить. IP-адрес может меняться с помощью прокси-серверов, любые данные, приходящие от пользователя, могут быть сфальсифицированы.
Как и любая
Читать далее...