ИТ / Статьи
информбезопасность экспертная колонка
28.11.2022

Кибератаки на ритейл

Методы борьбы с уязвимостями в системах лояльности и в процессах покупки

Чтобы защитить бизнес от киберрисков, первое, что нужно сделать, – это определить потенциальных нарушителей, их навыки и способы мошенничества, смоделировав угрозу. О том, какие риски информационной безопасности встречаются в реальных проектах ритейла и е-commerce и способах борьбы с ними, читателям RSpectr рассказал эксперт в области тестирования на проникновение и анализа защищенности, директор по информбезопасности и сооснователь компании Awillix Александр Герасимов.

УЯЗВИМОСТИ В СЦЕНАРИИ ПОКУПКИ

Один из рисков – это внешний нарушитель, который не имеет учетных данных пользователя, но может получить доступ к промокодам. Он может перебирать промокоды (брутфорс) или брать их из базы данных при наличии технической уязвимости. Это одна из угроз. Еще атакующий может проникнуть в IТ-инфраструктуру и будет рассматриваться как внутренний злоумышленник, так же, как если один из сотрудников захочет «слить» конфиденциальную информацию, – это вторая и третья модель нарушителя.

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

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

АВТОРИЗАЦИЯ ПО ПОЧТЕ И ПАРОЛЮ

Злоумышленник может составить большой список email-адресов и пробовать перебирать их через форму «забыл пароль». Если почта, которую он указал, существует, сайт ответит, что «письмо с восстановлением пароля отправлено на почту». Если нет – «пользователь с таким email не существует». Таким образом, взломщик поймет, какие адреса верные, и составит список пользователей, которые есть в системе. Дальше он сможет атаковать их фишинговыми рассылками или перебором паролей для их аккаунтов.

Если злоумышленник соберет клиентскую базу и будет использовать в своих целях, то для бизнеса это репутационный ущерб. В худшем случае мошенник подберет пароль и украдет аккаунты пользователей, в лучшем – отправит запрос на восстановление пароля 10 тыс. раз и клиентам придет столько же нежелательных сообщений, которые забьют ящик. Чтобы защититься от такой атаки, следует использовать общие слова при восстановлении пароля, например: «если пользователь существует, ему будет направлено письмо с восстановлением пароля». Также от множественных запросов к сервису помогают CAPTCHA-тесты или блокировка аккаунтов по различным показателям: User agent, IP-адресам или нескольким факторам.

АВТОРИЗАЦИЯ ПО СМС

Обычно, чтобы авторизоваться на сайте, пользователь просто вводит номер телефона, получает код подтверждения по СМС и проходит в личный кабинет. Если нет механизма защиты от множественных запросов, то злоумышленник может отправить запрос на СМС, например, 200 раз и клиенту придет 200 СМС.

Если веб-сервис использует внешнего СМС-провайдера, то одна СМС стоит от 75 копеек до 2 рублей в зависимости от тарифа. Обычно провайдер для крупных ритейлеров позволяет отправлять до 3 тыс. СМС в секунду. На отправку 200 запросов компания тратит 400 рублей в секунду.

Если атака длится час, то злоумышленник сожжет почти 1,5 млн рублей с баланса компании

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

БЕЗЛИМИТНЫЙ ВВОД КОДА

Неограниченное количество попыток ввода кода подтверждения тоже является уязвимостью и встречается часто. Злоумышленник сможет перебирать цифры до бесконечности, пока не подберет нужный. Это делается автоматически и очень быстро, особенно для четырехзначных кодов – нужно проверить всего 10 тыс. комбинаций. Для автоматического перебора значений и шестизначный код – нетрудная задача. Если злоумышленнику в руки попала база с номерами клиентов, остальное для него не проблема.

Нужно всегда ограничивать попытки ввода кода до трех раз. Увеличить длину кода с четырех до шести цифр. И в качестве общей рекомендации – также внедрить мониторинг аномалий.

ЧУЖОЙ ТОВАР В КОРЗИНЕ

Существует технология защиты от так называемых атак на подделку запроса. Это происходит с помощью уникальных токенов. Токен – это уникальное значение для каждого пользователя и для каждого товара. Когда пользователь добавляет товар в корзину, вместе с запросом на добавление в корзину он отправляет этот уникальный токен.

Если пользователь залогинен в интернет-магазине со своего браузера, но продолжает «серфить» в интернете, заходить на разные сайты, то в какой-то момент он попадет на сайт злоумышленника. На этом сайте может быть специальный Java Script код, который незаметно для пользователя отправит в магазин запрос на добавление своего товара в корзину. Для магазина это выглядит так, будто пользователь сам добавляет товар. Многие люди забывают проверить корзину, кто-то невнимателен, поэтому просто заказывают ненужный товар, а плохие продавцы зарабатывают.

При наличии токена злоумышленник не знает уникального значения и не может выполнять запрос к системе, а без него запрос злоумышленника воспринимается системой как легитимный. Атака сложна в реализации и не слишком распространена, однако эта уязвимость присутствует. Для защиты нужно внедрить CSRF-токен и установить атрибуты Same-Site, Secure, HTTPOnly для Cookies. Совет не актуален при использовании API, где вместо сессии используются токены в заголовках. Токен не может автоматически подхватиться, а сессия может.

НЕПРЕДНАМЕРЕННОЕ РАЗГЛАШЕНИЕ

Еще одна не слишком критичная, но очень распространенная уязвимость – передача чувствительных данных в адресной строке. Разработчики могут некорректно реализовать процесс, например, чек-аута (сохранения контактных данных или биллинга), и данные на сервер будут передаваться не в скрытом теле запроса, а в GET-параметрах (передается серверу с помощью ссылки) прямо в адресной строке наверху. Администратор, который имеет доступ к журналу логирования, может таким образом увидеть все телефонные номера клиентов, или ФИО, или адреса. А при наличии технической уязвимости, которая позволяет читать файлы на сервере, злоумышленник может просмотреть журнал логирования и получить конфиденциальные данные клиентов. Затем развить вектор своей атаки разными способами. Устранить такую проблему очень легко. Нужно перенести параметры из GET в тело запроса, оно, как правило, не логируется.

ГУЛЯЮЩИЙ ИДЕНТИФИКАТОР

После оплаты пользователь получает от сайта номер своего заказа. Часто бывает, что в логике работы магазина не предусмотрена проверка принадлежности номера заказа пользователю. Тогда можно изменить номер заказа и получить чужой. Злоумышленник для начала проводит тестовую покупку и получает идентификатор своего заказа. Так он понимает, как этот идентификатор формируется. Затем он отправляет запрос на получение данных о покупке, но уже с другим идентификатором, и получает информацию о заказе другого пользователя. Условно его настоящий запрос выглядит так: /get_order?id=1111, где id – это номер заказа. Если его изменить: /get_order?id=1234, то можно получить чужой заказ.

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

САБОТАЖ ЛОГИСТИКИ

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

Если ненастоящих заказов будет 1 тыс., то это нанесет логистике компании колоссальный ущерб

Особенно опасно, если в магазине есть возможность оформлять заказы как «гость» без регистрации на сайте.

Для защиты логистики от подобных атак нужно рассматривать каждый конкретный бизнес-процесс в отдельности. Но совет одинаково актуальный для всех – дополнительное подтверждение заказа. Это может быть звонок, СМС или email. Также можно рассмотреть лимит и блокировку множества заказов с одного IP-адреса.

КРАЖА ЧУЖОЙ КАРТЫ

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

Такие инциденты в основном несут угрозу репутации компании. Чтобы защититься, нужно привязывать карты лояльности к аккаунтам пользователей и отслеживать аномалии – множественные запросы на привязку карты к аккаунту. Блокировать пользователей, которые создают множественные запросы.

МОШЕННИЧЕСТВО С ПРОМОКОДАМИ

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

Для защиты лучше генерировать случайные значения для промокодов. Внедрить мониторинговые системы, которые помогут выявить использование кодов раньше начала акции.

СКУПКА АКЦИОННЫХ ТОВАРОВ БОТАМИ

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

Методы борьбы с такими угрозами разнятся в зависимости от площадки и специфики бизнеса. Например, можно делать поведенческий анализ пользователя и блокировать его на время, зафиксировав отклонения, либо просить подтвердить действия введением дополнительной CAPTCHA или кода из СМС.

Почему аналитики не могут определить мошенников:

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

Что делать?

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

Изображения: RSpectr, Awillix, Adobe Stock

Еще по теме

Почему буксует импортозамещение электронных компонентов

Почему рынок коммерческих дата-центров нуждается в регулировании

Что ждет начинающего тестировщика в 2024 году

Как найти перспективные зарубежные рынки для российских решений

Какие угрозы несет интернет тел человечеству

Успеют ли банки заменить импортный софт и оборудование до 2025 года

Зачем компании вкладывают деньги в ИТ-состязания?

Импортозамещение и внутренняя разработка ПО в страховании

Почему рынок информационных технологий РФ возвращается к классической дистрибуции

Что сделано и не сделано в цифровизации России за 2023 год

Как заботу о вычислениях переложить на вендоров и почему не все к этому готовы

Когда российский бизнес начнет замещать импортное ИТ-оборудование

Чего добились за два года активного импортозамещения ПО

Как искусственный интеллект меняет банковскую систему РФ

Как проходит цифровая трансформация отечественного госсектора