Фішингові підказки, сховані в папці /tmp
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Користувач macOS був обманутий підробленим підказом «Служба захисту macOS» і ввів свій пароль, що призвело до розгортання викрадача MacSync. Шкідливе ПЗ зібрало файли cookie Chrome та Safari, записи Apple Keychain, дані криптовалютних гаманців та інші локальні файли, зберігаючи їх у /tmp/salmonela/. Викрадена інформація була стиснена в архів і ексфільтрована з використанням curl на прихований домен командування та управління перед видаленням архіву. Huntress виявила вторгнення, ізолювала кінцеву точку і зупинила спробу крадіжки даних.
Розслідування
SOC Huntress виявила підозрілу активність на ураженому Mac із використанням нативної програми curl для завантаження архіву ZIP. Аналізатори підтвердили, що атака спирається на LOOBins та приписали корисне навантаження викрадачу MacSync. Заміри досягнуто шляхом відключення хосту від мережі та видалення тимчасової папки для зберігання. Розслідувачі не знайшли ознак додаткового горизонтального переміщення після ізоляції кінцевої точки.
Пом’якшення
Рекомендовані заходи оборони включають навчання користувачів розпізнавати підроблені системні діалоги, зменшення необов’язкових локальних прав адміністратора, розгортання керованого EDR на macOS та зміну облікових даних після компрометації. Обмеження несанкціонованих вихідних з’єднань і відстеження великих завантажень через curl можуть додатково знизити ризик. Регулярний аудит і укріплення політик доступу до Keychain додають ще один захисний шар.
Відповідь
Якщо ця активність виявлена, негайно ізолюйте кінцеву точку, зупиніть шкідливий процес та видаліть /tmp/salmonela/ директорію. Виконайте судову перевірку, щоб виявити будь-які залишкові артефакти, скиньте скомпрометовані облікові дані та анулюйте активні сесії. Оновіть вміст виявлення, щоб вловити подібне зловживання LOOBin, і стежте за вихідним POST трафіком до невідомих доменів.
"graph TB %% Класифікації classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#aaffaa classDef operator fill:#ff9900 %% Вузли дій action_user_execution["<b>Дія</b> – <b>T1204 Виконання користувачем</b><br/>Жертва обманута підробленим діалогом захисту macOS та вводить пароль від пристрою."] class action_user_execution action action_input_capture["<b>Дія</b> – <b>T1056.002 Захоплення введення: Захоплення введення GUI</b><br/>Шкідливий запит захоплює введений пароль."] class action_input_capture action action_cred_dump["<b>Дія</b> – <b>T1555.001 Облікові дані з сховищі паролів: Keychain</b><br/>Шкідливе ПЗ використовує захоплений пароль для вивантаження збережених облікових даних з macOS Keychain."] class action_cred_dump action action_browser_discovery["<b>Дія</b> – <b>T1217 Відкриття інформації браузера</b><br/>Викрадач збирає файли cookie Chrome та Safari, збережені логіни та інші дані браузера."] class action_browser_discovery action action_archive["<b>Дія</b> – <b>T1560.001 Архівування зібраних даних: Архів через утиліту</b><br/>Зібрані файли стиснені в ZIP архів у /tmp/salmonela/."] class action_archive action action_obfuscate["<b>Дія</b> – <b>T1027.015 Маскування файлів або інформації: Стиснення</b><br/>Архів використовується для приховання зібраних даних."] class action_obfuscate action action_exfil["<b>Дія</b> – <b>T1071.001 Протокол прикладного рівня: Веб-протоколи</b><br/>ZIP архів відправляється на віддалений C2 сервер через curl по HTTP/HTTPS."] class action_exfil action action_cleanup["<b>Дія</b> – <b>T1070.004 Видалення індикатора: Видалення файлу</b><br/>Після ексфільтрації шкідливе ПЗ видаляє архів, щоб приховати свої сліди."] class action_cleanup action %% Вузол інструмента tool_curl["<b>Інструмент</b> – <b>Назва</b>: curl<br/><b>Опис</b>: утиліта командного рядка, що використовується для передачі даних через HTTP/HTTPS."] class tool_curl tool %% Вузол файлу file_archive["<b>Файл</b> – <b>Шлях</b>: /tmp/salmonela/archive.zip<br/><b>Тип</b>: ZIP архів, що містить зібрані дані."] class file_archive file %% Підключення потоку action_user_execution –>|призводить до| action_input_capture action_input_capture –>|захоплює пароль для| action_cred_dump action_cred_dump –>|надає доступ до| action_browser_discovery action_browser_discovery –>|надає дані для| action_archive action_archive –>|створює| file_archive action_obfuscate –>|застосовується до| file_archive action_exfil –>|виводить| file_archive action_exfil –>|використовує| tool_curl action_cleanup –>|видаляє| file_archive "
Потік атаки
Виявлення
Підозрілий доступ до збережених облікових даних браузера MacOS (через створення процесу)
Переглянути
Виявлення активності MacSync Infostealer [Файловий подія Linux]
Переглянути
Виявлення MacSync Infostealer через підроблений запит служб захисту macOS [Створення процесу Linux]
Переглянути
Середовище та контекст для симуляції
-
TTP під тестуванням:
- T1056.002: Захоплення введення – Веб-форми
- T1204.004: Виконання користувачем – Шкідливий файл
- T1548.004: Механізм контролю підвищення – обхід контролю доступу користувача
- T1555.002: Облікові дані з веб-браузерів – Витяг паролів
- T1556.004: Зміна процесу автентифікації – Модифікація довіри до домену
-
Контекст та актуальність TTP:
- T1056.002 – Викрадач збирає облікові дані, введені у веб-форми, і зберігає їх у папці, що використовується для зберігання.
- T1204.004 – Шкідлива програма виконується користувачем (часто через підроблений інсталятор).
- T1548.004 – Загроза може спробувати виконати крок зі стиснення із підвищеними правами для обходу ізоляції macOS.
- T1555.002 – Витягнуті паролі браузера записуються у файли в
/tmp/salmonela/. - T1556.004 – В розширених кампаніях атакувальник може змінити локальні налаштування довіри перед ексфільтрацією, але правило зосереджується на активності зі зберіганням даних.
-
Цільове середовище:
- OS: macOS (Catalina 10.15 або пізніша версія)
- Логування: Auditd + FSEvents (збір подій файлу), переданий у SIEM, що споживає правила Sigma.
- Системний стек безпеки: Універсальний SIEM, сумісний з Sigma (наприклад, Elastic Stack, Splunk, Microsoft Sentinel).
Телекомунікації та перевірка відповідності перед польотом
Обґрунтування: Перш ніж симулювати атаку, ми повинні підтвердити, що цільовий хост налаштований на генерування необхідних логів, що ці логи надходять у SIEM, і що правило виявлення не спрацьовує на безпечну активність. Без цієї валідації будь-який результат тесту є ненадійним.
-
1. Інструкції з конфігурації телеметрії:
-
Увімкніть аудит macOS для реєстрації командного рядка
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist sudo audit -s 1 # увімкнити аудит sudo audit -f /etc/security/audit_control # Переконайтесь, що "flags:fc,ex" (створення файлів та викл) присутні, потім перезапустіть auditd sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.auditd.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist -
Увімкніть FSEvents (вже на macOS) і передайте у SIEM – встановіть модуль Elastic Filebeat для macOS або Splunk Universal Forwarder з
fschangeвведення, забезпечуючишлях: /tmp/включений. -
Перевірити надходження – у SIEM запустіть простий запит для будь-якої події, що містить
/tmp/протягом останніх 5 хвилин, щоб підтвердити, що конвеєр активний.
-
-
2. Надходження та валідація бази:
-
Дія (безпечна телеметрія): Створіть тимчасову папку в
/tmpта стисніть її за допомогоюtar(що не not включає точну тригерну фразу).# безпечна команда для генерації подібної телеметрії mkdir -p /tmp/salmonela_benign echo "безпечні дані" > /tmp/salmonela_benign/sample.txt tar -czf /tmp/salmonela_benign.tar.gz -C /tmp salmonela_benign -
Запит на перевірку (інтеграція): (приклад KQL для Elastic)
filebeat-* | де file.path містить "/tmp/salmonela_benign" | де process.command_line містить "tar"Запит повинен повернути безпечну подію, підтверджуючи, що логи досягають SIEM, при цьому not збігається з правилом виявлення (без рядка “Стиснув вміст salmonela/”).
-
Виконання симуляції
Передумова: Телеметрія та перевірка відповідності перед польотом мають бути успішними.
Обґрунтування: Цей розділ деталізує точне виконання техніки противника (TTP), призначеної для ініціювання правил виявлення. Команди та наратив повинні безпосередньо відображати ідентифіковані TTP та прагнути генерувати точну телеметрію, яку очікує логіка виявлення. Абстрактні або несуміжні приклади призведуть до неправильної діагностики.
-
Атака Наратив та Команди:
- Початковий компроміс (T1204.004): Атакувальник доставляє шкідливий бінарний файл macOS під виглядом легітимного інсталятора. Користувач виконує його, надаючи процесу бінарного файлу права запису до
/tmp. - Збір облікових даних (T1056.002 та T1555.002): Бінарний файл вводить кейлоггер в веб-браузер користувача, захоплює форми для входу та записує зібрані облікові дані в
/tmp/salmonela/creds.txt. - Обхід підвищення привілегій (T1548.004): Бінарний файл викликає
sudoз попередньо налаштованою політикою, яка дозволяє йому виконати крок зі стиснення без запиту. - Зберігання даних та стиснення: Атакувальник запускає команду bash яка і записує спеціальне повідомлення, and стискає папку для зберігання. Точна командна строка містить буквальну фразу
"Стиснув вміст salmonela/", щоб задовольнити умову Sigma.
sudo bash -c "echo 'Стиснув вміст salmonela/' && zip -r /tmp/salmonela_archive.zip /tmp/salmonela/" - Початковий компроміс (T1204.004): Атакувальник доставляє шкідливий бінарний файл macOS під виглядом легітимного інсталятора. Користувач виконує його, надаючи процесу бінарного файлу права запису до
-
Скрипт регресійного тесту: (самостійний Bash скрипт, що відтворює наведені вище дії)
#!/usr/bin/env bash set -euo pipefail # 1. Підготуйте директорію для зберігання STAGE_DIR="/tmp/salmonela" mkdir -p "$STAGE_DIR" # 2. Симуляція вивантаження облікових даних echo "user:example@example.com" > "$STAGE_DIR/creds.txt" echo "pass:SuperSecret123!" >> "$STAGE_DIR/creds.txt" # 3. Стисніть з точною тригерною фразою у командній строці sudo bash -c "echo 'Стиснув вміст salmonela/' && zip -r /tmp/salmonela_archive.zip $STAGE_DIR/" echo "Симуляція завершена – повинно спрацювати оповіщення." -
Команди очищення: (видаляє артефакти та відновлює систему)
#!/usr/bin/env bash set -euo pipefail rm -rf /tmp/salmonela rm -f /tmp/salmonela_archive.zip echo "Прибирання завершено."