Если Windows — это улицы Лондона, то COMmander — её Шерлок Холмс.
Инструментов для защиты стало много, но угроз, к сожалению, — ещё больше. Особенно тех, что действуют тонко, незаметно, буквально на уровне внутренних механизмов операционной системы. Уловить такие атаки крайне непросто: стандартные средства защиты часто не видят то, что происходит «под капотом». Именно поэтому всё большую ценность приобретают утилиты, способные смотреть глубже — туда, где прячутся наиболее изощрённые сценарии атак.
COMmander — одна из таких разработок. Это небольшая, но очень полезная программа, которая умеет отслеживать активности, связанные с RPC и COM — двумя технологиями, без которых Windows не может работать, но которые часто используют злоумышленники. При этом утилита не требует мощного «железа», не отвлекает на себя ресурсы, и при всём этом способна вовремя заметить то, что в обычных условиях могло бы остаться незамеченным.
Вообще, всё, что связано с этими протоколами, всегда вызывало у специалистов по безопасности лёгкое раздражение. Всё слишком сложно, много абстракций, а если что-то идёт не так — заметить это не так-то просто. COMmander, похоже, был создан именно для таких случаев. Утилита анализирует происходящее на низком уровне, используя встроенный в Windows механизм Event Tracing for Windows (ETW). По сути, она смотрит за тем, как программы внутри системы переговариваются между собой, и если что-то кажется странным — сообщает об этом.
Работает это всё довольно просто. Есть конфигурационный файл (XML), где прописаны правила, что именно искать. Хотите отслеживать, когда кто-то вызывает конкретный COM-интерфейс через подозрительную конечную точку? Пожалуйста. Или, скажем, зафиксировать попытку эксплуатации через PetitPotam ? Несложно — надо лишь указать нужный UUID и номер операции. Настроек, конечно, не сотни, но и не пара — достаточно, чтобы покрыть широкий спектр сценариев.
Удобно и то, как COMmander запускается. Можно просто открыть .exe-файл и он подгрузит настройки из соседнего конфига. А можно поставить как службу — в этом случае она стартует вместе с системой и работает в фоновом режиме. Установка не требует танцев с бубном: скачал, запустил PowerShell-скрипт, и всё готово. Правда, стоит помнить: одновременно запускать CLI и службу — плохая идея. Система может запутаться, и тогда придётся перезапускать службу заново.
Вся активность фиксируется в стандартном журнале событий Windows — там появляется отдельный лог «COMmander». И по номерам событий сразу видно, что происходит: служба стартовала, остановилась, загрузила правила, столкнулась с ошибкой или поймала подозрительную активность. Всё чётко и понятно.
Кстати, несмотря на то, что фильтры в конфигурации сейчас работают только по одному экземпляру каждого типа, комбинировать их можно как угодно. Есть даже примеры шаблонов, где собраны правила для разных атак — ими легко пользоваться и адаптировать под свои нужды.
Что в итоге? COMmander оказался инструментом, который делает одну вещь — но делает её очень хорошо. Он не заменит полноценную систему анализа трафика, но в своей нише отрабатывает на отлично. Особенно когда нужно быстро понять, что происходит у вас в RPC-пространстве и не даёт ли кто-то из процессов слишком вольную трактовку своих полномочий. И да, он не просто показывает события — он превращает их в информацию, на которую действительно можно опереться.
Лечим цифровую неграмотность без побочных эффектов