«Многие думают, что SMB — это просто файловый доступ, а DCE/RPC — какая-то старая технология. На деле, это не два отдельных протокола, а единый стек, на котором держится безопасность всей сетевой авторизации в Windows-доменах. Понимание того, как они работают вместе, — ключ к эффективной защите от атак, которые используют эту сложную взаимозависимость.»
Что связывает SMB и DCE/RPC?
SMB и DCE/RPC — это не параллельные дороги, а два уровня одного процесса. Первоначально SMB был простым протоколом для файлового обмена. Однако для сложных сетевых операций, таких как удаленное администрирование, управление политиками или запросы к службе каталогов, потребовался более универсальный механизм. Им стал DCE/RPC — фреймворк для удаленного вызова процедур.
SMB в современных реализациях (начиная с SMB2) часто выступает в роли одного из возможных транспортов для DCE/RPC, так называемого «named pipe». Запрос, который выглядит как доступ к файлу или каталогу (уровень SMB), на самом деле переносит в себе сложную DCE/RPC-структуру, предназначенную для выполнения процедур на удаленном хосте.
SMB: больше чем доступ к папке
Server Message Block (SMB) эволюционировал от простого файлового протокола до комплексной системы управления удаленными ресурсами. Его ключевая роль в безопасности выходит далеко за рамки прав доступа к файлам. Именно через SMB происходит первоначальное подключение и часто — аутентификация, которая затем используется другими протоколами.
Архитектура и эволюция версий
- SMB1/CIFS: Устаревшая, но все еще встречающаяся версия. Не поддерживает современное шифрование, использует уязвимые механизмы аутентификации (например, NTLMv1). Именно она стала основой для таких эпидемий, как WannaCry через уязвимость EternalBlue.
- SMB2/3: Современные версии, которые принесли значительные улучшения производительности и безопасности. SMB3 поддерживает сквозное шифрование (AES-128-GCM), защиту от атак типа «man-in-the-middle» через механизм подписывания и pre-authentication integrity.
Основная проблема SMB с точки зрения ФСТЭК и 152-ФЗ — это его повсеместная включенность. Протокол часто работает на критически важных серверах (файловые хранилища, контроллеры домена), а его некорректная настройка (оставленный для совместимости SMB1, слабые настройки шифрования) открывает всю сеть для компрометации.
Распространенные векторы атак через SMB
| Вектор атаки | Сущность уязвимости | Типичное последствие |
|---|---|---|
| Атаки на аутентификацию | Перехват или подбор хэшей NTLM (часто через SMB-трафик) для последующего «пас-зе-хэш» или офлайн-взлома. | Получение учетных данных привилегированного пользователя. |
| Эксплуатация уязвимостей в реализации | Ошибки в обработке сетевых пакетов (например, переполнение буфера в SMBv1). | Удаленное выполнение кода (RCE) с правами системы. |
| Отсутствие подписи (SMB Signing Disabled) | Злоумышленник может модифицировать трафик между клиентом и сервером. | Повышение привилегий, перехват сессии. |
DCE/RPC: скрытая проводка Windows
Distributed Computing Environment/Remote Procedure Call (DCE/RPC) — это не протокол в привычном смысле, а среда, которая определяет, как клиент должен упаковать вызов функции и отправить его для выполнения на удаленном сервере. В мире Windows практически вся логика управления — от изменения записи в Active Directory до запуска службы — осуществляется через вызовы DCE/RPC.
Для работы DCE/RPC нужен транспорт. И здесь начинается его связь с SMB: одним из основных транспортов является механизм именованных каналов (named pipes) поверх SMB. Клиент подключается к серверу через SMB к «файлу» типа pipesvcctl (для управления службами) или pipelsarpc (для политик безопасности), а затем по этому каналу передаются уже структурированные DCE/RPC-сообщения.
Интерфейсы (UUID) и их значение для защиты
Каждая группа удаленных процедур (например, для работы с реестром, сетевыми ресурсами, самописным ПО) имеет свой уникальный идентификатор (UUID). Сетевые экраны и системы обнаружения вторжений могут фильтровать DCE/RPC-трафик именно на уровне UUID, блокируя доступ к опасным интерфейсам (например, MS-RPRN для удаленной печати, который используется в атаках для кражи хэшей паролей).
- Endpoint Mapper (порт 135/TCP): Служба, к которой клиент обращается первым, чтобы узнать, на каком порту (часто динамическом) «слушает» нужный ему интерфейс.
- Прямой транспорт: Помимо SMB, DCE/RPC может работать напрямую поверх TCP (порты 135 и динамические высокие) или HTTP. Это важно для систем сегментации сети.
Угрозы на уровне DCE/RPC
| Категория угрозы | Пример | Почему это работает |
|---|---|---|
| Недостаточная проверка прав | Анонимный доступ к некоторым интерфейсам (например, для перечисления пользователей). | Некорректные настройки безопасности домена, позволяющие получать разведывательную информацию без аутентификации. |
| Уязвимости в самих интерфейсах | Ошибки в RPC-сервисах Windows (например, уязвимость в службе «Служба удаленного управления Windows»). | Приводят к удаленному выполнению кода на критически важных системах. |
| Злоупотребление легитимными функциями | Использование интерфейса MS-DRSR (репликация Active Directory) для извлечения хэшей паролей всех пользователей домена. |
Атакующий с правами администратора домена использует штатные механизмы для вредоносных целей. |
Практические рекомендации для российских ИБ-специалистов
Защита стека SMB/DCE/RPC — это не единовременная настройка, а постоянный процесс мониторинга и ужесточения политик.
- Полный отказ от SMB1: Отключите его на всех системах (и клиентах, и серверах) через групповые политики. Это базовый и самый эффективный шаг.
- Принудительное использование SMB Signing и шифрования SMB3: Настройте политики домена, требующие подпись SMB-пакетов для всех серверов, а шифрование — для серверов с чувствительными данными.
- Сегментация сети: Ограничьте доступ по портам 135 (TCP), 139 и 445 (TCP/UDP) между сегментами. Контроллеры домена, файловые серверы и рабочие станции должны быть в разных VLAN с жесткими правилами фильтрации.
- Аутинг интерфейсов DCE/RPC: Используйте сканеры безопасности или средства аудита (например,
rpcdump.pyиз Impacket) для выяснения, какие интерфейсы доступны на ваших серверах. Заблокируйте на сетевом экране все ненужные UUID. - Мониторинг аномальной активности: Настройте SIEM на обнаружение подозрительных паттернов: множественные попытки аутентификации через SMB, подключения к именованным каналам, связанным с администрированием (
pipeatsvc,pipesamr), с рабочих станций, или активность на порту 135 вне рамок стандартных рабочих процедур.
Игнорирование связки SMB и DCE/RPC, рассматривание их по отдельности, создает иллюзию защищенности. Реальная безопасность лежит в понимании этого тандема как единой системы, где уязвимость или слабое звено на одном уровне немедленно компрометирует весь стек управления инфраструктурой.