Уязвимости бизнес-логики

Многие сталкивались с таким понятием как ошибки бизнес-логики, но не всегда понятно что именно скрывается за этим расплывчатым классификатором уязвимостей и какое отношение к этому имеет бизнес. Что же такое на самом деле ошибки бизнес-логики, к каким последствиям они могут привести и как они отличаются от классических уязвимостей?

Дата выхода: Время прочтения статьи:
Уязвимости бизнес-логики

Введение

Многие сталкивались с таким понятием как ошибки бизнес-логики, но не всегда понятно что именно скрывается за этим расплывчатым классификатором уязвимостей и какое отношение к этому имеет бизнес. Что же такое на самом деле ошибки бизнес-логики, к каким последствиям они могут привести и как они отличаются от классических уязвимостей?

Разберем по отдельности несколько примеров и как наши специалисты могут помочь вам выявить подобные уязвимости.

Причины возникновения

Перед тем, как рассмотреть примеры подобных ошибок, для начала разберемся из-за чего вообще могут возникнуть уязвимости бизнес-логики.

Большинство уязвимостей может возникать из-за некорректных или отсутствующих проверок безопасности (валидация значений, отсутствие прав доступа, аутентификация и т.д.). Напротив, уязвимости бизнес-логики могут возникать во вполне легитимных процессах которые приложение явно поддерживает, но которые могут привести к негативным последствиям, к примеру:

  • Проверка 2FA не применяется ко всем действиям пользователя
  • Отправка товара при отсутствии факта платежа
  • Получение статуса верификации при пропущенных проверочных шагах
  • Наличие клиент-сайд проверок которые отсутствуют на стороне сервера
  • Обход проверок на принадлежность почты к домену из белого списка
  • Резервация товаров без покупки с целью исчерпать наличие и заблокировать возможность покупки другими пользователями

Самым первым шагом к обнаружению уязвимости бизнес-логики будет понимание бизнес-процессов которые обрабатываются приложением.

Реальные примеры эксплуатации

В одном из сервисов была выявлена особенность при которой доступ к определенным разделам сайта возможен только пользователям с корпоративной почтой по доменам из белого списка. Проверка происходила при регистрации аккаунта и пока пользователь не подтвердил почту, получить доступ к аккаунту было невозможно. Но функционал изменения почты подобную проверку не выполнял, в результате чего можно было создать аккаунт с обычным доменом и изменить почту в личном кабинете:

POST /my-account
Host: example.com

email=hacked@company.com

При этом подтверждать изменение было необязательно, для данного функционала не применялась проверка по белому списку доменов и злоумышленник мог получить доступ к разделам используя уязвимость в логике процессов, но при этом фактически какой-либо инъекции или известной веб-уязвимости не было применено, как и отсутствовала уязвимость в самом коде приложения.

Что проверять и как защититься?

При поиске уязвимостей бизнес-логики можно опираться на особенности приложения которое проверяется:

Функционал маркетплейсов

  • Возможность оставлять отзыв без фактической покупки товара
  • Возможность поставить рейтинг выше или ниже допустимых значений
  • Возможность поставить рейтинг или отзыв несколько раз
  • Возможность применить один и тот же уникальный код на скидку несколько раз (одновременно на двух аккаунтах, кондиции гонки, применение после истечения кода)
  • Применение скидки к товарам на которые скидка не распространяется методом обхода клиент-сайд проверок
  • Возможность активации бесплатной доставки манипулируя скрытыми на стороне клиента значениями
  • Использовать значения с плавающей точкой с целью манипуляцией ценой товара
  • Множественные запросы на возврат средств с целью получения нескольких возвратов за один товар

Проверка личности, документов, верификации

  • Пропуск шагов связанных с верификацией для получения подтвержденного статуса
  • Изменение данных после отправки документов на верификацию для получения статуса с некорректными данными
  • Отсутствия проверки на наличия верификации на стороне сервера к функционалу где требуется подобный статус

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

Заключение

Несмотря на невозможность выявления подобных уязвимостей автоматическим способом, Метаскан позволяет вам воспользоваться помощью экспертного сопровождения с целью обнаружения подобных ошибок в бизнес-процессах.

Наши эксперты подробно изучают инфраструктуру с которой работают и тесно взаимодействуют с вашей командой ИБ с целью найти недостатки которые могут скрываться за вполне легитимным процессом. В рамках договора на ежемесячной основе можно запросить подробный анализ критически важных для вас приложений с целью выявления уязвимостей связанных с логикой приложения.