Быть в курсе
Назад к списку статей

Взлом капчи за 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. Но ни одна из них не была настолько же точной и быстрой, как алгоритм машинного обучения, предложенный группой исследователей из университета Ланкастера, Северо-Западного университета и Пекинского университета.

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

Одним из первых известных людей, которые продемонстрировали уязвимость 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 инициализируется с учётом параметров безопасности капчи, показанных на рисунке:

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

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

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

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

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

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

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

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

Интеграция S3 с другими AWS-сервисами (Lambda, EC2 и CloudFront)
В этой статье мы рассмотрим, как Amazon S3 взаимодействует с ключевыми сервисами AWS: Lambda, EC2 и CloudFront. (далее…)
Подробнее
VDI: как работает виртуализация рабочих столов и зачем она бизнесу
В статье разберем, что такое VDI, каким образом работает виртуализация десктопов и кому подойдет этот подход. Также рассмотрим, какие задачи...
Подробнее
Как поддержать пиковые нагрузки и отказоустойчивость в маркетинговых проектах: кейс Novomail.ru
Для платформы массовых email-рассылок высокая доступность, отказоустойчивость и способность быстро масштабироваться под резкие пиковые нагрузки — ключевые задачи. Рассказываем, как...
Подробнее
Как Data Warehouse (DWH) помогает экономить бизнесу? Разбираемся в корпоративном хранилище данных
Современные компании работают с огромными объемами информации: данными о клиентах, продажах, логистике, и многом другом. Чтобы принимать обоснованные решения, руководителям...
Подробнее
Что такое OLAP-система: объясняем простыми словами
В работе онлайн-бизнеса важную роль играют данные и работа с ними. Эти данные имеют разные форматы и могут собираться из...
Подробнее
HashiCorp Vault: как он помогает защитить ваши секреты
В любой современной ИТ-инфраструктуре количество конфиденциальных данных стремительно растет: пароли баз данных, API-ключи, сертификаты, токены доступа. Хранить их в коде,...
Подробнее
Что такое MQTT-сервер
Давайте погрузимся в мир интернета вещей и разберемся с ключевым элементом его коммуникаций ― MQTT-сервером. Как организовать поток данных от...
Подробнее
Как настроить резервное копирование в S3
Резервное копирование данных из объектного хранилища S3 — это процесс создания копий данных, которые хранятся в Amazon S3 или аналогичных...
Подробнее
Как настроить синхронизацию часов с помощью NTP
Network Time Protocol (NTP) — сетевой протокол для синхронизации системного времени компьютеров через сетевое соединение. При установке соединения NTP-клиент (ваш...
Подробнее
Что такое ETL и с какими задачами поможет
Каждый современный бизнес работает с данными — много и постоянно. Но просто собрать данные недостаточно. Чтобы они стали полезными, их...
Подробнее