Немного об истории CAPTCHA

    Системы глубокого анализа трафика имеют дополнительную защитную функцию. Речь идет о защите от DDoS. Для этого используется один из самых популярных и эффективных способов — CAPTCHA, или полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей.

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


    / Flickr / F▲IL / CC

    Оригинальная система была разработана в начале XXI века инженерами из Университета Карнеги — Меллона, США. Команда под руководством Луиса фон Ана (Luis von Ahn) искала способ фильтрации регистраций на сайтах, выполняемых автоматическими программами и спам-ботами.

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

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

    Несмотря на это, сервис не утратил популярности, наоборот, разработчиков начала беспокоить мысль, что они заставляют миллионы людей бессмысленно переводить изображения в текст, понапрасну растрачивая время и усилия, не принося никакой практической пользы. Поэтому Луис задался вопросом: «Можно ли сделать с этим временем что-то полезное?».


    И нашел на него ответ, представив приложение reCAPTCHA спустя некоторое время. Оно по-прежнему было «завязано» на вводе изображений с картинки, но вместо случайного набора символов пользователь должен был «расшифровать» реальный текст из архивных документов. Программное обеспечение того времени уже было способно распознавать печатные тексты с достаточно высокой точностью, однако все равно в книгах со временем чернила расплываются, что мешало компьютерам определить некоторые слова. Человек же с этим справляется без особых проблем.

    Первыми в очереди на распознавание оказались архивные номера газеты The New York Times. После этого, когда в 2009 году сервис купила компания Google, расшифровке подверглись старые книги. Получается, что каждый раз, вводя текст с reCAPTCHA, вы разбираете фрагменты из реальных архивных текстов. Луис фон Ан был очень доволен новой версией программы, уверяя, что сервис проживет очень долго, поскольку печатного материала в архивах предостаточно.

    Подобные эксперименты были проведены и по распознаванию изображений из Google Maps и Google Street View. Однако в скором времени аналитикам компании Google пришлось искать ответ на успешные попытки автоматизации «взлома» даже самых сложных изображений с вероятностью, превышающей 90%.

    Для решения возникшей проблемы Google начали совершенствовать технологию, и в 2015 году инженеры компании представили новое решение, которое не обязывало пользователя распознавать символы. Новая система анализировала поведение пользователя на сайте до момента нажатия проверочной кнопки «Я не робот», а затем делала вывод: человек это или бот.

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

    Другие CAPTCHA и иные решения


    Помимо самых распространенных систем от компании Google, сегодня имеются и другие решения, направленные на различение человека и машины. Так, разработчики сервиса TextCAPTCHA предлагают пользователям отвечать на простые логические вопросы. Например, о том, какая буква в слове «автомобиль» стоит на третьем месте.

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

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

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

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


    / Flickr / Tarek / CC

    Honeypot. В 2007 году Фил Хаак (Phil Haack) предложил любопытный метод определения ботов. Он получил название Honeypot. Его особенность заключается в добавлении дополнительного поля при заполнении онлайн-формы, которое было бы невидимо для пользователя-человека. Бот не способен понять, видимо это поле или нет, потому заполняет его «по инерции», что позволяет администратору заблокировать регистрацию как спам. 

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

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

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

    «Гонка вооружений» между специалистами по безопасности и спамерами никогда не закончится. Поэтому постоянно будут разрабатываться все новые механизмы защиты и их обхода. Но несмотря на это технология reCAPTCHA остается одним из самых надёжных способов борьбы с ботнет-сетями и успешно применяется в системе DPI СКАТ для защиты от DDoS-атак. Постоянная разработка платформы и выпуск новых версий позволяет использовать актуальные механизмы защиты.

    VAS Experts
    Разработчик платформы глубокого анализа трафика

    Комментарии 24

    • НЛО прилетело и опубликовало эту надпись здесь
        0
        Если говорить о массовости и доступности, то почему бы и нет
        • НЛО прилетело и опубликовало эту надпись здесь
            +7
            Тот же CloudFlare организует защиту от DDoS в том числе с помощью этой самой reCAPTCHA.

            Скриншот, сделанный лично мной
            image

            Так что предлагаю в теме разобраться всё-таки вам ;)
            • НЛО прилетело и опубликовало эту надпись здесь
                +5
                Кто-то в этом топике писал, что капча это единственный способ защиты от DDoS, что ли? Всё ещё предлагаю вам разобраться в теме нормально, а не хватая рандомные абзацы из нетехнических текстов.
                • НЛО прилетело и опубликовало эту надпись здесь
                    +2
                    Ладно, пока я в хорошем настроении, специально для вас проведу мини-лекцию, хоть комментарии для этого и не очень подходят.

                    Спрятал под спойлер, длинно получилось
                    Что такое DDoS? В общем случае это когда клиентов настолько много, что сервис начинает не успевать их обслуживать («DDoS-атака на автобус — куча народу с пятисотками»).

                    Один из частных случаев DDoS-атаки — отправка множественных HTTP-запросов веб-серверу, которые сервер не успевает обрабатывать по причине занятости всех ресурсов другими запросами и отвечает каким-нибудь таймаутом (если вообще отвечает, хех). (Капитан Очевидность замечает, что большое количество запросов отправляют именно боты. А в посте как раз упоминается, что капча это защита от ботов ;)

                    Как защититься от этого? В общем случае — никак: достаточно мощная атака способна валить что угодно сколь угодно долго. Но для средних и слабых DDoS-атак вполне эффективным оказывается отфильтровывание подозрительных запросов какими-нибудь высокопроизводительными фильтрами (может, даже с помощью fail2ban, хоть это и не совсем по назначению) или на стороннем мощном прокси-сервере.

                    Именно так и работает CloudFlare: на домен сайта вешается IP-адрес сервера CF, а уже этот сервер перенаправляет запрос к сайту на настоящий сервер, IP-адрес которого не знает никто, кроме админов сервера и самого CF (иначе можно было бы просто атаковать этот IP-адрес напрямую в обход CF). Если CF не понравился какой-то HTTP-запрос, он просто отвечает ошибкой, и до настоящего сервера этот запрос не доходит вообще.

                    А теперь самая мякотка: как CF должен отличать хорошие запросы от плохих, какие запросы к серверу пускать, а какие не пускать? Один из способов — ВНЕЗАПНО — разгадывание капчи! Капча разгадана — значит запрос отправил человек, всё хорошо, перенаправляем на настоящий сервер. Не разгадана — значит бот. И пусть этот бот отправляет хоть сто тыщ мильёнов запросов — если он не разгадает капчу, до сервера не дойдёт ни один, и защита от DDoS таким образом обеспечена. (Правда, на мильёне мильёнов запросов может упасть уже сам CloudFlare, но сейчас не об этом.)

                    На скриншоте, который я выложил выше, CloudFlare включил режим параноика и счёл подозрительным HTTP POST-запрос с очень большим телом, в связи с чем и выдал мне капчу.

                    Очевидно, что есть и другие способы защиты, и капча лишь один из них. Не менее очевидно, что не-HTTP запросы капчей защитить невозможно.
                    • НЛО прилетело и опубликовало эту надпись здесь
                        +4
                        Этот ваш «перевод трафика на проксирующий пул» и есть один из способов защиты от DDoS, лол. А уж то, защищает он с использованием рекапчи или не рекапчи, от бедности или не от бедности, уже не важно, важен сам факт: защита от DDoS вот она и вполне работает) Боты капчу не проходят — запросы до сервера не доходят — защита работает, никаких разводов)
                        • НЛО прилетело и опубликовало эту надпись здесь
                            +1
                            Глупости опять пишете. Почему увеличим-то? Десяток запросов с одного айпишника и CF, и рекапча вполне выдержат, а если бот не решит капчу и на одиннадцатом запросе, то можно отправить его в бан на сутки-другие, начать резать вообще весь трафик и таким образом ничего не увеличивать.

                            Если же решить капчу вручную и уже потом запустить бота, то при частых запросах CF запросит капчу опять, а дальше уже как вариант по приведённой выше схеме. А если решать капчу вручную каждые несколько (десятков) секунд, то никакого DDoS из этого уже не выйдет)

                            Я не знаю, как это реализовано у CF на самом деле (благо в бан не попадал и капчи послушно проходил), но не надо понимать всё слишком прямолинейно и городить глупости)
                            • НЛО прилетело и опубликовало эту надпись здесь
                                0
                                атаки второго рода
                                Где вы тут её увидели? Если айпишник сам отправляет тонны запросов и сам нарвался на бан, то сам он и виноват. Остальным-то айпишникам сайт останется доступен.
            0
            имхо все же капча это один из вариантов защиты от одного из вариантов дидоса.
            Вам коллега правильно указал — вариантов дидоса множество и автоматическое заполнение регистрационных форм ни самый распространенный из них.
            взрослые мальчики и девочки дидосят по взрослому что ли.
            А капча защитит разве что от дидоса из детского сада или от школоты 14 летней.
          +3
          Прочитав про «поиграть в небольшую игру» вспомнил про: https://www.youtube.com/watch?v=WqnXp6Saa8Y
            +1
            Помимо стандартных функций защиты от ботов, такое решение добавляет в достаточно рутинную операцию немного веселья
            Какое счастье, что мне ещё такая капча не попадалась...))
              +1
              Немного рутинного веселья не повредит :D
              0
              Сервис сам «говорит», какие слова нужно ввести. И хотя это решение в теории выглядит эффективным, на практике все упирается в качество колонок компьютера пользователя.


              На практике произнесение даже, вроде-бы, одинаковых букв носителями разных языков — различается.
              Так, что русскоязычные пользователи опознают «шизгаду» — но вряд-ли её сумеют правильно вбить в поле.
              А если речь пойдёт не о столь известной фразе…
                0
                В первой половине нулевых я пытался зарегится на ЖЖ. Поскольку тогда единственным доступом был диалап, то я как и все работал с отключенными картинками. С капчей просто какая-то засада была — показывал картинку, вводил с нее текст и облом. Наверное из-за фрагментарной загрузки где-то ломалась логика. А еще там был альтернативный вариант с аудиокапчей. Не смотря на то, что английский я тогда вообще не знал, я с первой же попытки вбил правильный ответ и прошел регистрацию. Я к тому, что создатели аудиокапч делают свои аудио-задания короткими и на слова из первых сотен частотного словаря.

                Но думаю, что сейчас такая «защита» не актуально. Аудио-трек капчи направляем на распознавание и текстовый ответ назад в поле ввода — боты взламывать смогут проще, чем люди вбивать на слух.
                  0
                  Ну, если я правильно помню — в ЖЖ капча предлагает произнести приведённое слово «вслух».
                  Т.е. с отдельным подбором слов для аудио там не очень.
                  Хотя какая капча была в ЖЖ в первой половине 2000-х — я уже точно не помню.
                0
                reCaptcha распознается также распознается при помощи вышеупомянутых сервисов ручного ввода: rucaptcha, anti-captcha и другие. Правда, немного дороже обычной капчи.

                Ботов, работающих на базе http клиента, т.е. без browser less технологий, также можно отсеять множеством методов.
                  0
                  Объясните мне, как можно было использовать капчу для распознавания старых газет?
                  Капча подразумевает на стороне сервера проверку правильности введенных данных? Если газета не распознана правильно изначально, как сервер убедится, что пользователь ввел правильно?
                    0
                    Показать нераспознанное место нескольким пользователям и выбрать наиболее популярный ответ?

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

                  Самое читаемое