Порушена автентифікація користувача
6-значний код є лише секретом, а припущення обмежені.
Що таке Порушена автентифікація користувача?
Кінцева точка може правильно перевіряти облікові дані, але ніколи не захищати перевірку від автоматизації: немає обмежень на спроби, немає блокування, немає обмеження швидкості. Коли облікові дані є 6-значним кодом, зловмисник проходить весь простір по одному запиту за раз. Ви почнете вхід, зберігаючи лише адресу електронної пошти цільового користувача, спостерігаєте, як неправильний код відповідає 200, нічого не враховуючи, а потім створіть сценарій свого шляху до живого сеансу. Виправлення відстежує невдалі спроби в стані на стороні сервера, повертає 429 при обмеженні, споживає код під час збігу та зберігає термін дії коротким.
Що ви дізнаєтесь у Порушена автентифікація користувача
- Розпізнавати несправну автентифікацію користувача, коли кінцева точка правильно перевіряє облікові дані, але не накладає обмежень на спроби, тому використовується груба сила
- Зрозумійте, що короткий числовий код (OTP або код входу) є лише секретним, тоді як кількість вгадувань обмежена, і що нерегульована кінцева точка передає зловмиснику весь простір коду по одному запиту за раз.
- Відрізняйте це від крадіжки маркерів, підробки маркерів і недоліків доступу на рівні об’єктів; тут перевірка облікових даних правильна, а відсутній елемент керування – це антиавтоматизація на кінцевій точці
- Застосуйте виправлення: підраховуйте невдалі спроби в стані сервера, підключеному до облікового запису, блокуйте після порогового значення та повертайте 429, споживайте коди під час використання та зберігайте коди короткочасними
- Перевіряйте кожну кінцеву точку входу, підтвердження та скидання пароля на ліміт пропущених спроб, оскільки для захоплення облікового запису достатньо одного кроку нерегульованої автентифікації
Порушена автентифікація користувача — Кроки навчання
-
Один код стоїть на варті
Kelvo — це споживча грошова програма, яка вводить людей у систему за допомогою 6-значного коду, який надсилається електронною поштою на їх адресу, без пароля. Введіть свою електронну пошту, Kelvo надішле код, ви введете його назад, ви ввійшли. У Боба немає коду. Зі зламаного списку розсилки він має електронну адресу одного клієнта: renata.voss@gmail.com.. Він відкриває сторінку входу Kelvo, щоб побачити, з чим саме він стикається.
-
Активуйте код
Боб починає вхід для цільового облікового запису. Він набирає електронну пошту жертви та просить Келво надіслати код. Код потрапляє у папку «Вхідні» Ренати, а не його, але Келво тепер показує йому екран із запитом про це. Далі він вивчає цей екран і запит, що стоїть за ним.
-
Дивіться запит
Зараз перед Бобом екран для введення коду. Він не має справжнього коду Ренати, але перш ніж спробувати його зламати, він хоче побачити, як екран перевіряє код і куди він його надсилає. Він вводить неправильний код і надсилає, а потім спостерігає за запитом, який робить його браузер на панелі мережі.
-
Кінцева точка на очах
Браузер Боба надіслав код до API Kelvo, а мережева панель зафіксувала весь запит. Це дає йому єдине, що йому потрібно для атаки без екрану: точну кінцеву точку, яка перевіряє коди.
-
Сценарій грубої сили
Маючи кінцеву точку в руках, Боб не вгадує вручну. Він відкриває короткий сценарій, який запускатиме з ним: цикл, який надсилає всі можливі коди кінцевій точці перевірки Kelvo, доки один не повернеться прийнятим.
-
Як працює цикл
Вся атака — жменька рядків. Розгляньте, що робить кожна частина, і чому ніщо на вразливому сервері не зупиняє її.
-
Пройдіть кожен код
Боб запускає сценарій на кінцевій точці перевірки Kelvo. Він запускає один і той самий запит знову і знову, щоразу збільшуючи код, і чекає, поки один буде прийнятий.
-
Код, який працює
Сценарій запустився без протидії та знайшов код, який приймає сервер.
-
Використовуйте код
Боб бере код, який знайшов його сценарій, і ще раз надсилає його до кінцевої точки вручну, щоб підтвердити, що обліковий запис належить йому, і побачити, що він зараз має.
-
Жива сесія, із шести цифр
Кінцева точка прийняла вгаданий код і повернула реальний сеанс.
Охоплення стандартів безпеки
OWASP API Top 10
- API2:2023 Broken Authentication
CWE
- CWE-287 Improper Authentication
- CWE-307 Improper Restriction of Excessive Authentication Attempts
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security