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

Взлом капчи за 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.

Обучаем виртуального дракона фигурам высшего пилотажа

Обучаем виртуального дракона фигурам высшего пилотажа

В наши дни компьютерная графика присутствует во всех популярных видах визуального контента: от видеороликов YouTube-блогеров до полнометражных фильмов. Но проработка...
Read More
Стэнфордский курс: лекция 9. Архитектуры CNN

Стэнфордский курс: лекция 9. Архитектуры CNN

На прошлом уроке мы узнали о наиболее популярных библиотеках и фреймворках для глубокого обучения, рассмотрели их особенности и области применения....
Read More
GPT-2: нейросеть, которая закончит за вас предложение

GPT-2: нейросеть, которая закончит за вас предложение

Встречали ли вы когда-нибудь собеседника, который после нескольких сказанных вами слов заканчивал за вас предложение? GPT-2 умеет и не такое:...
Read More
Жуткие сайты, которые вызовут у вас мурашки

Жуткие сайты, которые вызовут у вас мурашки

Интернет может не только развлекать вас новыми мемами и видеороликами, но и быть по-настоящему пугающим. В честь Хэллоуина представляем несколько...
Read More
10 ингредиентов надёжной инфраструктуры хостинга REG.RU

10 ингредиентов надёжной инфраструктуры хостинга REG.RU

Привет! На связи редакция блога. И сегодня мы расскажем в деталях об одной из сторон инфраструктуры REG.RU, объясним как работает...
Read More
Голосовой помощник Apple, которому можно доверять

Голосовой помощник Apple, которому можно доверять

Мы гораздо больше доверяем тем людям, общаться с которыми нам легко и приятно. Обычно так происходит, когда их стиль и...
Read More
Как организовать техническую поддержку пользователей

Как организовать техническую поддержку пользователей

Быстрая техподдержка очень важна для клиентов, особенно в критических ситуациях. От скорости и качества решения проблемы зависит лояльность пользователя и...
Read More
Роботы в облаках: совмещение ROS и Jupyter

Роботы в облаках: совмещение ROS и Jupyter

Робототехника — одна из самых популярных и прогрессивно развивающихся отраслей. Ролики Boston Dynamics на YouTube собирают миллионы просмотров. Если вы...
Read More
Стэнфордский курс: лекция 8. ПО для глубокого обучения

Стэнфордский курс: лекция 8. ПО для глубокого обучения

В предыдущих главах мы познакомились с основами обучения нейросетей и выяснили, чему при этом стоит уделять больше внимания. Сегодня вы...
Read More
Анализ производительности нейросетей на GPU с помощью NVIDIA Visual Profiler (часть 1)

Анализ производительности нейросетей на GPU с помощью NVIDIA Visual Profiler (часть 1)

Специалисты Data Science делятся на два лагеря: те, кому кажется, что нейросети обучаются слишком медленно, и те, кому скоро тоже...
Read More