0/5

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

Моделируем угрозы: самые частые уязвимости в процессах покупки и в программах лояльности
время публикации: 10:00  09 декабря 2022 года
Этапы онлайн-покупок во многом стандартизированы, и на каждом из них есть пространство для мошеннических действий. На примерах из российского ритейла рассмотрим часто встречающиеся уязвимости, риски для бизнеса и способы борьбы с ними.
Моделируем угрозы: самые частые уязвимости в процессах покупки и в программах лояльностиАлександр Герасимов, директор по информационной безопасности и сооснователь Awillix. Эксперт в области тестирования на проникновение и анализа защищенности.

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

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

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

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


Уязвимости в сценарии покупки


Авторизация по почте и паролю 

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

Если злоумышленник соберет клиентскую базу и будет использовать в своих целях, для бизнеса это репутационный ущерб. В худшем случае он подберет пароль и украдет аккаунты пользователей, в лучшем — отправит запрос на восстановление пароля 10 тысяч раз и клиентам придет 10 тысяч нежелательных сообщений, которые забьют ящик. 

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

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

Слабая парольная политика 

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

Угроза — захват пользовательских аккаунтов со слабым паролем. 

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

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

Авторизация по СМС 

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

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

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

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

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

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

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

Безлимитный ввод кода  

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

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

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

Бессмертный код 

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

Перебор в этом случае действует наоборот. Злоумышленник фиксирует код подтверждения и пытается подобрать к нему подходящий номер телефона, опять же автоматически. У СМС-кодов небольшая энтропия — небольшое количество вариантов, поэтому такой способ проникновения вполне рабочий. 

Решение: Необходимо уменьшить жизнь проверочного кода до 30 секунд. И увеличить длину кода. 

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

Чужой товар в корзине 

Существует технология защиты от так называемых атак на подделку запроса. Это происходит с помощью уникальных токенов. 

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

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

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

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

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

Непреднамеренное разглашение 

Еще одна не слишком критичная, но очень распространенная уязвимость — передача чувствительных данных в адресной строке. Разработчики могут не корректно реализовать процесс, например, чекаута (сохранения контактных данных или биллинга) и данные на сервер будут передаваться не в скрытом теле запроса, а в GET-параметрах прямо в адресной строке наверху. 

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

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

Решение: Устранить такую проблему очень легко. Нужно перенести параметры из GET в тело запроса, оно как правило не логируется.  

Гуляющий идентификатор 

После оплаты пользователь получает от сайта номер своего заказа. Часто бывает, что в логике работы магазина не предусмотрена проверка принадлежности номера заказа пользователю. Тогда можно изменить номер заказа и получить чужой. 

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

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

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

Саботаж логистики 

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

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

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

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


 

Уязвимости в системе лояльности


Кража чужой карты 

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

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

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

Мошенничество с промокодами 

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

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


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

Скупка акционных товаров ботами 

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

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

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


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


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

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

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

Отсутствие активных средств защиты. Без них определить атаку крайне сложно. 

Отсутствие собственных правил для оповещения об аномалиях, например, резкий рост отправляемых СМС.




Читайте также:  Актуальные проблемы онлайн-платежей: от взломов до социальной инженерии




Что делать? 


→ Моделировать угрозы.

→ Убедиться, что необходимые события собираются и могут быть проанализированы.

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

→ Проводить тестирование на проникновение и анализ защищенности с помощью внешних специалистов 2-4 раза в год. 

Александр Герасимов, 
директор по информационной безопасности и сооснователь Awillix.

Для New Retail



0
Реклама на New Retail. Медиакит