🛡 Защищаем свои ресурсы. Часть 5: Уязвимости бизнес-логики Всем привет 👋 Продолжаем образовательную рубрику - и сегодня разберём один из самых недооценённых классов уязвимостей - ошибки бизнес-логики.
Если коротко: это ситуации, когда система делает всё «по правилам», но результат для бизнеса — катастрофический.
Что такое уязвимости бизнес-логики
Бизнес-логика - это правила, по которым работает система:
• сколько можно купить товара • как считается цена • кто и что может делать • в каком порядке выполняются действия
Уязвимость возникает, когда:
➡️ правила есть, ➡️ но их можно обойти, ➡️ и система не понимает, что с ней делают что-то «не так».
Как это выглядит на практике
• пользователь оформляет заказ • применяет скидку • добавляет товар в корзину • меняет количество • подтверждает покупку
Никаких «взломов», никаких ошибок на экране.
Но за счёт логических несоответствий можно, например:
• купить товар дешевле себестоимости • получить деньги «из воздуха» • оформить заказ без оплаты • изменить чужие данные • получить доступ к функциям администратора
И система сама это разрешает.
Почему такие уязвимости опаснее технических
SQL-инъекцию или XSS часто видно сразу. А бизнес-логика:
• не ломает систему • не вызывает ошибок • не выглядит подозрительно в логах
С точки зрения сервера - пользователь просто делает допустимые действия.
Именно поэтому такие атаки часто обнаруживаются: ❌ после финансовых потерь ❌ после инцидентов ❌ после жалоб клиентов
Примеры последствий
Через ошибки бизнес-логики можно:
• получить доступ к админ-панели • обойти 2FA • сбросить пароль другому пользователю • манипулировать балансом • оформить заказы с отрицательной стоимостью • комбинировать скидки бесконечно Самые частые причины по которым бизнес-логика ломается : • система доверяет параметрам от клиента • отсутствуют проверки на «нелогичные» значения • не проверяется порядок действий • логика разбросана между фронтом и бэком • сценарии «а что если» никто не тестировал
Классическая ошибка:
«Ну пользователь же так делать не будет»
Как защищаются от уязвимостей бизнес-логики
❗️Бизнес-логику нельзя защитить сканером
Она защищается только:
• анализом сценариев • моделированием злоупотреблений • тестированием «неправильных» действий • проверкой крайних и нелогичных случаев
Хороший вопрос при разработке:
«А что будет, если пользователь сделает это наоборот?»
Вывод
Уязвимости бизнес-логики - это не про технологии.
Это про мышление и процессы.
Система может быть: • за HTTPS • без SQL-инъекций • без XSS
И при этом терять деньги, данные и контроль - просто потому, что логика работает не так, как ожидалось.
Продолжение следует 👉 Раскрытие информации