Взлом капчи за 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. Синтезатор (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 инициализируется с учётом параметров безопасности капчи, показанных на рисунке:
Затем она генерирует партию CAPTCHA, чтобы обучить синтезатор с помощью 500 реальных изображений из различных схем капч:
Список текстовых схем капчи, используемых в качестве обучающих данных для синтезатора и тестовых данных для решателя
Исследователи использовали 20 тыс. капч для обучения модели Preprocessing и 200 тыс. сгенерированных капч для обучения базового решателя.
Прототип создан с помощью Python, модель Preprocessing построена в приложении Pix2Pix, которое реализовано с помощью TensorFlow. Точно настроенный решатель сделан с помощью Keras.
Реальные Google CAPTCHA и сгенерированные версии, созданные синтезатором CAPTCHA
После обучения GAN со сгенерированными и реальными капчами, решатель CAPTCHA использовался для атаки на системы защиты таких сайтов как Megaupload, Blizzard, Authorize, Captcha.net, Baidu, QQ, reCaptcha, Wikipedia и т.д. Большинство капч было определено с точностью около 80%, а на сайтах Blizzard, Megaupload и Authorize.net — 100%. Этот метод оказался более точным, чем все предыдущие решения, в которых использовались большие несинтезированные наборы обучающих данных.
Сравнение решателя CAPTCHA с четырьмя другими методами
Помимо увеличения точности, исследователи упоминают в статье, что их подход также оказался более эффективным и не таким дорогостоящим, как другие решения. Это первая GAN-нейросеть для распознавания капч с открытым исходным кодом — отсюда её эффективность и дешевизна.
Однако, у модели есть некоторые ограничения: например, капчи с переменным количеством символов. В текущем подходе используется фиксированное число — если его увеличить, то прототип не будет работать. Ещё модель не поддерживает многословные и фото- или видео-капчи. В теории её можно обучить так, чтобы избавиться от этих ограничений, но пока что они присутствуют.
Посещаемым веб-сайтам следует использовать более надёжные способы защиты своих систем, такие как меры по обнаружению ботов, диагностика кибербезопасности и аналитика. Следует также поддерживать отслеживание местоположения устройства, его тип, используемый браузер и т.д., поскольку теперь сайты стали ещё более лёгкой мишенью для атаки.
Ссылка на оригинальную статью на портале medium.com.
Пример взлома простой капчи за 15 минут с помощью машинного обучения | by NeuroHive Ru
У меня нет времени разрезать каждую из 10,000 картинок в фотошопе. Это бы заняло несколько дней, а у меня осталось всего 10 минут. И нельзя просто автоматически разделить все картинки на 4 одинаковых куска. Потому что алгоритм задает символам случайное горизонтальное положение:
Символы сдвинуты случайным образом, чтобы изображение было сложнее разделить.
К счастью, это всё же можно автоматизировать. При обработке изображений часто приходится находить связные области из пикселей одного цвета. Границы таких областей называют контурами. В OpenCV есть встроенная функция findContours(), которую мы используем, чтобы найти связные области.
Итак, начнем с изображения капчи:
Преобразуем изображение в бинарное (это называется thresholding), чтобы было легче найти связные области:
Далее, используем функцию findContours(), чтобы выделить связные группы пикселей, состоящие из одного цвета:
Теперь, нужно просто сохранить каждый прямоугольник как отдельное изображение. И, так как мы знаем последовательность символов в каждом изображении, можно подписать каждый прямоугольник своим символом при сохранении.
Погодите-ка! Тут есть проблемка! Буквы в капче иногда накладываются друг на друга:
И наш алгоритм отмечает их как одну:
Если проблему не решить, то у нас будут плохие обучающие данные. Это нужно исправить, потому что с такими данными мы обучим модель распознавать эти две слившиеся буквы как одну.
Простой выход из этой ситуации сказать, что если какой-то прямоугольник в ширину сильно больше, чем в высоту, то это нужно считать двумя буквами. В этом случае, прямоугольник можно просто разрезать посередине и считать, что этот два прямоугольника:
Мы разделим пополам все прямоугольники, ширина которых сильно превышает высоту, и будем считать их за две буквы. Способ слегка “химический”, но с этими капчами работает.
Теперь, когда у нас есть способ извлекать из капчи отдельные буквы, давайте прогоним наш алгоритм через весь датасет. Цель — получить много вариантов написания для каждой буквы. Каждую букву можно сохранять в отдельную папку.
Вот так выглядит моя папка с буквой “W” после того, как я запустил свой алгоритм:
GAN взламывает любую текстовую CAPTCHA за 0,05 секунды
Ученые разработали алгоритм, который способен взломать CAPTCHA быстрее и точнее, чем предыдущие методы — за 0,05 секунды с помощью настольного ПК.
Новый подход основан на использовании генеративно-состязательных нейросетей (GAN). Преимущество GAN при решении подобных задач состоит в том, что сеть может работать с гораздо меньшим начальным количеством данных для обучения. Это возможно благодаря тому, что GAN использует генеративный компонент для создания похожих данных. Сгенерированные данные затем подаются в дискриминатор, который пытается угадать правильный образец перед ним или нет.
Пример CAPTCHA, созданной Google (вверху), и сгенерированной GAN (внизу)
Обучение модели для взлома капчи
Для исследования ученые использовали 500 текстовых CAPTCHA из 11 текстовых сервисов по созданию капчи, которые использовались на 32 сайтах из топ-50 по версии Alexa.
Разработчикам потребовалось 2 часа чтобы собрать 500 разных CAPTCHA. Столько же времени ушло на разметку собранных капч одним пользователем. «Это означает, что усилия и затраты на запуск нашей атаки невелики», — написали исследовали в статье. Затем GAN создала ещё 200 000 «синтетических» CAPTCHA. Обучающая выборка была собрана с сайтов Википедии, Microsoft, eBay, Baidu, Google, Alipay, JD, Qihoo360, Sina, Weibo и Sohu.
Подготовленная нейросеть взломала текстовые CAPTCHA со 100% точностью на сайтах Megaupload, Blizzard и Authorize.NET. Кроме того, метод превзошел другие подходы при взломе капчи на Amazon, Digg, Slashdot, PayPal, Yahoo, QQ и других сайтах.
Сравнение результатов с другими методами
Авторы отмечают, что метод обучения модели очень прост, поэтому любой злоумышленник может обучить алгоритм на обычном ПК или веб-сервере. После чего сможет запускать скоординированные DDoS-атаки или рассылку спама на сайтах, где используется CAPTCHA. «Это означает, что подобная защита сайтов перестала быть надежной», — отмечает автор исследования Чжэн Ванг.
Разработчики рекомендуют владельцам сайтов внедрять альтернативные меры по обнаружению ботов, использующие несколько уровней безопасности, например шаблоны использования, определение местоположения устройства или биометрические данные.
Вы можете самостоятельно за 15 минут написать простой алгоритм для взлома капчи, если знаете Python. Такой алгоритм подойдет только для одной версии капчи, но он работает.
взлом reCAPTCHA v3 через распознавание голоса / Блог компании «Лаборатория Касперского» / Хабр
Первый рабочий день после новогодних каникул — это тот самый момент, когда сложно доказать компьютеру, что ты не робот. Проще машине притвориться человеком, и одна из свежих публикаций посвящена как раз этому. Очередную победу в дисциплине «взлом капчи» одержал исследователь Николай Шачер (Nikolai Tschacher): он
показал
, как можно обойти самую свежую версию reCAPTCHA v3 с помощью сервиса Text-to-Speech, разработанного, как и сама капча, компанией Google.
Взломали не основную капчу с изображениями, а альтернативный метод верификации с использованием голосового сообщения. В аудиосообщении отправляется код, который нужно ввести в соответствующее поле. Николай усовершенствовал метод, разработанный
ранее
против предыдущей версии reCAPTCHA v2: скрипт перехватывает аудиофайл с голосовым сообщением и отправляет его в сервис Text-to-Speech. Код распознается должным образом более чем в 90% случаев. Исследователь подтвердил, что против reCAPTCHA v3 метод также работает: судя по всему, альтернативный метод авторизации перекочевал прямиком из предыдущей версии, хотя апгрейд капчи до третьей версии также сломал опубликованный два года назад Proof-of-Concept. В своем репозитории на Github Николай выложил обновленную
версию
.
Видео с демонстрацией работы обновленного скрипта (полностью автоматизированного вплоть до движений мыши):
Что еще произошло
В начале января
обновились
браузеры Firefox и Chrome. В обоих случаях закрыты серьезные уязвимости, позволяющие выполнить произвольный код и получить контроль над системой. В случае Firefox подвержены как версии для ПК, так и релиз для мобильных устройств. В Chrome уязвимость актуальна только для компьютеров.
Закрыты уязвимости и в драйверах NVIDIA. Помимо традиционной дыры, позволяющей повысить привилегии, патчи закрывают несколько проблем в драйвере vGPU для виртуализации ресурсов графического процессора. Эксплуатация этих багов хоть и не позволяет перехватить контроль над машиной-хостом, но допускает раскрытие информации и отказ в обслуживании.
Январский набор патчей для Android закрывает 43 уязвимости, в том числе одну в компоненте Android System, предположительно связанную с работой модуля Bluetooth.
Исследователь Ахмед Хассан нашел уязвимость в функции мессенджера Telegram «Люди рядом». Эксплуатация проблемы похожа на методы для других программ, использующих геолокацию: с помощью подмены собственных координат можно провести виртуальную триангуляцию и получить точное расположение другого пользователя вместо примерного.
Представители компании Nissan заявили о серьезной утечке корпоративных данных: она произошла из-за Git-сервера c логином и паролем admin:admin.
Очень интересное исследование о взломе (краткая версия на Хабре) аппаратного ключа Google Titan, используемого для двухфакторной аутентификации. Для расшифровки данных использовался метод атаки по сторонним каналам.
В свежей прошивке для некоторых сетевых устройств ZyXel обнаружили зашитый пароль.
Капча как эффективный способ защиты сайта от спама и взлома — Джино • Журнал
24 июля 2019 г.
Время чтения: 2 минуты
По приблизительным подсчётам, каждый день пользователи интернета 200 миллионов раз проходят проверку с использованием капчи. И каждый из вас наверняка с такой проверкой сталкивается регулярно. В двух словах, капча — это инструмент, который помогает отличить пользователя-человека от пользователя-компьютера и не допускает использования роботов на сайтах для совершения массовых действий и отправки слишком частых запросов. Само слово «капча» происходит от английской аббревиатуры CAPTCHA — «полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей».
Капча используется в разных случаях. Например, этот способ проверки предотвращает взлом хакерами чужих аккаунтов при помощи подбора паролей и не позволяет создавать несколько учётных записей с одного адреса электронной почты. Капча полезна и в тех случаях, когда необходимо ограничить распространение спама в комментариях на блог-платформах и порталах, а также предотвратить «накрутку» голосов в опросах или массовую покупку билетов на мероприятия. Повысить безопасность покупок в интернет-магазинах с помощью капчи тоже возможно.
Первые тесты с использованием капчи, придуманные в конце 1990-ых годов, представляли из себя комбинации замаскированных букв и цифр. Символы были размыты, растянуты и искажены таким образом, чтобы их мог увидеть человек, но не мог распознать компьютер. Пользователь должен был верно ввести в поле ввода буквы и цифры с картинки, чтобы получить доступ к интересующей его странице сайта.
Затем капча существенно изменилась, и сейчас можно встретить логические капча-тесты, подвластные интеллекту людей и недоступные для решения компьютерами. Например, вам могут предложить выбрать из нескольких изображений то, где изображен человек с поднятой рукой, или написать определённые числа буквами. Другой современный вариант капча-теста — запись отдельных слов с отсканированных фрагментов книг и газет. Также существуют капчи с математическими уравнениями и аудиокапчи.
Совсем недавно компания Google создала новый способ проверки юзеров на «человечность» под названием reCAPTCHA. Суть этого способа заключается в анализе поведения пользователя на сайте. Если reCAPTCHA считает, что действия посетителя выглядят естественно и не похожи на действия робота, то гостю страницы будет предложено лишь поставить галочку в поле «Я не робот», не проходя полноценный капча-тест. Если же во взаимодействии пользователя со страницей будут угадываться признаки автоматизированных действий, то тогда его попросят пройти уже более сложную проверку.
Добавить любой вариант капчи на свой сайт самостоятельно может каждый, для этого нужны лишь базовые знания в HTML. Если ваш сайт обслуживается отдельным администратором, обратитесь к нему для добавления на вашу страницу проверки на безопасность. Инструкции по установке reCAPTCHA доступны на сайте Google, а администраторам сайтов на WordPress для добавления такого теста на сайт достаточно лишь установить соответствующий плагин.
Увы, как бы сильно ни усложнялась капча, компьютеры тоже совершенствуются и учатся проходить всё более трудные проверки на сайтах. Сегодня роботы могут без труда распознавать буквы и цифры, а иногда и предметы на изображениях. Тем не менее, капча по-прежнему создает для злоумышленников мощную преграду на пути к вмешательству в работу веб-ресурсов. А значит, задуматься о проверке пользователей своего сайта на чрезмерную автоматизированность их действий необходимо каждому.
«Ломай меня полностью!» Как одни алгоритмы генерируют капчу, а другие её взламывают
CAPTCHA – полностью автоматизированный
публичный обратный тест Тьюринга для различения
компьютеров и людей путем
автоматической настройки определенных заданий, которые трудны для компьютеров,
но просты для людей. Эта технология
стала стандартом безопасности, используемым для
предотвращения автоматического
голосования, регистрации, спама, словарных
атак на пароли веб-сайтов и т. п.
Существующие капчи
разделяют на
три категории: текстовые, графические
и аудио/видео. Ниже мы рассмотрим, как генерируются различные капчи и какие успехи сейчас есть с их обходом. Не ругайте за качество изображений – мы взяли рисунки из научных публикаций, на которые даём ссылки =) Полный список публикаций, взятых для анализа, приведён в конце статьи.
1.1. Текстовая капча
Текстовые капчи
являются наиболее часто используемыми,
но из-за простой
структуры они и наиболее уязвимы. Такой вид капч,
как правило, требует распознать геометрически искаженную
последовательность, состоящую из букв или цифр.
Для повышения безопасности
применяются различные
механизмы защиты,
которые можно разделить на антисегментационные и антираспознавательные. Первая группа механизмов нацелена на ухудшение процесса выделения отдельных символов, вторая – на распознавание самих символов. На Рис. 1 сведены в табличное представление примеры капч для различных подходов.
Рис. 1. Способы защиты капчи
1.1.1. Полые символы
В случае стратегии создания капчи «полые символы» для
формирования каждого символа используются
контурные линии.
Рис. 2. Полая капча
Такие символы трудно сегментировать, но они легко видны людям. К сожалению, этот механизм не так безопасен, как ожидалось. В исследованиях Гао [1] сверточная нейронная сеть успешно распознает от 36% до 89% изображений (в зависимости от типа искажений и обучающей выборки).
1.1.2. Перекрытие символов
Объединение и перекрытие символов (англ. сrowing characters together, CCT) усложняют сегментацию, но при
этом также снижает
удобство для чтения пользователем. То есть и сами люди не всегда успешно могут обойти такую капчу.
Рис. 3. Перекрытие и CCT
Исследователям из Китая и Пакистана удалось взломать CTT с вероятностью от 27.1% до 53.2% [2].
1.1.3. Фоновые шумы
Рис. 4. Фоновые шумы
Google’s reCAPTCHA, использующая изображения из Street View, ломается в 96% случаев [3].
1.1.4. Двухуровневая структура
Двухуровневая структура
представляет собой вертикальную
комбинацию двух горизонтальных
капч, что усложняет сегментацию изображения.
Рис. 5. Двухуровневая структура
Гао [4] предложил подход к сегментации для разделения изображения капчи как по вертикали, так и по горизонтали, и добился успеха в 44.6% (9 с на изображение), используя свёрточную нейронную сеть.
1.2. Капча-изображение
1.2.1. Капча на основе отбора
В случае капчи на основе отбора пользователи должны выбрать
правильные ответы в соответствии с
подсказкой для капчи,
основанной на выборе. Это самая простая
форма капчи
на основе изображений. Например, нужно выделить среди предъявленных изображений все машины, все дорожные знаки, все светофоры.
Рис. 6. Различные примеры капчи на основе отбора
Голль [5] предложила использовать
метод опорных векторов (SVM)
для различения изображений кошек и
собак в капче
Asirra с
вероятностью
успешного распознавания
82.7%.
Команда Гао [6] использовала
OpenCV для обнаружения лиц во FR-CAPTCHA. Удалось получить вероятность обнаружения
от 8% до 42% с обработкой изображения менее, чем за 14 секунд.
FaceDCAPTCH была распознана
с вероятностью 48% в среднем за 6.2 секунды.
Сотрудники Колумбийского
университета обошли reCAPTCHA и Facebook CAPTCHA с
вероятностью
70.78% и 83.5% соответственно.
1.2.2. Капча на основе кликов
В 2008 году Ричард Чоу с коллегами [7]
впервые предложили капчу, основанную на
кликах. Она требует от пользователей
нажимать на символы, находящиеся на
сложном
фоне в соответствии с подсказкой, как
показано на Рис. 7.
Рис. 7. Капчи на основе кликов
Такие кликовые капчи имеют два защитных
механизма: антивыявление и
антираспознавание. Правильное
распознавание символов с развитием
машинного обучения уже не является
сложной задачей. Поэтому почти все
механизмы защиты ориентированы на то,
чтобы помешать злоумышленникам правильно
выявить символы.
1.2.3. Капча на основе перетаскивания
Капча на основе перетаскивания
определяет,
является ли пользователь человеком, через трек мыши, скорость перемещения
указателя и время отклика.
Рис. 8. Капча на основе перетаскивания
Пользователям необходимо повернуть изображение предмета так, чтобы он находился в естественном положении. Например, перевернуть изображение стола так, чтобы он оказался на ножках. Это просто для человека, но трудно для ботов.
1.3. Аудио/видеокапчи
1.3.1 Аудиокапча
Эта капча
обычно рассматривается как альтернатива
зрительной
в случае пользователей с ослабленным
зрением. Слушателям предлагается выполнить
задание исходя из того, что они услышали, например, определить конкретный звук,
например, звук колокольчика или фортепиано [8].
Рис. 9. Аудиокапча
Существует еще один тип капчи на основе аудио, в котором от пользователей требуется не просто слушать, а произносить. Например, Гао [9] предложил звуковую капчу (Рис. 9), в которой пользователь должен зачитать предложение, выбираемое случайным образом из книги. Сгенерированный аудиофайл анализируется, чтобы определить, является ли пользователь человеком.
Но и аудиокапча взламывается: ученые из Стэнфордского университета научились взламывать аудиокапчу с вероятностью 75%.
1.3.2 Видеокапча
В видеокапче пользователям предоставляется
видеофайл, и они должны выбрать
предложение, которое описывает движение
человека на видео.
Рис. 10. Сводная таблица. Типы капч
Японские исследователи использовали решение на базе HMM (скрытой марковской модели) и получили точность 31.75%.
Рассмотрим теперь, как именно для взлома капчи используются нейронные сети.
В 2017 году
Гао Хуан, Чжуан Лю и другие [10] построили 4
глубоких свёрточных нейронных сети с архитектурой, называемоей теперь DenseNet. Плотные блоки нейронных сетей чередовались со слоями skip-connection (Рис. 10). Вход каждого слоя в блоке являлся объединением выхода всех
предыдущих слоев. Это отличало новую архитектуру от традиционных на тот момент нейросетей, где слои были соединены последовательно.
Рис. 11. DenseNet с тремя плотными блоками [11]
Архитектура DenseNet имеет ряд преимуществ: она решает проблему дисперсии и эффективно использует особенности всех предшествующих сверточных слоев, понижая вычислительную сложность параметров сети и демонстрируя хорошую производительность классификации.
Примером вариации архитектуры DenseNet является нейросеть DFCR. Исходные
изображения капчи
размером 224×224
проходили через слой
свертки
и объединялись в пулы для
вывода изображений размером
56×56. После
этого поочередно
соединялись 4 «плотных» блока, чередуясь с переходными слоями (Рис. 11). Структура
переходного слоя позволяла уменьшить размерность карты признаков и ускорить вычисления.
Рис. 12: Архитектура DFCR на примере распознавания изображения с символами «W52S» [11]
Далее карты признаков использовались для проверки соответствия карты и класса. Значения в каждой карте признаков суммировались для получения среднего значения, которое принималось за значение класса и выводилось в соответствующий softmax-слой классификации.
Эксперименты показывают, что DFCR не только сохраняет основные преимущества DenseNet, но и снижает потребление памяти. Кроме того, точность распознавания капчи с фоновым шумом и наложенными друг на друга символами выше 99.9% [11].
Рис. 13. Процесс обучения генератора текстовых капч на GAN [12]
Генератор
капч на GAN (генеративно-состязательная сеть) cостоит
из двух частей:
1) сеть, создающая
капчи, приближенные к оригинальным; 2) нейросеть, отличающая
искусственную капчу от
настоящей (солвер).
Перед
подачей капчи солверу, в ней удаляются
использованные средства
защиты и нормализуется
шрифт. Например, производится заполнение полых символов и
нормализация промежутков между
ними. Модель препроцессинга
основывается на Pix2Pix.
Рис. 14. Схема алгоритма. Сначала используется небольшой датасет реальных капч для обучения синтезатора капчи (1). Далее генерируются искусственные капчи (2) для обучения солвера (3). Совершенствование солвера (4) [12]
Затем генерируется большое количество капч с маркировкой, которые используются для обучения солвера. Обученный солвер принимает капчу после препроцессинга и выдает соответствующие символы. Тонкая настройка солвера происходит с помощью небольшого набора вручную размеченных капч, которые собираются с целевого сайта.
В качестве конкретной свёрточной нейронной сети хорошим вариантом оказалось использование архитектуры LeNet-5, которая изначально применялась для распознавания одиночных символов. Добавление двух сверточных слоев и трех слоев пулинга расширило ее возможности до распознавания нескольких символов.
Рис. 15: Алгоритм тренировки солвера [12]
Информация, полученная на ранних слоях нейронных сетей, полезна для решения множества других классификационных задач. Более дальние слои более специализированы. Это свойство используется для калибровки солвера, чтобы избежать систематической ошибки или переобучения.
Выходной слой солвера состоит из ряда нейронов с одним нейроном на символ. Например, если в капче n
символов, выходной слой будет содержать n
нейронов, где каждый нейрон соответствует возможному символу. Если количество символов не фиксировано, то необходимо тренировать солвер для каждого возможного n
.
Результаты вероятности взлома :
- Перекрытие (в зависимости от сложности) – от 25.1% до 65%
- Поворот (15°, 30°, 45°, 60°) – 100%, 100%, 99.85%, 99.55%
- Искажение – 92.9%
- Эффект волны – 98.85%
- Комбинация вышеперечисленных – 46.30%
Чтобы распознать последовательность
символов без сегментации, можно использовать модель, состоящую из свёрточной нейронной сети, соединенной с нейросетью с долгой
краткосрочной памятью (LSTM) и
механизмом внимания.
Рис. 16. Обзор архитектуры
Свёрточная нейронная сеть представляет собой энкодер,
извлекающий признаки из
капчи. Исходное изображение представляется в виде линейного векторного пространства. Созданный энкодером вектор признаков обозначается fijc, где i и j – индексы местоположения на карте признаков, c – индекс каналов.
LSTM
работает
как декодер и переводит
вектор признаков в текстовую
последовательность. В отличие от рекуррентной нейронной сети, LSTM умеет хранить информацию в
течение длительных промежутков времени.
В традиционной
модели sequence-to-sequence на каждом временном
шаге
на вход передается вектор
f. Но узким
местом стандартной модели является то, что вход является постоянным. Механизм
внимания позволяет декодеру игнорировать
неактуальную информацию, сохраняя при
этом наиболее значимую информацию
о векторе f. Различным частям вектора
признаков присваиваются различные веса,
так что модель может фокусироваться на каждом шаге на определенной части вектора, делая прогнозы более
точными. Это является основной
причиной того, что предложенный
метод
может распознавать отдельные символы без сегментации.
В экспериментах для
декодирования использовалась
сокращенная
модель Inception-v3. Декодер состоял из LTSM-ячеек,
каждая
из которых содержала 256 скрытых
нейронов.
Количество
ячеек LSTM равнялось максимальной длине строки
капчи.
Для всей структуры число обучаемых параметров составило 9 млн.
В зависимости от исходного размера каждая капча масштабировалась так, чтобы короткая сторона находилась
в диапазоне от 100 до 200 пикселей. На
тренировочном этапе модель тренировалась по стохастическому градиентному спуску с использованием
момента 0.9. Скорость обучения равнялась 0.004. На обучение было потрачено 200
эпох с размером батча 64.
Рис. 17. CCT-капчи
После каждой эпохи происходила проверка модели. Если производительность модели была лучше, чем у текущей лучшей модели, веса лучшей модели обновлялись. В качестве данных для эксперимента были собраны CCT-капчи (текст с перекрытием) (Рис. 17).
Для
образца капчи
в тестовом наборе полная прогнозируемая
последовательность символов считалась
правильно определенной
только
в том случае, если она была идентична
ответу, помеченному вручную. Для выборки в 10 000
образцов (обучающая и тестовая в соотношении 3:1) вероятность успешного
распознавания составила 42.7%. По мере
увеличения количества образцов до 50
000, 100 000, 150 000 и 200 000 вероятность
увеличилась
до
87.9%, 94.5%, 97.4% и 98.3% соответственно.
Обучение с подкреплением использовалось для обхода Google reCAPTCHA v3 [14].
Взаимодействие
бота со средой было смоделировано как марковский
процесс принятия решений (MDP).
MDP задавался кортежем
(S, A, P, r), где S – конечное множество состояний, A – конечное множество действий, P – вероятность перехода между состояниями P(s, a, s’), r – вознаграждение, получаемое после перехода в состояние s’ из состояния s с вероятностью P.
Целью похода было найти оптимальное правило π*, которое
максимизирует ожидаемые вознаграждения
в будущем. Предположим, что правило
параметризируется набором весов w,
таким, что π = π(s, w). Затем
задача задается как
где γ – некоторая константа
(discount factor), rt – вознаграждение
в момент времени t.
Обучение с подкреплением оценивает градиенты
по формуле
Для прохождения reCAPTCHA
пользователь перемещает курсор, пока не установит флажок
reCAPTCHA. В зависимости
от этого взаимодействия система reCAPTCHA «наградит» пользователя баллом. Этот
процесс был смоделирован
как MDP, где пространство
состояний
S – это возможные позиции курсора на
веб-странице, а пространство действий A = {вверх,
влево, вправо,
вниз}.
Такой подход делает задачу похожей на задачу
grid world.
Как
показано на Рис. 18, отправной точкой
является начальная позиция курсора, а целью
является позиция reCAPTCHA. Для каждого теста отправная точка выбирается
случайным образом из верхней правой
или верхней левой области. Затем строится
сетка, где каждый пиксель между начальной
и конечной точками является возможным
положением курсора. Размер
ячейки c
– количество пикселей между
двумя последовательными позициями.
Например, если курсор
находится на позиции (x0, y0)
и совершает
действие влево, то следующей позицией
будет (x0 – c, y0)
.
Рис. 18. Сетка в MDP [14]
В
каждом тесте
позиция
курсора случайная,
бот
выполняет
последовательность действий до достижения
reCAPTCHA или предела T, где a и b – это высота и ширина сетки соответственно.
По
окончании теста
бот
получает
обратную связь от
reCAPTCHA, как и любой обычный пользователь.
В
большинстве
предыдущих работ для автоматизации действий веб-браузера использовался Selenium, однако он часто проваливал тест, так как в HTTP-запросах обнаруживался автоматически
сгенерированный заголовок и другие
дополнительные переменные, которые
отсутствуют в обычном браузере.
Эту
проблему можно решить двумя разными
способами. Первый заключается в создании
прокси для удаления автоматического
заголовка. Второй вариант
заключается в запуске браузера из
командной строки и управлении мышью с
помощью специальных пакетов Python, таких,
как библиотека PyAutoGUI.
Забавно,
что симуляции, выполняемые в браузере
с подключенным аккаунтом Google, с большей
вероятностью проходили проверку, чем симуляции без авторизации.
В
экспериментах с discount factor γ
= 0.99, скоростью обучения
– 10-3
и размером батча 2000. капча взламывалась с вероятностью
97.4%.
Как можно заметить уже из этой статьи, машинное обучение имеет высокий порог вхождения, а ведь все, что было описано в публикации – только вершина айсберга. Если копать глубже, то скоро можно претендовать на звание джуниора по нейронным сетям =)
А ведь для реальной работы нужна команда специалистов и аренда вычислительных мощностей. Добавим к этому время обучения/переобучения сетей, растущее количество видов капч, разнообразие языков, и получится, что быстрее и дешевле воспользоваться онлайн-сервисами, где капчи решают живые люди.
Среди подобных сервисов выделяется ruCaptcha. На сервисе есть тонкая настройка солвера: количество слов, регистр, цифры и/или буквы, язык (55 на выбор), математические действия и т. д.
Решаются следующие виды капч: обычная текстовая, ReCaptcha версий 2 и 3, GeeTest, hCaptcha, ClickCaptcha, RotateCaptcha, FunCaptcha, KeyCaptcha.
Взаимодействие с сервером происходит через API, то есть можно встроить решение в собственный продукт. Есть функция возврата за неправильное распознавание, а на возникшие вопросы отвечает техподдержка (адекватная в сравнении с конкурентами).
Конечно, за решение капч, сервис платит конкретным людям, готовым решать задания за небольшую плату. Соответственно эти деньги сервис берёт у клиентов, которым не приходится заниматься рутиной. Расценки на момент написания статьи были следующие: 1000 капч взламывались не более, чем за 44 ₽ (в среднем 7.5 с на капчу), 1000 рекапч за 160 ₽ (в среднем 32 с на капчу). То есть единая цена независимо от нагрузки и от того, сколько заплатили другие заказчики.
Для сравнения: один мидл-специалист по машинному обучению обойдется на рынке минимум в 150 000 ₽/мес.
Напишите, если пользовались сервисом – интересно узнать ваше мнение (пока мы основываемся на мнении авторов следующих статей: англоязычная и три русских: раз, два, три).
Источники
[1]
Gao, H., Wang, W., Qi, J., Wang, X., Liu, X., & Yan, J. (2013,
November). The robustness of hollow CAPTCHAs. In Proceedings of the
2013 ACM SIGSAC conference on Computer & communications security
(pp. 1075-1086). ACM.
[2] Hussain, R., Gao, H., & Shaikh, R. A. (2017). Segmentation of connected characters in text-based CAPTCHAs for intelligent character recognition. Multimedia Tools and Applications
[3] Goodfellow, I. J., Bulatov, Y., Ibarz, J., Arnoud, S., &
Shet, V. Multitdigit Number Recognition from Street View Imagery
using Deep Convolutional Neural Networks.
[4] Gao, H., Tang, M., Liu, Y., Zhang, P., & Liu, X. (2017).
Research on the Security of Microsoft’s Two-Layer Captcha. IEEE
Transactions on Information Forensics and Security, 12(7), 1671-1685.
[5] Golle, P. (2008, October). Machine learning attacks against
the Asirra CAPTCHA. In Proceedings of the 15th ACM conference on
Computer and communications security (pp. 535-542). ACM.
[6] The robustness of face-based CAPTCHAs. Haichang Gao, Lei Lei,
Xin Zhou, Jiawei Li, Xiyang Liu. Institute of Software Engineering,
Xidian University.
[7] Chow, R., Golle, P., Jakobsson, M., Wang, L., & Wang, X.
(2008, February). Making captchas clickable
[8] The SoundsRight CAPTCHA: an improved approach to audio human
interaction proofs for blind users. Jonathan Lazar, Jinjuan Heidi
Feng, Tim Brooks, Genna Melamed, Jon Holman, Abiodun Olalere, Nnanna Ekedebe, and Brian Wentz
[9] Gao, H., Liu, H., Yao, D., Liu, X., & Aickelin, U. (2010,
July). An audio CAPTCHA to distinguish humans from computers.
[10] G. Huang, Z. Liu, L. V. D Maaten, et al., Densely connected
convolutional networks, Proceedings of the IEEE Conference on
Computer Vision and Pattern Recognition, (2017), 2261–2269
[11] CAPTCHA recognition based on deep convolutional neural
network
[12] Yet Another Text Captcha Solver: A Generative Adversarial
Network Based Approach Guixin
[13] An end-to-end attack on text CAPTCHAs
[14] Hacking Google reCAPTCHA v3 using Reinforcement Learning
Обход капчи при парсинге на PHP
В данном уроке мы с вами научимся обходить капчу.
Капча — это такая картинка,
данные из которой следует ввести
в инпут, чтобы отправить форму.
Капчу устанавливают на форму,
если хотят обойти ее автоматическое
заполнение парсером. Однако,
практически любую капчу можно обойти.
Этим мы сейчас и займемся.
Как устроена капча
Чтобы обойти капчу, нужно понимать,
как она устроена изнутри.
Когда мы заходим на страницу
с формой — там уже есть капча
или она подгружается через некоторое время.
Откуда берется эта капча? Она генерируется
скриптом PHP при обращению на заданный
URL, пусть для примера этот URL такой —
capcha.php. Тогда в HTML коде формы
для картинки капчи будет такой код:
<img src=»capcha.php»>.
Если мы
зайдем на страницу с формой, то картинка
капчи автоматически подтянется со страницы
capcha.php.
При этом страница capcha.php
— это скрипт, который генерирует случайную строку,
делает из нее картинку капчи и отдает ее в браузер.
Кроме того страница capcha.php
сохраняет строку с капчей в сессию. Это нужно для того,
чтобы проверить правильность ввода капчи по отправке формы.
Если обратиться на страницу capcha.php — она каждый раз будет
отдавать новую капчу и, соответственно, эта новая капча будет затирать
старую в сессии.
Как обойти капчу
Итак, теперь вы знаете как устроена капча.
Давайте теперь о том, как ее обойти.
Для этого нужно сделать несколько запросов с помощью CURL.
Первый запрос должен слаться на файл с капчей.
Куда его слать — видно в HTML коде формы или же можно отследить в отладчике,
куда отправляются запросы.
Результатом данной операции будет картинка,
ее можно сохранить в файл с помощью file_put_contents.
Зачем сохранять — чтобы можно было прочитать капчу и разобрать
ее каким-либо образом (для начала вручную).
Запрос на капчу обязательно следует слать
через curl, а не file_get_contents, так как нам обязательно
следует принимать и оправлять куки — ведь капча работает
на сессиях PHP.
Итак, получаем капчу, сохраняем его в файл, разбираем эту капчу вручную
и шлем
второй запрос уже на страницу с формой вместе с POST данными для формы (и с разобранной капчей).
Не ошибитесь и не сделайте лишнего запроса к капче!
Использование сервисов распознавания
В предыдущем примере мы распознавали вручную,
однако, чаще всего это делать нецелесообразно.
Лучше подключить специальный сервис, на котором специально обученные
китайцы за копейки разбирают капчи.
Как это работает: вы считываете капчу в файл, а затем используя
API сервиса отправляете эту капчу на сервис.
Через 3-5 секунд получаете эту капчу обратно в разобранном виде.
Стоит это удовольствие не дорого —
менее одного доллара за 1000 разобранных капч.
Сервисы распознавания капч
https://rucaptcha.com/,
https://anti-captcha.com/ (он же antigate),
Нейронная сеть
https://habrahabr.ru/post/63854/
разбор капчи, не нейронная сеть
http://asam.by/archive/my_funn/
нейронная сеть для капчи
http://xakep-archive.ru/xa/135/044/1.htm
распознавание php, нейронная сеть
нейронная сеть php для разбора капчи
http://eax.me/captcha-recognition/ — тут хороший цикл статей НЕ PHP
снять видео надо
http://neuralnet.info/ — еще учебник, простой и хороший
http://www.neuroproject.ru/neuro.php — учебник по нейронным сетям
Что вам делать дальше:
Приступайте к решению задач по следующей ссылке: задачи к уроку.
Когда все решите — переходите к изучению новой темы.
Чтобы избежать обнаружения, хакеры требуют, чтобы цели заполняли CAPTCHA
Microsoft Security Intelligence
CAPTCHA, головоломки с приглушенными звуками, размытыми или волнистыми буквами, которые веб-сайты используют для фильтрации ботов (часто безуспешно), уже более десяти лет раздражают конечных пользователей. Теперь тесты «вызов и ответ», вероятно, будут мешать целям при атаках вредоносных программ.
Microsoft недавно обнаружила группу атак, распространяющую вредоносный документ Excel на сайте, требующем от пользователей заполнения CAPTCHA, скорее всего, в попытке помешать автоматическому обнаружению хорошими парнями.Файл Excel содержит макросы, которые при включении устанавливают GraceWire, троян, крадущий конфиденциальную информацию, например пароли. Атаки — это работа группы, которую Microsoft называет Chimborazo, которую исследователи компании отслеживают как минимум с января.
Ранее Microsoft наблюдала, как Чимборазо распространял файл Excel в виде вложений, включенных в фишинговые сообщения, а затем распространял через встроенные веб-ссылки. В последние недели группа начала рассылать фишинговые письма, которые снова меняют ситуацию.В некоторых случаях фишки включают ссылки, ведущие на сайты-перенаправители (обычно это законные сайты, которые были взломаны). В других случаях сообщения электронной почты содержат вложение HTML, содержащее вредоносный тег iframe.
В любом случае нажатие на ссылку или вложение приводит к сайту, с которого цели загружают вредоносный файл, но только после завершения CAPTCHA (что является сокращением от полностью автоматизированного общедоступного теста Тьюринга, позволяющего отличить компьютеры от людей). Цель: воспрепятствовать использованию защитниками автоматизированного анализа для обнаружения и блокировки атак и прекращения атак.Обычно анализ выполняется роботами, которые загружают образцы вредоносных программ, запускают и анализируют их на виртуальных машинах.
Требование успешного завершения CAPTCHA означает, что анализ будет происходить только тогда, когда живой человек загрузит образец. Без автоматизации вероятность того, что вредоносный файл окажется незамеченным, намного выше. Microsoft назвала продолжающуюся атакующую кампанию Chimborazo Dudear.
Реклама
«CHIMBORAZO, группа, стоящая за кампаниями Dudear по развертыванию троянца GraceWire, ворующего информацию, снова усовершенствовала свои методы в постоянном стремлении к уклонению от обнаружения», — написала группа Microsoft Security Intelligence в твите в среду.«Группа теперь использует веб-сайты с CAPTCHA, чтобы избежать автоматического анализа».
CHIMBORAZO, группа, стоящая за кампаниями Dudear по развертыванию троянца GraceWire, ворующего информацию, снова усовершенствовала свои методы в постоянном стремлении к уклонению от обнаружения. Группа теперь использует веб-сайты с CAPTCHA, чтобы избежать автоматического анализа. pic.twitter.com/Kz3cdwYDd7
— Microsoft Security Intelligence (@MsftSecIntel) 17 июня 2020 г.
Поток атаки выглядит так:
Microsoft Security Intelligence
В ходе кампании, которую группа Security Intelligence описала в январе, Чимборазо использовал службу отслеживания IP для отслеживания IP-адресов машин, которые загружают вредоносный файл Excel, предположительно, чтобы также избежать автоматического обнаружения.Тогда Microsoft впервые увидела, что Chimborazo использует сайты-перенаправители.
Жером Сегура (Jérôme Segura), руководитель отдела аналитики угроз в компании Malwarebytes, специализирующейся на обеспечении безопасности, сказал, что использование CAPTCHA в атаках вредоносных программ является редкостью, но не беспрецедентным. Он указал на этот твит из конца декабря, в котором было то же самое. В этом случае злоумышленникам требовалось, чтобы цели выполняли CAPTCHA, который был подделкой службы Google reCAPTCHA. Хотя это подделка, она служила той же цели, что и настоящий — помешать автоматическому анализу, требуя от реального человека загрузки файла.
CAPTCHA, обнаруженная Microsoft, также может быть поддельной reCAPTCHA. Доказательства: как видно на изображении вверху этого поста, там написано reCAPTCHA, а ниже заявляется, что он обеспечивает «защиту от DDoS с помощью Cloudflare». Это две отдельные услуги. (Опять же, как отмечает один из комментаторов, возможно, злоумышленники использовали обе службы по отдельности.) Представители Google не сразу ответили на электронное письмо с просьбой прокомментировать этот пост.
Периодическое изменение процедур атаки — это один из способов, с помощью которого злоумышленники опережают защитников, создавая бесконечный процесс возвратно-поступательного движения, требующий постоянной бдительности от защитников, чтобы оставаться на высоте.Вероятно, в ближайшие месяцы группа нападения снова изменит курс.
Сообщение обновлено, добавлены комментарии в предпоследнем абзаце.
Тест Google reCAPTCHA был обманут искусственным интеллектом.
Вместо этого, по словам Акроута, многие сайты предпочитают вести переговоры немного более любезно. Если посетитель веб-сайта опускается ниже порога «бот или нет», на сайте отображается страница со старым стилем флажка «Я не робот», позволяя людям лучше понять, почему их покупка в Интернете или что-то еще было прервано, и давая им понять шанс доказать свою человечность.«Большинство программистов, которых я знаю, добавляют флажки, потому что они не знают, как выбрать время, когда они спрашивают v3 о его убеждениях». Под этим он подразумевает, что версия 3 имеет постоянный счет; веб-сайты могут получить к нему доступ в любое время. Сделайте это наугад, и сайт внезапно перестанет работать.
Подробнее: Captcha умирает. Вот как его заново изобретают для возраста искусственного интеллекта
И именно в этом пробеле обнаруживаются Акроут и его коллеги-исследователи. Флажок «Я не робот» был введен в версии 2 reCAPTCHA, который анализирует поведение, включая движения мыши, для обнаружения ботов.Исследователи создали автоматизированную систему, которая может обмануть эту часть reCAPTCHA.
Он не обращается напрямую к невидимой оценке версии 3, а к анализу движения мыши, впервые введенному в версии 2, но из-за того, как система реализована на некоторых веб-сайтах, не нужно вводить в заблуждение новую систему. Другими словами, они нашли другой способ обойти reCAPTCHA с использованием ИИ, но он не такой грандиозный, как обещали.
Это не убеждает Нан Цзяна из Борнмутского университета, который не участвовал в этом исследовании.«Теоретически любую схему CAPTCHA, основанную исключительно на изучении поведения пользователя, можно взломать с помощью специализированных алгоритмов машинного обучения, поскольку такие алгоритмы можно легко использовать для имитации реального взаимодействия пользователя со страницей», — отмечает он. «Однако Google ReCAPTCHA… сочетает в себе другие технологии, чтобы предсказать, насколько клиенту можно доверять, а затем попытаться внести этого клиента в белый список. Как только вы попадете в белый список, все, что вы сделаете, все равно позволит вам пройти тест».
Акрут и его коллеги-исследователи обманывают одну часть reCAPTCHA, используя тип машинного обучения, называемый обучением с подкреплением, в котором программный агент пытается найти наилучший возможный путь, поощряемый вознаграждением за каждый шаг в правильном направлении.Их система размещает сетку квадратов на странице, перемещая мышь по диагонали через сетку к кнопке «Я не робот». Учитывая положительное подкрепление, если оно было успешным, и отрицательное, если нет, система изучает правильные способы передвижения, чтобы убедить reCAPTCHA в том, что мышь находится под контролем. Газета утверждает, что она работает с точностью 97,4%. На момент публикации Google не ответил на запрос о комментарии по поводу статьи.
Но Джейсон Полакис, доцент кафедры информатики в Университете Иллинойса, взломавший reCAPTCHA версии 2, отмечает, что v3 reCAPTCHA — это нечто большее, чем работа, описанная в статье.«Атака, которую пытается продемонстрировать эта статья, просто перемещается от случайной начальной точки на странице к флажку», — говорит он. «Это очень конкретное и ограниченное подмножество взаимодействий, которые пользователь будет иметь с реальной страницей на практике (например, заполнение форм, взаимодействие с несколькими элементами страницы, перемещение по более сложным шаблонам и т. Д.)».
Он добавляет: «Если Google также улучшит использование более продвинутых методов, таких как снятие отпечатков пальцев с браузера / устройства (признаки, которые мы обнаружили, когда мы провели обширный углубленный анализ и взлом ReCaptcha v2), атака будет даже на практике все сложнее.«
Акроут согласен с тем, что атака на основе движения мыши имеет ограничения, но они немного раскрывают принцип работы reCAPTCHA v3.» Если вы подключены к своей учетной записи Google с обычного IP-адреса, система в большинстве случаев будет возвращать что вы человек «, — говорит он. Подключайтесь через TOR или прокси, и чаще всего о вас будут сообщать как о боте.
Как взломать систему CAPTCHA за 15 минут с помощью машинного обучения | Автор: Адам Гейтгей
Давайте взломаем самый популярный в мире плагин CAPTCHA для WordPress
Все ненавидят CAPTCHA — эти надоедливые изображения, которые содержат текст, который нужно ввести, прежде чем получить доступ к веб-сайту.CAPTCHA были разработаны для предотвращения автоматического заполнения форм компьютерами путем подтверждения того, что вы являетесь реальным человеком. Но с развитием глубокого обучения и компьютерного зрения их теперь часто можно легко победить.
Я читал отличную книгу Адриана Роузброка « Deep Learning for Computer Vision with Python ». В книге Адриан рассказывает, как он обошел CAPTCHA на веб-сайте E-ZPass New York с помощью машинного обучения:
У Адриана не было доступа к исходному коду приложения, генерирующего изображение CAPTCHA.Чтобы сломать систему, ему пришлось загрузить сотни примеров изображений и вручную решить их, чтобы обучить свою систему.
Но что, если мы хотим сломать систему CAPTCHA с открытым исходным кодом, в которой у нас есть доступ к исходному коду?
Я зашел в реестр плагинов WordPress.org и поискал «captcha». Лучший результат называется «Really Simple CAPTCHA» и имеет более 1 миллиона активных установок:
И, что самое главное, он поставляется с исходным кодом! Поскольку у нас будет исходный код, генерирующий CAPTCHA, его будет довольно легко взломать.Чтобы усложнить задачу, давайте ограничимся по времени. Можем ли мы полностью взломать эту систему CAPTCHA менее чем за 15 минут? Давай попробуем!
Важное примечание: Это никоим образом не является критикой плагина Really Simple CAPTCHA или его автора. Сам автор плагина говорит, что это уже небезопасно, и рекомендует использовать что-нибудь другое. Это просто увлекательная и быстрая техническая задача. Но если вы один из оставшихся более 1 миллиона пользователей, возможно, вам стоит переключиться на что-то другое 🙂
Чтобы сформировать план атаки, давайте посмотрим, какие изображения генерирует Really Simple CAPTCHA.На демонстрационном сайте мы видим это:
Демо-изображение CAPTCHA
Итак, изображения CAPTCHA кажутся четырьмя буквами. Давайте проверим, что в исходном коде PHP:
Да, он генерирует 4-буквенные CAPTCHA, используя случайное сочетание четырех разных шрифтов. И мы видим, что он никогда не использует «O» или «I» в кодах, чтобы избежать путаницы с пользователем. Таким образом, у нас остается 32 возможных буквы и цифры, которые нам нужно распознать. Без проблем!
Прошедшее время: 2 минуты
Прежде чем мы продолжим, давайте упомянем инструменты, которые мы будем использовать для решения этой проблемы:
Python 3
Python — это увлекательный язык программирования с отличными библиотеками для машинного обучения и компьютерного зрения.
OpenCV
OpenCV — популярная платформа для компьютерного зрения и обработки изображений. Мы будем использовать OpenCV для обработки изображений CAPTCHA. У него есть API Python, поэтому мы можем использовать его прямо из Python.
Keras
Keras — это среда глубокого обучения, написанная на Python. Это упрощает определение, обучение и использование глубоких нейронных сетей с минимальным кодированием.
TensorFlow
TensorFlow — это библиотека Google для машинного обучения.Мы будем кодировать на Keras, но Keras фактически не реализует логику нейронной сети. Вместо этого он за кулисами использует библиотеку Google TensorFlow для выполнения тяжелой работы.
Хорошо, вернемся к вызову!
Для обучения любой системы машинного обучения нам нужны обучающие данные. Чтобы сломать систему CAPTCHA, нам нужны обучающие данные, которые выглядят следующим образом:
Поскольку у нас есть исходный код плагина WordPress, мы можем изменить его, чтобы сохранить 10 000 изображений CAPTCHA вместе с ожидаемым ответом для каждого изображения.
После нескольких минут взлома кода и добавления простого цикла ‘for’ у меня была папка с данными обучения — 10 000 файлов PNG с правильным ответом для каждого в качестве имени файла:
Это единственный часть, где я не буду приводить вам рабочий пример кода. Мы делаем это для образования, и я не хочу, чтобы вы на самом деле спамили реальными сайтами WordPress. Однако в конце я дам вам 10 000 изображений, которые я создал, чтобы вы могли повторить мои результаты.
Прошедшее время: 5 минут
Теперь, когда у нас есть обучающие данные, мы можем использовать напрямую для обучения нейронной сети:
При достаточном количестве обучающих данных этот подход может даже сработать, но мы можем сделать проблему намного проще.Чем проще задача, тем меньше данных для обучения и меньше вычислительных мощностей потребуется для ее решения. В конце концов, у нас всего 15 минут!
К счастью, изображения CAPTCHA всегда состоят только из четырех букв. Если мы можем каким-то образом разделить изображение на части, чтобы каждая буква представляла собой отдельное изображение, тогда нам нужно только обучить нейронную сеть распознавать одну букву за раз:
У меня нет времени, чтобы просмотреть 10000 обучающих изображений и вручную разделить их на отдельные изображения в Photoshop.Это займет несколько дней, а у меня осталось всего 10 минут. И мы не можем просто разделить изображения на четыре части равного размера, потому что CAPTCHA случайным образом размещает буквы в разных горизонтальных местах, чтобы предотвратить это:
Буквы на каждом изображении размещены случайным образом, чтобы немного затруднить разделение изображение.
К счастью, мы все еще можем автоматизировать это. При обработке изображений нам часто требуется обнаруживать «капли» пикселей одного цвета. Границы вокруг этих непрерывных пикселей называются контурами , .OpenCV имеет встроенную функцию findContours () , которую мы можем использовать для обнаружения этих непрерывных областей.
Итак, мы начнем с необработанного изображения CAPTCHA:
А затем мы преобразуем изображение в чисто черно-белое (это называется t hresholding ), чтобы было легко найти непрерывные области:
Далее мы будем использовать функцию OpenCV findContours () для обнаружения отдельных частей изображения, которые содержат непрерывные капли пикселей одного цвета:
Тогда просто нужно сохранить каждую область как отдельное изображение. файл.И поскольку мы знаем, что каждое изображение должно содержать четыре буквы слева направо, мы можем использовать это знание для обозначения букв при их сохранении. Пока мы сохраняем их в этом порядке, мы должны сохранять каждую букву изображения с правильным названием буквы.
Но подождите — я вижу проблему! Иногда у CAPTCHA есть перекрывающиеся буквы, например:
Это означает, что в конечном итоге мы извлечем области, которые смешивают две буквы вместе, как одну область:
Если мы не справимся с этой проблемой, мы в конечном итоге создадим плохие данные для обучения. .Нам нужно исправить это, чтобы случайно не научить машину распознавать эти две сдавленные буквы как одну букву.
Здесь можно просто уловить, что если одна контурная область намного шире, чем высота, это означает, что у нас, вероятно, есть две буквы, сплющенные вместе. В этом случае мы можем просто разделить соединенную букву пополам посередине и рассматривать ее как две отдельные буквы:
Мы разделим любые области, которые намного шире их высоты, пополам и будем рассматривать ее как две буквы.Это хакерский метод, но он отлично работает с этими CAPTCHA.
Теперь, когда у нас есть способ извлекать отдельные буквы, давайте пропустим его по всем имеющимся у нас изображениям CAPTCHA. Цель состоит в том, чтобы собрать разные варианты каждой буквы. Мы можем сохранить каждую букву в отдельной папке, чтобы все было организовано.
Вот изображение того, как выглядела моя папка «W» после того, как я извлек все буквы:
Некоторые буквы «W» извлечены из наших 10 000 изображений CAPTCHA. В итоге у меня получилось 1147 различных изображений с буквой «W».
Прошедшее время: 10 минут
Поскольку нам нужно распознавать только изображения отдельных букв и цифр, нам не нужна очень сложная архитектура нейронной сети. Распознать буквы — намного проще, чем распознать сложные изображения, такие как изображения кошек и собак.
Мы будем использовать простую архитектуру сверточной нейронной сети с двумя сверточными слоями и двумя полносвязными слоями:
Эти хакеры прятали вредоносное ПО за капчей
Хакеры используют методы Captcha для обхода автоматического анализа URL-адресов, говорят исследователи безопасности из американской компании Cofense, что является лишь последним творческим ходом киберпреступников по обходу традиционных методов обнаружения вредоносных программ.
Этот метод позволяет им массово рассылать фишинговые письма в обход защищенных почтовых шлюзов, например что из Mimecast.
Этот шаг был идентифицирован Cofense в кампании, в которой он был, по сути, вторым этапом более широкой компрометации сети; как только хакеры получили данные для входа в учетную запись одного сотрудника, они затем использовали их, чтобы собрать как можно больше учетных данных, отправив электронные письма другим сотрудникам.
В этих письмах утверждается, что они содержат голосовую почту voip2mail от коллеги.Само сообщение имеет простой дизайн, как показано ниже.
Если кто-то щелкнет ссылку, чтобы услышать голосовое сообщение, он будет перенаправлен на веб-сайт, который немедленно попросит вас выполнить тест проверки Captcha. После прохождения этого пользователю будет предложено выбрать учетную запись Microsoft и войти в систему. Все данные, вводимые на эту страницу входа, собираются хакером.
Умная часть этого взлома заключается в том, что проверка проверки Captcha проводится на другой веб-странице: нажатие кнопки Captcha приводит к перенаправлению на веб-страницу, содержащую вредоносное ПО.Этот слой чистой страницы поверх зараженной страницы входа — это то место, где обычное сканирование безопасности обходится.
Обход защищенного шлюза электронной почты
Когда безопасный шлюз электронной почты (SEG) просканировал ссылку на веб-сайт, содержащуюся в голосовой почте, он смог просканировать только веб-сайт Captcha, который получил чистую справку о состоянии. Это эффективно блокирует выполнение SEG своей работы за счет использования многоуровневой веб-страницы.
Исследователи Cofense отметили: «Как страница приложения Captcha, так и основная фишинговая страница размещены в инфраструктуре MSFT.Обе страницы являются законными доменами верхнего уровня Microsoft, поэтому при проверке их по базам данных репутации доменов мы получаем ложноотрицательный результат, и страницы возвращаются как безопасные ».
Страница запроса входа пользователя
См. Также: Galileo поразил 1 миллиард смартфонов Landmark
Эта статья из архива CBROnline: некоторое форматирование и изображения могут отсутствовать.
Хотите узнать больше о технологическом лидерстве?
Подпишитесь на еженедельную рассылку журнала изменений Tech Monitor, чтобы получать самую свежую информацию и аналитические материалы прямо на ваш почтовый ящик.
Устаревший контент CBR Online.
CAPTCHA умирает? Что защитит нас в будущем?
Возможно, вы не знаете, что такое CAPTCHA, но наверняка уже использовали ее много раз раньше. Этот искаженный текст, который нужно набрать еще раз, прежде чем вы сможете отправить форму на веб-сайте? Это капча в действии.
CAPTCHA на самом деле является очень важным инструментом для защиты веб-сайтов от ботов и автоматизированных средств взлома. Вредоносные программы очень хорошо умеют автоматически заполнять формы, но не очень хорошо расшифровывают текст, скрытый в изображениях. И именно этот принцип в первую очередь привел к созданию тестов CAPTCHA.
Вы человек?
Боты были серьезной проблемой для владельцев веб-сайтов в течение многих лет. Чтобы помочь отделить реальных людей от ботов, технологи изобрели полностью автоматизированный общедоступный тест Тьюринга, чтобы отличить компьютеры и людей друг от друга — CAPTCHA.Люди могут читать текст, скрытый на картинках, компьютеры — нет.
Недавно тест CAPTCHA несколько изменился. Теперь вам представлены девять маленьких картинок, и вы должны щелкнуть все, которые соответствуют конкретной инструкции; например, все изображения, на которых изображена витрина. Однако основной принцип остается прежним — боты не могут точно анализировать картинку, поэтому они не могут обмануть систему.
Компьютеры могут пройти тест
Проблема в том, что компьютеры становятся умнее.Технологии искусственного интеллекта и машинного обучения означают, что боты могут научиться анализировать изображения и определять буквы, спрятанные в них. Они могут даже точно идентифицировать элементы на изображениях, что позволяет им обходить новые системы CAPTCHA.
Что дальше?
К сожалению, это означает, что CAPTCHA больше не защищает от ботов. Это также означает, что веб-сайты, все еще использующие CAPTCHA, подвержены риску взлома.
Специалисты по веб-технологиям ищут другие способы определить, являетесь ли вы человеком или нет.Одним из решений, предложенных Amazon, является использование теста, который люди не выдержат, например подсчета количества раз, когда буква «е» появляется в длинном предложении. Боты не проиграют эти тесты, но люди часто это делают.
Google разработал еще одну альтернативу, которую они назвали «Invisible reCaptcha». Система использует ИИ, чтобы определять, как вы взаимодействуете с веб-страницей, например, отслеживая движения мыши и время щелчка. Поскольку бот не совершает этих «человеческих» движений, система может идентифицировать и блокировать их — даже если вы даже не подозреваете, что они там есть.
Нужна рабочая замена
Удерживая ботов от своих веб-сайтов, операторы сайтов гарантируют, что их списки рассылки точны, конкурсы не обманываются, товары и билеты не продаются нелегальным рекламодателям и перепродавцам, а ваши данные не украдены. Так что работающая система CAPTCHA на самом деле приносит пользу и вам.
Если невозможно найти подходящую замену CAPTCHA, возможно, владельцы веб-сайтов вынуждены использовать альтернативную систему, которая проверяет личность.Входы в социальные сети, такие как Facebook и Google, являются полезным вариантом, но они также могут использоваться ботами.
Может случиться так, что борьба с ботами станет гонкой между системами искусственного интеллекта; Хорошие операторы сайтов сражаются с хакерами с помощью все более умных компьютерных систем, которые могут научиться определять человека. По иронии судьбы, в будущем мы можем ожидать меньшего человеческого участия в процессе принятия решений.
CAPTCHA Hacking Landscape в 2020 году
Развитие компьютерных технологий позволяет плохим ботам проникать дальше в сети, и, находя ценность, которую можно извлечь за счет автоматизации, они наносят больший урон.
Взломать Captcha еще никогда не было так просто с широко доступными интеллектуальными инструментами. Хотя использование защитного решения может дать чувство безопасности, ложное ощущение, скорее всего, будет недолговечным, попутно подвергая опасности ваш онлайн-бизнес.
Капча мертва? Даже в общих чертах, captcha является необходимостью для остановки злонамеренной автоматизации (плохих ботов), однако, чтобы понять, «что делает captcha безопасным?», Вы должны сначала понять, как выглядит среда взлома captcha.
Как злоумышленники уничтожают CAPTCHA? | 5 эффективных методов и инструментов
Существует пять основных методов, которые мошенники используют при взломе системы CAPTCHA;
- Алгоритмы машинного обучения
- CAPTCHA Solving Farms
- Обратные атаки библиотеки
- Взлом API
- Автоматизация браузера
Эти методы могут использоваться на основе целевой системы CAPTCHA или в комбинации друг с другом для дальнейшего повышения сложности программы-боты, которые затем можно использовать для масштабных мошеннических операций.
Взлом CAPTCHA с помощью алгоритмов машинного обучения
Машинное обучение позволяет программистам находить оптимизированные решения для конкретных задач или проблем. ML достигает этого, используя образцы данных для построения математической модели, которая может выполнять миссию без явных инструкций.
CAPTCHA, статический механизм по своей природе, представляет собой идеальную проблему, которую можно решить с помощью алгоритма машинного обучения. Киберпреступники могут создать набор данных из целевой задачи проверки капчи, который легко доступен в Интернете для обучения модели с помощью контролируемого алгоритма обучения.При наличии достаточного количества данных и хорошей архитектуры модели модель может достичь достаточно высокой точности.
Насколько жизнеспособен ML для взлома CAPTCHA?
Исследователи из Ланкастерского университета, Северо-Западного университета и Пекинского университета использовали GAN (Generative Adversarial Network) — тип глубокой нейронной сети — для создания решателя капчи для текстовых схем капчи. Для обучения модели требовалось всего 500 изображений, и она могла взламывать текстовые капчи с точностью 80%. Исследователи применили свою модель к 33 текстовым решениям CAPTCHA, включая 32 самых популярных веб-сайта в мире, таких как Google, Microsoft, eBay, Wikipedia, Baidu и многие другие.
Очевидно, что текстовых CAPTCHA не являются жизнеспособным вариантом в сегодняшнем Интернете. Алгоритмы машинного обучения также могут успешно использоваться для взлома других форм интерактивной CAPTCHA; однако это не серебряная пуля, и есть способы предотвратить угрозы на основе машинного обучения, которые мы немного обсудим.
Взлом CAPTCHA с использованием обратной библиотеки ИЛИ атаки грубой силы
Этот тип атаки часто направлен на менее сложные или собственные решения для проверки капчи, которые внедряются небольшими веб-сайтами.
Злоумышленники могут собрать всю базу данных вопросов / изображений с помощью простого сценария, а затем получить ответы на вопросы или изображения с пометкой через стороннюю службу. Таким образом, злоумышленники получат ответы на весь банк вопросов, а капча будет сочтена бесполезной.
Другой способ — просто позволить программе-боту попытаться передать капчи случайным образом. Каждый раз, когда программа проходит успешно, она может записывать правильный ответ на этот вопрос, и в конечном итоге программа получит всю базу данных вопросов с правильными ответами, считая капчу бесполезной.
CAPTCHA Cracking with API Hacking
API (Application Programming Interface) — это набор функций и процедур, позволяющих создавать приложения, которые получают доступ к функциям или данным операционной системы, приложения или других служб.
Взлом API в контексте CAPTCHA относится к возврату ложных ответов на вызовы — часто посредством js-инъекции — в попытке обмануть серверную систему.
Когда законные пользователи взаимодействуют с CAPTCHA во внешнем интерфейсе, данные извлекаются и обрабатываются на основе определенных правил.Эти данные могут пройти проверку, поскольку серверные программы определяют, что данные были обработаны с соблюдением правильных правил. Правила — это логика, которая определяет взаимодействие между интерфейсом и сервером, включая тип данных, формат и шифрование.
Однако логика выражается с помощью JavaScript, что означает, что она отображается во внешнем интерфейсе. Следовательно, злоумышленники могут интерпретировать логику и, таким образом, создавать поддельные данные в соответствии с логикой системы. Большинство традиционных капч имеют слабое внешнее шифрование, а капчи с обычными системами обнаружения с трудом распознают особенности фальшивых данных.
Обход CAPTCHA с помощью «CAPTCHA Solving Farms»
Ферма решения CAPTCHA относится к службам автоматического распознавания капчи, где капчи направляются через API-интерфейсу людям, которые решают капчи удаленно.
Поскольку задачи CAPTCHA предназначены для того, чтобы определить, является ли пользователь, стоящий за запросом, человеком, фермы, решающие капчу, являются, пожалуй, наиболее законным способом обхода систем капчи. Сегодня эти услуги можно приобрести примерно за 1 доллар США.5 $ за 1000 решенных капч.
Что касается масштабов атак, то фермы капчи могут быть невыгодными для атак типа грубой силы, однако, когда речь идет об утечке учетных данных пользователя в результате утечки данных, фермы, использующие капчу, представляют большую опасность. Хотя обнаружение ферм, решающих капчу, возможно, для этого требуется довольно сложная процедура со стороны провайдеров капчи.
Масштабирование взлома CAPTCHA с помощью «инструментов автоматизации браузера»
Также называемый «безголовыми браузерами», позволяет запускать полную версию браузера, управляя им программно.Это означает, что эти инструменты могут работать без графического пользовательского интерфейса (GUI).
Автоматизация браузера — это не метод прямого взлома капчи как таковой, а, скорее, мощный инструмент, который позволяет программам-ботам выглядеть более похожими на людей и делает их чрезвычайно трудными для обнаружения системами обнаружения ботов.
Благодаря автоматизации браузера можно переходить от страницы к странице без вмешательства человека, оценивать JavaScript или эмулировать функциональность браузера, что позволяет хакерам легко выполнять сложные и крупномасштабные операции.
Что делает CAPTCHA безопасным в 2020 году?
Методы взлома CAPTCHA многочисленны, и инструменты взлома легко доступны. С помощью этих легко доступных инструментов и методов традиционные капчи легко обойти, что делает сайты уязвимыми для злонамеренных автоматических атак.
Однако с введением Advanced CAPTCHA эпоха капчи далеко не закончилась. При интеграции с внутренним движком возможности для усложнения кода капчи очень широки.Мы можем наблюдать наиболее выдающиеся из этих возможностей изощренности по трем основным категориям;
- Обнаружение среды
- Обнаружение поведения
- База данных динамических ресурсов
Защита CAPTCHA с помощью обнаружения окружающей среды
Обнаружение среды относится к информации, полученной из компьютерной среды пользователя, такой как технические характеристики оборудования, различные устройства, экран размер, свойства браузера, версия и т. д.
Используя сложные модели машинного обучения для расширенного анализа, информацию об окружающей среде можно использовать для точного обнаружения средств автоматизации браузера. Уменьшая возможности использования инструментов автоматизации браузера из арсенала хакеров, усовершенствованное решение для проверки пароля может значительно ограничить способность хакеров оставаться незамеченными и масштабировать свои мошеннические операции.
В то время как надежное внешнее шифрование и динамическая приманка могут снизить угрозу взлома API, сложные методы определения происхождения могут точно определять запросы от ферм капчи.(ссылка; captcha farm)
Сложное обнаружение среды является обязательным условием для любой продвинутой капчи, чтобы оставаться актуальной на сегодняшнем рынке обнаружения и устранения ботов, однако оно не может обеспечить безопасность только само по себе.
Защита CAPTCHA с помощью Behavioral Detection
Интеграция поведенческого анализа в captcha позволяет решать не столько «правильный» ответ, сколько «метод» получения ответа.
Биометрические данные, сгенерированные в результате взаимодействия пользователя с модулем captcha, используются в механизме анализа рисков, чтобы определить, принадлежит ли поведение человеку или машине.Это кардинальное изменение логики защиты ботов по сравнению со старыми поколениями капч и критически важная функция для любых соответствующих продвинутых решений капчи.
Модель биометрической классификации в модели капчи означает, что просто использовать ML и OCR для решения проблемы недостаточно. Автоматизированная программа должна не только решать задачу, но и делать это, точно имитируя человеческое поведение. Создание подлинно человеческих биометрических данных для прохождения механизма анализа рисков — хотя это возможно — все же вводит достаточно ограничений, чтобы предотвратить «успешную атаку ботов».
Угрожают ли поведенческие данные конфиденциальности?
При таком объеме информации, который модуль капчи может получить от взаимодействия с пользователем, среды просто недостаточно, чтобы ответить на вопрос «Кто стоит за этим запросом?» следовательно;
сам по себе расширенный модуль капчи не представляет угрозы для конфиденциальности пользователя.
Однако, если данные, полученные из пользовательской среды и взаимодействия с модулем, объединяются с большим количеством данных — через общие файлы cookie — одним и тем же объектом, то это может представлять угрозу для конфиденциальности пользователя.Однако в качестве автономного решения безопасности расширенные капчи не представляют угрозы для конфиденциальности пользователей.
Защита CAPTCHA с помощью динамической базы данных ресурсов
Статическая защита по своей природе будет нарушена, независимо от того, насколько сложной она может быть.
Как только CAPTCHA представлена пользователю, изображение, используемое в задаче, становится общедоступным. Это означает, что хакеры могут использовать эти изображения для обучения модели машинного обучения или использовать их для атак типа обратной библиотеки.Таким образом, изображения, используемые в задачах, могут представлять угрозу безопасности капчи.
Постоянно обновляя пул ресурсов и шифруя образы, используемые в задачах, расширенные капчи могут предотвратить атаки типа обратной библиотеки и грубой силы, что значительно увеличивает стоимость попытки атаки.
Заключение
Существует широкий спектр методов, используемых для взлома CAPTCHA, которые легко доступны и легко доступны.Хотя большинство устаревших систем капчи совершенно неэффективны против плохих ботов, некоторые решения, такие как ReCaptcha от Google, могут снизить скорость атак за счет очень сильного трения для ваших законных пользователей. Эти решения, хотя и достаточны для небольшого веб-сайта или личного блога, совершенно неэффективны, когда речь идет о предотвращении мошенничества с ботами и связанных с этим финансовых потерь, наносящих ущерб онлайн-бизнесу.
Почему интернет-предприятиям угрожает вредоносная автоматизация (плохие боты)?
Для любого онлайн-бизнеса, который имеет конфиденциальные страницы входа / регистрации, отправляет различные формы или использует рекламные акции типа подарочных карт, денежное выражение может быть извлечено с помощью автоматизации, что означает, что они будут нацелены на злонамеренные автоматизированные программы (a.k.a плохие боты).
Как я могу защитить свой бизнес в Интернете от автоматических атак?
Чтобы предотвратить вредоносную автоматизацию, наносящую вред вашему онлайн-бизнесу, в Geetest мы разработали решение CAPTCHA на основе передовых технологий искусственного интеллекта и моделей глубокого обучения, чтобы не только гарантировать безопасность вашего бизнеса от вредоносной автоматизации, но и обеспечить непревзойденную пользовательский опыт, чтобы максимизировать бизнес-необходимость решения для защиты от ботов.
Geetest — это ведущее в мире решение CAPTCHA корпоративного уровня на базе искусственного интеллекта, которое защищает более 290 000 онлайн-предприятий по всему миру.
Поймали CAPTCHA?
Не забывайте о злонамеренном решении CAPTCHA.
Я не знаю никого, кто любит CAPTCHA (полностью автоматизированный общедоступный тест Тьюринга, позволяющий отличить компьютеры от людей). Это небольшие онлайн-тесты, которые якобы определяют, выполняется ли выполняемое действие человеком или какой-то автоматизированной программой-ботом или скриптом. Они необходимы, потому что злоумышленники в Интернете в противном случае злоупотребляли бы задействованными службами для создания поддельных учетных записей, используемых для взлома других, или просто злоупотребляли системой каким-либо другим способом.CAPTCHA — неудачная, но необходимая часть жизни (по крайней мере, сейчас). Мы вынуждены взаимодействовать с ними при новой регистрации на веб-сайтах или при выполнении потенциально рискованных действий.
Примеры CAPTCHA
Существует множество различных типов CAPTCHA, от очень простых для решения до тех, которые требуют больших усилий и более подвержены человеческим ошибкам. В своей простейшей форме они представляют собой просто поле (см. Пример ниже), которое нам предлагается щелкнуть.
И все, что мы делаем, это щелкаем мышью по полю, чтобы доказать, что мы не бот, в результате чего все мы видим изображение ниже.
Некоторые тесты CAPTCHA просят нас напечатать символы, которые мы видим, которые были преувеличены и изменены каким-то образом, чтобы люди предположительно могли их различить, но программа автоматического оптического распознавания символов (OCR) не могла. См. Пример ниже.
Я уверен, что многие из нас действительно ненавидят такого рода тесты, потому что иногда бывает сложно понять, что это за символы или слова. Раньше я даже нажимал кнопку «Отправить новое слово», и мне приходилось перебирать несколько новых предложений, прежде чем я смог найти одно, в котором я смогу вычислить на 100%.
Некоторые CAPTCHA (например, приведенная ниже), используемые Tik Tok, просто просят вас выбрать два похожих объекта.
Самые сложные из них — это те, которые просят вас «щелкнуть по всем квадратам…», которые содержат светофоры, автомобили, дорожные знаки или какое-либо другое предположительно распространенное изображение (например, изображение ниже).
Проблема с этими типами состоит в том, что часто блоки будут содержать очень крошечный кусок требуемого объекта, часто выглядящий почти случайно или микроскопическим, и вы не уверены, следует ли его выбирать или нет.Забудьте о разочаровывающих ботах, CAPTCHA расстраивают людей.
Если вы хотите серьезно смешное видео, высмеивающее испытания и невзгоды, связанные с CAPTCHA, посмотрите это видео здесь.
Уловки CAPTCHA
Причина, по которой CAPTCHA не исчезнет, в том, что они работают. Они значительно побеждают автоматических ботов и скрипты. Хакеры предпринимали множество попыток автоматизировать массовый ответ на CAPTCHA, в том числе с использованием машинного обучения, OCR и инструментов, подобных искусственному интеллекту.Ни один из них не работает так хорошо, как человек.
Итак, хакеры просто передали решение CAPTCHA людям. Хакеры по-прежнему используют ботов и автоматизацию для регистрации на веб-сайтах и создания учетных записей, но весь процесс автоматизирован. Они не используют обычный код соответствующего веб-сайта, который предлагается обычному пользователю, просматривающему веб-страницы. Вместо этого они создают вредоносные программы, которые взаимодействуют с веб-сайтом или его интерфейсом прикладного программирования (API), который удаляет весь читаемый человеком текст и просто быстро заполняет необходимую регистрационную информацию учетной записи.И когда отображается компонент CAPTCHA, бот отправляет только часть CAPTCHA реальным людям, которым хакеры платят за решение одной загадки CAPTCHA за следующей. Где-то в мире есть команды потогонщиков, которые неустанно работают над решением CAPTCHA, одну за другой, как можно быстрее. Рабочие потогонного цеха зарабатывают лишь крошечную сумму за решенную капчу, но если они могут решить от сотен до тысяч задач в день, они могут заработать несколько долларов или приличную жизнь за свои навыки в своей части мира.Я знаю квалифицированных ИТ-специалистов, которые купили своим менее опытным родителям компьютер, установили его у себя дома, а их мама и папа решали CAPTCHA, чтобы пополнить свой нормальный доход. Это не этично, но во многих частях мира именно так часть населения зарабатывает деньги.
Веб-сайты
, использующие CAPTCHA, понимают, что хакеры будут нанимать команды потогонщиков для решения CAPTCHA, поэтому они сопротивляются многими способами, включая отслеживание исходных IP-адресов, участвующих в решении CAPTCHA.Если с одного IP-адреса решается слишком много CAPTCHA, они отключают этот IP-адрес или больше не позволяют ему решать будущие CAPTCHA. Хакеры отреагировали изменением используемых IP-адресов, чтобы они не «сгорели», но это значительно замедлило разгадку незаконных CAPTCHA.
Разочарованные хакеры ответили отправкой CAPTCHA для решения миллионам невинных людей через Интернет, каждый из которых имел свои индивидуальные IP-адреса. Преступники взламывают невинные веб-сайты в Интернете и вместо того, чтобы вставить вредоносный JavaScript, который пытается установить вредоносное ПО или фишинговые учетные данные для входа, он отправляет изображение CAPTCHA, которое, как он надеется, незадачливый пользователь заполнит и ответит.
Именно такая попытка, которую я видел сегодня, вдохновила на создание этого блога. Я зашел на популярный новостной веб-сайт, который посещаю каждый день, несколько раз в день, и внезапно на этом веб-сайте я увидел всплывающее окно CAPTCHA, в котором говорилось, что я должен решить (всего лишь один из простых щелчков — вот типы). Я покачал головой и подумал: «Что это?» и как раз собирался щелкнуть по нему, когда понял, что это, вероятно, вредоносное перенаправление CAPTCHA. Я изучил предложенную CAPTCHA. Это выглядело так же нормально, как и любая CAPTCHA, которую я когда-либо видел.Я бы сделал снимок для этой колонки, но она выглядела как любая другая CAPTCHA, которую я когда-либо видел раньше… никаких признаков ее злонамеренности. Это была просто CAPTCHA на веб-сайте, который не требует регистрации, и никогда раньше меня не просили заполнить CAPTCHA.
Я нажал кнопку обновления, и вредоносная CAPTCHA на JavaScript исчезла, и появился обычный веб-сайт. Я загрузил весь код веб-сайта, чтобы узнать, смогу ли я выяснить, где находится вредоносный JavaScript, но при обновлении моего браузера был куплен новый экземпляр веб-сайта без вредоносной CAPTCHA.Мои «доказательства» исчезли. Что еще более важно, веб-сайт, на котором я был, не просил меня заполнить CAPTCHA, доказывая, что показанный мне был злонамеренным перенаправлением. Я уведомил разработчиков сайта о проблеме, но даже не получил автоматического ответа.
Я не уверен, откуда взялось вредоносное перенаправление CAPTCHA. В среднем популярный веб-сайт содержит от 50 до 150 различных элементов, составляющих страницу веб-сайта, которую мы видим, и большинство из этих элементов поступают от сторонних сайтов и служб, а не от доменного имени, на которое вы перешли.Возможно, вредоносный код JavaScript попал в рекламный баннер. Возможно, это произошло из-за заимствованного элемента JavaScript. Где-то на этой веб-странице был скомпрометированный элемент, который, по крайней мере, в этом одном случае, отображал вредоносное перенаправление CAPTCHA.
Почему следует беспокоиться о вредоносных CAPTCHA
По большому счету, вредоносная переадресация CAPTCHA представляет очень низкий риск для конечного пользователя. Насколько мне известно, их нельзя использовать для автоматической установки вредоносных программ на устройство пользователя или для перенаправления их на вредоносную веб-страницу.В этом плане они немного похожи на рекламное вредоносное ПО — скорее вредитель, чем явная опасность.
Но, как и рекламное ПО, вредоносные CAPTCHA могут быть заменой того, как что-то гораздо более вредоносное представляется нам или нашим конечным пользователям, что, если они этого не осознают и не щелкнут, может привести к чему-то гораздо более вредоносному. Для того, чтобы рекламное ПО и перенаправления CAPTCHA были представлены конечному пользователю, необходимы те же корневые эксплойты, что и гораздо более опасные вещи, которые в противном случае могли бы быть представлены. Присутствие рекламного ПО на компьютере означает, что гораздо более вредоносный троян или программа-вымогатель могут использовать ту же дыру или уловку.Если у пользователя ТОЛЬКО рекламное ПО, ему просто повезло. Все могло быть намного хуже. И если они не поймут, что на компьютер попало рекламное ПО, в следующий раз могут легко случиться худшие вещи. Удача на исходе.
То же самое и с вредоносными переадресациями CAPTCHA. По крайней мере, никто из нас не хочет участвовать в решении головоломок CAPTCHA для хакеров, чтобы они могли автоматизировать создание вредоносных учетных записей и выполнять вредоносные действия по всему миру. Но это также поучительный момент для конечных пользователей. Все пользователи должны знать, что им могут быть представлены потенциально опасные элементы, которые им необходимо оценить и обработать должным образом, даже если они перейдут на то, что они считают «безопасной» веб-страницей.
Обучайте ваших конечных пользователей, чтобы они знали о возможных опасных элементах веб-сайтов, которые вставляются в их любимые, законные веб-сайты; и как распознать и ответить. Курс новой школы по вопросам безопасности направлен на то, чтобы дать людям понять, что можно сделать, как это выглядит и как решать проблемы. Сообщите своим конечным пользователям о потенциальных вредоносных перенаправлениях CAPTCHA, потому что, если они смогут распознать и избежать их, они будут впереди всех с более вредоносными веб-элементами.
Добавить комментарий