Пройдите капчу что это

CAPTCHA — базовый тест безопасности, который используется владельцами сайтов для блокировки нашествий ботов. Он был придуман в начале 2000-х, совершенствовался и помогал защищать ресурсы рекламодателей от генерации фальшивого трафика и лидов.

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

Поэтому сейчас самое время понять, как работает капча и как боты могут их так легко обойти.

Содержание скрыть

Что такое CAPTCHA?

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

Я не робот! Зачем нужна капча | Краткая история CAPTCHA

Капча показывает пользователям изображения, нечитаемые ботами. Что касается знаков — букв и/или цифр, то они, как правило, деформированы, размыты, могут иметь разный шрифт и регистр, представляют собой набор букв в любом порядке, поэтому только реальные пользователи могут их правильно интерпретировать. Изображения могут представлять собой головолоски, пазлы, состоять из вопроса в виде картинок-ответов и т. д.

Пользователи, перешедшие на сайт с CAPTCHA, должны ввести в поле ответа то, что видят на картинке. Правильный ответ пропускает их дальше — к контенту ресурса.

Простые, немодифицированные боты пройти такой тест не смогут — они просто не различат то, что изображено на картинке. Однако злоумышленники развивают автоматизированные скрипты, чтобы они могли различать текст на изображении. По сути, добавляют функционал наподобие сервисов конвертации текстов из PDF в текстовый формат.

Именно поэтому специалистами были разработаны новые, более сложные варианты капчи для повышения безопасности сайтов. К ним относится, например, Google reCAPTCHA.

Типы CAPTCHA

CAPTCHA может быть текстовой, графической или звуковой. Вполне вероятно, многие пользователи сталкивались со всеми тремя видами хотя бы раз в жизни.

Текстовые

Это самый распространенный тип капчи. Пользователь должен прочесть изображенный текст и ввести его в поле ответа (или же ввести только нужную часть). Тесты могут представлять собой полноценное слово или фразу или же простой набор букв и цифр.

Если пользователь не может пройти текстовую CAPTCHA, то ему может быть предложено прохождение метода проверки, например с изображением.

Вот как работают капчи и почему они становятся все сложнее

С изображением

У реальных пользователей могут возникать трудности с прохождением такого тип капчи. Наверняка, вам попадался набор картинок, где нужно выделить все с изображением светофора. И этот светофор оказывался на двух смежных картинках сразу. У человека сразу возникнет вопрос: «выбирать только то изображение, где основная часть светофора или же две картинки сразу?».

К счастью, CAPTCHA можно обновить и получить для прохождения другую картинку, где нужно выбрать автобусы или лодки… которых может быть вообще не изображено на представленном тесте.

Аудио

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

Google reCAPTCHA

Google reCAPTCHA — это более продвинутая версия проверки на ботов. Вместо генерации случайного теста он анализирует паттерн поведения пользователя (работа мышью) и решает, какой тест показать.

Если система принимает решение, что пользователь не бот, ему будет предложено просто поставить галочку напротив опции «Я не робот». В противном случае ему придется пройти более сложный тест, например, отметить все картинки, на которых изображены лодки, пешеходные переходы и т. п.

Как злоумышленники обходят CAPTCHA

Мошенники регулярно разрабатывают и внедряют стратегии для прохождения CAPTCHA. Вот некоторые из них.

Искусственный интеллект (ИИ)

В своей книге «Углубленное изучение компьютерного зрения с Python» Адриан Роузброк показывает стратегию обхода CAPTCHA на сайте E-ZPass (электронный транспондер для оплаты проезда в Нью-Йорке). Так как у него не было доступа к исходному коду ПО, то подход включал загрузку сотен примеров изображений для обучения системы, а затем запуск изученных и полученных данных ИИ.

CAPTCHA с открытым исходным кодом теоретически легче взломать. Киберпреступники могут использовать исходный код для обучения своих скриптов и обхода тестов, независимо от их сложности. Любой человек может сдать экзамен, если перед ним будут лежат ответы на все возможные вопросы.

Клик-фермы

Клик-фермы не намного функциональнее ИИ, однако все равно выполняют свою работу. На ферме используется низкооплачиваемый труд реальных людей, которые проходят капча со множества устройств, которыми управляют, вместо ботов. В то время как CAPTCHA может поставить бота в тупик, человек будет решать их без труда и в кратчайшие сроки.

Существуют также боты-киборги (cyborg bots), которыми частично управляют люди для выполнения сложных процессов, таких как ввод капча. Киборги часто базируются на фермах кликов или фермах ботов.

Взлом CAPTCHA

Некоторые злоумышленники применяют технологии для чтения исходного кода страницы на наличие решений CAPTCHA (если это текст) или поиска ответа, который используется повторно.

Также стратегии обхода капча включают:

  • Использование технологии OCR (оптическое распознавание символов) для чтения символов на экране.
  • Проверка количества используемых изображений и их решение с помощью MD5 (алгоритм хеширования).
  • Отправка пустого параметра. А вдруг «прокатит»?

В ход идут любые средства и технологии.

Сервис разгадывания CAPTCHA

Также злоумышленники могут использовать специальные сервисы решения CAPTCHA. Их поставщики могут использовать все вышеперечисленные нами подходы: от ИИ до ферм кликов и даже простые инструменты API. Такие сервисы можно устанавливать как расширения для браузеров для автоматической работы с капча.

Ошибки безопасности

В 2018 году эксперт по кибербезопасности Андрес Рианчо обнаружил уязвимость reCAPTCHA Google. Суть заключалась в том, что приложения, использующие этот тест, создавали и отправляли запрос с нарушением безопасности, то есть создавая уязвимость. Благодаря ей злоумышленники могли обходить reCAPTCHA.

На данный момент Google исправил ошибку. Однако это яркий пример того, как злоумышленники могут использовать уязвимости для обхода капча на сайтах.

Почему Google reCAPTCHA сложнее обойти

Что интересно, reCAPTCHA анализирует поведение пользователя и адаптирует задачи по мере необходимости. Так, например, большинство ботов никогда не пройдут тест «Я не робот», потому что они не взаимодействуют с веб-страницами так, как это делает человек.

Даже когда роботы сталкиваются с простым чек-боксом, его не так легко пройти. В противном случае боты могли бы захватывать изображения на экране, применять технологию распознавания текста и понимать, куда нажимать.

Тесты reCAPTCHA также анализируют характер движения мыши при нажатии. Эти движения непредсказуемы и отрывисты. Если CAPTCHA обнаруживает такое поведение, то пропускает пользователя. Движения курсора у робота будут более плавными и однотипными.

Что происходит, когда мошенники обходят CAPTCHA

Любой киберпреступник может обойти капча — просто заполнит его, как и любой другой пользователь. Но опасность возрастает, когда он может сделать это с помощью армии своих ботов. А это значит, что злоумышленник способен создать целенаправленную масштабную атаку на сервер, перегружая ресурсы.

Увеличение количества спама

Без эффективной защиты CAPTCHA можно ожидать наплыва спама в комментариях с кучей ссылок на вредоносные сервисы и мошеннические сайты. Если на вашем ресурсе отсутствует модерация комментариев или их можно публиковать без прохождения капчи, то велика вероятность спам-атаки.

Неверные данные аналитики

Боты искажают трафик на сайте и портят всю статистику по переходам и поведению пользователей на сайте. Если злоумышленники найдут способ обхода CAPTCHA, то будет заметен всплеск трафика с нулевыми конверсиями. Вполне вероятно, что возрастет количество брошенных корзин на сайтах интернет-магазинов.

Небезопасная проверка покупок

Если у вас есть интернет-магазин, обход CAPTCHA означает, что мошенники смогут заполучить доступ к учетным записям пользователей, конфиденциальным данным ресурса (например, база данных) и даже совершать покупки с помощью украденных банковских карт (кардинг).

Снижение производительности ресурса

Если у злоумышленника есть доступ к сайту, боты будут бомбардировать его трафиком, отправляя множество запросов на подключение и занимая ограниченные ресурсы. Это означает, что реальные пользователи или не смогут вовсе попасть на сайт или время подключения будет значительно увеличено. Такие атаки могут нанести ущерб бизнесу.

Статистика показывает, что 53% людей уйдут к конкуренту, если ваш сайт загружается дольше 3 секунд.

Как защитить сайт от ботов

Добавьте reCAPTCHA на свой сайт

Тест reCAPTCHA гораздо сложнее обойти, чем простой капча, поэтому рекомендуется добавить его на свой сайт. Его можно использовать бесплатно для первого миллиона проверок за месяц, его легко установить и все, что нужно будет сделать, это подключить сайт к нему по API. Более подробная информация представлена на сайте.

Установите антибот от Botfaqtor

Блокировка ботов с помощью Botfaqtor создает дополнительный уровень защиты сайта, предотвращая генерацию недействительных кликов по рекламе и автоматизированного трафика. Сервис сканирует действия посетителей сайта по более 100 техническим и поведенческим параметрам, выявляет роботизированное поведение и блокирует их взаимодействие с ресурсом.

Это означает, что даже если они пройдут проверку CAPTCHA, антибот Botfaqtor идентифицирует их и запретит доступ к сайту.

Попробуйте антибот от Botfaqtor бесплатно в течение 7 дней и узнайте всё о качестве своего трафика.

Возможно, вам будет интересно:

Как конкуренты скликивают рекламу

Как конкуренты скликивают рекламу

Как избежать интернет-мошенничества: советы интернет-магазинам и покупателям

Как избежать интернет-мошенничества: советы интернет-магазинам и покупателям

Об авторе

Алёна

Пишу о ботах и кибербезопасности

Источник: botfaqtor.ru

2. Нейронные сети с архитектурами DenseNet и DFCR

В 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].

3. Генеративно-состязательная нейросеть

Рис. 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%

4. Свёрточная нейронная сеть + долгая краткосрочная память (LTSM)

Чтобы распознать последовательность символов без сегментации, можно использовать модель, состоящую из свёрточной нейронной сети, соединенной с нейросетью с долгой краткосрочной памятью (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% соответственно.

5. Обучение с подкреплением

Обучение с подкреплением использовалось для обхода 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%.

6. Решение капч людьми

Как можно заметить уже из этой статьи, машинное обучение имеет высокий порог вхождения, а ведь все, что было описано в публикации – только вершина айсберга. Если копать глубже, то скоро можно претендовать на звание джуниора по нейронным сетям =)

А ведь для реальной работы нужна команда специалистов и аренда вычислительных мощностей. Добавим к этому время обучения/переобучения сетей, растущее количество видов капч, разнообразие языков, и получится, что быстрее и дешевле воспользоваться онлайн-сервисами, где капчи решают живые люди.

Среди подобных сервисов выделяется ruCaptcha. На сервисе есть тонкая настройка солвера: количество слов, регистр, цифры и/или буквы, язык (55 на выбор), математические действия и т. д.

Решаются следующие виды капч: обычная текстовая, ReCaptcha версий 2 и 3, GeeTest, hCaptcha, ClickCaptcha, RotateCaptcha, FunCaptcha, KeyCaptcha.

Взаимодействие с сервером происходит через API, то есть можно встроить решение в собственный продукт. Есть функция возврата за неправильное распознавание, а на возникшие вопросы отвечает техподдержка (адекватная в сравнении с конкурентами).

Конечно, за решение капч, сервис платит конкретным людям, готовым решать задания за небольшую плату. Соответственно эти деньги сервис берёт у клиентов, которым не приходится заниматься рутиной. Расценки на момент написания статьи были следующие: 1000 капч взламывались не более, чем за 44 ₽ (в среднем 7.5 с на капчу), 1000 рекапч за 160 ₽ (в среднем 32 с на капчу). То есть единая цена независимо от нагрузки и от того, сколько заплатили другие заказчики.

Для сравнения: один мидл-специалист по машинному обучению обойдется на рынке минимум в 150 000 ₽/мес.

Напишите, если пользовались сервисом – интересно узнать ваше мнение (пока мы основываемся на мнении авторов следующих статей: англоязычная и три русских: раз, два, три).

Источник: proglib.io

Рейтинг
( Пока оценок нет )
Загрузка ...
Заработок в интернете или как начать работать дома