предпазване от brute force атаки

kWo_2

Registered
Как можем да се предпазим от тези атаки освен сложните пароли. На какъв принцип той атакува.. Какви проверки биха помогнали при логин поне малко от тези атаки.
 
Принципа е опит - грешка, до познаване на паролата.
Най-простия начин да се защитиш е да сложиш скрипт, който след 3 неуспешни опита за логин да забранява достъпа за 5 минути или пък да иска въвеждане на captcha.
 
1. Тоест заявките се изпращат чрез пост, така ли? Все едно аз въвеждам паролите ръчно, само че brute force го прави Non Stop. Питам такива глупави въпроси понеже не съм на ясно с този вид атака, а никак няма да ми е приятно после да има разбити пароли.

2. Какво да запиша при грешни логини - IP-то ли? Понеже brute force използва лист с прокси сървъри. Това ще значи ли, че всяко прокси от листа ще има възможни X опити :)?

3. А, освен тези двата вариянта, който спомена има ли и още някакъв вид минимална защита? :)
 
kWo_2 каза:
1. Тоест заявките се изпращат чрез пост, така ли? Все едно аз въвеждам паролите ръчно, само че brute force го прави Non Stop. Питам такива глупави въпроси понеже не съм на ясно с този вид атака, а никак няма да ми е приятно после да има разбити пароли.

2. Какво да запиша при грешни логини - IP-то ли? Понеже brute force използва лист с прокси сървъри. Това ще значи ли, че всяко прокси от листа ще има възможни X опити :)?

3. А, освен тези двата вариянта, който спомена има ли и още някакъв вид минимална защита? :)

Най лесния начин е да сложиш една капча при логин.

Друг начине да сложиш брояч на грешните пароли.
Примерно в таблица users слагаш едно поле в което записваш колко пъти е сгрешена паролата.
След това ако надвиши 5 броя записваш в друго поле датата и часа (в time формат) и изкарваш грешка, че 5 минути не може да се опитва да се логва.
АКо следваяият опит е след 5 минути му чистиш брояча и почва отначало да пробва.
 
Можеш да деактивираш акаунта примерно след 20 неуспешни опита, и да очакваш email активация от потребителя. Тези 20 опита да се записват в друго поле. Така ако атакуващия няма достъп до email-а на потребителя, атаката спира до тук.

п.п. Можеш да не зануляваш това поле, а просто да провериш дали остатъка от делението на 20 е равно на 0. И ти като добър администратор, и ако ти се занимава разбира се, можеш да изпратиш лично email на потребителя, и да му съобщиш, че някой многократно се опитва да влезне в акаунта му, и го приканваш да си смени паролата с по-сложна такава.
 
Благодаря Ви! Последен въпрос. Колко е сигурно, ако сложа брояч на грешните пароли, че brute force атаката ще бъде прекратена за нови опити. Макар поне и за кратко.
:roll: ?
 
Тоест?
Ще записвам error +1 за всеки грешен опит, който показва като грешка.
 
1. Слагаш капча.
2. Записваш грешните опити - Примерно при Н брой грешни опити lock-ваш даденият потребител и ако разполагаш с мейл адреса му пращаш мейл към него. Вече твое решение си е как ще процедираш след това.
Може да се lock-ва и по IP, но няма смисъл, защото може да се ползва proxy servers за атаките. Ето ти примерен скрипт. Също така можеш да ползваш и salt.
 
Аха. Но ако не записвам IP-то то какво тогава? :) Каптча за всеки грешен опит е доста досадно за потр. да въвежда потвържение.. А куки няма как да запиша понеже brute force чрез програмата като е стартирана няма как да му лепна кукито. Нз.. :?
 
kWo_2 каза:
Аха. Но ако не записвам IP-то то какво тогава? :) Каптча за всеки грешен опит е доста досадно за потр. да въвежда потвържение.. А куки няма как да запиша понеже brute force чрез програмата като е стартирана няма как да му лепна кукито. Нз.. :?

За всеки потребител слагаш counter който ще брой грешните опити за логване. Слагаш и още едно поле lock = tinyint(1) като по default го слагаш 0 и когато достигне тези Н брой грешни опити lock-ваш даденият потребител ( когато lock = 1 да не може да се логне без значение дали ще налучка паролата или не ) и пращаш мейл на този потребител, че са въведени Н брой грешни опити към неговото acc. Като може автоматично да му смениш паролата и да му я пратиш на мейла + линк за unlock-ване на acc-то.
 
kWo_2 каза:
Аха. Но ако не записвам IP-то то какво тогава? :) Каптча за всеки грешен опит е доста досадно за потр. да въвежда потвържение.. А куки няма как да запиша понеже brute force чрез програмата като е стартирана няма как да му лепна кукито. Нз.. :?
Така или иначе ще проверяваш дали потребителя я има тази бискитка, ако използва browser(нормален) ще се запише, в противен случай няма. Има бисквитка, няма captcha, няма бисквитка, има captcha. Все пак целта ти не е да улесниш brute-forcer-a, а да го затрудниш. :)
 
Да, ще използвам записването в db с грешните опити. Но brute force като изпраща заявки може ли да симулира че се изпращат от браузър или това е рядкост :lol:
Най-много да се опитам сам да си опъна b force-a та да тествам, но не ми се иска
 
Аз лично съм ползвал над 323 пъти някъде brute force просто си сложи парола от рода на:

:'79=!';sf[aa]-_+0(+)#@!,>
 
crysis каза:
Аз лично съм ползвал над 323 пъти някъде brute force просто си сложи парола от рода на:

:'79=!';sf[aa]-_+0(+)#@!,>
Той иска да защити потребителите си, а не само него.
От тази тема научих доста неща. Мерси!
 
За паролата, ясно. Но аз искам да защитя и сайта от непрестанни заявки от b-force.
 

Back
Горе