Полезное:


Главная / How-To / SysAdmin / Защита от брутфорса
Защита от брутфорса

Решил иногда писать про всякие хакерские технологии, в основном с целью саморазвития чтоб не забыть. Итак, брутфорс это такой хакерский термин, означающий подбор пароля. Предположим что вы опять же, веб-разработчик из Саратова (из глуши). У вас на сайте есть формочка, куда саратовский юзверь вводин ФИО и пароль, скрипт на сервере при обработки формы сверяет пароль с ранее записанным и если он совпал, то юзверю выдаётся кука, с которой он может попасть в закрытые разделы сайта. Вроде всё чики-пуки, спрашивать пароль и высылать юзеру куку можно даже по https, а вместо пароля для пущей секьюрной безопасности хранить только его хэш, но всё это так, пока не пришёл злой молдавский хакер. :) Который по специально составленному словарю, а то и без оного, не начнёт отсылать десятки/сотни/тысячи одновременных запросов на аутентификацию. Защититься от этого довольно просто, главное осознавать сам факт, что такое возможно.
Сделать нужно так: одновременно принимать не более 2х запросов на аутентификацию для одного аккаунта. Два запроса (а не один) нужно разрешить, чтобы ламеры нажимающие даблклик не парили вам головной мозг, что “сайт не работает”. После неправильного запроса на аутентификацию - нужно делать паузу, в течении которой тому же аккаунту запрещено аутентифицироваться, пауза может быть статической, типа 15 секунд или возрастающей каждый раз скажем на 2 секунды, брутфорсилка её быстро загонит до больших значений, что сделает подбор пароля невозможным, а юзер сделавший случайную опечатку - просто не заметит. У меня всё это реализовано через создание файла на сервере, логически связанного с аккаунтом, для которого происходит попытка аутентификации. В файл каждый раз дописывается время запроса (с помощью дописывания в конец - меньше шансов случайно стереть файл, даже с блокировкой), при успешной аутентификации, файл стирается, из этой информации легко получается всё нужное.
Проблема с таким подходом заключается в том, что хакер может устроить юзеру маленький персональный DOS, если законный юзер будет пытаться логиниться одновременно с хакерским нападением. Разрулить ситуацию можно выдав юзеру при успешном логине специальную долгоиграющую куку, которая будет служить не для аутентификации, а наоборот, для авторизации аутентификации, то есть юзеру с такой кукой будет позволено обойти главный механизм аутентификации, но с теми же ограничениями что и без куки (2 запроса), чтобы кука сама по себе не стала объектом охоты молдаван. Вместо куки можно в невидимой части профайла юзера хранить несколько (много) ip-адресов, с которых он успешно логинился и разрешать обход с этих адресов. Маловероятно что хакер будет брутфорсить именно с них, а если да, то юзер при неудачном логине, получит нужный сигнал о попытке взлома.

Источник: http://alexf.name/2007-11-07/zashhita-ot-brutforsa/

Добавлено: 2008/11/27
Обновлено: 2008/11/27

Навигация
Обо мне | Портфолио | How-To | Мои ссылки | Фотоальбом | Смешно! | Контакты Адрес: Россия, Владивосток
Тел.: +7 (4232) 51-84-81