Виконання команд в Azure VM через розширення Salt Minion стороннього виробника
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Атакуючий з Microsoft.Compute/virtualMachines/extensions/write дозволами може зловживати легітимними сторонніми розширеннями, щоб виконувати довільний код на віртуальних машинах Azure. Розгорнувши розширення Salt Minion і підключивши його до зловмисного Salt Master, атакуючий може відправляти шкідливі стани на цільові системи та отримувати доступ на рівні root або SYSTEM. Ця техніка дозволяє непомітно виконувати команди, що можуть зливатися з нормальною адміністративною автоматизацією.
Розслідування
У звіті представлено атаку з доказами концепції, в якій зловмисний Salt Master налаштовано для керування віртуальними машинами Azure. Розслідування показує, як розширення Salt Minion розгортається через Azure CLI і налаштовується для зв’язку через порти 4505 і 4506. Дослідники виконують шкідливий Salt state, який використовує curl для ексфільтрації токенів Managed Identity до сервісу зовнішньої взаємодії.
Пом’якшення
Організації повинні суворо обмежити ролі, що включають дозволи на запис розширень, включаючи Власника, Учасника та Учасника віртуальної машини. Застосування принципу найменших привілеїв є важливим для запобігання несанкціонованого розгортання розширень. Команди безпеки повинні також моніторити журнали активності Azure для підозрілих операцій запису розширень віртуальних машин та неочікуваних установок сторонніх розширень.
Відповідь
Якщо ця активність виявляється, команди безпеки повинні негайно відкликати дозволи особи, відповідальної за розгортання розширення. Перегляньте журнали активності Azure, щоб визначити IP-адресу джерела, постраждалу віртуальну машину та конфігурацію розширення. Проведіть аналітику кінцевої точки на скомпрометованій системі, щоб оцінити виконання команд, виявити вкрадені облікові дані та виявити будь-яку несанкціоновану стійкість.
Потік атаки
Виявлення
Python запускає підозрілі процеси (через process_creation)
Перегляд
Підозріла команда та контроль за запитом до домену зовнішніх взаємодій (через dns)
Перегляд
Виконання команд на віртуальній машині Azure (через azureactivity)
Перегляд
IoC (SourceIP) для виявлення: Виконання команд на віртуальних машинах Azure з використанням сторонніх розширень – Salt Minion
Перегляд
IoC (DestinationIP) для виявлення: Виконання команд на віртуальних машинах Azure з використанням сторонніх розширень – Salt Minion
Перегляд
Виявлення несанкціонованого розгортання шкідливих розширень віртуальних машин в Azure [журнали активності Azure]
Перегляд
Виконання симуляції
Попередня вимога: Телеметрія та попередня перевірка повинні бути успішно пройдені.
Обґрунтування: У цьому розділі детально описується точна реалізація техніки противника (TTP), розроблена для запуску правила виявлення. Команди та розповідь ПОВИННІ безпосередньо відображати ідентифіковані TTPs та бути спрямовані на генерацію саме тієї телеметрії, що очікує логіка виявлення. Абстрактні або не пов’язані приклади призведуть до діагностичних помилок.
-
Опис атаки та команди: Противник отримав достатньо дозволів у Tenant Azure (наприклад, через скомпрометовану Service Principal або обліковий запис користувача з ролями “Учасник віртуальної машини”). Щоб закріпитися та виконувати команди безпосередньо на цільовій віртуальній машині без традиційного доступу SSH/RDP, противник вирішує розгорнути “Розширення користувацького скрипта”. Ця техніка надзвичайно ефективна для обходу мережевих контролів на основі кінцевої точки. Противник виконає команду Azure CLI для ‘запису’ нового розширення на цільову віртуальну машину. Ця дія запустить
MICROSOFT.COMPUTE/VIRTUALMACHINES/EXTENSIONS/WRITEоперацію в журналі активності Azure, що є саме тією телеметрією, яку наше правило виявлення розроблено для виявлення. -
Скрипт регресійного тестування:
# Симуляція: Розгортання фіктивного розширення для запуску логіки виявлення 'EXTENSIONS/WRITE' # Замініть змінні на значення вашого фактичного тестового середовища RESOURCE_GROUP="TestRG" VM_NAME="TestVM" EXTENSION_NAME="MaliciousSaltMinionSim" echo "Запуск симуляції: Розгортання розширення $EXTENSION_NAME на $VM_NAME..." az vm extension set --resource-group $RESOURCE_GROUP --vm-name $VM_NAME --name $EXTENSION_NAME --publisher Microsoft.Azure.Extensions --settings '{"commandToExecute": "echo "Simulation Successful" > /tmp/pwned.txt"}' echo "Симуляційна команда відправлена. Перевірте журнали активності Azure для MICROSOFT.COMPUTE/VIRTUALMACHINES/EXTENSIONS/WRITE" -
Команди прибирання:
# Прибирання: Видаліть симульоване шкідливе розширення, щоб повернути середовище до його початкового стану RESOURCE_GROUP="TestRG" VM_NAME="TestVM" EXTENSION_NAME="MaliciousSaltMinionSim" echo "Прибирання: Видалення розширення $EXTENSION_NAME..." az vm extension delete --resource-group $RESOURCE_GROUP --vm-name $VM_NAME --name $EXTENSION_NAME echo "Прибирання завершено."