Назви Моє Ім’я: Як MioLab створює Імперію Викрадачів MacOS
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
MioLab – це комерційно розповсюджуваний macOS інфостілер, націлений на високовартісних жертв, таких як програмісти, керівники та інвестори в криптовалюту. Він поширюється через шкідливу рекламу та інфекційний ланцюжок ClickFix, після чого запускає компактний C-базовий бінарний файл, що краде дані з браузерів, дані менеджерів паролів, файли криптовалютних гаманців та дані macOS Keychain. Викрадену інформацію зберігають у тимчасовому каталозі, стискають в архів та ексфільтрують за допомогою запиту curl POST на шкідливий домен. Операція також включає веб-контрольну панель, підтримку проксі та API-доступ, призначений для великих кіберзлочинних груп.
Розслідування
У звіті йдеться про статичні риси шкідливого програмного забезпечення, його поведінку в запуску та широкий спектр цілей, включаючи Chrome, Firefox, Safari, Telegram, Discord, Apple Notes та застосунки для апаратних гаманців. Аналіз інфраструктури вказує на використання захищеного хостингу в Росії, повторну ротацію доменів та спільний бекенд, пов’язаний з фішинговою операцією з аірдропом Web3 токенів. Розслідувачі також вилучили ключові індикатори, такі як командні рядки, шляхи тимчасових папок та URL ексфільтрації.
Пом’якшення
Захисники повинні навчити користувачів розпізнавати підроблені запити до введення даних, моніторити зловживання вбудованими бінарними файлами, такими як dscl, osascript, та curl, блокувати відомі шкідливі домени, запроваджувати підписування коду та обмежувати доступ до даних профілю браузера та файлів Keychain. Логіка виявлення повинна зосереджуватись на візерунках виконання процесів шкідливого програмного забезпечення та поведінці архівації під /var/folders.
Реакція
Якщо виявлено MioLab, ізолюйте уражений комп’ютер Mac, захопіть нестійку пам’ять і артефакти файлової системи, заблокуйте пов’язані C2 домени та IP-адреси, анулюйте скомпрометовані облікові дані і ключі криптовалютних гаманців, та проведіть повний судово-експертний огляд всіх цілей даних. Контент для виявлення на кінцевих точках повинен бути оновлений з урахуванням спостережуваних командних рядків, а команди повинні полювати на подібні ланцюги інфекцій в інфраструктурі.
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccffcc %% Malware node malware_miolab["<b>Malware</b> – <b>Name</b>: MioLab Infostealer<br/><b>Description</b>: Багатоступінчастий macOS інфостілер"] class malware_miolab malware %% Initial Access initial_access["<b>Action</b> – <b>T1204.002 Виконання користувача</b>: Жертва відкриває шкідливий DMG або Unix виконавчий файл, доставлений через соціальну інженерню"] class initial_access action %% Execution execution_unix_shell["<b>Action</b> – <b>T1059.004 Unix Shell</b>: Навантаження запускає shell-команди за допомогою sh, system та AppleScript"] class execution_unix_shell action %% Defense Evasion defense_evasion["<b>Action</b> – <b>T1564.011 Сховати артефакти</b>: Закриває Terminal, видаляє атрибути карантину та застосовує обфускацію рядків XOR (T1027)"] class defense_evasion action %% Discovery discovery_info["<b>Action</b> – <b>T1589 Збір інформації про жертву </b>: Використовує <code>system_profiler</code> для збору інформації про апаратне забезпечення та ОС"] class discovery_info action %% Credential Access credential_access["<b>Action</b> – <b>T1056 Захоплення вводу</b> та <b>T1555.001/002 Зкидання облікових даних</b>: Показує підроблене діалогове вікно паролів Системних налаштувань через AppleScript, перевіряє з використанням dscl, зливає файли Keychain та вилучає бази даних браузера, кукі та сесійні токени"] class credential_access action %% Collection collection_staging["<b>Action</b> – <b>T1074.001 Місцеве збирання даних</b> та <b>T1560 Архівування зібраних даних</b>: Збирає файли, замітки та криптогаманці, зберігає у тимчасовій директорії та стискує в ZIP архів"] class collection_staging action %% Exfiltration exfiltration_curl["<b>Action</b> – <b>T1041 Вивід даних через C2 канал</b> та <b>T1102.003 Веб-протоколи</b>: Завантажує ZIP архів через <code>curl</code> POST на шкідливий веб-сервіс"] class exfiltration_curl action %% Command and Control c2_proxy["<b>Action</b> – <b>T1090.002 Proxy</b> та <b>T1659 Динамічна ін’єкція контенту</b>: Трафік маршрутизований через проксі-сервери під контролем зловмисника та домени для ін’єкції"] class c2_proxy action %% Tool nodes tool_applescript["<b>Tool</b> – <b>Name</b>: AppleScript<br/><b>Purpose</b>: Відображає користувача інтерефейс запиту облікових даних"] class tool_applescript tool tool_dscl["<b>Tool</b> – <b>Name</b>: dscl<br/><b>Purpose</b>: Перевіряє зібрані облікові дані”"] class tool_dscl tool tool_curl["<b>Tool</b> – <b>Name</b>: curl<br/><b>Purpose</b>: Відправляє зібраний архів на віддалений сервер"] class tool_curl tool tool_system_profiler["<b>Tool</b> – <b>Name</b>: system_profiler<br/><b>Purpose</b>: Отримує інформацію про систему"] class tool_system_profiler tool %% Connections showing the attack flow malware_miolab –>|delivers| initial_access initial_access –>|triggers| execution_unix_shell execution_unix_shell –>|enables| defense_evasion defense_evasion –>|allows| discovery_info discovery_info –>|provides data to| credential_access credential_access –>|uses| tool_applescript credential_access –>|uses| tool_dscl credential_access –>|leads to| collection_staging collection_staging –>|compresses and stages| exfiltration_curl exfiltration_curl –>|uses| tool_curl exfiltration_curl –>|sends data to| c2_proxy c2_proxy –>|routes through| tool_curl %% Styling assignments class initial_access,execution_unix_shell,defense_evasion,discovery_info,credential_access,collection_staging,exfiltration_curl,c2_proxy action class tool_applescript,tool_dscl,tool_curl,tool_system_profiler tool class malware_miolab malware "
Потік атак
Виявлення
Підозріле керування командами та контроль через DNS-запит незвичайного верхнього рівня домену (TLD) (через dns)
Перегляд
IOC (HashSha256) для виявлення: Say My Name: як MioLab створює імперію MacOS Stealer
Перегляд
IOC (HashMd5) для виявлення: Say My Name: як MioLab створює імперію MacOS Stealer
Перегляд
IOC (DestinationIP) для виявлення: Say My Name: як MioLab створює імперію MacOS Stealer
Перегляд
IOC (SourceIP) для виявлення: Say My Name: як MioLab створює імперію MacOS Stealer
Перегляд
Діяльність MioLab MacOS Infostealer [Linux створення процесів]
Перегляд
Виконання симуляції
Передумова: Телеметрія та попередня перевірка базового рівня повинні пройти успішно.
Обгрунтування: Цей розділ детально описує точне виконання техніки противника (TTP), призначеної для запуску правила виявлення. Команди та наратив ПОВИННІ безпосередньо відображати ідентифіковані ТТП та прагнути створити точну телеметрію, очікувану логікою виявлення.
-
Наратив атаки та команди:
- Завершення сеансу користувача в Terminal – Спершу зловмисне програмне забезпечення відключає стандартний командний рядок, щоб змусити користувача діяти у контрольованій інтерфейсній обстановці.
killall Terminal - Представити фальшивий запит на облікові дані – Використовуючи
osascript, зловмисник показує діалог AppleScript, що імітує попередження системних налаштувань, умовляючи користувача ввести свій пароль.osascript -e 'display dialog "You need to configure system settings before running this application." default answer "" with hidden answer' - Перевірка зібраних облікових даних – Зібраний пароль перевіряється проти локальної служби каталогу з
dscl . -authonly. У разі успішного повернення підтверджується, що облікові дані вірні.dscl . -authonly "$USER" "$HARVESTED_PASSWORD" - Етапувати та стискувати вантаж для ексфільтрації – Зловмисник архівує зібрані дані (наприклад,
~/.ssh/id_rsa) у zip-архів за допомогоюditto, готуючи його для завантаження.ditto -c -k --sequesterRsrc /var/folders/*/DataStaging /tmp/exfil.zip
- Завершення сеансу користувача в Terminal – Спершу зловмисне програмне забезпечення відключає стандартний командний рядок, щоб змусити користувача діяти у контрольованій інтерфейсній обстановці.
-
Скрипт тестування регресії: (Bash – виконує точну послідовність для запуску правила)
#!/usr/bin/env bash set -euo pipefail echo "[*] Запуск симуляції MioLab..." # 1. Завершення Terminal echo "[+] Завершення Terminal" killall Terminal # 2. Підробний запит AppleScript (симуляція – без взаємодії з користувачем) echo "[+] Відображення підробленого запиту на облікові дані" osascript -e 'display dialog "You need to configure system settings before running this application." default answer "" with hidden answer' >/dev/null 2>&1 # 3. Перевірка облікових даних (з використанням поточного користувача та фіктивного паролю) echo "[+] Перевірка зібраних облікових даних" HARVESTED_PASSWORD="P@ssw0rd!" # У реальному сценарії це був би вкрадений пароль dscl . -authonly "$USER" "$HARVESTED_PASSWORD" || true # ігнорувати невдачу для демонстрації # 4. Стизування і стиснення даних echo "[+] Стиснення стадированих даних" STAGING_DIR=$(mktemp -d) echo "sample data" > "$STAGING_DIR/sample.txt" ditto -c -k --sequesterRsrc "$STAGING_DIR" /tmp/exfil.zip echo "[*] Симуляція завершена. Перевірте SIEM для сповіщення." -
Команди очищення: (Видаляє створені артефакти та відновлює сеанс)
#!/usr/bin/env bash set -euo pipefail echo "[*] Прибирання артефактів симуляції MioLab..." # Видалення фальшивого zip-архіву rm -f /tmp/exfil.zip # Видалення тимчасової директорії стажування, якщо вона існує [[ -d "$STAGING_DIR" ]] && rm -rf "$STAGING_DIR" # Додатково перезапуск Terminal для користувача open -a Terminal echo "[*] Прибирання завершено."