Поиск по сайту Поиск

Взлом капчи за 0.05 секунд с помощью Машинного Обучения

Оказывается, нейросети уже давно могут «притворяться» людьми — рассказываем про новую модель генеративно-состязательной сети (GAN), которая распознаёт системы CAPTCHA на 32 посещаемых веб-сайтах.

Автор: Roberto Iriondo, Machine Learning Department of Carnegie Mellon University

ДИСКЛЕЙМЕР

Текст данной статьи приведен исключительно в образовательных целях для информирования пользователей о возможных уязвимостях при разработке сайтов. Информация предоставляется в целях противодействия эксплуатации уязвимостей. Редакция сайта не поддерживает никакие виды противозаконной деятельности в сети Интернет.

Никто не любит капчи (в смысле, никто из людей, ведь у ботов нет эмоций) — надоедливые картинки с трудно читаемым текстом, который вы должны ввести для доступа к чему-либо в интернете. CAPTCHA (Completely Automated Public Turing tests to tell Computers and Humans Apart) разработана для того, чтобы автоматические программы не могли злонамеренно использовать онлайн-контент (заполнять формы, запрашивать доступ к закрытым файлам, многократно заходить на один и тот же сайт и т. д.). Она должна убедиться, что вы человек, а не бот. Тем не менее, в прошлом были попытки доказать несовершенство систем CAPTCHA. Но ни одна из них не была настолько же точной и быстрой, как алгоритм машинного обучения, предложенный группой исследователей из университета Ланкастера, Северо-Западного университета и Пекинского университета.

Схема алгоритма:

https://cdn-images-1.medium.com/max/1600/1*MMmvdvHeRZ4qkWb4Q1O_Ig.png
Исследователи используют небольшой набор несинтезированных капч для обучения синтезатора CAPTCHA. Синтезатор (1) используется для генерации синтетических CAPTCHA (2), которые применяются для обучения базового решателя (base solver) (3). Base solver затем совершенствуется для создания точно настроенного решателя (fine-tuned solver) несинтезированных капч.

Одним из первых известных людей, которые продемонстрировали уязвимость CAPTCHA, был Эдриан Роузброк. В своей книге “Deep Learning for Computer Vision with Python” Эдриан рассказывает, как он обошёл системы CAPTCHA на сайте E-ZPass New York. Для обучения своей глубокой модели он использовал большой набор изображений с примерами CAPTCHA.

Основное отличие решения Адриана от подхода учёных из Ланкастера, Северо-Западного университета и Пекина — последние не использовали набор данных с примерами, а синтезировали CAPTCHA с помощью генеративно-состязательной сети (GAN). Почти вся обучающая выборка состояла из сгенерированных капч, и лишь небольшая часть — из реальных.

Генеративно-состязательные сети, представленные Яном Гудфеллоу вместе с другими учёными — это глубокие архитектуры, состоящие из двух нейросетей. Эти сети «соревнуются» друг с другом в игре с нулевой суммой (zero-sum game) и синтезируют образцы, близкие к подлинным. Это может быть очень полезно в случае, когда модель не имеет доступа к большому набору данных.

Исследователи оценили свой подход с помощью 33 текстовых схем CAPTCHA, 11 из которых в настоящее время используют 32 самых популярных веб-сайта по данным Alexa. Туда входят схемы Google, Microsoft, eBay, Wikipedia, Baidu и многие другие. Модели, создаваемой для работы с этими системами, понадобилось всего 500 реальных капч, в то время как другим (в том числе модели Эдриана) требовались миллионы примеров.

Сеть GAN инициализируется с учётом параметров безопасности капчи, показанных на рисунке:

https://cdn-images-1.medium.com/max/1600/1*taEvZ84grhbz__3W2lraNg.png

Затем она генерирует партию CAPTCHA, чтобы обучить синтезатор с помощью 500 реальных изображений из различных схем капч:

https://cdn-images-1.medium.com/max/1600/1*pid-EncGvVJSIwWEbyGMAA.png
Список текстовых схем капчи, используемых в качестве обучающих данных для синтезатора и тестовых данных для решателя

Исследователи использовали 20 тыс. капч для обучения модели Preprocessing и 200 тыс. сгенерированных капч для обучения базового решателя.

Прототип создан с помощью Python, модель Preprocessing построена в приложении Pix2Pix, которое реализовано с помощью TensorFlow. Точно настроенный решатель сделан с помощью Keras.

https://cdn-images-1.medium.com/max/1600/1*53gcWNgaPzISBMIerCYDVg.png
Реальные Google CAPTCHA и сгенерированные версии, созданные синтезатором CAPTCHA

После обучения GAN со сгенерированными и реальными капчами, решатель CAPTCHA использовался для атаки на системы защиты таких сайтов как Megaupload, Blizzard, Authorize, Captcha.net, Baidu, QQ, reCaptcha, Wikipedia и т.д. Большинство капч было определено с точностью около 80%, а на сайтах Blizzard, Megaupload и Authorize.net — 100%. Этот метод оказался более точным, чем все предыдущие решения, в которых использовались большие несинтезированные наборы обучающих данных.

https://cdn-images-1.medium.com/max/1600/1*au_IruJOymcVuufVYvPUYw.png
Сравнение решателя CAPTCHA с четырьмя другими методами

Помимо увеличения точности, исследователи упоминают в статье, что их подход также оказался более эффективным и не таким дорогостоящим, как другие решения. Это первая GAN-нейросеть для распознавания капч с открытым исходным кодом — отсюда её эффективность и дешевизна.

Однако, у модели есть некоторые ограничения: например, капчи с переменным количеством символов. В текущем подходе используется фиксированное число — если его увеличить, то прототип не будет работать. Ещё модель не поддерживает многословные и фото- или видео-капчи. В теории её можно обучить так, чтобы избавиться от этих ограничений, но пока что они присутствуют.

Посещаемым веб-сайтам следует использовать более надёжные способы защиты своих систем, такие как меры по обнаружению ботов, диагностика кибербезопасности и аналитика. Следует также поддерживать отслеживание местоположения устройства, его тип, используемый браузер и т.д., поскольку теперь сайты стали ещё более лёгкой мишенью для атаки.

Ссылка на оригинальную статью на портале medium.com.

Парсинг данных: лучшие сервисы для веб-скрапинга

Часто у вебмастера, маркетолога или SEO-специалиста возникает необходимость извлечь данные со страниц сайтов и отобразить их в удобном виде для...
Read More

6 фишек, которые увеличат вовлечённость в Instagram

Вовлеченность в Инстаграме напрямую влияет на привлечение и удержание аудитории, повышение её доверия и лояльности к бренду, а также на...
Read More

Современное искусство в REG.RU: граффити в новом дата-центре

Вы наверняка уже знаете, что не так давно у нас появился свой собственный первый дата-центр. Мы продолжаем его обустраивать, и...
Read More

Пошагово объясняем как самостоятельно создать сайт в REG.Site

Для многих пользователей процесс создания сайта кажется чем-то невероятно сложным, особенно когда речь идёт о самостоятельном проектировании и разработке веб-страницы....
Read More

220 000 бизнес-клиентов, домен за 5 млн рублей, 3,3 млн доменов на обслуживании: факты и статистика к 15-летию REG.RU

Ура-ура! 22 мая нам исполнилось 15 лет, и мы по-прежнему двигаемся только вперёд и становимся лучше. За годы работы наша...
Read More

Революционная ОС: лучшие дистрибутивы Linux

Linux — одна из наиболее распространённых в мире ОС, которая, к тому же, является открытой и бесплатной. Сегодня мы расскажем...
Read More

Искусство спасёт мир: с днём рождения, .ART!

В мае 2021 года доменной зоне .ART исполнилось 4 года. В этом материале поделимся актуальной статистикой и крутыми проектами, которые...
Read More

IT-сиеста: что посмотреть, послушать или почитать айтишнику

Как айтишнику провести время с пользой и узнать что-то новое, отдыхая? Мы задались этим вопросом и сделали подборку книг, фильмов...
Read More

Лучшие сервисы для подбора ключевых слов

Давайте представим: вы сделали сайт или купили готовый шаблон. Теперь перед вами стоит сложная задача — написать текст для веб-страницы,...
Read More

Осторожно, это ловушка: что такое социальная инженерия

«Привет! Я оказался в сложной ситуации. Можешь занять 5000 рублей до понедельника», — получали такое сообщение в соцсетях от «друзей»?...
Read More