Перебір користувачів

Перебір користувачів

Дві різні помилки підказують зловмисникові, які електронні адреси справжні.

Що таке Перебір користувачів?

Перебір користувачів — це ситуація, коли ваш застосунок сам підтверджує, які адреси мають облікові записи. Для цього достатньо однієї помітної різниці: іншого рядка помилки, іншого коду стану, повільнішої відповіді. Ви надішлете дві проби входу й отримаєте «No account found» в одному випадку та «Incorrect password» в іншому, а ще різницю в затримці, бо bcrypt виконується лише тоді, коли є хеш для порівняння. Виправлення повертає одну загальну помилку й завжди виконує порівняння, а коли користувача немає, — із фіксованим фіктивним хешем. Реєстрація та скидання пароля видають відповідь так само.

Що ви дізнаєтесь у Перебір користувачів

Перебір користувачів — Кроки навчання

  1. Список, який треба відфільтрувати

    У Боба є дамп пар «електронна адреса — пароль» зі стороннього витоку. Більшість цих людей ніколи не чули про Larksong, тож прогнати весь список через сторінку входу було б повільно й галасливо. Спершу він хоче знати, які з цих адрес справді мають облікові записи в Larksong. Тому відкриває сторінку входу Larksong у браузері, з готовими DevTools, щоб побачити, як вона реагує на невдалий вхід.

  2. Спробуйте незареєстровану адресу

    Боб починає з еталона. Він пробує ввійти з адресою, до якої майже напевно не прив'язано облікового запису Larksong, і з випадковим паролем, а тоді стежить, як відповідь з'являється на вкладці «Network» («Мережа») в DevTools.

  3. Еталонна відповідь

    Форма показує помилку входу, а справжні подробиці — на вкладці «Network»: відповідь 401 із тілом і часом відповіді. Так виглядає невдала спроба входу з незареєстрованою електронною адресою. Боб бере це за еталон.

  4. Спробуйте адресу, яку Боб вважає справжньою

    Тепер Боб повторює спробу з адресою зі свого дампа, яка, на його думку, належить справжньому слухачеві, — marcus.delgado@gmail.com, знову з випадковим паролем. Якщо ендпоінт обробляє обидва випадки однаково, відповідь збігатиметься з еталоном. Якщо ні, ця різниця й буде його здобиччю.

  5. Інша відповідь

    Відповідь змінилася. Той самий неправильний пароль, але тіло відповіді інше. Боб так і не ввійшов, а ендпоінт входу щойно сам сказав йому, що ця адреса належить справжньому обліковому запису Larksong.

  6. Перевірте час відповідей

    Формулювання — одна з ознак, що видають відповідь. На вкладці «Network» є ще одна, непомітніша: скільки тривав кожен запит.

  7. Перевірка знань

  8. Зберіть список

    Боб націлює скрипт на ендпоінт входу й подає йому всі адреси зі свого дампа, по одному запиту на кожну. Щоразу, коли відповідь — повільне Incorrect password , ця адреса потрапляє до його підтвердженого списку. Із 50 000 кандидатів 8 400 — справжні облікові записи Larksong. Атака з підстановкою облікових даних (credential stuffing), яка піде далі, націлена лише на адреси, про які Боб знає, що вони існують, тож лишається невеликою й тихою, далеко нижче порогів, на яких спрацювали б обмеження частоти запитів проти сліпої атаки по всьому списку.

  9. Сповіщення системи безпеки

    Ви відповідаєте за сервіс входу Larksong. Уночі система виявлення позначила незвичну активність на ендпоінті входу й надіслала вам лист про виявлене. Прочитайте, що вона виявила, а тоді відкрийте код.

  10. Відкрийте обробник входу

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

Охоплення стандартів безпеки

OWASP Top 10

  • A07:2025 Authentication Failures
  • A07:2021 Identification and Authentication Failures

CWE

  • CWE-204 Observable Response Discrepancy
  • CWE-208 Observable Timing Discrepancy

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