Translated message

A translation of this page exists in English.

Badlock: уязвимость в протоколах SAMR и LSA и MITM-атака на Samba

Центр безопасности 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