infostealer-шкідливе-програмне-заплутування-коду-threadfluent

Розбір багатоетапного пакету шкідливого програмного забезпечення Infostealer

Пакет Python потоковий, виявлений на PyPI, був ідентифікований як malicious, що містить звичайне шкідливе програмне забезпечення-викрадач інформації. Однак його визначальною характеристикою є використання передових методів обфускації коду, які приховують його корисне навантаження, що робить аналіз особливо складним. Це шкідливе програмне забезпечення ітеративно використовує три рівні обфускації по всьому ланцюжку атак, створюючи значні перешкоди для ручної деконструкції.

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

Шпаргалка: Шкідливе програмне забезпечення для крадіжки інформації та заплутування коду

Що таке шкідливе програмне забезпечення Infostealer?

Шкідливе програмне забезпечення Infostealer діє як підлий злодій у вашому цифровому світі. Воно непомітно викрадає конфіденційну інформацію, таку як ваші паролі, номери кредитних карток або особисті дані, непомітно для вас. Ці програми записують те, що ви вводите (клавіатура), захоплюють ваш браузер або сканують файли на вашому пристрої, щоб зібрати цінні дані. Найстрашніше? Вони чудово вміють залишатися непоміченими.

Шари обфускації шкідливого програмного забезпечення ThreadFluent Infostealer

1. Потрійне шифрування

Процес обфускації починається з потужно зашифрованого корисного навантаження, вбудованого в fluent.py файл. Початковий процес кодування та дешифрування можна коротко описати наступним чином:

encoded_data = base64_module.b64decode("... BASE-6 with encrypted payload, IV and RSA-encrypted keys…”); # … Sequential decryption: ChaCha20, Blowfish and AES … encrypted_payload = AES_Cipher.new(aes_key, AES_Cipher.MODE_CBC, iv=aes_iv).decrypt(encrypted_payload[16:]) final_payload = unpad_function(encrypted_payload, AES_Cipher.block_size) exec( zlib_module.decompress(bz2_module.decompress(final_payload)) ) 

Цей процес обфускації включає:

  • компресіяВикористання gzip та bzip.
  • Симетричне шифруванняЛанцюгове шифрування за допомогою ChaCha20, Blowfish та AES.
  • Асиметричне шифруванняRSA використовується для шифрування симетричних ключів.

Результат кодується в Base64 та вставляється як закодовані_даніКожна ітерація базується на попередній, створюючи вкладену структуру шифрування, яка надзвичайно ускладнює розкриття фактичного корисного навантаження без зворотного проектування.

 

2. Розпакування Gzip

На багатьох проміжних етапах шкідливе програмне забезпечення використовує простий, але ефективний метод обфускації: стиснення Gzip у поєднанні з кодуванням Base64. 

import base64, zlib; eval(zlib.decompress(base64.b64decode(<STR>).decode('utf-8')) 

Цей метод гарантує, що завуальоване корисне навантаження залишається прихованим протягом усіх етапів.

3. Конкатенація коду та динамічна компіляція

Останній рівень включає розділення обфусковане корисне навантаження між кількома змінними, які динамічно об'єднуються та декодуються під час виконання:

import base64, zlib  FEQXCBDOZKHVIhT = '...' # ....(111 other variables with base-64 encoded values) ...  zZytWuvuEdBXSrO =   eval(<FEQXCBDOZKHVIhT' encoded with '\x>) +   eval(<next variable, encoded>) +   eval( ' zlib.decompress(base64.b64decode(<VAR>)).decode('utf-8') ') + ...  eval(compile(base64.b64decode(eval(zZytWuvuEdBXSrO)).decode('utf-8'), ‘<app>', 'exec')) 

Цей етап особливо складний для зворотного проектування вручну, оскільки кожну змінну необхідно декодувати та рекомбінувати, щоб виявити наступне корисне навантаження.

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

Багатоетапний ланцюжок атак ThreadFluent

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

infostealer-шкідливий-код-обфускації-threadfluent

Етап 0: Початкове виконання коду

Точка входу – це __init__.py файл, який ініціює виконання обфускованого корисного навантаження в fluent.pyЦей файл використовує багатошарове обфускацію (як описано в кроках 1–3) для створення дроппера етапу 1:

import os,threading def main():     if os.name == 'nt':         from . import fluent         fluent.main()          thread = threading.Thread(target=main , daemon=True) thread.start() 

Етап 1: Початкова крапельниця

Перший дроппер, після деобфускації, завантажує та вбудовує додатковий шкідливий код, puts.py, з репозиторію GitHub Рудоволосі-гомілки-1337/відповідей (попередження: тут потенційно шкідливий код). 

Вбудовується піпетка puts.py у місцеву інсталяцію популярного запитів бібліотека, змінюючи її __init__.py файл для запуску деобфускації та виконання наступного етапу. Ця деобфускація полягає у зворотному застосуванні багатьох шарів обфускації 1…3.

Етап 2: Друга піпетка

Другий дроппер, після деобфускації за допомогою того ж процесу, завантажує ще одне корисне навантаження, ssl.py з репозиторію GitHub, перейменовує його на udp.py, і генерує файл блокування, щоб запобігти повторній установці шкідливого програмного забезпечення. Потім його запускають для його деобфускації, що призводить до виконання остаточного корисного навантаження infostealer.

Етап 3: Фінальний викрадач інформації

Заключний етап — це повнофункціональний інфостейлер, який використовує передові методи ухилення від злому:

  • Функції антианалізу:
    • Виявляє засоби захисту від шкідливого програмного забезпечення та завершує роботу, якщо виявляється будь-які процеси, IP-адреси, імена хостів або віртуальні середовища з чорного списку.
  • Викрадання даних:
    • Збирає вичерпну інформацію. Починаючи з IP-адреси, Mac-адреси, даних VPN, файлів cookie/історії браузера, даних кредитної картки та облікових даних криптогаманця, серед іншого, включаючи скріншот.
    • Надсилає викрадені дані (зашифровані) через канал Telegram, використовуючи шаблон, показаний тут: 
infostealer-шкідливий-код-обфускації-threadfluent

Стратегія деобфускації

Щоб проаналізувати подібні пакети, дослідники повинні систематично змінювати шари обфускації:

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

Автоматизовані інструменти та ізольовані середовища є важливими для оптимізації цього аналізу.

 

Хочете дізнатися більше про те, як випереджати загрози в режимі реального часу?

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

Актор загрози

Очевидно, пакет був опублікований з двох облікових записів PyPI, АБІРХОССАЇН10 та аномілано785, наразі видалено. 

Існує (наразі активний) обліковий запис GitHub під назвою АБІРХОССАЇН10, що може бути пов'язано з кампанією. Рудоволосі-гомілки-1337 Користувач GitHub, який володіє репозиторієм, що використовується для завантаження корисних навантажень етапів 2 та 3, також перебуває під аналізом.

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

Висновок: Роль обфускації коду в еволюції шкідливого програмного забезпечення

Команда потоковий Цей пакет є прикладом сучасного обфускації шкідливого програмного забезпечення завдяки своїй багатоетапній доставці. У поєднанні з використаними методами ухилення, цей пакет демонструє чіткі зусилля щодо уникнення виявлення та протистояння аналізу.

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

Як система MEW від Xygeni запобігла потраплянню шкідливого пакета threadfluent у продакшн

Ксігені Раннє попередження про шкідливе програмне забезпечення (MEW) система відіграла важливу роль у зупиненні потоковий Пакет Python, шкідлива залежність, що містить розширені обфускація коду та багатоетапний шкідливе програмне забезпечення для крадіжки інформації, перш ніж це може поставити під загрозу виробниче середовище. Ось як це зробити:

  • Виявлення за допомогою статичного аналізу
    MEW помітив потоковийприхований код, знаходячи підозрілі ознаки, такі як багаторівневе шифрування та незвичайна активність залежностей.
  • Оцінка досяжності під час виконання
     Система виявила, що код пакета може виконуватися під час використання, позначивши його як серйозну загрозу без фактичного запуску.
  • CI/CD Pipeline Захист
    MEW заблоковано потоковий у режимі реального часу, запобігав його включенню до збірок та не дозволяв йому досягати робочої версії. Він надсилав розробникам сповіщення з можливістю дій, заощаджуючи дорогоцінний час.
  • Обмін інформацією про загрози
    Xygeni швидко повідомила про пакет PyPI та поділилася своїми висновками зі своєю глобальною мережею безпеки, зупинивши його подальше поширення.

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

Захистіть свою CI/CD Pipelines безкоштовно

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

Зображення Луїса Родрігеса

Луїс Родрігес

Луїс Родрігес — фізикcist + математик та CISСП. Наразі є співзасновником і технічним директором Xygeni Security. Він має понад 20 років досвіду в галузі безпеки програмного забезпечення та брав участь у таких проектах, як SAST та SCAНаразі він зосереджується на software supply chain security.

Зображення Даніеля Мартіна

Даніель Мартін

Даніель Мартін — експерт з кібербезпеки та член дослідницької групи безпеки Xygeni, що спеціалізується на SDLC безпека та зменшення вразливостей програм.

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

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

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