
Включаем EPA в FreeTDS и go-mssqldb: приключение на 5 минут
bulatgafurov 4 минуты назад Включаем EPA в FreeTDS и go-mssqldb: приключение на 5 минут 10 мин 17 Блог компании Яндекс Информационная безопасность * Управление продуктом * IT-инфраструктура * Представьте: вы теряете...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. bulatgafurov 4 минуты назад Включаем EPA в FreeTDS и go-mssqldb: приключение на 5 минут 10 мин 17 Блог компании Яндекс Информационная безопасность * Управление продуктом * IT-инфраструктура * Представьте: вы теряете контроль над SCCM — одним из самых критичных инструментов управления инфраструктурой. А точкой входа становится обычное подключение к MSSQL, где он хранит свои данные. Злоумышленник перехватывает NTLM-аутентификацию и перенаправляет её на нужный сервер — так работает NTLM relay.
Мы в команде Security Engineering решили не ждать эксплуатации этой уязвимости. Меня зовут Булат Гафуров, я инженер по информационной безопасности в Яндексе. В этой статье я расскажу, почему стандартного решения оказалось недостаточно и как мы добавили поддержку механизма EPA в популярные библиотеки, чтобы переключить защиту на стороне MSSQL в режим Require, не лишив Linux- и Windows-сервисы доступа к данным.
Технические детали
С чего всё начиналосьSCCM (System Center Configuration Manager) — инструмент управления Windows-устройствами: позволяет централизованно устанавливать и обновлять приложения, управлять конфигурациями и, по сути, является RCE as a Service в масштабах всей инфраструктуры. Для хранения конфигурации, прав доступа, инвентаризации и данных для деплоя SCCM использует MSSQL. Это и делает базу данных привлекательной целью: с доступом к ней атакующий получает контроль над SCCM, а через него — и доступ ко всем управляемым устройствам.
В нашем случае к MSSQL подключались не только серверы SCCM: нужно было забирать данные для мониторинга и экспортировать инвентаризацию в сторонние системы. Сетевой доступ к базе был открыт с нескольких сервисов — как на Windows, так и на Linux. Стоит заметить, что файрвол, как и любая сегментация, — это очень действенная мера для ограничения возможностей атакующих, однако при проектировании систем файрвол не может быть основным средством обеспечения безопасности.
SCCM — общеизвестная цель для NTLM-relay-атак, и рекомендации по защите давно существуют: PREVENT14. Наша цель была в том, чтобы закрыться от NTLM relay, не сломав при этом подключения ни с Linux-, ни с Windows-систем. Любопытная деталь: поддержка защитного механизма EPA в инструментах аудита безопасности появилась гораздо раньше, чем в клиентских библиотеках под Linux, включая официальный клиент от Microsoft.
Отраслевые последствия
Есть несколько статей, в которых добавляют поддержку EPA в подобные инструменты:A journey implementing Channel Binding on MSSQLClient. py (как добавляли поддержку EPA в Impacket, PR). Dissecting NTLM EPA with love & building a MitM proxy (статья о разборе NTLM-сообщения с EPA и создании MitM-прокси Prox-Ez).
Реализация Channel Binding в Certipy. Ldap3: поддержка Channel Binding (поддержка добавлена почти три года назад). Но просто переключить EPA в режим Require мы не могли: это сразу отрезало бы все Linux-клиенты.
Оставалось два пути: Отказаться от TLS и использовать Service Binding. Дописать поддержку EPA в популярные библиотеки — FreeTDS и microsoft/go-mssqldb.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





