Почти 150 npm пакета, представящи се за инструменти за заобикаляне на училищни Wi-Fi ограничения, са били използвани за превръщането на браузърите на посетителите в потенциални инструменти за DDoS атаки.
Кампанията се е представяла за безобидни уеб проксита с образователна насоченост, предоставяйки на учениците начин да достигат до блокирани уебсайтове и игри, докато тихомълком зарежда вреден код във фонов режим.
За разлика от типичния зловреден npm пакет, тази операция не е имала нужда да инфектира компютъра на разработчика по време на инсталация. Пакетите са действали като система за доставка на прокси страници, базирани на браузъра.
Всеки, който е отворил някой от хостваните сайтове, е можел да бъде изложен на popunder реклами, проследяване и, по време на ключов период, код за генериране на голям мрежов трафик. Изследователи от JFrog и SafeDep са идентифицирали различни етапи на активността.
SafeDep първоначално документално е доказала 141 свързани пакета като злоупотреба с хостване на рекламен софтуер (adware) през май, докато по-късно JFrog деобфускира приложението и разкри отдалечено зареждане на код и DDoS функции, които са работили в края на май.
В доклад на JFrog се посочва, че констатациите показват как един привидно полезен сайт за заобикаляне на филтри може да създаде риск за училища, работни места и обикновени потребители.
Операторите са разчитали на широката достъпност на npm за разпространение на статични уеб ресурси, а след това са използвали променящи се външни скриптове, за да променят действията на проксито след пристигането на посетителя.Кампанията е използвала имена и страници, свързани с Lucide Proxy, Riverbend Tutoring и Northstar Tutoring.
Видимата услуга е работила според очакванията: тя е пренасочвала сърфирането през прокси, проектирано да заобикаля ограниченията на съдържанието. Това нормално поведение е улеснило укриването на скриптовете, работещи успоредно с него.
От JFrog заявиха, че първата вълна е започнала на 27 май, а по-късна вълна се е появила на 8 юли, което е увеличило общия брой на пакетите до 148.
Освен това много пакети са били премахнати, но някои са останали достъпни, когато изследването е било публикувано.
По-ранният анализ на SafeDep не е открил компоненти за кражба на идентификационни данни или инсталационни куки. Вместо това пакетите са съдържали уеб файлове, които са могли да бъдат обслужвани от инфраструктура, поддържана от npm.
Service worker е пренасочвал прокси трафика и е инжектирал код, който е можел да улавя навигационни събития, докато рекламните скриптове са отваряли popunder страници след взаимодействие с потребителя.
Тази разлика е важна, тъй като основните жертви не са били непременно разработчици, които са добавили зависимост към даден проект. Ученик, който просто е посетил внедрена прокси страница, е можел неволно да допринесе с ресурсите на своя браузър.
Този подход също така е затруднил спирането на кампанията, тъй като едни и същи основни файлове са могли да бъдат копирани под много имена на пакети и места за хостинг.
Анализът на JFrog е разкрил обфускиран JavaScript пакет, който зарежда два скрити модула преди появата на интерфейса на проксито.
Единият е извличал отдалечено хостван скрипт от променлив клон в GitHub без проверка за интегритет. Това е дало на операторите начин да променят кода, доставян на всеки посетител, без да препубликуват npm пакета.
Архивиран зловреден код от втория етап е изпращал повтарящи се големи POST заявки към целеви образователен сайт на всеки половин секунда.
JFrog оценява, че един активен браузър е можел да генерира около 2 MB трафик за качване в секунда, а хиляда посетители са могли да произведат приблизително 2 GB в секунда. Такъв трафик може да забави или претовари публично достъпна услуга.
Отделен компонент е извличал настройки за WebSocket на живо и е инструктирал браузърите да отварят връзки към прокси крайна точка, съвместима с Wisp. Той е можел да създава и затваря връзки с висока скорост, упражнявайки натиск върху капацитета за сокети на сървъра и неговите логове.
Отдалеченият зареждач и генераторът на трафик по-късно са били премахнати, но зареждането на външни скриптове остава повод за безпокойство.
Администраторите трябва да блокират изброените инфраструктурни домейни, особено в училищни и корпоративни мрежи, където използването на прокси услуги е често срещано. Потребителите, които са осъществили достъп до засегнатите сайтове, трябва да изчистят бисквитките на браузъра си, кешираните файлове и service workers.
Екипите за разработка трябва да премахнат съвпадащите пакети от манифестите и lock файловете, да направят нов билд от чисти източници и да проверят дали преките и косвените зависимости са премахнати.
Екипите по сигурността също трябва да прегледат регистрационните файлове за уеб филтриране за посещения на прокси страници на тема обучение и да разследват необичайна активност за качване на данни от браузъра.
Тъй като зловредният код е бил доставян след зареждане на страницата, предупрежденията на крайните устройства, фокусирани само върху инсталирането на пакети, може да пропуснат засегнатите потребители. Поради това телеметрията на браузъра и DNS записите са важни за определяне на степента на експозиция в университетските и училищните мрежи днес.