Pull to refresh

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

Reading time3 min
Views4.3K
Кросс-пост из нашего блога, посвященному компьютерной безопасности

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

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



В 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
Tags:
Hubs:
+4
Comments12

Articles

Change theme settings