Исследователи создали локальных ботов, которые используют специально обученные модели распознавания изображений и могут сравниться с людьми в вопросах решения определенных видов CAPTCHA. Порой эти боты демонстрируют стопроцентную эффективность.
Аспирант Швейцарской высшей технической школы Цюриха (ETH Zurich) Андреас Плеснер (Andreas Plesner) и его коллеги опубликовали исследование, посвященное работе reCAPTCHA v2, а именно ее «уличной» версии, в которой пользователь должен найти и отметить на изображении такие элементы, как велосипеды, автомобили, дорожные знаки, пешеходные переходы, светофоры и так далее.
Еще несколько лет назад Google начала отказываться от этой системы в пользу «невидимой» reCAPTCHA v3, которая сама анализирует поведение пользователя и практически не требует взаимодействия с человеком. Однако reCAPTCHA v2 по-прежнему применяется на миллионах сайтов и порой используется в качестве запасного варианта, если reCAPTCHA v3 присваивает пользователю низкий рейтинг.
Чтобы создать бота, способного справиться с reCAPTCHA v2, исследователи воспользовались доработанной опенсорсной моделью распознавания объектов YOLO (You Only Look Once). По их словам, YOLO «хорошо известна своей способностью обнаруживать объекты в режиме реального времени» и «может использоваться на устройствах с ограниченными вычислительными мощностями, что позволяет проводить масштабные атаки».
Обучив модель на 14 000 «уличных» изображений, исследователи получили систему, способную определить вероятность того, что изображение принадлежит к одной из 13 категорий-кандидатов reCAPTCHA v2. Также специалисты использовали отдельную, предварительно обученную модель YOLO для задач другого типа, где CAPTCHA просит человека определить, какие части одного сегментированного изображения содержат объекты конкретного типа. Эта модель сегментации работала только с 9 из 13 категорий объектов и просто запрашивала новое изображение, если на изображении была представлена одна из четырех «неподдерживаемых» категорий.
Помимо самого распознавания изображений, исследователям пришлось предпринять и другие шаги, чтобы обмануть reCAPTCHA. Например, чтобы скрыть многочисленные попытки решения CAPTCHA, исходящие с одного IP-адреса, использовался VPN, а для имитации человеческой активности была разработана специальная модель движения курсора мыши и применялись поддельные данные о браузере и cookie, взятые из реальных сеансов.
В результате, в зависимости от типа идентифицируемого объекта, доработанная модель YOLO научилась распознавать отдельные изображения CAPTCHA в диапазоне от 69% случаев (для мотоциклов) до 100% случаев (для пожарных гидрантов).
Этого оказалось достаточно, чтобы обходить CAPTCHA всякий раз, пусть иногда затрачивая несколько попыток на ее решение. В итоге бот вообще научился справляться с решением CAPTCHA лучше людей, и ему требовалось меньшее количество заданий, чем человеку в аналогичных текстах.
Хотя ранее в научных работах уже предпринимались попытки использовать распознавание изображений для решения reCAPTCHA, специалистам удавалось добиться эффективности в 68-71%. По словам авторов новой работы, увеличение эффективности до 100% «показывает, что мы официально вступили в эпоху, в которой нет места CAPTCHA».
«В каком-то смысле хорошая CAPTCHA обозначает границу между наиболее умной машиной и наименее умным человеком. По мере того как модели машинного обучения приближаются к человеческим возможностям, найти хорошую CAPTCHA становится все сложнее», — заключают исследователи.