Карта сайта Хакер в RSS Энциклопедия Хакера PDA версия сайта Почтовые рассылки Хакера    Хакер в Twitter Хакер в ВКонтакте Приложение Хакер для Facebook Хакер на Formspring.me
Журнал Новости Форум Видео Life Xakep Live (блоги)
Bugtrack Статьи Блог Поиск English
Взлом как образ мысли Взлом как образ мысли
Интервью с человеком, который, как оказалось, является не только талантливым пентестером в одной из крупных ИБ-компании, но и хакером-ветераном, который уверенными шагами вышел на свет и прикоснулся к истории российской хак-сцены....
Полный гид по накрутке онлайн-голосований Полный гид по накрутке онлайн-голосований
Конкурсы с голосованием привлекают большое количество посетителей, а трафик, как известно, — это деньги. Особый интерес вызывают конкурсы, где за победу предлагаются лакомые призы....

Тесты Тьюринга: проблемы защиты от ботов

Bookmark and Share

Эта статья посвящена тестам Тьюринга. Для тех, кто еще не знает, это способ не допустить автоматизации выполнения каких-либо действий, которые должен делать пользователь. Тесты эти бывают графические и звуковые. В первом случае вам предлагается ввести число, слово или набор символов, написанный на картинке, а во втором произнесенный голосом. Генерируются картинки и звуки на сервере автоматически, а разобрать их никакая программа, по замыслу авторов, не может. Тесты Тьюринга нужны для борьбы со спамом на сервисе, где  отправитель не платит за отправку сообщения и, таким образом, может осуществлять массовую рассылку, а также для защиты от подбора паролей методом грубой силы. В наше время только ленивый не писал о тестах Тьюринга и о методах их обхода. И многие программеры на практике имели дело с тестами Тьюринга: одни их реализовывали, а другие обходили. Причем результативная работа последних возможна, в основном, из-за некомпетентности первых. Я считаю возможной компьютерную реализацию механизма распознавания образов, сравнимого с человеческим, хотя не встречал ее описания в статьях о прохождении тестов Тьюринга, так что, имхо, все решения не будут гарантированно работать всегда. На некоторых сайтах я встречал абсолютно неграмотные реализации тестов, показывающие полное непонимание проблемы разработчиком и его незнание возможностей существующих методов распознавания образов, основанных на научной теории, существующей уже далеко не первый год. Некоторые реализации обойти можно путем простого сравнения заранее известных областей картинки с эталонами, несмотря на зашумленность и игру с цветами. Эти наблюдения побудили меня написать о тестах Тьюринга, уделив внимание обзору методов генерации тестов и методов их прохождения, т. е. распознавания образов. Поскольку задача написания теста Тьюринга состоит в противодействии существующим методам распознавания изображений или звуков, имхо, начать следует именно с их обзора.

Сравнение с эталоном

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

Шумы

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

Сдвиги, повороты и масштабирование 

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

Игра с цветами

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

Нейронные сети

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

Распознавание звуков

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

Построение тестов

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

Деформации

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

Большие базы данных

У меня проявилась идея нового метода построения тестов, которая еще, кажется, нигде практически не применяется. Нейронные сети требуют обучения на выборке, характеризующей механизм построение картинки. Из этого следует, что можно попробовать использовать настолько большую базу данных, что ни у кого не хватит терпения учить машину всему, что там есть. Например, можно показывать какой-нибудь объект и требовать его назвать или показывать объекты разных типов и требовать сосчитать объекты какого-нибудь типа. Причем все изображения абсолютно разные. Где взять такую базу? Такими базами являются Google, Яndex и им подобные. Книга "Google Hacks" навела меня на мысль использовать результаты поиска в качестве словаря, чтобы выбирать из него случайные слова. Далее можно использовать поиск  картинок, соответствующих словам. Это только идея. Поисковик выдает картинки, не только изображающие заданный объект, но и еще как-либо связанные с ним. Нельзя требовать от пользователя понять логику поисковика. И к тому же этот метод будет действовать лишь до тех пор, пока кто-нибудь не изобретет поисковик, принимающий в качестве запросов не текст, а изображения.

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

Ссылки про тест Тьюринга:

http://philos.miem.edu.ru/6/238.htm
http://www.computerra.ru/focus/coment/31865/ 

http://zeiss.net.ru/docs/izone/izone380/pub/izone11.htm

Ссылки про распознавание изображений:

http://library.graphicon.ru:8080/catalog/45 - раздел каталога электронной библиотеки по теме
http://daily.sec.ru/dailypblshow.cfm?rid=8&pid=4326&pos=12&stp=10 - нейросетевые методы распознавания изображений
http://www.webplanet.ru/news/internet/2005/3/28/recognize.html
- новый метод распознавания изображений





СВЯЗАННЫЕ СТАТЬИ
Тесты Тьюринга: проблемы защиты от ботов
СЛЕДУЮЩИЕ СТАТЬИ
Китайские закладки: непридуманная история о виртуализации, безопасности и шпионах
Отчеты о сбоях от Apple помогают хакерам создавать эксплойт для джейлбрейка
AntiHASP: эмулируем ключ аппаратной защиты HASP
Компании опаздывают с безопасностью встраиваемых устройств
Ситибанк не играет в кости: уязвимость TAN кодов
Прав достаточно: 8 приемов для обхода групповых политик в домене
Чем больше эксплоитов выставлено на продажу, тем выше уровень безопасности
PHP-дайвинг: низкоуровневый поиск уязвимостей в веб-приложениях
SCADA под прицелом: анализ защищенности АСУ ТП
Hack TV: взлом телевизора и изучение его кишок на примере Samsung LE650B
ПРЕДЫДУЩИЕ СТАТЬИ
Безопасность Bluetooth №2
Безопасность Bluetooth №1
Как было взломано казино Ritz
Социальная инженерия в реверс инженеринге
The Data Mining Skill
Реальный пластик
Многократное использования карточки в биллинговых системах
Основы обналичивания кред
Внедряемся в прова
Снимаем Region Checks в DVD
ОБСУЖДЕНИЕ СТАТЬИ
Логин:
Пароль:
Если у вас есть форумный логин - вы можете использовать его, иначе анонимный гостевой доступ.

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

Обсуждение этой статьи на forum.xakep.ru
Для отправки сообщения введите код, указанный на картинке
Сообщение

UserГость
13.11.2007 21:45:21
Ответить Ссылка
Доводы автора рассыпятся после первой же попытки реализации этого "универсального решателя". Видать, никогда нейронные сети не учил...
UserГость
13.11.2007 21:45:21
Ответить Ссылка
Нейронные сети не панацея и с их помощью можно решать лишь однотипные задачи. А если вариантов вывода картинки до хрена, нейронные сети не помогут, как их не учи.
UserГость
13.11.2007 21:45:21
Ответить Ссылка
блин ты немог мне дать прогу падборка паролей??? пажалуйста!!!если че отправи на мыло !! заранее благодарин!!!
UserГость
13.11.2007 21:45:21
Ответить Ссылка
"...показывать объекты разных типов и требовать сосчитать объекты какого-нибудь типа. Причем все изображения абсолютно разные..." - тоже самое реализовани при попытке отослать СМС с сайта GSM Киевстар (http://www.kyivstar.net/sms/). С одним лишь уточнением, что база с картинками не большая.
UserГость
20.01.2008 10:40:04
Ответить Ссылка
Сколько интересно автору лет? Звук как минимум трёхмерный: время, громкость, тональность.
Вся статься примерно на том же уровне хакера-школьника (
UserГость
24.09.2008 15:51:54
Ответить Ссылка
Вот интересная штука - http://www.e-xo.ru/captcha/setup.asp
UserГость
30.04.2009 23:54:16
Ответить Ссылка
Автор мелет воду в ступе... Всё по этой теме давно изучено и известно. И.М.Х.О.
UserГость
25.01.2012 6:26:06
Ответить Ссылка
Я в своей статье описывал подход к распознаванию каждого из таких алгоритмов
http://intsystem.org/295/analiz-captcha-algorithms/




Keywords: zPOSTz zHACKz, zOTHERHACKz, zINFOz z27729z
Для Авторов: edit Lock delete Lock



    Rambler's Top100