Давайте начнем с того, что это вообще за слово такое — «капча». Это вольная транскрипция английской аббревиатуры captcha — Completely Automated Public Turing test to tell Computers and Humans Apart («полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей»).
В основе капчи, как и в основе оригинального теста Тьюринга, лежит простая идея: капча представляет собой тест, который может пройти человек и не может — компьютер. Чаще всего капча показывает пользователю искаженный текст, который нужно ввести повторно, чтобы получить доступ к чему-нибудь.
Капча — это важный инструмент, который позволяет легко и быстро защитить сайты от регистрирующихся ботов, блог-посты — от бесчисленных спамерских комментов и так далее. Без капчи умельцы смогли бы, к примеру, накручивать количество голосов в голосованиях или писать кучу рекламных комментариев с помощью программных роботов.
Первые версии капчи были довольно простыми, и компьютеры быстро научились их обходить. Это повлекло за собой соревнование хакеров и разработчиков тестов captcha. Стоило преступникам одолеть одну капчу, как выпускалась новая, более совершенная версия.
"Google's ReCaptcha is simplest way of getting rid of bots. No math problems required!" @jgamboa #WPEProTip pic.twitter.com/bPOegSbmbz
— WP Engine (@wpengine) April 14, 2016
В какой-то момент в поединок вмешалась компания Google и представила свою reCAPTCHA. Сейчас разработка Google считается неофициальным стандартом в мире капчи. Она используется самой Google, Facebook и на многих других сайтах для защиты от спама и других пакостей. В общем-то, reCAPTCHA — это самый популярный вид капчи на свете.
К сожалению, оказалось, что разработка Google не так хорошо защищена, как многие думали.
Компьютерная программа впервые в истории прошла знаменитый тест Тьюринга на человечность. http://t.co/qVHBE4302t pic.twitter.com/61bSutoih3
— Газета.Ru (@GazetaRu) June 9, 2014
Специалисты по безопасности из Колумбийского университета недавно обнаружили несколько уязвимостей в технологии reCAPTCHA, которые позволяют хакерам обойти ограничения и инициировать крупномасштабные атаки на сайты.
Исследователи утверждают, что им удалось создать систему, которая успешно решает задачи капчи в 70% случаев, причем в среднем у нее на это уходит около 19 секунд. Для Facebook этот показатель даже выше — успешными были 83,5% попыток, — видимо, потому, что Facebook использует для теста картинки с более высоким разрешением.
Суперкомпьютер, прошедший тест Тьюринга, оказался блефом http://t.co/PzMRGaQ2Sk #habr
— Хабр (@habr_com) June 12, 2014
Для создания этой системы использовались методы машинного обучения. Обход reCAPTCHA происходил следующим образом: вначале программа получала файлы cookie и имитировала поведение живого человека. Она путешествовала по разным открытым сайтам с произвольными интервалами, соблюдала суточный режим посещения Интернета и всячески притворялась обычным пользователем. Делалось это неспроста: в логике Google прописано, что, если пользователь похож на робота, ему нужно предложить решить задачку посложнее.
Продемонстрировав «примерное поведение», программа запрашивала доступ, например, для комментирования, смотрела на капчу и отправлялась искать картинки из нее с помощью обратного поиска Google Images. Того, который на вход получает картинки, а на выходе выдает слова.
Забавно, что система для поиска изображений от Google помогла сломать стандарт reCAPTCHA, сделанный той же Google. Текстовые описания к картинкам очень сильно облегчили программе задачу. Кроме того, часто встречающиеся картинки специалисты Колумбийского университета внесли в программу вручную.
Тем не менее эта программа может работать и без Интернета. «Наша полностью офлайновая система обхода капчи работает быстро и точно. Она сравнима с профессиональными решениями». — Исследователи особенно гордятся простотой и эффективностью своей разработки.
Прежде чем опубликовать результаты работы, специалисты Колумбийского университета связались с Google и Facebook и сообщили обеим компаниям о найденных уязвимостях. По их словам, Google быстро отреагировала, попытавшись усовершенствовать reCAPTCHA, в то время как Facebook пока не приняла никаких мер.
Best captcha I've seen for a while. pic.twitter.com/tVvbwjmTLC
— Siddharth Vadgama (@siddvee) April 12, 2016
Исследователи считают, что хакеры готовы платить по $2 за 1000 решенных задачек капчи, так что программка легко могла бы зарабатывать им $100 в день. А если бы они запустили сразу много атак одновременно или применили другие, дополнительные технологии, то ежедневная прибыль была бы еще больше. Поскольку злоумышленники за воздух не платят, вы вполне можете представить масштабы потенциального бедствия.
Очевидно, что в мире кибербезопасности есть еще много нерешенных проблем, но такие исследования помогают многим компаниям, включая Google, занять более активную позицию и пересмотреть меры безопасности. Google уже заинтересовалась возможностью сделать свою защиту надежнее, и хочется верить, что и другие сайты не проигнорируют это исследование.