Четыре уровня защиты от Locky, Cerber и CryptXXX: что реально работает
GPO-ограничение макросов, AppLocker для блокировки %TEMP%, offline-копии бэкапов и обучение пользователей - формализуем стратегию защиты от ransomware-кампаний 2016 года.
Ransomware-кампании Locky, Cerber и CryptXXX продолжают атаковать корпоративный сектор через фишинговые письма с вложениями
С июля мы написали про Locky, потом разобрали как клиент пережил Cerber за четыре часа благодаря нормальным бэкапам. С тех пор прошло три месяца - и ничего принципиально не изменилось: Locky, Cerber и CryptXXX продолжают методично ходить по корпоративной почте, менять расширения файлов и оставлять записки на рабочих столах. Осенью волна немного спала - потом снова набрала ход. Паузы становятся короче.
За последние месяцы мы накопили достаточно наблюдений с разных аудитов, чтобы попробовать свести защиту в систему. Не в стиле «купите enterprise DLP», а в виде конкретных слоёв, которые можно раскатить последовательно.
Почему одной меры недостаточно
Проблема с ransomware в том, что вектор атаки не один. Locky мы разбирали в июле - там Word-макрос. Cerber в августе пришёл через браузер. CryptXXX появляется через exploit kit на компрометированных сайтах. Есть варианты через RDP с перебором паролей и через почтовые вложения с JavaScript-дроппером (.js-файл прямо в архиве, без всяких документов).
Отключить макросы - хорошо, но недостаточно, если payload всё равно запустится из %TEMP% через JavaScript. Заблокировать %TEMP% - тоже хорошо, но без изолированных бэкапов восстановление после успешного заражения превращается в многодневный квест. Всё это вместе без обученных пользователей работает с перебоями: технические меры снижают вероятность, но не убирают её.
Отсюда четыре уровня, которые мы сейчас рекомендуем как базовый минимум.
Уровень 1: GPO-ограничение макросов
Это первое, с чего начинали ещё в июле, и позиция не изменилась. В Office 2013/2016 через Administrative Templates (ADMX от Office) раскатывается политика Disable all macros without notification в User Configuration. После этого макрос из внешнего документа физически не запустится.
Важный нюанс: нужно разделить OU тех, кому макросы реально нужны (финансы с Excel-отчётами, HR с определёнными шаблонами), и всех остальных. Не «открыть всем, потому что кому-то нужно», а явный белый список с отдельной политикой. Заодно проверить Mark Of The Web - документы из интернета должны открываться в Protected View, а не сразу с полными правами.
На аудитах видим одно и то же: макросы включены глобально, потому что «три года назад кто-то попросил». Это исправляется за полдня, если есть административная воля.
Уровень 2: AppLocker для блокировки запуска из %TEMP% и %APPDATA%
Большинство ransomware-payload'ов приземляются и запускаются из пользовательских временных директорий: %TEMP%, %APPDATA%, %LOCALAPPDATA%. Это не случайность - у пользователя там есть права на запись и запуск без эскалации привилегий.
AppLocker в Windows Enterprise позволяет создать правило, запрещающее исполняемые файлы (.exe, .com) и скрипты (.js, .vbs, .ps1) из этих путей. Базовая конфигурация:
Запретить: %OSDRIVE%\Users\*\AppData\Local\Temp\* (Executable Rules)
Запретить: %OSDRIVE%\Users\*\AppData\Roaming\* (Executable Rules)
Запретить: %OSDRIVE%\Users\*\AppData\Local\Temp\* (Script Rules)
Это не серебряная пуля - часть дропперов умеет обходить через легитимные системные процессы (mshta.exe, wscript.exe с аргументами). Но значительную часть обычных семейств это останавливает на этапе запуска payload'а, даже если письмо прошло через почтовый фильтр.
На практике AppLocker требует тестирования: всегда найдётся какой-нибудь внутренний скрипт, который кладёт временные файлы в %TEMP% и там же их запускает. Режим Audit перед Enforce - обязательный шаг.
Уровень 3: Offline-копии бэкапов
Про это мы уже подробно писали. Ключевой принцип: хотя бы одна копия данных должна быть недоступна с основной сети в момент потенциального заражения. Cerber и его коллеги целенаправленно ищут сетевые шары и монтированные диски - и шифруют их так же охотно, как локальные файлы.
Offline в данном случае не обязательно означает ленту в физическом сейфе (хотя лента - хорошее решение). Это может быть:
- NAS с бэкапами, доступный только с выделенного бэкап-агента под отдельными учётными данными, не смонтированный как диск ни на одной рабочей машине.
- Ротируемые диски - один подключён, один «на полке». Простая схема, работает в небольших компаниях.
- Immutable storage в облаке - некоторые провайдеры дают возможность включить write-once политику на контейнер.
Критично: бэкап без проверки восстановления - это ощущение безопасности, а не безопасность. Минимум раз в квартал - тестовое поднятие из резервной копии на изолированном стенде.
Уровень 4: Обучение пользователей
Самый неудобный уровень, потому что его сложнее всего формализовать и измерить. Но без него первые три работают с дырами.
Что реально помогает по нашим наблюдениям - не лекция про «будьте осторожны», а конкретные сценарии:
- Покажите, как выглядит вредоносное письмо. Желательно на реальных примерах, обезличенных. Когда человек видит конкретный счёт-фактуру от несуществующего ООО с кривым логотипом, это лучше запоминается, чем абстрактный инструктаж.
- Объясните, что делать, если что-то пошло не так. Главная ошибка заражённого пользователя - продолжать работать и никому не сообщать. Нужен чёткий алгоритм: закрыть всё, отключить сеть (или позвать того, кто это сделает), сообщить в ИТ. Не «подождать и посмотреть».
- Не наказывайте за сообщение. Если человек, нажавший на подозрительную ссылку, боится признаться - заражение будет обнаружено через полтора часа, когда половина файловых серверов уже зашифрована.
Фишинговые симуляции (когда ИТ-отдел сам рассылает тестовые письма и смотрит, кто кликнул) дают хороший материал для точечного обучения. Инструменты для этого есть, часть бесплатная.
Где мы сейчас с этим
Четыре уровня звучат как много работы - и это правда много работы, если делать с нуля. На практике мы разбиваем это на итерации: сначала GPO на макросы (быстро, минимальный риск регрессий), потом AppLocker в режиме аудита, параллельно аудит схемы бэкапов, потом обучение.
Ни одна из этих мер не даёт гарантии - Locky, Cerber и то, что появится после них, будут адаптироваться. Но каждый дополнительный слой поднимает стоимость успешной атаки. Большинство ransomware-кампаний сейчас - это массовые рассылки, не таргетированные атаки. Им нужны лёгкие жертвы. Компания с нормально настроенными GPO, AppLocker и изолированными бэкапами - уже не самая лёгкая цель.