Хакеры прячут веб-скиммер в WooCommerce-модуле обработки платежей
Один из клиентов Sucuri получил неприятное уведомление от банка: данные засветившихся в его интернет-магазине кредиток попали в руки мошенников. Оказалось, что на сайте работает веб-скиммер, который во избежание обнаружения спрятан в файлах, обеспечивающих интеграцию платежного шлюза Authorize.net с WooCommerce и WordPress.
Это необычный случай: подобные инъекции на сайтах электронной коммерции обычно сводятся к внедрению вредоносных JavaScript в HTML-шаблон магазина или страницы оформления заказа. Кража данных платежных карт и ПДн происходит, когда покупатель заполняет соответствующую веб-форму.
Выявить такую угрозу можно сканированием HTML на стороне клиента, и многие коммерсанты уже подписались на услуги специалистов в этой области. Взломщики теперь вынуждены тратить больше усилий и проявлять изобретательность, чтобы скрыть вредоносные инъекции.
В рамках выявленной атаки на интернет-магазин хакеры внедрили свои скрипты в расширение Authorize.net для WooCommerce. Один вредонос был добавлен к файлу class-wc-authorize-net-cim.php; он ищет в HTTP-запросах строку wc-authorize-net-cim-credit-card-account-number и при положительном результате генерирует случайный пароль, шифрует платежные данные по AES-128-CBC и сохраняет итог в файле изображений для последующего вывода.
Второй вредоносный код был обнаружен в файле wc-authorize-net-cim.min.js. Он собирает дополнительную информацию из веб-форм: имя жертвы, адрес доставки, номер телефона, почтовый индекс или зип-код.
По словам экспертов, повышенная скрытность в данном случае достигается за счет нескольких факторов:
нестандартный выбор объектов для инъекций;
использование сильного шифрования и отложенного вывода краденых данных;
использование Heartbeat API, встроенного в WordPress, для сокрытия несанкционированной эксфильтрации данных в регулярном трафике.