Group-IB, международная компания, специализирующаяся на предотвращении кибератак, представила первый аналитический отчет, посвященный исследованию JavaScript-снифферов, класса вредоносного кода, предназначенного для кражи данных банковских карт на web-сайтах. В ходе исследования было проанализировано 2440 зараженных онлайн-магазинов, посетители которых — суммарно около полутора миллионов человек в день — подверглись риску компрометации. Отчет Group-IB стал первым исследованием даркнет рынка снифферов, их инфраструктуры и способов монетизации, приносящей их создателям миллионы долларов.
Рынок онлайн-торговли бурно развивается: по прогнозам аналитиков Data Insight к 2023 году в России он вырастет более чем в два раза — до 2,4 трлн. рублей. Удобство приобретения товаров в Интернете имеет обратную сторону: покупатели, использующие банковские карты для оплаты в онлайне, сталкиваются со множеством киберугроз, одна из них — JavaScript-сниффер.
До выпуска отчета Group-IB «Преступление без наказания: анализ семейств JS-снифферов» в российской индустрии кибербезопасности не предпринималось попыток системно исследовать этот сегмент андеграундного рынка. На международной арене аналитики RiskIQ в партнерстве с Flashpoint были первыми, кто выпустил отчет, посвященный деятельности злоумышленников, использующих JS-снифферы. Они выделили 12 групп под общим названием MageCart. Эксперты Group-IB изучили обнаруженные снифферы и, применив собственные аналитические системы, смогли исследовать всю инфраструктуру и получить доступ к исходникам, панелям администраторов и инструментам злоумышленников. Такой подход позволил выявить 38 разных семейств JS-снифферов, отличающихся уникальными признаками. Из них 15 представлены в отчете, доступном клиентам Group-IB Threat Intelligence. При этом, как минимум, 8 обнаружены и описаны впервые в мире.
Угроза JS-снифферов долгое время оставалась вне поля зрения антивирусных аналитиков, считавших ее незначительной и не требующей глубокого изучения. Однако 380 000 жертв JS-сниффера, заразившего сайт и мобильное приложение авиакомпании British Airways, компрометация платежных данных американского дистрибутора билетов Ticketmaster и недавний инцидент с британским сайтом спортивного гиганта FILA, когда риску кражи данных банковских карт подверглись 5600 покупателей, свидетельствуют о необходимости изменить отношение к этой угрозе. «При заражении сайта в цепочку пострадавших вовлечены все — конечные пользователи, платежные системы, банки и крупные компании, торгующие своими товарами и услугами через интернет, — отметил Дмитрий Волков, CTO Group-IB. — Тот факт, что об инцидентах и ущербе, нанесенном JS-снифферами до сих пор почти ничего неизвестно, говорит о слабой изученности этой проблемы и позволяет группам, создающим снифферы для воровства денег онлайн-покупателей, чувствовать себя безнаказанными».
JS-сниффер — это онлайн-аналог скиммера. Но если скиммер это миниатюрное устройство, перехватывающее данные банковской карты пользователя в банкомате, то JS-сниффер — это несколько строк кода, который внедряется злоумышленниками на сайт для перехвата вводимых пользователем данных: номеров банковских карт, имен, адресов, логинов, паролей и т.д. Полученные платежные данные злоумышленники, как правило, продают кардерам на специализированных форумах в даркнете. Цена одной украденной карты составляет от 1$ до 5$. Реже — 10$-15$. Значительная часть форумов с предложениями о покупке и аренде JS-снифферов состоит из русскоязычных киберпреступников.
По усредненным подсчетам, доход «сниффероводов» может составлять сотни тысяч долларов в месяц. Например, ресурсы, зараженные JS-сниффером семейства WebRank, суммарно посещает 250 000 человек в день. Если конверсия на этих сайтах составляет всего 1%, то транзакции проводят 2500 покупателей ежедневно. Таким образом, при минимальной вилке стоимости украденной карты, операторы WebRank могут заработать от 2 500$ до 12 500$ за один день «работы» сниффера. Это от 75 000$ до 375 000$ в месяц. При этом WebRank — лишь третий в «рейтинге» массовости заражений. Ресурсы, зараженные снифферами MagentoName и CoffeMokko, посещают 440 000 человек в день.
Исследование 2440 зараженных сайтов показало, что более половины были атакованы сниффером семейства MagentoName, операторы которого используют уязвимости устаревших версий систем управления сайтом CMS Magento (Content Management System) для внедрения вредоносного кода в код сайтов, работающих под управлением этой CMS. Более 13% заражений приходится на долю снифферов семейства WebRank, использующего схему атаки на сторонние сервисы для внедрения вредоносного кода на целевые сайты. Также более 11% приходится на заражения снифферами семейства CoffeMokko, операторы которого используют обфусцированные скрипты, нацеленные на кражу данных из форм оплаты определенных платежных систем, названия полей которых жестко записываются в коде сниффера. Среди таких систем — PayPal, Verisign, Authorize.net, eWAY, Sage Pay, WorldPay, Stripe, USAePay и другие. Многие семейства снифферов используют уникальные варианты для каждой отдельной платежной системы, что требует модификации и тестирования скрипта перед каждым заражением.
Большая часть обнаруженных снифферов нацелена на платежные формы определенных систем управления сайтом — Magento, OpenCart, Shopify, WooCommerce, WordPress. К таким семействам относятся PreMage, MagentoName, FakeCDN, Qoogle, GetBilling, PostEval. Другие универсальны и могут быть интегрированы в код любого сайта, независимо от используемого «движка» (G-Analitycs, WebRank).
В ходе исследования были обнаружены признаки «конкурентной борьбы» — некоторые из исследуемых семейств JS-снифферов имеют функционал обнаружения и ликвидации JS-снифферов конкурирующих групп, уже работающих на сайте-жертве (например, MagentoName). Другие используют «тело» сниффера-конкурента, как паразит, «забирая» у него данные, которые тот перехватывает, и передавая их на свой гейт (например, WebRank). Снифферы модифицируются в целях затруднения обнаружения: например, ImageID, ReactGet, способны обходить большинство систем обнаружения, благодаря тому, что активируются только в момент совершения покупателем транзакции на сайте, в остальное время сниффер «засыпает» и никак не выдаёт себя. Некоторые семейства состоят из уникальных экземпляров, например, CoffeMokko: каждый сниффер данного семейства используется только один раз для заражения одного сайта.
Семейство G-Analytics отличается тем, что помимо внедрения вредоносного кода в клиентскую часть сайта его авторы также применяют технику внедрения кода в серверную часть сайта, а именно PHP-скрипты, обрабатывающие введенные пользователем данные. Эта значительно затрудняет обнаружение вредоносного кода исследователями. JS-снифферы типа ImageID, G-Analytics умеют имитировать легитимные сервисы, например, Google Analytics и jQuery, маскируя свою активность легитимными скриптами и похожими на легитимные доменными именами.
Атака с использованием JS-сниффера может быть многоступенчатой. Анализируя код одного из зараженных магазинов, специалисты Group-IB обнаружили, что в этом случае злоумышленники не ограничились внедрением JS-сниффера: по ряду причин им пришлось использовать полноценную поддельную платежную форму, которая подгружалась с другого скомпрометированного сайта. Эта форма предлагала пользователю два варианта оплаты: при помощи кредитной карты и при помощи PayPal. Если пользователь выбирал оплату через PayPal, то видел сообщение о том, что этот способ оплаты недоступен в данный момент и единственным вариантом оставалась банковская карта.
Развитие этого рынка привело к усложнению взаимоотношений между его игроками: снифферы могут использоваться как определенной преступной группой, разработавшей его, так и другими группами, купившими или взявшими сниффер в аренду в рамках услуг типа Sniffer-As-A-Service. В некоторых случаях сложно определить, сколько преступных групп используют конкретную программу, именно поэтому эксперты Group-IB называют их семействами, а не группами.
Стоимость JS-снифферов составляет от $250 до $5000 на подпольных форумах. Некоторые сервисы дают возможность работать в партнерстве: клиент предоставляет доступ к скомпрометированному онлайн-магазину и получает процент от дохода, а создатель сниффера отвечает за серверы для хостинга, техподдержку и административную панель для клиента. Эти вполне «рыночные отношения» между создателями, продавцами, посредниками и покупателями андеграундного рынка затрудняют атрибуцию, то есть соотнесение совершенного преступления с конкретной группой. Однако собранные Group-IB индикаторы работы каждого из 38 семейств JS-снифферов позволяют решить эту проблему. Кроме того, в отчете Group-IB приведены детализированные рекомендации для всех сторон, которые могут стать жертвами JS-снифферов: покупателей, банков, онлайн-магазинов и платёжных систем. Исследование продолжается: описания проанализированных JS-снифферов и новые данные о них появляются в системе Group-IB Threat Intelligence.