За последние годы хакерские группы придумали множество уловок, чтобы скрыть код своих веб-скиммеров от посторонних глаз. Напомню, что таким термином обозначают вредоносные JavaScripts, ворующие из интернет-магазинов данные банковских карт пользователей. Еще такую малварь называют и скриптами MageCart — по названию первой хак-группы, придумавшей подобные атаки.
Ранее исследователи находили веб-скиммеры внутри изображений (логотипы сайтов, favicon, кнопки социальных сетей), в популярных библиотеках, включая jQuery, Modernizr и Google Tag Manager, или внутри различных виджетов, например, в окне чата поддержки.
Теперь же эксперт голландской компании Sanguine Security Виллем де Грот (Willem de Groot) рассказал журналистам издания ZDNet, что обнаружил веб-скиммеры, внедренные в файлы CSS.
Исследователь отмечает, что сейчас CSS уже совсем не тот, что был в начале 2000-х. За последнее десятилетие CSS превратился в мощный инструмент, который веб-разработчики теперь используют для создания серьезных анимаций, причем почти без JavaScript.
Одним из недавних дополнений к CSS стала функция, позволяющая загружать и запускать код JavaScript с помощью правил CSS. Именно этим и злоупотребляют хакеры. Де Гроот говорит, что по меньшей мере одна хак-группа внедряет малварь в файлы CSS и, как правило, это обычный кейлоггер.
Такой малварью уже были заражены несколько неназванных интернет-магазинов, а инфраструктура злоумышленников функционировала примерно с сентября 2020 года, однако после твита исследователи о проблеме, кейлоггер, похоже, был отключен. Де Грот пишет, что все это было похоже на чей-то эксперимент.
The next frontier will be robots.txt https://t.co/2bOq9BKL4A
— gwillem (@gwillem) December 9, 2020
Хотя использование CSS-правил в качестве прокси для загрузки малвари, это что-то новое, эксперт считает, что владельцам сайтов и покупателям стоит переживать не об этом:
«Хотя большинство исследований скимминговых атак связаны с JavaScript, большая часть скимминга происходит на стороне сервера, где он полностью невидим. Примерно 65% наших криминалистических исследований в этом году обнаруживали скиммеры именно на стороне сервера, где те были скрыты в базах данных, PHP-коде или системных процессах Linux».
VitalyOrbitsoft
11.12.2020 в 08:28
Я, наверное, пропустил эту новость, что в CSS можно добавлять подключение JS. Только мне кажется, что эта возможность изначально несёт в себе опасность? Зачем стилям позволять вызывать код?
BigTree
11.12.2020 в 09:07
В статье забыли указать, что бы этот код работал его нужно еще вызвать с помощью JS.
В итоге если кто-то смог добавить вам на сайт свой css и свой js то уже не важно как он его спрятал.
Чем собственно этот метод лучше чем добавление вредоноса в файл jquery или любую другую крупную библиотеку где этот код может быть минифицирован и сделан вообще не читабельным.
VitalyOrbitsoft
11.12.2020 в 10:58
Ну, JS можно не добавлять на сайт (а только указать адрес), а к CSS требований не так много. Они воспринимаются как файлы с правилами отображения элементов.
Как эти файлы могут попасть на сайт? Очень просто — через плагины, пакеты. И, если JS проверяется, то CSS не особо. Единственная ситуация, по которой (на мой взгляд) есть необходимость проверки содержимого — конфликт правил стилей.
BigTree
11.12.2020 в 14:45
Вы не поняли, что бы выполнить код который указан в CSS по ссылке его нужно вызвать другим JS кодом, вот статья https://medium.com/@juwain/js-in-css-53af8ef67bd2 , здесь написано все
Выходит что нужно добавить на взломанный сайт как css так и js
VitalyOrbitsoft
11.12.2020 в 15:31
Да, теперь понятно. Но, всё равно, это дыра в безопасности. Итак, имеется стилевая таблица со скриптом. Есть скрипт, который вызывает этот код.
Для чего это может пригодиться? Первое, что приходит в голову — есть разные темы, для которых нужно вызывать разный код. Но это можно сделать и более красивым способом.
На мой взгляд, здесь нарушается принцип разделения:
— стили — оформление отображения
— скрипты — динамические изменения над DOM
— html — исходный DOM
Ну, посмотрим, что будет дальше.
BigTree
11.12.2020 в 14:46
В том твите что в статье, вот такой срин есть
https://pbs.twimg.com/media/EoycCxSXIAADSlA?format=png&name=900×900
0d8bc7
11.12.2020 в 14:11
Знаете, это уже похоже просто на толстый троллинг в отношении пользователей и безопасников. Эти «гении» из W3C и компаний-разработчиков браузеров так и продолжают добавлять все эти небезопасные возможности, а на безопасность плевать. Т.е. хронология событий примерно такая:
1. Сначала создают и добавляют какие-то возможности;
2. Потом выясняется, что какие-то из них дырявые, кто-то (как правило, злоумышленники) эксплуатирует их, кто-то публикует статьи и прочее;
3. Добавляется какой-нибудь новый такой же дырявый функционал;
4. Goto #2.
А, ну и ещё добавляются всякие модификаторы, типа HTTP-заголовков, для компенсации всего этого, но:
1. Во-первых, не все веб-разработчики о них знают (особенно, начинающие);
2. Во-вторых, возня с ними в целом увеличивает количество работы (а зачем это делать?);
3. В-третьих, это ещё и увеличивает сложность веб-софта (всё это надо же ещё и обрабатывать).
Может, раз уж решили, что сейчас эпоха web в том смысле, что всевозможные приложения удобно размещать именно в web — пора начать делать его безопасным by design?
0xfa
16.12.2020 в 14:41
Какая разница где код JS если для его выполнения надо сначала его прочитать, распарсить и запустить. С таким же успехом можно сказать что код JS добавляют в исходники на Go и Python. Не новость, а булшит какой-то