Угрозы

AI-функции SQL Server 2025 можно использовать для вывода данных: исследователи показали атаку через штатные механизмы базы

Маша Даровская
By Маша Даровская , IT-редактор и автор
AI-функции SQL Server 2025 можно использовать для вывода данных: исследователи показали атаку через штатные механизмы базы
Обложка © Anonhaven

Исследователи SpecterOps показали, как новые AI-функции Microsoft SQL Server 2025 можно использовать не по назначению: для вывода данных из базы, обращения к внешним серверам и создания скрытого канала управления. Опасность появляется после компрометации учетной записи с высокими правами, например sysadmin, когда злоумышленник уже внутри SQL Server и ищет тихий способ унести данные.

SQL Server 2025 вышел в общую доступность 18 ноября 2025 года. Microsoft продвигает релиз как “AI-ready” базу данных: в движок добавили векторный тип данных, векторный поиск, работу с внешними AI-моделями, генерацию эмбеддингов и вызовы REST API прямо из T-SQL. Это нужно для корпоративных RAG-сценариев, где база хранит документы, превращает текст в векторы и помогает приложению искать релевантные фрагменты для ответа ИИ.

Но если база получила штатный механизм для отправки данных во внешние HTTPS-сервисы, то атакующий с нужными правами получает такой же механизм. Причем это обычная функция современной SQL-платформы.

В центре исследования три механизма SQL Server 2025: sp_invoke_external_rest_endpoint, CREATE EXTERNAL MODEL и AI_GENERATE_EMBEDDINGS.

sp_invoke_external_rest_endpoint — системная хранимая процедура для вызова внешнего HTTPS REST API из SQL Server. Microsoft описывает ее как способ интеграции с Azure Functions, Event Hubs, Azure OpenAI, Microsoft Graph, Power BI и другими сервисами. В SQL Server 2025 и Azure SQL Managed Instance процедура отключена по умолчанию, ее надо включить через sp_configure. В Azure SQL Database и SQL database in Microsoft Fabric она включена по умолчанию. Для выполнения нужен доступ EXECUTE ANY EXTERNAL ENDPOINT.

DECLARE @response  NVARCHAR(MAX);

EXEC sp_invoke_external_rest_endpoint

@url      = N'https://api.example.com/data',

@method   = 'POST',

@headers  = N'{"Content-Type":"application/json"}',

@payload  = N'{"query":"example"}',

@response = @response OUTPUT;

SELECT @response;

У процедуры есть важный лимит: тело запроса или ответа может достигать 100 МБ в UTF-8. Для нормального сценария это удобно — можно отправить пачку строк одним JSON-документом. Для атакующего это тоже удобно — можно сериализовать таблицу через FOR JSON AUTO и отправить ее на контролируемый HTTPS-сервер. SpecterOps продемонстрировала такой сценарий на примере таблицы с логинами и паролями.

Вторая техника касается файлов. Если SQL Server имеет доступ к файлу через механизмы вроде OPENROWSET(BULK ...), содержимое можно прочитать и передать тем же способом наружу. Так в зону риска попадают конфигурационные файлы, экспортированные секреты, служебные документы и другие данные, к которым имеет доступ процесс SQL Server или связанная учетная запись.

Третий сценарий: триггер в базе может автоматически отправлять новые данные при изменениях в таблице. Например, в таблицу добавили новые учетные данные — триггер сработал и отправил запись на внешний сервер. Оператору атаки не нужно каждый раз вручную заходить в базу и выполнять команду.

CREATE EXTERNAL MODEL нужен для регистрации внешней модели, к которой SQL Server обращается при AI-операциях. В нормальной работе это Azure OpenAI, OpenAI, Ollama или другой endpoint для эмбеддингов. Исследователи показали, что внешний адрес может стать частью атакующей инфраструктуры. Модель выглядит как легитимный AI-компонент, а трафик к ней — как рабочий AI-трафик.

CREATE EXTERNAL MODEL example_model

WITH (

LOCATION  = N'https://my-hosted-model.example.com/v1/embeddings',

API_FORMAT = 'OpenAI',

MODEL_TYPE = EMBEDDINGS,

MODEL      = N'qwen3-embedding:0.6b'

);

AI_GENERATE_EMBEDDINGS отправляет строку в зарегистрированную модель и получает обратно JSON-массив векторов. В RAG-приложениях это базовая операция: взять текст, получить эмбеддинг, сохранить его в векторном столбце, потом искать похожие документы через векторное расстояние. SpecterOps показала, что такой вызов можно использовать как транспорт: отправлять данные в “модель”, которая на самом деле контролируется атакующим.

SELECT AI_GENERATE_EMBEDDINGS(N'example string' USE MODEL example);

Microsoft в документации не скрывает риск. Для sp_invoke_external_rest_endpoint прямо указано, что процедура позволяет передавать данные внешней сущности. Рекомендации стандартные: минимальные права, правильная авторизация REST-вызовов, аудит, мониторинг и регулярные проверки безопасности. Для локальных ONNX-моделей Microsoft отдельно предупреждает: вредоносная или скомпрометированная модель может выводить данные или выполнять несанкционированный код.

Ещё один нюанс — список разрешенных эндпойнтов. В Azure SQL Database и Azure SQL Managed Instance Microsoft ограничивает вызовы набором доменов Azure и Microsoft-сервисов, включая Azure Functions, Event Hubs, Azure OpenAI, Microsoft Graph, Power BI, Key Vault, Azure AI Search и другие. Для SQL Server 2025 на собственной инфраструктуре важнее сетевые правила самой компании: если серверу разрешён широкий исходящий HTTPS, AI-функции получают слишком свободный коридор наружу.

Cyber Press после публикации SpecterOps описал проблему как риск вывода чувствительных данных и скрытого C2 через AI-функции SQL Server 2025.

Проверьте, включена ли опция external rest endpoint enabled. Посмотрите, кто имеет право EXECUTE ANY EXTERNAL ENDPOINT. Найдите созданные EXTERNAL MODEL, связанные database scoped credentials и адреса внешних моделей. Отдельно проверьте CLR-сборки, триггеры в критичных таблицах и необычные OPENROWSET(BULK ...) операции.

На сетевом уровне проверьте исходящие HTTPS-соединения с SQL-хостов. База данных не должна свободно обращаться к любым внешним адресам. Разрешённые AI эндпойнты лучше закрепить явно, а весь остальной исходящий трафик блокировать через firewall, proxy или egress gateway.

Есть новость? Станьте автором.

Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.