Компрометиране по веригата за доставки, засегнало Brevo, за кратко превърна широко използвани уеб инструменти в канал за разпространение на зловреден код. Атакуващите са внедрили злонамерен JavaScript в услуги, зареждани от клиентите на уебсайтовете, което излага на риск както посетителите, така и администраторите на WordPress.
Изследователи от Sansec са идентифицирали операцията от две части, след като са проследили променени скриптове в притежавани от Brevo услуги и потребителски интеграции. Първият вектор е бил насочен към влезли в системата WordPress администратори, докато вторият е използвал ClickFix овърлей срещу обикновени посетители.
Sansec заявява в доклад, споделен с Cyber Security News (CSN), че инцидентът показва как един доверен уеб компонент може бързо да увеличи мащаба на пробива.
Вместо да пробиват всеки уебсайт поотделно, киберпрестъпниците могат да компрометират споделена услуга и да използват нейния съществуващ обхват, за да поставят опасно съдържание пред широка аудитория.
Атака по веригата за доставки срещу Brevo
Зловредният код се е доставял между 16:05:18 и 20:12:53 UTC на 14 септември. Той се е появил на страниците на Brevo и в JavaScript, използван за уеб тракер и чат джаджа, създавайки риск навсякъде, където тези компоненти са били внедрени.
Когато посетител вече е бил влязъл в WordPress, скриптът е направил опит да инсталира разширение (plugin) през активната сесия на този администратор.
Sansec не са успели да възстановят разширението, но оценяват, че то най-вероятно е задна врата (backdoor) — риск, повторен в доклади за задни врати в доверени разширения за WordPress, които могат незабелязано да осигурят дълготраен достъп.

За останалите посетители скриптът е показвал цялоекранно ClickFix съобщение, преструващо се на стъпка за потвърждение на човек (human verification). То е поставяло команда в клипборда и е инструктирало потребителя да я постави и изпълни, превръщайки позната уеб интеракция в изпълнение на зловреден код, без да използва уязвимост в браузъра.
Мониторингът на компанията е регистрирал 2 549 доклада за нарушения на Content Security Policy (CSP) в 12 сайта по време и след прозореца на активността.
Зловредните хостове са спрели да се разрешават (resolve) на 15 септември и е съобщено, че засегнатият код е изчистен в източника, но кешираните копия и компрометираните сайтове остават причина за безпокойство.
Въпреки че първоначалното разкритие съобщаваше за шест отвлечени клиентски акаунта, констатациите на Sansec сочат към по-широко събитие от втория етап, засягащо споделена инфраструктура за доставка на съдържание.
Тази разлика е от значение, тъй като атака срещу хостван ресурс може да засегне сайтове, чиито собствени идентификационни данни за акаунт никога не са били откраднати.
Заплаха от ClickFix и мерки за защита
ClickFix разчита на убеждаване, а не на тихо изтегляне. Неговата фалшива проверка на браузъра кара хората сами да извършат последната стъпка — модел, виждан и в скорошни кампании със зловреден код ClickFix, които използват убедителни подкани, за да превърнат активността в клипборда в първоначално стъпване на устройството.
Собствениците на сайтове, използващи засегнатия тракер, чат джаджа или хоствана форма, трябва да прегледат логовете на уеб сървъра си за заявките за качване и активиране в WordPress, изброени по-долу.
Те също така трябва да инспектират инсталираните или активираните разширения на 14 септември и да сравнят файловете на диска с администраторската конзола, тъй като зловредно разширение може да се скрие от нормалния списък.
Посетителите, които са последвали подканата за проверка и са изпълнили командата ѝ, трябва незабавно да пуснат пълно сканиране с антивирусна програма и да съобщят за всяко подозрително поведение на устройството.
Организациите трябва да напомнят на персонала и клиентите си, че легитимните уебсайтове не изискват от потребителите да отварят терминал, диалогов прозорец Run или команден промпт, за да преминат проверка за сигурност, както се посочва в указанията относно фалшивите проверки за сигурност.
Екипите по сигурността трябва да запазят съответните логове, преди стандартният период за съхранение да ги изтрие, да ресетират привилегированите акаунти, където е оправдано, и да търсят непознати файлове или промени.
Мониторингът на JavaScript от трети страни и ограничаването на администраторските сесии могат да намалят шанса компрометирането на един доставчик да прерасне в по-широк пробив в сайта.
Наличните доказателства показват, че атакуващите може да са получили достъп до Cloudflare средата на Brevo, което е позволило както промени в DNS, така и модифицирани отговори в свързаните домейни.
Това остава оценка, а не потвърдена първопричина, но илюстрира защо скриптовете от трети страни заслужават внимателно наблюдение, ограничен административен достъп и бързи проверки за интегритет след инцидент с доставчик.
Индикатори за компрометиране (IoCs):-
| Тип | Индикатор | Описание |
|---|---|---|
| Modified JavaScript URL | https://cdn.brevo.com/js/sdk-loader.js | Засегнат файл за зареждане на тракера |
| Modified JavaScript URL | https://cdn.brevo.com/js/brevo-conversations.js | JavaScript ресурс на чат джаджата, цитиран в разследването |
| Modified JavaScript URL | https://conversations-widget.brevo.com/brevo-conversations.js | Засегнат JavaScript файл на джаджата за разговори |
| Malicious script URL | https://cdn9.sendibt1.com/f.js | Инжектиран скрипт със зловреден код, забелязан на засегнати страници на Brevo |
| Malicious script URL | https://cdn2.sendibt1.com/f.js | Инжектиран скрипт със зловреден код, зареждан от модифицирани ресурси |
| Malicious archive URL | https://cdn10.sendibt1.com/p/wm.zip | Архив с WordPress разширение, за което се съобщава, че е инсталирано през автентикирана администраторска сесия |
| Domain | cdn.sendibt1.com | Зловредна инфраструктура за зареждане, докладвана като NXDOMAIN от 15 септември |
| Domain | cdn2.sendibt1.com | Зловредна инфраструктура за зареждане, докладвана като NXDOMAIN от 15 септември |
| Domain | cdn3.sendibt1.com | Зловредна инфраструктура за зареждане, докладвана като NXDOMAIN от 15 септември |
| Domain | cdn4.sendibt1.com | Зловредна инфраструктура за зареждане, докладвана като NXDOMAIN от 15 септември |
| Domain | cdn9.sendibt1.com | Зловредна инфраструктура за зареждане, докладвана като NXDOMAIN от 15 септември |
| Domain | cdn10.sendibt1.com | Зловредна инфраструктура за зареждане, докладвана като NXDOMAIN от 15 септември |
| Domain | cdn11.sendibt1.com | Зловредна инфраструктура за зареждане, докладвана като NXDOMAIN от 15 септември |
| Domain | sendibt1.com | Домейн, свързан с CDN записи, контролирани от атакуващия |
| IP address | 104.21.77.104 | Адрес, записан за cdn.sendibt1.com |
| IP address | 172.246.243.65 | Адрес, върнат от sendibt1.com по време на разследването |
| SHA-256 | fe8447fd1ec4dca652b71db2c749fcc24a5bec3875f3654042169fb2418aed09 | Чиста версия на sdk-loader.js |
| SHA-256 | 58a5c601c9df7ca2120435588fc39f97712d9b878795f6ee500590099a432308 | Версия на sdk-loader.js с инжектиран код |
| SHA-256 | f67d572d2d30407b3f470904326411450763108980cdad89550fbb221fb06782 | Версия на sdk-loader.js с инжектиран код |
| SHA-256 | 26166cd87ff07e7a50317a24126d14b262e842c5715585636dee3ab3f227ddca | Чиста версия на brevo-conversations.js |
| SHA-256 | 9b62c12bc5c7feb9802f58e6cf75a368690df3c754e37cc64483a92acacf87a5 | Версия на brevo-conversations.js с инжектиран код |
| WordPress log artifact | /wp-admin/update.php?action=upload-plugin | POST заявка за преглед за неразрешено качване на разширение |
| WordPress log artifact | /wp-admin/plugins.php?action=activate | GET заявка за преглед за подозрително активиране на разширение |
Забележка: IP адресите и домейните са нарочно дезактивирани (напр. [.]), за да се предотврати случайно разрешаване или създаване на хипервръзки. Възстановете ги само в рамките на контролирани платформи за разузнаване на заплахи като MISP, VirusTotal или вашата SIEM система.