1.3 Testing for Weak Lock Out Mechanism

Суть тестування:

Механізми блокування облікового запису використовуються для пом'якшення атак методом грубої сили. Облікові записи зазвичай блокуються після 3-5 невдалих спроб входу в систему і може бути розблокований тільки через заздалегідь встановлений період часу за допомогою розробленого механізму розблокування сервісу або втручання адміністратора. Механізми блокування облікового запису вимагають балансу між захистом облікових записів від несанкціонованого доступу і доведенням простого користувача до божевілля, оскільки він п'яний неспроможна увійти до системи, промахуючись у кнопках.

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

Без надійного механізму блокування, додаток може бути вразливим для атак методом грубої сили. Після вдалого брутфорсу, зловмисник може отримати доступ до: - Конфіденційна інформація або дані: приватні розділи веб-додатків можуть розкривати конфіденційні документи, дані профілю користувачів, фінансова інформація, банківські реквізити, відносини користувачів і т.д.

- Панелям адміністрування: ці розділи використовуються веб-майстрами для керування (зміни, видалення, додавання) веб-додатком (контент, керувати синхронізацією користувачів, призначати користувачам різні привілеї тощо)

- Можливості для подальших атак: автентифіковані розділи веб-програми можуть містити вразливості, які відсутні в загальнодоступному розділі веб-програми і можуть містити розширені функції, які недоступні для публічних користувачів.

Як протестувати

Як правило, для перевірки ефективності механізмів блокування вам знадобиться доступ до облікового запису, який ви можете дозволити собі заблокувати. Якщо у вас є тільки один обліковий запис, з яким ви можете увійти до веб-додатку, виконайте цей тест у самому кінці вашого плану з тестування, щоб уникнути ситуації "Пацан до успіху йшов і WASTED".

Приклад тесту може бути наступним:

1. Спробувати увійти з неправильним паролем тричі.

2. Успішно увійдіть у систему з правильним паролем, тим самим перевіривши, що механізм блокування не спрацьовує після неправильних 3 спроб автентифікації.

3. Спробуйте увійти з неправильним паролем чотири рази.

4. Успішно увійдіть у систему з правильним паролем, тим самим перевіривши, що механізм блокування не спрацьовує після неправильних 4 спроб аутентифікації.

5. Спробуйте увійти з неправильним паролем 5 разів.

6. Спробуйте увійти з паролем. Додаток повертає «Ваш обліковий запис заблокований», тим самим підтвердження того, що обліковий запис заблоковано після 5 неправильних спроб аутентифікації.

7. Спробуйте увійти з правильним паролем через 5 хвилин. Додаток повертає «Ваш обліковий запис заблокований.», тим самим показуючи, що механізм блокування не розблокується автоматично через 5 хвилин.

8. Спробуйте увійти до системи з правильним паролем через 10 хвилин. Додаток повертає «Ваш обліковий запис заблокований.», тим самим показуючи, що механізм блокування не розблокується автоматично через 10 хвилин.

9. Через 15 хвилин успішно увійдіть до системи з правильним паролем, показуючи, що механізм блокування автоматично розблокується через 10-15 хвилин.

CAPTCHA може перешкоджати атакам методом грубої сили, але вони можуть мати свої недоліки та не повинні замінити механізм блокування. Щоб оцінити стійкість механізму розблокування до несанкціонованого розблокування облікового запису, запустіть механізм розблокування та шукайте слабкі місця. Типові механізми розблокування можуть включати секретні питання або посилання для розблокування, надіслане електронною поштою. Розблокувальне посилання має бути унікальним і одноразовим, щоб зловмисник не міг вгадати або відтворити посилання через атаки брутфорсу. Секретні питання та відповіді мають бути чіткими.

Зверніть увагу, що механізм розблокування слід використовувати лише для розблокування облікових записів. Це не те саме, що й відновлення пароля.

Чинники, які слід враховувати під час реалізації механізму блокування облікового запису:

1. Який ризик підбору пароля для програми?

2. Чи достатньо CAPTCHA для зниження цього ризику?

3. Чи використовується механізм блокування на стороні клієнта (наприклад, JavaScript)? (Якщо це так, вимкніть код на стороні клієнта для перевірки.)

4. Кількість невдалих спроб входу до системи до блокування. Якщо поріг блокування занадто низький, нормальні кривожопі користувачі можуть блокуватися занадто часто. Якщо поріг блокування занадто високий, то більше спроб зловмисник може зробити для грубої сили до того, як його буде заблоковано. Рекомендований поріг від 5 до 10 невдалих спроб.

5. Як буде розблоковано акаунти?

- Вручну адміністратором: це найбільш безпечний метод блокування, але він може завдати незручності користувачам і забирати «дорогоцінний» час адміністратора.

-- Зверніть увагу, що адміністратор також повинен мати метод відновлення на випадок, якщо його обліковий запис буде заблоковано.

-- Цей механізм може призвести до атаки, при якій зловмисник може заблокувати всі обліки користувачів, якщо він має таку мету.

- Через деякий час: яка тривалість блокування? Чи достатньо цього для програми, що захищається? Наприклад, тривалість блокування від 5 до 30 хвилин може бути хорошим компромісом між пом'якшенням атак грубої сили та незручності для дійсних користувачів.

- Через механізм самообслуговування: як зазначалося раніше, цей механізм самообслуговування має бути досить безпечним, щоб уникнути, що зловмисник може сам розблокувати облікові записи.

Посилання

Як можуть виконати брутфорс, можна глянути сюди

Підсумок

Застосовуйте механізми розблокування облікового запису залежно від рівня ризику:

1. Блокування та розблокування за часом.

2. Самостійне розблокування (надсилання розблокування на зареєстровану адресу електронної пошти або номер телефону).

3. Ручне розблокування адміністратора.