Badlock: уязвимость в протоколах SAMR и LSA и MITM-атака на Samba
Table of Contents
Центр безопасности Red Hat сообщает об уязвимости в протоколах SAMR и LSA на базе DCE/RPC, используемых в инфраструктуре Microsoft Windows Active Directory. Этой уязвимости был присвоен идентификатор CVE-2016-2118.
Примечание. Так как проблема была обнаружена на уровне протокола, она затрагивает все использующие его приложения и продукты, в том числе Samba (CVE-2016-2118) и Microsoft Windows (CVE-2016-0128).
Описание
DCE/RPC — спецификация механизма вызова удаленных процедур, определяющая как API, так и протокол, который реализован над транспортными протоколами. Протокол SAMR (Security Account Manager Remote) реализует модель клиент-сервер и предоставляет функциональность, необходимую для управления хранилищем с данными учетных записей и каталогом пользователей и групп. Протокол предоставляет доступ к базе данных учетных записей как для локальных, так и для удаленных доменов Microsoft Active Directory. Протокол LSA (Local Security Authority Remote Protocol) выполняет задачи управления политикой безопасности машин и доменов. Если не считать редких исключений, LSA допускает реализацию сценариев удаленного управления политикой. Оба протокола — и LSA, и SAMR — построены на основе DCE RPC 1.1.
Перечисленные протоколы доступны практически во всех установках Windows и на серверах Samba. Их основная цель — поддержка состояния базы данных диспетчера учетных записей безопасности независимо от того, какую роль выполняет сервер (будь то автономный сервер, контроллер домена или рядовой узел домена).
Описание атаки и оценка последствий
Вектор атаки может быть направлен на любое инициированное клиентом подключение DCE/RPC, в ходе которого злоумышленник осуществляет перехват трафика и выдает себя за аутентифицированного на уровне SAMR или LSA пользователя, получая доступ на чтение и запись к расположенной на сервере базе данных SAM, содержащей пароли и другую конфиденциальную информацию.
В этой ситуации ни используемый клиентом протокол, ни механизм (Kerberos, NTLMSSP), ни уровень аутентификации (NONE, CONNECT, SIGN, SEAL) не имеют значения, так как атакующая сторона сможет снизить уровень до CONNECT и получить контроль над соединением.
Центр безопасности продуктов Red Hat присвоил этой уязвимости рейтинг ВАЖНО. Все версии Samba в Red Hat Enterprise Linux Server и Red Hat Gluster Storage признаны уязвимыми.
Уязвимые конфигурации
-
Эта уязвимость представляет опасность для инфраструктуры Active Directory с сервером Samba в составе домена. Злоумышленник может инициировать MITM-атаку для перехвата трафика DCE/RPC между узлом и контроллером домена, выступив в роли клиента и получив разрешения, присущие авторизованному пользователю. В итоге он получит возможность просмотра и модификации закрытых данных в базе данных Active Directory, в том числе хэшей паролей, и сможет отключить критические службы.
-
Любой сервер Samba, выполняющий функции файлового сервера или сервера печати, также подвержен риску. В ходе атаки нарушитель может изменить права доступа к файлам и каталогам.
Меры предосторожности
Уровень угрозы можно несколько снизить, отказавшись от использования привилегированных учетных записей для доступа к сервисам SMB/CIFS до тех пор, пока не будут установлены актуальные исправления. Административный доступ следует использовать только непосредственно на физическом оборудовании (консоль, сервер), чтобы исключить необходимость передачи данных по сети в ходе аутентификации.
Решение
Продукт | Компонент | Рекомендация |
---|---|---|
Red Hat Enterprise Linux 5 | samba (3.0) | RHSA-2016:0621 |
Red Hat Enterprise Linux 5 | samba3x (3.6) | RHSA-2016:0613 |
Red Hat Enterprise Linux 6 | samba (3.6) | RHSA-2016:0611 |
Red Hat Enterprise Linux 6 | samba4 (4.2) | RHSA-2016:0612 |
Red Hat Enterprise Linux 7 | samba (4.2) | RHSA-2016:0612 |
Red Hat Gluster Storage 3 (EL6) | samba (4.2) | RHSA-2016:0306 |
Red Hat Gluster Storage 3 (EL7) | samba (4.2) | RHSA-2016:0306 |
Благодарности
Red Hat благодарит проект Samba за предоставление информации об этой уязвимости, который, в свою очередь, отмечает вклад сотрудника компании SerNet Стефана Метцмахера (Stefan Metzmacher), который ее обнаружил.
Примечания
В исправлении была представлена новая директива для smb.conf
:
allow dcerpc auth level connect (G)
Эта директива контролирует доступ к сервисам DCERPC при использовании режима DCERPC_AUTH_LEVEL_CONNECT,
который включает аутентификацию на стадии подключения, но без подписи отдельных сообщений (SIGN) и защиты шифрованием (SEAL).
В коде некоторых интерфейсов (SAMR, LSARPC и netlogon) уже прописано значение no,
в то время как в других (epmapper, mgmt, rpcecho) по умолчанию запрограммировано yes.
Это поведение можно изменить отдельно для каждого интерфейса
(lsarpc, netlogon, samr, srvsvc, winreg, wkssvc), добавив строку:
'allow dcerpc auth level connect:interface = yes'.
Эта директива отдает предпочтение ограничениям, накладываемым реализацией индивидуальных протоколов.
Примеры таких ограничений:
* Протоколы drsuapi и backupkey используют DCERPC_AUTH_LEVEL_PRIVACY.
* Протокол dnsserver использует DCERPC_AUTH_LEVEL_INTEGRITY.
По умолчанию: allow dcerpc auth level connect = no
Пример: allow dcerpc auth level connect = yes
Вопросы и ответы
Исправления должны устанавливаться и на серверах, и на клиентах Samba?
Как минимум необходимо установить исправления на сервере Samba. Так как Badlock — это уязвимость на уровне протокола, то в зависимости от особенностей инфраструктуры Samba она может представлять опасность не только для серверов, но и для клиентов, поэтому центр безопасности продуктов Red Hat рекомендует обновить и то, и другое.
Как повлияет обновление пакетов на работу клиентов с более ранними версиями Samba?
Эти рекомендации ужесточают требования к параметрам безопасности Samba, что может нарушить конфигурацию окружений, в которых был обновлен только сервер Samba, а клиенты не обновлялись. В целях сохранения функциональной совместимости вы можете предпочесть использовать старые, но небезопасные параметры (например, allow dcerpc auth level connect = yes
в файле smb.conf
), но Red Hat не рекомендует этого делать, так как ваше окружение останется уязвимым.
Ни один из моих серверов Samba не связан с доменами Windows. Они все равно подвержены риску?
Да. Любой незащищенный клиент, устанавливающий соединение с сервером Samba, или даже защищенный клиент, взаимодействующий с незащищенным сервером Samba, может оказаться жертвой MITM-атаки.
Что нужно перезапустить после обновления клиентов и серверов Samba?
Вручную ничего перезапускать не требуется. После успешной установки обновлений перезапуск smb
произойдет автоматически.
Можно ли снизить риск атаки, включив шифрование?
Протокол SMB изначально поддерживал шифрование только идентификационных данных и команд, в то время файлы передавались в открытом виде. Так как защита всех передаваемых данных была признана оправданной необходимостью, в Samba 3.2 было добавлено шифрование, но только для клиентов. Microsoft добавил поддержку шифрования в SMB 3.0 для Windows 8 и Windows Server 2012. Однако новые возможности шифрования предусматривали защиту обмена данными (например, файлами) уже после завершения этапа согласования сеанса SMB и обмена командами, в то время как именно этот этап и подвержен наибольшей опасности. Несомненно, шифрование Samba/SMB повышает общий уровень защиты соединения, но не может полностью предотвратить риск эксплуатации обсуждаемой уязвимости.
Дополнительные ресурсы
http://badlock.org/
Comments