Пакети NPM - співбесіда Contagious

Пакети NPM маскуються під доброякісні бібліотеки інтерфейсу користувача в атаці на ланцюг поставок Північної Кореї під назвою «Заразне інтерв'ю».

Нещодавно виявлені шкідливі npm-пакети маскуються під нешкідливі фронтенд-хелпери, але містять шкідливий завуальований код.

Команда досліджень безпеки в Ксігені визначено, що ці npm-пакети: 'react-ui-notify', 'react-tmedia', 'react-ui-animates', 'react-medias', 'react-mandes' є модифікованими похідними «бінго-логер», що є шкідливим форком, що імітує структуру та документацію популярного пакета логування «піно» щоб виглядати легітимно. Це прикриття використовується для експлуатації довіри розробників та залучення завантажень. Насправді, кодова база містить непов'язаний завульгований файл, який працює в середовищах Node. 

Передумови для злодія: кампанія «Заразне інтерв'ю»

Команда Кампанія «Заразне інтерв'ю» пов'язаний з кластером загроз, відомим як 'UNC4034', який повідомляє про зв'язки з афілійованими до Північної Кореї особами Група «Лазар» or APT38, відома державна група, пов'язана з режимом Північної Кореї. Зловмисники, що стоять за цією кампанією, мають історію атак на розробників через екосистеми з відкритим кодом, розповсюджуючи схожі пакети, які виконують приховані корисні навантаження. Зрештою, вони викрадають дані, пов'язані з криптовалютою, вихідний код та облікові дані із заражених систем.

Команда тактики, техніки та процедури (TTP), що спостерігаються в цих npm-пакетах, відповідають тій самій схемі:

  • Імітуйте назви проектів, що звучать правдоподібно, щоб виглядати надійно.
  • Вбудовуйте обфускований код у тестові файли та допоміжні скрипти.
  • Запускати приховані корисні навантаження, які збирають конфіденційні дані та надсилають їх на віддалений сервер командування та управління (C2).

Технічні висновки: аналіз заплутаного корисного навантаження

Корисне навантаження, знайдене всередині "/test/fixtures/eval/node_modules/test.list' використовує обфускований JavaScript (пошук рядків індексу/масиву, закодовані блоки) для приховування читабельних рядків, а потік керування буде виконано після встановлення пакета завдяки постінсталяційному скрипту 'npm run test || npm transpile || npm run skipв межах package.json. 

Наш аналіз показав, що ці пакети містять адаптивний фрагмент шкідливого програмного забезпечення, створений для переміщення між операційними системами (Windows, macOS або Linux) та користувацькими середовищами. Ця можливість свідчить про навмисну ​​зосередженість на технічних користувачах, які часто працюють у різних середовищах.

Після встановлення в системі шкідливе програмне забезпечення досліджує своє оточення, збираючи детальна інформація про систему такий як ім'я хоста, платформа, домашній каталог та системний каталог тимчасової пам'яті перш ніж розширити свою діяльність на програми, що зберігають конфіденційні дані, такі як браузери (Chrome/Brave/Edge/Opera) та цифрові гаманціВін рекурсивно шукає поширені місця для профілів браузера, файлів гаманців, зв'язок ключів та багатьох типів документів/файлів. Ключові слова для пошуку включають гаманець, терміни, пов'язані з початковим значенням, та багато розширень файлів, які ймовірно містять облікові дані або секрети (*.env, *.key, *.wallet, *.json, *.txt, *.doc тощо.). Він містить списки виключень для поширених каталогів, щоб уникнути очевидних системних файлів.

Корисне навантаження записує локальний маркер/файл блокування, щоб запобігти кільком одночасним запускам, та записує свої дані у тимчасові каталоги ОС, щоб уникнути виявлення.

Завуальоване корисне навантаження також містить канал зв'язку з віддаленим сервером, який функціонує як його центр керування та контролю. Через цей канал він може витягти викрадену інформацію та отримати подальші інструкціїХоча сама інфраструктура виглядає обмеженою та спеціально створеною, її існування підтверджує намір зловмисника підтримувати постійний контроль над зараженими системами.

Коли шкідливе програмне забезпечення знаходить конфіденційні дані, воно об'єднує їх у групу та намагається завантажити на віддалену кінцеву точку, розміщену на хмарному сервері, використовуючи multipart/form-data, щоб викрадені файли додавались до запитів.

Індикатори компрометації та рекомендації щодо пом'якшення наслідків

Організаціям рекомендується видалити ці шкідливі залежності (react-ui-notify, react-tmedia, react-ui-animates, react-medias, react-mandes, bingo-logger) та оновіть ці середовища для забезпечення цілісності. У системах, які могли бути викриті, слід негайно замінити всі облікові дані та токени доступу.

Мережеві адміністратори повинні обмежити вихідний трафік на ці IP-адреси 23.227.202.24, 131.153.22.25 та перевірте нещодавні підключення на наявність аномалій. Наполегливо рекомендується відновлювати уражені середовища з перевірених, чистих джерел, щоб запобігти повторному зараженню та забезпечити цілісність ланцюга поставок.

Більш широкий контекст

Загалом, ці пакети є ще одним прикладом З огляду на новий рівень зрілості атак на ланцюги поставок на основі JavaScript, зловмисники все частіше створюють схожі пакети, які запозичують структуру та документацію з перевірених проектів, модульне розширення та впроваджують кращі методи, щоб ускладнити виявлення та пом'якшення наслідків. 

Ця еволюція збільшує ймовірність випадкового встановлення нічого не підозрюючими розробниками та надає зловмисникам глибший доступ до середовищ збірки, CI/CD системи та репозиторії вихідного коду.

Екосистеми з відкритим кодом стали бажаною платформою розповсюдження для таких кампаній. Використовуючи притаманну розробникам довіру до пакетів спільноти, зловмисники можуть проникнути в ланцюжок поставок програмного забезпечення з мінімальними зусиллями та часто без негайного виявлення чи наслідків.

Раннє попередження про шкідливе програмне забезпечення (MEW) від Xygeni

Цей інцидент був спочатку виявлений завдяки Xygeni Раннє попередження про шкідливе програмне забезпечення система, яка постійно моніторить реєстри пакетів з відкритим кодом, такі як npm, PyPI, Maven, на наявність шкідливих пакетів.

Наш механізм виявлення автоматично позначив ці пакети як підозрілі через їхню незвичайну структуру, постінсталяційний скрипт та завуальоване корисне навантаження. В результаті шкідливі пакети (react-ui-notify, react-tmedia, react-ui-animates, react-medias та react-mandes) були підтверджені нашою командою безпеки як шкідливі та повідомлені npm, перш ніж вони змогли отримати ширше поширення.

Як система раннього попередження Xygeni захищає вас pipelines

  • Виявлення загроз у реальному часіСканує кожен новий або оновлений пакет у вашому графі залежностей та позначає підозрілу поведінку, таку як системні виклики ОС, виконання команд, обфускований код, помилки друку та багато іншого.
  • Негайні сповіщенняПовідомляє ваші команди безпеки та DevOps у Slack, Jira або електронною поштою, щойно у вашому середовищі з'являється нова загроза.
  • Виправлення одним кліком: генерує pull requests які видаляють або замінюють вразливі версії залежностей у ваших проектах.
  • Підтримувані екосистеми: Наразі включає npm, PyPI, Maven та Packagist.
  • Xygeni допомагає вам випереджати атаки ланцюга поставок, виявляючи шкідливі пакети на найпершому етапі, ще до того, як вони досягнуть вашої збірки.

👉 Спробуйте безкоштовно Xygeni Malware Early Warning і подивіться, як швидко ви можете виявляти та нейтралізувати загрози ланцюжку поставок у вашому власному pipelines.

інструменти-для-аналізу-складу-програмного-засобу-sca
Визначте пріоритети, усуньте та захистіть ризики, пов'язані з програмним забезпеченням
Отримайте свій безкоштовний обліковий запис.
Не потрібна кредитна картка.

Забезпечте розробку та доставку програмного забезпечення

з пакетом продуктів Xygeni