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

Ранее исследователи находили веб-скиммеры внутри изображений (логотипы сайтов, favicon, кнопки социальных сетей), в популярных библиотеках, включая jQuery, Modernizr и Google Tag Manager, или внутри различных виджетов, например, в окне чата поддержки.

Теперь же эксперт голландской компании Sanguine Security Виллем де Грот (Willem de Groot) рассказал журналистам издания ZDNet, что обнаружил веб-скиммеры, внедренные в файлы CSS.
Исследователь отмечает, что сейчас CSS уже совсем не тот, что был в начале 2000-х. За последнее десятилетие CSS превратился в мощный инструмент, который веб-разработчики теперь используют для создания серьезных анимаций, причем почти без JavaScript.

Одним из недавних дополнений к CSS стала функция, позволяющая загружать и запускать код JavaScript с помощью правил CSS. Именно этим и злоупотребляют хакеры. Де Гроот говорит, что по меньшей мере одна хак-группа внедряет малварь в файлы CSS и, как правило, это обычный кейлоггер.

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

Хотя использование CSS-правил в качестве прокси для загрузки малвари, это что-то новое, эксперт считает, что владельцам сайтов и покупателям стоит переживать не об этом:

«Хотя большинство исследований скимминговых атак связаны с JavaScript, большая часть скимминга происходит на стороне сервера, где он полностью невидим. Примерно 65% наших криминалистических исследований в этом году обнаруживали скиммеры именно на стороне сервера, где те были скрыты в базах данных, PHP-коде или системных процессах Linux».

8 комментариев

  1. Аватар

    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

  2. Аватар

    0d8bc7

    11.12.2020 в 14:11

    Знаете, это уже похоже просто на толстый троллинг в отношении пользователей и безопасников. Эти «гении» из W3C и компаний-разработчиков браузеров так и продолжают добавлять все эти небезопасные возможности, а на безопасность плевать. Т.е. хронология событий примерно такая:
    1. Сначала создают и добавляют какие-то возможности;
    2. Потом выясняется, что какие-то из них дырявые, кто-то (как правило, злоумышленники) эксплуатирует их, кто-то публикует статьи и прочее;
    3. Добавляется какой-нибудь новый такой же дырявый функционал;
    4. Goto #2.
    А, ну и ещё добавляются всякие модификаторы, типа HTTP-заголовков, для компенсации всего этого, но:
    1. Во-первых, не все веб-разработчики о них знают (особенно, начинающие);
    2. Во-вторых, возня с ними в целом увеличивает количество работы (а зачем это делать?);
    3. В-третьих, это ещё и увеличивает сложность веб-софта (всё это надо же ещё и обрабатывать).
    Может, раз уж решили, что сейчас эпоха web в том смысле, что всевозможные приложения удобно размещать именно в web — пора начать делать его безопасным by design?

  3. Аватар

    0xfa

    16.12.2020 в 14:41

    Какая разница где код JS если для его выполнения надо сначала его прочитать, распарсить и запустить. С таким же успехом можно сказать что код JS добавляют в исходники на Go и Python. Не новость, а булшит какой-то

Оставить мнение