История и развитие CAPTCHA

Мы начали с текстовойCAPTCHA и пришли к простой галочке, которую нужно поставить, совершенствуя систему после каждого сбоя.

Вы заходите на сайт, чтобы купить билеты на самолет. Перед тем как нажать кнопку «Отправить», вам нужно поставить галочку в поле с вопросом: «Вы не робот?»

На первый взгляд это выглядит как ирония. Почему мне нужно подтверждать, что я человек, да еще и перед компьютером?

И даже если я поставлю эту галочку, как это доказывает, что я человек? Ведь робот тоже может поставить галочку, не так ли?

0610bd815659f60eb99fb4857cb79278.png

Это похоже на ситуацию, когда суд присяжных спрашивает у убийцы, совершал ли он преступление. «Конечно, я никого не убивал», — ответил бы обвиняемый.

Так в чем смысл такого вопроса? Зачем вообще существуют CAPTCHA? И как они проверяют, является ли пользователь реальным человеком, основываясь на простых запросах?

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

Что такое CAPTCHA?

CAPTCHA расшифровывается как «Полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей».

Довольно сложная аббревиатура, не так ли? Сейчас мы это упростим.

Что такое тест Тьюринга?
Легендарный британский математик и компьютерный ученый Алан Тьюринг спорил со своими коллегами и критиками о том, может ли когда‑либо машина (цифровой компьютер) достичь уровня интеллекта, сравнимого с человеческим.

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

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

В 2000 году 22-летний юноша по имени Луис фон Ан вместе со своим профессором Мануэлем Блумом разработали CAPTCHA, чтобы предотвратить атаки автоматизированных программ на сети и веб‑сайты.

Зачем нам нужны CAPTCHA?
Вы наверняка слышали о ботах. Боты — это программы, которые могут выполнять определенные задачи на основе заданного им сценария. Они часто имитируют поведение человека и могут выполнять задачи значительно быстрее.

Есть полезные боты, например, поисковые системы, которые сканируют веб‑страницы для индексации контента, или чат‑боты, которые имитируют человеческий диалог.

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

Вот некоторые из вредоносных действий, которые могут совершать такие боты:

  • Подбор учетных данных (Credential Stuffing)

  • Сбор контента (Content Scraping)

  • Атаки DoS или DDoS

  • Сбор электронных адресов

  • Спам‑контент

  • Взлом паролей методом перебора

Если оставить этих ботов без контроля, они могут создавать множество проблем, таких как:

  • Подрыв достоверности онлайн‑опросов.

  • Взлом онлайн‑аккаунтов с помощью атак перебора паролей.

  • Спекуляция билетами: массовая скупка билетов для последующей перепродажи.

В одном таком случае, крупный супермаркет Target столкнулся с утечкой данных в 2013 году, которая затронула 70 миллионов человек. В то время портал для поставщиков Target не имел CAPTCHA. Катастрофа произошла в результате фишингового письма, направленного на их клиентскую базу.

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

Как работает CAPTCHA?

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

Все началось с того, что нужно было вводить странный искажённый текст, чтобы войти на сайт или оставить комментарий.

Таким образом, это было не совсем полностью автоматизировано, так как требовалось вручную ввести текст, но давайте всё равно называть это «полностью автоматизированным». Почему бы и нет?

Виды CAPTCHA

CAPTCHA делятся на три основные категории:

  1. Текстовые CAPTCHA

  2. Изображения CAPTCHA

  3. Аудио CAPTCHA

Давайте рассмотрим каждую из них.

Текстовые CAPTCHA

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

Эти символы представлены в необычном виде, что делает их трудными для понимания автоматизированными программами.

d67f38294f95bf8f146f67357cc4b9a4.jpg

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

CAPTCHA на основе изображений

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

f920502b785aaa46fc408c1a6b9a441a.png

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

Аудио CAPTCHA

Текстовые и визуальные CAPTCHA не подходят для пользователей с нарушениями зрения, поэтому были разработаны аудио CAPTCHA.

d4052a24cb52f3e188ac26aaf1400119.png

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

Появление reCAPTCHA

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

А что, если вместо того, чтобы тратить время на распознавание случайных искажённых текстов, использовать старые, нечитабельные фрагменты книг?

В интервью журналу The Walrus Луис сказал, что создал систему, которая «растрачивала миллионы часов бесценного ресурса — человеческого мозга — по десять секунд за раз».

И это правда! Распознавание 200 миллионов слов в день превращалось в 500 000 часов потраченных усилий.

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

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

31365ade17ab765c8d2e6ef6f778c3b5.png

Эта новая версия CAPTCHA получила название reCAPTCHA. Первая книга, оцифрованная с помощью этого метода,  была архивом New York Times, который начал выпускаться еще в 1851 году и включает на сегодняшний день 13 миллионов статей.

Как работает reCAPTCHA?

Она основывается на принципе краудсорсинга. Сначала книга сканируется в цифровом виде администратором программы reCAPTCHA. Программа выбирает два слова: одно, которое уже прочитано и распознано системой OCR, и другое, которое OCR не смогла распознать.

Пользователь должен угадать оба слова в поле reCAPTCHA. Если пользователь правильно вводит первое (распознаваемое) слово, программа предполагает, что второе введённое слово также верное, и использует его для оцифровки.

90cea4f8336d5ee0bd4d0271e33de024.png

Затем второе слово (которое OCR не смогла прочитать) показывается другим пользователям. Программа сравнивает все ответы, и, набрав достаточно подтверждений, может с высокой степенью уверенности распознать это слово.

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

Google и reCAPTCHA

В 2009 году Google разглядел перспективы и приобрел reCAPTCHA для использования в проекте Google Books. Google использовала reCAPTCHA, чтобы привлекать людей к распознаванию слов или символов, которые их алгоритмы обработки изображений не могли идентифицировать, таким образом, значительно упрощая этот процесс.

Проект Google Books был амбициозной инициативой по оцифровке всех книг в мире и созданию огромной цифровой библиотеки, доступной для всех. По данным Wikipedia, к октябрю 2019 года Google отсканировал более 40 миллионов книг. Однако проект столкнулся с рядом юридических проблем, связанными с авторскими правами, что затруднило его реализацию.

Проблемы с reCAPTCHA

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

Исследование Google 2014 года показало, что современные технологии искусственного интеллекта могут решать даже самые искажённые тексты с точностью 99,8%, а числа на изображениях — с точностью 90%. Это сделало обработку визуальных данных ненадежным методом проверки. Потребовалось найти новый подход.

NoCAPTCHA reCAPTCHA

Тогда появилась революционная API, которую мы используем сегодня — NoCAPTCHA reCAPTCHA. Это та самая простая галочка, о которой мы говорили в начале. Всё, что требуется — просто поставить отметку, и можно продолжать работу.

Как работает NoCAPTCHA reCAPTCHA?

На самом деле, это намного сложнее, чем кажется. NoCAPTCHA работает на основе продвинутого API анализа риска, который постоянно отслеживает поведение пользователя. Система анализирует всё взаимодействие с CAPTCHA: движение курсора перед кликом по чекбоксу, во время проверки и после того, как вы поставили галочку. По совокупности этих действий определяется, является ли пользователь человеком.

9fb0ea4dd0482bfbfea22ab6ba443f02.png

Почему работает NoCAPTCHA reCAPTCHA?

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

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

Однако даже этот метод не является полностью безопасным. Возможны программы, которые могут имитировать клики мышью и автоматически отмечать чекбокс. Поэтому Google также может учитывать другие данные, которые пользователи предоставляют непреднамеренно, такие как IP‑адреса и куки, что помогает доказать, что вы человек.

Хотя все точные методы определения ботов Google нам не раскрывает (оставим это им).

А что если этого недостаточно?

Даже при столь сложной системе безопасности может оставаться неопределенность. Учитывая это, Google добавила дополнительный шаг для проверки, когда система не уверена в результате — идентификация изображений.

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

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

Следующие инновации CAPTCHA

Инновации в этой области не прекращаются. Мы начали с текстовой CAPTCHA и пришли к простому чекбоксу, адаптируясь после каждого сбоя.

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

Это стимулирует дальнейшие разработки и появление новых видов CAPTCHA.

Одной из таких инноваций является Метод Honeypot.

Как работает метод Honeypot?

Он использует обман, чтобы заставить ботов выявить себя. Когда мы создаем форму, автоматизированные программы, скорее всего, заполнят все поля. Человек же заполнит только видимые ему поля.

Что если мы добавим поля, которые будут невидимы для пользователей, но будут присутствовать в форме?

Боты заполнят и эти скрытые поля, тем самым выдавая себя.

Метод Honeypot — двойное преимущество

Метод Honeypot работает как обоюдоострый меч: он упрощает процесс верификации для пользователей и эффективно ловит вредоносных ботов. Простота для человека и ловушка для ботов — вот что делает этот метод эффективным в борьбе со спамом.

Каково будущее кибербезопасности?

Однако, как мы обсуждали ранее, всё, что создано, может быть взломано — если у противника есть мотивация это сделать.

Изначально CAPTCHA разрабатывались для защиты от ботов, распространяющих спам. Но сегодня боты не ограничиваются этим — они атакуют серверы, крадут данные и совершают мошенничество. Появление таких угроз, как CAPTCHA‑фабрики (организованные группы людей, решающие CAPTCHA за оплату) и более умные AI‑боты, ставит под сомнение эффективность CAPTCHAs.

CAPTCHAs — эффективны ли они по-прежнему?

CAPTCHA часто выступают как «лежачие полицейские» на пути хакеров — препятствия, которые замедляют атаки, но не останавливают их полностью. Боты становятся умнее, а технологии, такие как машинное обучение, могут легко обойти даже самые сложные CAPTCHA. С другой стороны, усложнение CAPTCHA может приводить к раздражению клиентов. Никто не хочет тратить время на разгадывание картинок или ввод случайных текстов при простой регистрации или входе в систему.

Это явно не долгосрочное решение, и увеличение сложности CAPTCHA лишь немного задерживает атакующих.

Новое направление в кибербезопасности

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

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

© Habrahabr.ru