Троян для Windows спеціалізується на крадіжці даних з ізольованих air-gapped комп'ютерів

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



У нашому дослідженні ми представимо технічні особливості цієї шкідливої програми, яка використовує особливу техніку компрометації знімного носія. Ця техніка відрізняється від старого відомого способу, заснованого на використанні файлів autofun.inf або спеціальним чином сформованих файлів і ярликів. Шкідлива програма вдається до методу компрометації портативних (portable) версій таких відомих додатків Firefox, NotePad++ і TrueCrypt. При запуску такого додатка користувачем, воно приховано запускає в системі користувача цей троян.

Шкідлива програма складається з шести файлів. Чотири файлу є виконуваними, а два інших представляють із себе файли конфігурації. Для захисту файлів від аналізу аналітиками, троян використовує два методи. Перший заснований на шифруванні файлів з використанням алгоритму AES-128. Другий передбачає генерацію імен файлів з використанням криптографії.

Ключ симетричного алгоритму шифрування AES обчислюється значення ідентифікатора ID знімного пристрою (Device ID), а також кількох інших залежних від диска значень. Таким чином, шкідлива програма може успішно працювати тільки з конкретним пристроєм, яке піддалося компрометації.

Виконання шкідливої програми засноване на послідовному виконанні коду з різних виконуваних файлів. Так як файли можна заховати в переносимої версії вищезгаданих додатків, це не приверне увагу з боку користувача. Для передачі управління на код в наступному по ланцюжку файлі, шкідлива програма обчислює його ім'я на основі підрахунку спеціального значення (хеш), який формується з вмісту цього файлу і восьми байт значення дати його створення. Таким чином, назви файлів різні для кожного екземпляра шкідливої програми. Крім цього, копіювання шкідливої програми в інше розташування призведе до зміни значення дати створення файлу, тобто її дії неможливо буде відтворити в іншому розташуванні. Для кращого розуміння механізму іменування файлів див. зображення нижче.

Аналіз зловмисних програм такого типу є досить складним завданням, тому що ми не мали доступу до одного з заражених пристроїв. У нас також не було дроппера шкідливої програми для зараження знімного накопичувача у відповідних умовах. Таким чином, у нас в розпорядженні були тільки виявлені нами файли, які були завантажені користувачами. Для розшифровки файлів трояна нам довелося застосувати метод грубої сили (brute force) для пошуку унікального ідентифікатора пристрою і комбінувати його з значенням загальних властивостей знімного носія. Після розшифровки файлів нам також потрібно було з'ясувати правильний порядок виконуваних файлів і файлів конфігурації, оскільки в процесі копіювання файлу шкідливої програми до нас для аналізу, була змінена тимчасова мітка його створення.

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



Завантажувач першого рівня

Завантажувач першого рівня представляє з себе стартову точку виконання шкідливої програми. Він також спеціалізується на обмані користувача таким чином, щоб привернути увагу до запуску шкідливого файлу. Завдання може бути виконана кількома способами, але найбільш цікавим з них є спосіб, заснований на використанні портативних (portable) версій популярних програм. Ми фіксували використання для цієї мети програми Notepad++, яке було оснащено спеціальним шкідливим плагіном, а також переноситься версію програми для шифрування TrueCrypt, до складу якого входила бібліотека під назвою «RichEd20.dll». Він також перевіряє місце свого запуску і буде виконувати свої основні функції запуску на виконання файлу корисного навантаження тільки в разі записуваного знімного USB-носія. Така перевірка необхідна, оскільки компонент корисного навантаження зберігає на носії викрадені дані.

Завантажувач другого рівня

Файл завантажувача другого рівня буде виявлений завантажувачем першого рівня з використанням спеціального значення на основі хеш вмісту файлу (див. вище) і, далі, буде запущено на виконання. Далі, конфігураційний файл цього завантажувача буде знайдений з використанням такого ж значення хеш файлу конфігурації. Цей файл конфігурації містить зашифроване ім'я батьківського процесу для його перевірки. Такий анти-налагоджувальний трюк призведе до завершення шкідливої програми в тому випадку, якщо її запускає інший процес, наприклад, відладчик. На останньому етапі використовується хеш вмісту конфігураційного файлу для обчислення імені виконуваного файлу завантажувача третього рівня.

Завантажувач третього рівня

Завантажувач третього рівня виконує перевірку присутності антивірусних продуктів в системі. У разі активності в системі процесів з назвами «avpui.exe» (належить антивірусу Kaspersky) і «AVKTray.exe» (належить антивірусу G Data), виконання коду шкідливої програми зупиняється. Його конфігураційний файл розшифровується тим ж способом, який неодноразово вказували вище. Він також створює іменований канал (named pipe) для передачі конфігураційного файлу корисного навантаження. В якості назви об'єкта каналу використовуються перші 30 байт хеша SHA-512, обчисленого від назви комп'ютера (computer name).

Корисна навантаження

На останньому етапі управління отримує код корисного навантаження, який реалізує функції крадіжки даних. Виконуваний файл впроваджується в створюваний з наступною командним рядком процес «%windir%\system32\svchost.exe -k netsvcs». Згадані конфігураційні дані включають в себе інформацію про те, які дані слід зібрати, яким чином вони повинні бути зашифровані, і де вони повинні зберігатися. У будь-якому випадку, директорія для збереження файлів повинні розташовуватися на знімному носії. В проаналізованому нами зразку, шкідлива програма була налаштована для зберігання файлів наступного типу: зображення, документи, файли кущів реєстру (HKCU), список файлів, директорій наявних у системі дисків. Також зловмисників цікавить інформація, зібрана з використанням програми з відкритими вихідними текстами під назвою «WinAudit». Це ПО спеціалізується на шифрування даних з використанням алгоритмів еліптичної криптографії.

Висновок

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

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

Як показує наша статистика поширення даного шкідливого ПО, воно не є широко поширеним. З іншого боку, ймовірним її призначенням є використання спрямованих атаках, особливо, на ізольовані від глобальної мережі air-gapped комп'ютери. Така міра зазвичай використовується в цілях підвищеної безпеки внутрішньої мережі і підключених до неї комп'ютерів.

Індикатори компрометації

Назви виявлень антивірусних продуктів:

Файли корисного навантаження: Win32/PSW.Stealer.NAI
Файли завантажувачів: Win32/Trojandownloader.Agent.RFT

Хеші SHA-1 розшифрованих файлів:

2C188C395AB32EAA00E6B7AA031632248FF38B2E
B03ABE820C0517CCEF98BC1785B7FD4CDF958278
66D169E1E503725A720D903E1DFAF456DB172767
4B2C60D77915C5695EC9D3C4364E6CD6946BD33C

Джерело: Хабрахабр
  • avatar
  • 0

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.