1.8 Testing for Weak Password Change or Reset Functionalities
Суть тестування:
Функція зміни та скидання пароля у додатку – це механізм самообслуговування для зміни або скидання пароля для користувачів. Цей механізм самообслуговування дозволяє користувачам ебланам швидко міняти чи скидати свій пароль без участі адміністратора. Коли паролі перезатирають, вони або відправляються на телефон, або відправляються користувачеві електронною поштою.
Завдання тесту
1. Визначте стійкість програми до підриву зміни пароля облікового запису, дозволяючи будь-кому змінити пароль.
2. Визначте стійкість функції скидання паролів до вгадування чи обходу.
Як протестувати
Як зміни пароля, так скидання пароля важливо перевірити:
1. Чи є користувачі, окрім адміністраторів, які можуть змінювати чи скидати паролі для облікових записів, крім своїх власних.
2. Чи є користувачі, які можуть маніпулювати або порушувати процес зміни або скидання пароля, щоб змінити або скинути пароль іншого користувача або адміністратора.
3. Чи є в процесі зміни або скидання пароля вразливість для CSRF.
Тестування скидання пароля
На додаток до попередніх перевірок важливо перевірити таке:
- Яка інформація потрібна для скидання пароля? Перший крок – перевірити, чи потрібні секретні питання. Надсилання пароля (або посилання для скидання пароля) на мило користувача без попереднього запиту секретного питання означає, що програма не потребує високого рівня безпеки. Тобто тут залежить від того, наскільки сильно вам потрібно захищати обліки користувачів. Якщо секретні питання використовуються, то наступним кроком буде оцінка їхньої міцності. Цей конкретний тест детально обговорюється в розділі "Testing for Weak Security Question Answer" контрольне питання/відповідь.
- Як повідомляється користувачеві про скидання пароля? Найнебезпечніший сценарій тут – якщо інструмент скидання пароля показує вам згенерований пароль на екрані, це дає зловмиснику можливість увійти до облікового запису. Також треба перевірити, чи є якесь сповіщення на пошту або телефон користувача, що його пароль хочуть змінити. Найкраща безпека досягається, якщо скидання пароля виконується на мило користувача, на яке він спочатку зареєстрований.
- Скинутий новий пароль генеруються випадковим чином? Найнебезпечніший сценарій тут - якщо програма відправляє або візуалізує старий пароль у вигляді відкритого тексту, тому що це означає, що паролі не зберігаються в хешованій формі, що сама по собі є проблемою безпеки. Найкраща безпека досягається, якщо паролі генеруються випадково за допомогою безпечного алгоритму, який неможливо отримати
- Чи потрібна функція підтвердження для скидання пароля перед зміною? Щоб обмежити відмову в сервісних атаках, програма повинна надіслати користувачеві посилання з випадковим токеном, і тільки якщо користувач відвідує посилання, тоді вважати процедуру скидання завершеною. Це гарантує, що поточний пароль буде дійсним до скидання.
Перевірка зміни пароля На додаток до попереднього тесту важливо перевірити:
- Чи потрібний старий пароль для завершення зміни? Найнебезпечніший сценарій тут - якщо програма дозволяє зміну пароля, не запитуючи чинний пароль. Справді, якщо зловмисник зможе взяти під контроль сеанс, що діє, він може легко змінити пароль жертви, також ознайомитися з «Testing for Weak Password Policy».