Капча — быстрый, простой и надежный способ защиты от ботов. По крайней мере так задумывалось, но так ли это на самом деле? Если еще 10 лет назад хотя бы на два условия можно было ответить утвердительно, — быстрый и относительно надежный, — то теперь и они под вопросом.
Что же до «простой» — как правило, со светофорами с третьей или пятой попытки задача обычно решалась, а вот разбирать различные кракозябры можно было до бесконечности, да так и уйти не разобрав. Почему же все так сложно, и даже обычная галочка в чекбоксе «Вы не робот?» не так проста, как может показаться на первый взгляд.
Все дело в развитии интернета: когда он стал массовым, то начал привлекать мошенников, потянувшихся туда вслед за простыми гражданами. Существует множество разновидностей мошенничества, например, социальная инженерия, использующая слабости людей, или выявление технических уязвимостей, но чаще всего они идут рука об руку.
Не оставаясь в стороне от технического прогресса, аферисты стали распространять на веб-ресурсах массовые сообщения: от обычного рекламного спама до фишинговых ссылок и вредоносного программного обеспечения. Делать это самостоятельно очень трудозатратно, поэтому они начали прибегать к помощи ботов, размещающих нужные им публикации. Со временем это явление приобрело такой масштабный характер, что стало одной из главных проблем пользователей и администраторов сайтов.
В поисках защиты разработчики и аналитики вспомнили о созданном еще в 1950 годах математиком Аланом Тьюрингом методе тестирования, предназначенном для ответа на вопрос: «Может ли компьютер думать как человек?».
Как рождалась CAPTCHA
Completely Automated Public Turing test to tell Computers and Humans Apart — тест Тьюринга, изначально нацеленный на то, чтобы понять, может ли компьютер имитировать разум человека. Первые буквы английского определения и составили аббревиатуру CAPTCHA.
В основе идеи заложена мысль о том, что человек и компьютер совершенно по-разному обрабатывают информацию, а значит, это можно использовать для создания универсальной системы, которая бы смогла быстро отделять людей от ботов.
Поскольку технологии того времени были довольно примитивными, сложного технологического решения не требовалось, но важно было сделать так, чтобы любой человек мог безошибочно пройти тест, а машина — нет. Решение было найдено простое — обычный текст, но искаженный и нечеткий. Человеку это не помешает, а ботам того времени такая задача была не по силам.
С этого момента началось противостояние «оружия и брони», а если точнее — разработчиков ботов и капчи. Оба лагеря активно внедряли в свои детища самые новые технологии, тем не менее явного победителя в этой битве нет до сих пор.
Интересный факт
В середине 2000-х годов появился сервис reCAPTCHA, который не просто обеспечивал защиту от ботов, но и использовался для оцифровки старых газет, книг, документов. Причем делалось это силами пользователей, вводивших ответ.
Посетителю показывалось 2 слова: одно было известно машине, а второе — то, что система сервиса оцифровки не смогла разобрать. Подразумевалось, что если человек сможет правильно отгадать первое слово, — которое, напомним, компьютер знал и проверял, — то сможет и второе. После показа нескольким пользователям — и одинаковом ответе — второе слово уходило в оцифровку как разгаданное.
Производительность и масштабы reCAPTCHA при этом были таковы, что за каждые 4 дня оцифровывался годовой тираж газеты The New York Times. Позже сервис выкупила Google, чтобы оцифровать книги для Google Books — самого грандиозного проекта того времени, ставившего целью перевод в цифру всех существующих книг.
Кстати, в какой-то момент, примерно после 2014 года, в reCAPTCHA пропали слова и появились троллейбусы, гидранты, велосипеды… Да! Это произошло не просто так, таким образом в корпорации улучшали свой активно развивающийся сервис Google Maps.
Как обойти капчу
На примере reCAPTCHA, одного из самых популярных сервисов защиты, расскажем, почему обычный бот не сможет поставить галочку в чекбоксе «Я не робот», а человек — запросто.
Никакого волшебства нет — просто тотальная слежка и современные технологии. Сервис следит за множеством параметров — от IP-адреса и движения указателя мыши до отпечатка браузера — еще до того, как появится предложение доказать, что вы не робот, и не прекращает этого делать после подтверждения.
Любой подозрительный параметр, например, неграмотная подмена отпечатка браузера, моментально приведут в действие reCAPTCHA. Кроме этого, Google собирает и анализирует поведение пользователей — любое нестандартное поведение… Да-да, снова приведет в действие reCAPTCHA.
К примеру, при парсинге reCAPTCHA можно обойти с использованием пакета резидентных прокси-серверов, чтобы распределить запросы на разные IP-адреса, и инструментов автоматизации, которые будут изображать поведение человека: скроллить страницы, нажимать кнопки, двигать указателем мыши. Но все индивидуально и точного алгоритма нет.
Что касается reCAPTCHA: наиболее перспективным решением становятся нейросети, и остаются — обычные люди. Да, сервисы, предлагающие обойти капчу с помощью живых сотрудников, все еще работают, но они не бесплатны. Очевидным преимуществом является то, что они позволяют решать любые версии: reCAPTCHA V2, reCAPTCHA V3, reCAPTCHA Enterprise, reCAPTCHA V2 Callback, reCAPTCHA V2 Invisible.
В середине прошлого года было опубликовано сообщение о том, что трое ученых из ETH Zurich, адаптировали модель You Only Look Once (YOLO), обеспечив высокий результат в решении заданий reCAPTCHA v2. Очевидно, что это не единичный случай, а просто получивший большую известность, и тенденция будет только нарастать.
Конечно, неизвестно, чем ответит Google, но если все останется неизменным, то вероятно уже в этом году решение капчи перестанет быть проблемой для наших искусственных друзей.