Как предоставить возможность посетителям вашего сайта создавать аккаунты или оставлять комментарии, не рискуя при этом стать объектом массового рекламного постинга? Да очень просто: пусть человек докажет, что он человек, а не бот. Многие веб-сайты используют для этих целей технологию CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart).
Принцип действия CAPTCHA предельно прост: пользователю предлагается картинка, содержащая последовательность букв и цифр, часто сопровождаемая ехидным вопросом: "А вы не робот?". И чтобы завершить создание аккаунта или добавить комментарий к статье, вам необходимо ввести в нужном порядке предлагаемые символы.
Но неужели человек, вооруженный компьютером, не сможет обмануть другой компьютер? Сегодня спамеры регулярно взламывают систему CAPTCHA самых различных сайтов - даже почтовые сервисы таких мировых гигантов как Yahoo Mail или Gmail используются затем в качестве источников автоматизированных атак.
Так что же делать веб-мастерам? Способна ли CAPTCHA защитить нас от спама?
Взлет и падение CAPTCHA
Технология CAPTCHA была создана в 2000 году учеными из университета Карнеги-Меллона (Carnegie Mellon University), и в 2007 году она применялась для защиты Web практически везде. Но уже в начале 2008 года технология была взломана: спамеры научились обходить защиту CAPTCHA. В результате даже такие крупные почтовые системы, как Yahoo Mail, Gmail и Hotmail наводнило множество ложных аккаунтов, единственной целью которых были массовые рассылки.
Еще больше вреда причинило самодельное программное обеспечение, воспользоваться которым мог каждый желающий. Например, программа CL Auto Posting Tool позволяет в автоматическом режиме публиковать рекламные посты на сайте объявлений Craigslist и при этом также автоматически обходить все антиспамовые "ловушки" этого сервиса.
CL Auto Posting Tool использует технологию оптического распознавания текста (OCR): если код не "угадан" с первого раза, следуют дальнейшие попытки. Этот метод особенно эффективен в тех случаях, когда для каждой последующей попытки CAPTCHA не обновляет изображение, а предлагает разгадывать одну и ту же картинку до победного конца.
Возьмите одну из таких программ, "нацельте" ее на сайт, где вы хотите создать многочисленные аккаунты и можете спокойно начинать флеймить тех, кто вам по какой-то причине не угодил, или отправлять тысячам людей рекламные рассылки.
Но OCR-программы – не лучший инструмент для настоящего спамера. Эксперт по системе CAPTCHA Сумит Прасад из фирмы по обеспечению web-безопасности Websense объяснил в одном из блогов, что только 10 - 15% попыток "взломать" Hotmail являются успешными. Обычно, программе-взломщику требуется лишь 6 секунд для завершения атаки. Если сайт предоставляет бесконечное количество попыток на "угадывание" изображения, то, в среднем, на его взлом уходит меньше минуты.
Но из-за явной небезопасности, системы CAPTCHA, предоставляющие бесконечное или просто большое число попыток распознавания изображения, постепенно исчезают. Тем более, что современные боты способны взломать даже те системы, которые сменяют "капчу" после одной или нескольких безуспешных попыток. Тем не менее, сегодня простые системы CAPTCHA, использующие случайные недеформированные наборы букв на простом фоне используются еще довольно часто и взломать их довольно легко.
Другой способ взлома плохо проработанной защиты CAPTCHA – повторное использование идентификаторов сессии. В данном случае человек или программа-взломщик сначала вводит правильное значение CAPTCHA. Затем идентификатор сессии и ответ на CAPTCHA передается боту, который создает большое количество запросов с этим идентификатором, но с разными именами пользователя. Этот процесс можно продолжать до тех пор, пока не закончится срок действия идентификатора сессии.
А кое-где бизнес по взлому системы защиты CAPTCHA даже поставлен на поток. Например, индийская компания DeCaptcher.com распознает вам целую тысячу "капчей" всего за $2 и со 100-процентной гарантией: вместо замысловатого софта там работают обычные индусы.
"Реклама в блогах, социальных сетях и т.п. существенно увеличивает эффективность бизнеса. Многие сервисы используют картинки, называемые CAPTCHA, для предотвращения автоматического использования этих сервисов. С помощью нашего портала вы сможете распознать CAPTCHA и увеличить эффективность вашего бизнеса прямо сейчас!" – таков рекламный слоган DeCaptcher.com.
Так можно ли чувствовать себя защищенными, используя систему защиты CAPTCHA?
Второй шанс для CAPTCHA?
Может ли что-то реанимировать CAPTCHA, или сегодня эта система достигла логического финала? По мнению ученых-компьютерщиков из Карнеги-Меллона, выход есть. Им может стать обновленный вариант технологии CAPTCHA, получивший название reCAPTCHA.
По словам профессора компьютерных наук Льюиса вон Ана, система работает в тесной взаимосвязи с проектами Google Books Project и Internet Archive, в рамках которых бумажные книги конвертируют в цифровой формат, используя программное обеспечение на базе OCR. Как уже говорилось, технология OCR не всегда корректно распознает слова. Когда OCR-программы, используемые в проектах, отмечают слово как нечитаемое, его сохраняют в виде изображения и используют затем в качестве тестов CAPTCHA.
Этот вид сотрудничества приносит взаимную выгоду обеим сторонам. Создатели reCAPTCHA получают в свое распоряжение изображения, уже проверенные на устойчивость к OCR-атакам, а участники проектов Google Books Project и Internet Archive приобретают "бесплатную рабочую силу": живые пользователи web-сервисов декодируют слова, которые не распознали OCR-программы, что в свою очередь помогает максимально точно конвертировать старые книги в цифровые форматы.
Но как же reCAPTCHA узнает, что человек ввел слово правильно? Для этого наряду с неизвестным словом используется контрольное слово, правильное написание которого известно системе.
"Если пользователь вводит контрольное слово правильно, его вариант предыдущего (неизвестного) слова также предполагается верным. Если первые три варианта, введенных разными пользователями, совпадают между собой, но отличаются от варианта, предложенного OCR, слово отмечается как верное и становится потенциальным контрольным словом", - объясняет вон Ан.
CAPTCHA на основе изображений
Команда из Карнеги-Меллона также рассматривает вариант технологии CAPTCHA на основе изображений. В ее первом варианте, ESP-PIX, предполагается, что пользователь должен подобрать слово, описывающее четыре объекта на изображении.
А в ее более поздней версии, SQ-PIX, пользователю предлагается не только выбрать верное изображение, но и затем воспроизвести очертания объекта. Например, имеется три изображения: кот, цветок и шарик и задание: "Обведите все шарики".
Эти тесты имеют свои недостатки. Во-первых, что очевидно для разработчиков, не всегда очевидно для пользователей. Например, если в тесте ESP-PIX, вам покажут фото трех взрослых женщин и одной девушки, то о том, что все они (по замыслу разработчиков) соответствуют слову "girl" – догадается не каждый. Или, например, в данном случае правильный ответ – "зонтик", но разве это очевидно?
А для прохождения теста SQ-PIX может потребоваться большая ловкость рук, которая также присуща не каждому. Но сотрудники университета продолжают работу в этом направлении, так что, возможно, со временем технология будет усовершенствована.
Ученые из университета Карнеги-Меллона не единственная группа, ведущая разработки в области CAPTCHA на основе изображений. Специалисты Penn State разрабатывают технологию Imagination CAPTCHA. В этой системе пользователь сначала должен найти геометрический центр искаженного изображения на страничке, которая вся заполнена подобными картинками, к тому же, перекрывающимися между собой:
Когда попасть в центр все-таки удается, вам предлагают другое тщательно искаженное изображение и просят ввести слово, описывающее то, что вы видите.
Система Imagination основана на технологии поиска и автоматической маркировки ALIPR (Automatic Linguistic Indexing of Pictures). По словам самих разработчиков, основная идея Imagination состоит в том, что распознать изображение компьютеру гораздо сложнее, чем распознать текст. Поэтому система защиты Imagination более надежна, чем текстовая CAPTCHA. Разработчики настолько уверены в своей системе, что даже приглашают всех желающих попытаться ее взломать: "Если вы считаете, что роботы способны пройти наш тест – дайте им шанс, и мы посмотрим, как далеко они продвинутся". Хотя, справедливости ради, стоит отметить, что система может оказаться сложной не только для роботов, но и для людей, плохо различающих оттенки цвета, да и вообще людей с нарушениями зрения.
Системы защиты на основе изображений пока не получили широкого распространения – разве что только самые простые варианты. Например, KittenAuth, где пользователю предлагается, например, выбрать из 12 картинок животных всех домашних животных или, например, всех котов.
Microsoft Research применил ту же идею в технологии ASIRRA (Animal Species Image Recognition for Restricting Access). ASIRRA использует большую коллекцию изображений с сайта PetFinder.com, но во всем остальном этот сервис является копией KittenAuth. Сегодня эту технологию использует небольшое количество сайтов, но Microsoft уже разработал коды для PHP, Python, C#, Perl, VisualBasic и JScript, и даже плагин для WordPress, так что есть все шансы, что в скором будущем технологию ASIRRA протестируют многие веб-проекты.
"Только для ботов"
Стивен Моселей, веб-дизайнер и разработчик медиа продуктов из компании Hannisdal Express, предложил остроумный способ остановки атаки ботов: внедрение в код страницы скрытых полей с CSS (Cascading Style Sheets). Человек это поле не увидит, а бот наоборот - считает код страницы и решит, что именно это поле и нужно заполнять.
"Сравнивая введенное значение с предыдущим, вы сможете легко вычислить бота и сразу же прервать доступ на сайт, - говорит Моселей. – Я пользуюсь этим способом на сайтах с небольшим трафиком и система работает вполне успешно. Но серьезных ботов, атакующих крупные web-порталы, это вряд ли остановит."
Кроме того, Моселей предложил использовать в качестве "капчи" простые математические задачки. Хотя, по его мнению, этот метод несет в себе две проблемы: "возможную дискриминацию умственно неполноценных и необходимость рандомизации вопросов" (т.е., вопросы должны быть случайными – нельзя всегда использовать один и тот же вариант, например, 2+2=).
Заключение
Итак, суммируя вышесказанное, можно сделать вывод, что и сегодня CAPTCHA продолжает быть полезной для веб-администраторов. Хотя более ранние варианты системы уже безнадежно устарели.
С другой стороны, даже срок применимости улучшенных решений CAPTCHA не безграничен. По прогнозам профессора вон Ана, в ближайшее время будут эффективны "капчи" на основе изображений, хотя в ближайшие 50 лет компьютеры научатся взламывать любые формы CAPTCHA.
Что же касается дня сегодняшнего, то, чтобы защитить сайт от спама, в 2009 году компаниям советуют использовать reCAPTCHA, которая содержит широкий спектр приложений и программируемых плагинов и обладает открытым программным интерфейсом (API). Таким образом, сегодня не важно, на каком движке работает ваш сайт, вы сможете легко добавить технологию защиты reCAPTCHA в любые Web-приложения.
А тем, кто уже сегодня задумывается о будущем, можно посоветовать начать осваивать технологии CAPTCHA на основе изображений. Предполагается, что срок их эффективности будет более длительным.
Но не стоит забывать, что даже если вы научились эффективно отражать атаки ботов, у вас нет никаких средств защиты против человеческого фактора – целой армии низкооплачиваемых "юзеров", готовых день и ночь отождествлять картинки CAPTCHA за копейки.
Поэтому сегодня большинство специалистов сходится на мнении, что в финальном этапе своего развития Web-защита должна заключаться не только в отражении компьютерных атак, но и в минимизации ущерба, причиняемого при взломе сайта.
Татьяна Валентинова