Каптчи. Способы взлома и защиты

    Кросс-пост из нашего блога, посвященному компьютерной безопасности

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

    # Теория каптч



    В 1950 году Алан Тьюринг написал статью «Вычислительные машины и разум», которая была опубликованная в философском журнале «Mind». В статье речь шла о неком тесте, который может различить человека от компьютера. Мы не будем описывать подробности о тесте, вы сами это сможете почитать на Википедии

    Так вот, каптча — это одна из реализаций теста Тьюринга, которая используется для того, что бы определить пользователя системы: человек он, или компьютер. Иными словами, каптча защищает сайт от спам-ботов, которые оставляют сообщения в гостевых книгах, в комментариях и т.д.

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



    # Уязвимости каптч



    Сразу ответим на вопрос: Зачем пытаются найти уязвимости в каптчах? Самая основная цель — спам. А там где спам — реклама. А реклама — деньги. Спамеры пишут программное обеспечение, например, которое массово рекламирует их клиентов на форумах(оставляя посты и приватные сообщения), в гостевых книгах, mail-гейтах и других сервисах. Они пишут программных ботов, которые имитируют действия человека. Для того, что бы предотвратить массовые сообщения, разработчики программного обеспечения используют каптчу. Это может быть open-source решение, или же «свое» или индивидуальное решение. Используя любое из этих решений, программисты могут допускать ошибки. Это зависит от опытности программиста, но не всегда. Бывает каптча грамотно сделана, но присутствуют ошибки в настройке серверного программного обеспечения или же другие факторы.

    Теперь рассмотрим несколько методов, c помощью которых можно обойти каптчу:

    1. Ошибки программиста



    Самая распространенная ошибка в реализации каптчи — так это её техническая реализация. Программист может упустить тонкие моменты в обработке результата. Например, текст каптчи может передаваться в сессии, или имя файла-изображения — и есть тот текст. Например, http://markitup.com/Captcha.ashx?txt=G-SG (PageRank этого сайта равен 5-ти)

    2. Оптическое распознавание символов



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

    Самое простое OCR — эталонное. Заключается в самом обычном эталонном сравнении цифр(букв) на изображении.

    Уязвимость такого рода очень редко встречается. Но попадается и на крупных сайтах. Пример тому — уязвимость каптчи на сайте Билайна.

    3. Плохая идея



    Суть метода: используется очень хорошая реализация каптчи( с использованием шума и т.п.), но к примеру, это цифирная или буквенная каптча из трёх знаков. В таком случае можно реальным брутфорсом подбирать ответ. Этот метод довольно эффективный, когда применяется нейро-сеть — она же бот-сеть, машин тупых зомби, которые пытаются угадать изображение.

    4.Человеческий разум



    Этот метод заключается в том, что за определение каптч платят деньги людям. Например, есть очень много отечественных сервисов, которые платят до 0.1$ за определение одной каптчи. Это реальная угроза, потому что противостоять этому тяжело.На этом методе построена целая индустрия.

    # Защита каптч



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

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

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

    Также мы хотим вам предложить использовать готовые безопасные решения для организации каптчи на вашем веб-сайте, блоге и сервисе. Одно из таких — reCaptcha. Это уже довольно не новая технология каптч, основанная по клиент-серверным технологиям.
    Пример:

    Довольно сложная для обхода капчта, и легкая для пользователя. Пользователю предлагается ввести два слова( или набор цыфр). Вводимые значение по специальному API пересылаются на сервер reCaptcha, где проверяются и вашему обрабатываемому скрипту отправляют ответ: правильный ввод, или не правильный.
    Очень легко встраивается reCaptcha в популярные движки блогов, сайтов. А также есть библиотеки для разных языков программирования.

    # Заключение



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

    Авторы: Черныш Вадим и Рыбалко Дмитрий, Glaive Security Group
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 12
    • +1
      В раздел «Человеческий разум» можно еще занести такой подвид распознавателей которые получают моральное (и возможно физическое) удовлетворение от распознавания капч.
      Это я так красиво завуалировал действия не очень добросовестных вебмастеров которые продают спамерам формы регистрации на своих порносайтах.

      Пользователь-любитель клубнички вводит капчу сгенерированую совсем другим сайтом.
      При этом он думает что капча сделана для этого сайта.
      Например это может быть каптча от gmail.
      За это пользователь получает аккаунт на вожделенном сайте, спамер получает зарегистрированный почтовый ящик а вебмастер клубничного сайта получает копеечку просто за то что кто-то зарегистрировался на его сайте. А если вебмастер в одном лице еще и спамер, то вообще никому платить не надо.
      • –1
        Стоимость пробития капчи кетайцами — 50 центов
        • +2
          дорого берут однако
          • –1
            Зато пробивают любые капчи
            Кетаец уже не человек но еще не робот
        • +4
          >применяется нейро-сеть — она же бот-сеть
          имхо плохое сравнение. нейро-сеть, больше ассоциируется с ИИ.
          А сам ИИ стоило бы добавить в пункт «2. Оптическое распознавание символов».

          В целом, достаточно обзорная статья, но написано хорошо. Спасибо.
          • 0
            А как именно применяется нейросеть для брутфорса?
            • +2
              там в терминологии ошибка, имелась в виду бот-сеть
            • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                есть еще методы не использовать капчу — пользователю дают например 4-е картинки и просят ткнуть по картинке, где изображен водопад. Очень простое и очень приятное (юзеру), и, сложнее для распознавания НС, в случае достаточно большой выборки фотографий и вопросов по ним.
                имхо будущее как раз за подобными вещами, а не вбиванием непонятных слов…
                • 0
                  так тут брутфорс еще проще. всего 4 варианта же.
                  • 0
                    а вы думаете каждый раз вам одни и теже картинки предлагают?)
                • 0
                  без разницы. если несколько попыток бить в первую картинку, когда-нибудь именно она окажется «нужной».

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