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

Введение
Многие сталкивались с таким понятием как ошибки бизнес-логики, но не всегда понятно что именно скрывается за этим расплывчатым классификатором уязвимостей и какое отношение к этому имеет бизнес. Что же такое на самом деле ошибки бизнес-логики, к каким последствиям они могут привести и как они отличаются от классических уязвимостей?
Разберем по отдельности несколько примеров и как наши специалисты могут помочь вам выявить подобные уязвимости.
Причины возникновения
Перед тем, как рассмотреть примеры подобных ошибок, для начала разберемся из-за чего вообще могут возникнуть уязвимости бизнес-логики.
Большинство уязвимостей может возникать из-за некорректных или отсутствующих проверок безопасности (валидация значений, отсутствие прав доступа, аутентификация и т.д.). Напротив, уязвимости бизнес-логики могут возникать во вполне легитимных процессах которые приложение явно поддерживает, но которые могут привести к негативным последствиям, к примеру:
- Проверка 2FA не применяется ко всем действиям пользователя
- Отправка товара при отсутствии факта платежа
- Получение статуса верификации при пропущенных проверочных шагах
- Наличие клиент-сайд проверок которые отсутствуют на стороне сервера
- Обход проверок на принадлежность почты к домену из белого списка
- Резервация товаров без покупки с целью исчерпать наличие и заблокировать возможность покупки другими пользователями
Самым первым шагом к обнаружению уязвимости бизнес-логики будет понимание бизнес-процессов которые обрабатываются приложением.
Реальные примеры эксплуатации
В одном из сервисов была выявлена особенность при которой доступ к определенным разделам сайта возможен только пользователям с корпоративной почтой по доменам из белого списка. Проверка происходила при регистрации аккаунта и пока пользователь не подтвердил почту, получить доступ к аккаунту было невозможно. Но функционал изменения почты подобную проверку не выполнял, в результате чего можно было создать аккаунт с обычным доменом и изменить почту в личном кабинете:
POST /my-account Host: example.com email=hacked@company.com
При этом подтверждать изменение было необязательно, для данного функционала не применялась проверка по белому списку доменов и злоумышленник мог получить доступ к разделам используя уязвимость в логике процессов, но при этом фактически какой-либо инъекции или известной веб-уязвимости не было применено, как и отсутствовала уязвимость в самом коде приложения.
Что проверять и как защититься?
При поиске уязвимостей бизнес-логики можно опираться на особенности приложения которое проверяется:
Функционал маркетплейсов
- Возможность оставлять отзыв без фактической покупки товара
- Возможность поставить рейтинг выше или ниже допустимых значений
- Возможность поставить рейтинг или отзыв несколько раз
- Возможность применить один и тот же уникальный код на скидку несколько раз (одновременно на двух аккаунтах, кондиции гонки, применение после истечения кода)
- Применение скидки к товарам на которые скидка не распространяется методом обхода клиент-сайд проверок
- Возможность активации бесплатной доставки манипулируя скрытыми на стороне клиента значениями
- Использовать значения с плавающей точкой с целью манипуляцией ценой товара
- Множественные запросы на возврат средств с целью получения нескольких возвратов за один товар
Проверка личности, документов, верификации
- Пропуск шагов связанных с верификацией для получения подтвержденного статуса
- Изменение данных после отправки документов на верификацию для получения статуса с некорректными данными
- Отсутствия проверки на наличия верификации на стороне сервера к функционалу где требуется подобный статус
Для предотвращения подобных уязвимостей необходимо визуализировать и жестко контролировать устройство процесса связанного с бизнес-логикой, даже если присутствует полная защита на уровне кода от распространенных уязвимостей.
Заключение
Несмотря на невозможность выявления подобных уязвимостей автоматическим способом, Метаскан позволяет вам воспользоваться помощью экспертного сопровождения с целью обнаружения подобных ошибок в бизнес-процессах.
Наши эксперты подробно изучают инфраструктуру с которой работают и тесно взаимодействуют с вашей командой ИБ с целью найти недостатки которые могут скрываться за вполне легитимным процессом. В рамках договора на ежемесячной основе можно запросить подробный анализ критически важных для вас приложений с целью выявления уязвимостей связанных с логикой приложения.