Руководитель проектного офиса интерактивного агентства Agima Константин Мовчан рассказал, что делать во время резкого всплеска фрода и как защитить от взлома массовые программы лояльности. Мовчан поделился с «Роем!» кейсом совместной работы с крупным ритейлером.
Стремление к разрушению и незаконному обогащению движет не только злодеями из голливудских блокбастеров. Обычные хулиганы крушат автобусные остановки и ломают лавочки в парках, неуравновешенные домохозяйки бьют посуду, мошенники опустошают банковские счета доверчивых граждан, а продвинутые техногики взламывают защищенные компьютерные системы. В нашем случае — речь о последних. Они любят рушить программы лояльности: защита таких программ, как правило, сравнительно несложна, шансы быть наказанным минимальны (в законах не прописана ответственность за махинации с «условными валютами», которые используются в программах лояльности). Кроме того, успех взлома можно быстро монетизировать — пойти в ближайшую торговую точку и получить за бонусы всякие товары.
Бонусная программа нашей жертвы устроена не сложнее и не проще других: личный кабинет, в котором копятся баллы за покупки, логин и пароль. Но без второго фактора (sms/push) подтверждения авторизации. Такой формат защиты, как известно, наименее надежен.
Мошенники занялись перебором вариантов сочетаний. Верные пары «логин-пароль» исправно подбирались и проверялись через специальную программу «чекер». Эти проверки быстро спровоцировали аномальную нагрузку и замедлили работу всей IT-системы клиента.
Как назло, в это же время покупатели начали активно тратить бонусы, что неудивительно, т.к. вся история происходила перед праздниками. Нагрузка выросла еще, и в работе систем стали возникать серьезные сбои.
Тем временем, мы обнаружили слабое звено, что называется, за линией фронта. В IT-инфраструктуре, а точнее, в изначальной конфигурации платформы, на которой была построена программа лояльности, не были предусмотрены некоторые вещи (что в целом обычно, так как любой IT-продукт существует в развитии). К этому прибавились постоянные «падения» из-за высоких нагрузок, и в результате работа всей системы стала близка к коллапсу. Надо было срочно что-то решать.
Почему программы bug bounty нужны всем, — Иван Новиков, CEO Wallarm
Методы быстрого реагирования
Сбой мы устранили довольно оперативно и сосредоточились на главном — нейтрализации злоумышленников. В первую очередь, мы выделили команду из дежурных администраторов, тимлидов и программистов, которые круглосуточно следили за происходящим и обеспечивали бесперебойную работу системы.
Мошенники использовали недорогие зарубежные IP-адреса, так что мы начали с простой блокировки зарубежного трафика и фильтрации IP-адресов. Нагрузка на систему снизилась, и это дало время для подготовки более хитроумной защиты.
Следующим рубежом обороны стала капча, помогающая определить, человек или робот делает запрос. Это, с одной стороны, заблокировало фрод, но не стало окончательным.
Дело в том, что капча требует подключения к интернету, а во многих магазинах связь была слишком слабой. Отсутствие мобильного интернета не позволяло пройти защитный тест, и они не могли воспользоваться бонусными баллами.
Злоумышленники прибегли к «социальной инженерии» для воздействия на клиента. Появились возмущенные отзывы пользователей — причем, как нам удалось выяснить, мошенники с помощью ботов сами оставляли негативные комментарии, чтобы воздействовать на клиента и вынудить его отключить защиту.
Капчу-то мы, конечно, убрали, но сдаваться не собирались: взамен включили SMS-авторизацию. Этот метод сработал, причем взломщики, поняв, что проиграли, попытались поднять новую волну негативных отзывов. Но не это главное: они массово бросились в магазины тратить чужие бонусные баллы в надежде получить хоть что-то.
Догадаться, что они поступят именно так, было нетрудно. К тому же, на форумах, где общались злоумышленники, появились призывы «срочно наличить баллы», поскольку новая система защиты оказалась эффективнее прежней.
Враг разбит и бежит с поля боя
Следующий шаг был смелым, но абсолютно логичным — мы просто отключили на время возможность списания бонусных баллов. Это позволило переждать первую, самую массовую, волну мошенников, стремящихся потратить чужие бонусы. А добросовестным покупателям спокойно разъяснили ситуацию.
После небольшого перерыва возможность списания баллов была восстановлена, одновременно мы дополнительно усилили защиту, применив комбинацию капчи и SMS-авторизации, которые применялись только при регистрации в системе и не требовались при списании баллов. Количество незаконных операций с бонусными баллами снова уменьшилось — следовательно, мы нашли верный путь предотвращения мошенничества.
Что нас не хакает, делает нас сильнее
Что позволило нам остановить резкий всплеск фрода? Мы внимательно смотрели на методы, которыми пользовались мошенники, анализировали настройки систем клиента, изучали и пробовали разные варианты защиты и их комбинации. Мы отслеживали реакции взломщиков на каждый свой шаг, разбирались в том, как они обходят разные схемы защиты. Это помогло закрыть потенциальные дыры в безопасности программ лояльности клиента, существенно снизить потери от взлома.
Вообще злоумышленники в руках умелого разработчика могут стать отличным ресурсом для тестирования устойчивости систем лояльности к взломам. Возможно, нет ни одной такой системы, которую бы не ломали. Изощренность схем, которые используются для получения незаконного доступа к чужим бонусным баллам, поражает воображение. В одной из них нужно было установить, запустить, затем сразу удалить приложение, потом снова установить его, а между этими установками и запусками еще произвести некоторые действия в самом приложении. Глядя на все те ухищрения, которые применяют взломщики, иногда становится жаль, что живой и гибкий ум используется ради такого мелкого и грязного дела.
В заключение хотелось бы дать несколько советов тем, кто запускает массовые программы лояльности и хочет защитить их от взлома:
- Используйте систему, поддерживающую SMS или другие методы подтверждения авторизации в личном кабинете;
- Включайте SMS-авторизацию или PUSH-уведомления для защиты от незаконных операций с бонусами;
- Используйте 3-ий фактор в случае появления подозрительных активностей (например, контрольный вопрос при некорректном вводе пары пароль/логин более N-раз);
- Временная блокировка аккаунта в случае подозрительной активности;
- Предусмотрите возможность снижения работоспособности IT-инфраструктуры вследствие резкого повышения нагрузок (наподобие ddos-атаки);
- Внимательно следите за отзывами пользователей о своем продукте;
- Используйте системы логирования, этот инструмент вам поможет в поиске проблем на проекте.