Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Важно!
Некоторые сведения относятся к предварительно выпущенному продукту, который может быть существенно изменен перед выпуском. Корпорация Майкрософт не дает явных или подразумеваемых гарантий относительно предоставленных здесь сведений.
Microsoft Defender автоматически обнаруживает поддерживаемые локальные агенты ИИ и серверы MCP, настроенные на подключенных к Defender устройствах, и отображает их в инвентаре агентов ИИ и в расширенном поиске. Дополнительные сведения об обнаружении локальных агентов ИИ см. в статье Обнаружение локальных агентов ИИ с помощью Microsoft Defender для конечной точки.
Из этой статьи вы узнаете, как просматривать обнаруженные агенты в инвентаризации, изучать их связи с устройствами и удостоверениями, а также исследовать присутствие агента с помощью расширенной охоты.
Примечание.
Функция обнаружения локальных ИИ-агентов обеспечивает только возможности обнаружения и расследования и не включает оценку уровня защищенности или оповещения для агентов конечных устройств.
Предварительные условия
Прежде чем обнаруживать локальные агенты ИИ в конечных точках, убедитесь, что вы соответствуете следующим требованиям:
- Ваша среда находится в коммерческом облаке. Суверенные и национальные облака не поддерживаются.
- У вашей организации есть лицензия Microsoft Defender для конечной точки, план 2, Microsoft 365 E5, Microsoft Agent 365 или Microsoft 365 E7.
- Устройства подключены к Microsoft Defender для конечной точки.
- Устройства запускают поддерживаемую версию Windows или macOS, а антивирусная программа Microsoft Defender обновляется с текущими ежемесячными обновлениями платформы и подсистемы.
- На ваших устройствах Microsoft Defender Antivirus работает в активном режиме, а защита в режиме реального времени включена в приложении «Безопасность Windows».
Вам не требуется дополнительное развертывание, конфигурация или скрипты, выходящие за рамки требований к подключению устройства. Если устройство соответствует всем предварительным требованиям, обнаружение агента начинается автоматически.
Просмотреть локальных агентов ИИ в реестре
Чтобы просмотреть список всех локальных агентов ИИ, обнаруженных в конечных точках, выполните следующие действия:
Войдите на портал Microsoft Defender.
На левой панели навигации выберите Ресурсы>ИИ-агенты.
Выберите Локальные агенты , чтобы просмотреть отфильтрованный список локальных агентов ИИ, обнаруженных на устройствах конечных точек.
Чтобы просмотреть сведения о конкретном агенте, выполните следующие действия:
В списке Локальные агенты выберите агент, чтобы открыть область Агент .
Просмотрите сведения об агенте, в том числе:
- Имя агента, версия и связанный процесс
- Связанное устройство и пользователь
- Первые просмотренные и обновленные метки времени
- Уровень целостности, состояние автоматического утверждения и индикатор доверия
- Настроенные серверы MCP, если обнаружены
Дополнительные сведения об использовании инвентаризации агентов ИИ см. в статье Обнаружение агентов ИИ и оценка состояния безопасности с помощью Microsoft Defender.
Запрашивайте локальных агентов ИИ с помощью расширенного поиска
Используйте Advanced hunting для проактивного анализа наличия локальных ИИ-агентов, чтобы понять, к каким пользователям и ресурсам они могут получить доступ, и выявить конфигурации высокого риска. Эти запросы помогают оценивать уязвимость, трассировать пути доступа к конфиденциальным ресурсам и определять приоритеты реагирования на безопасность.
Таблицы ExposureGraphNodes и ExposureGraphEdges представляют собой граф безопасности для локальных агентов ИИ, включая сущности и связи.
Примечание.
Следующие запросы используют таблицу ExposureGraphEdges для запроса устройства, связанного с агентом ИИ. Вы также можете использовать ExposureGraphNodes таблицу, чтобы запрашивать фактический агент.
Получите список агентов ИИ на всех конечных точках
В этом запросе перечислены все обнаруженные локальные агенты ИИ и устройства, на которые они работают:
ExposureGraphEdges
| where SourceNodeLabel == "endpointAiAgent"
| where EdgeLabel =~ "runs on"
| summarize Devices = make_set(TargetNodeName),
DeviceCount = dcount(TargetNodeName)
by AIAgent = SourceNodeName
| sort by DeviceCount desc
Сопоставление агентов ИИ с пользователями
Этот запрос сопоставляет локальные агенты ИИ с пользователями с учетными данными на устройствах, на которые они работают:
let accessEdges = dynamic(["contains", "has credentials of", "has permissions to",
"has role on", "can authenticate as", "can authenticate to"]);
ExposureGraphEdges
| where SourceNodeLabel == "endpointAiAgent"
| project AIAgent = SourceNodeName, DeviceId = TargetNodeId, Device = TargetNodeName
| join kind=inner (
ExposureGraphEdges
| where EdgeLabel in (accessEdges)
| where TargetNodeLabel in ("device", "ec2.instance", "microsoft.compute/virtualmachines")
| project UserId = SourceNodeId, User = SourceNodeName,
UserType = SourceNodeLabel, DeviceId = TargetNodeId
) on DeviceId
| summarize AIAgents = make_set(AIAgent) by Device, User, UserType
| sort by Device asc
Найти агентов ИИ на устройствах пользователей с широкими правами доступа
Этот запрос позволяет определить, какие пользователи на локальных устройствах с ИИ-агентом имеют доступ к наибольшему числу ресурсов, что помогает расставить приоритеты рисков на основе масштаба доступа:
let accessEdges = dynamic(["contains", "has credentials of", "has permissions to",
"has role on", "can authenticate as", "can authenticate to",
"member of", "can impersonate as"]);
let biEdges =
ExposureGraphEdges
| where EdgeLabel in (accessEdges)
| project src = SourceNodeId, tgt = TargetNodeId,
srcName = SourceNodeName, tgtName = TargetNodeName, edge = EdgeLabel
| union (
ExposureGraphEdges
| where EdgeLabel in (accessEdges)
| project src = TargetNodeId, tgt = SourceNodeId,
srcName = TargetNodeName, tgtName = SourceNodeName, edge = EdgeLabel
);
let userAccess =
ExposureGraphEdges
| where SourceNodeLabel == "user"
| where EdgeLabel in ("has permissions to", "has role on")
| summarize
ResourceCount = dcount(TargetNodeId),
ResourceTypes = make_set(TargetNodeLabel)
by UserId = SourceNodeId, User = SourceNodeName;
ExposureGraphEdges
| where SourceNodeLabel == "endpointAiAgent"
| project AIAgent = SourceNodeName, n1 = TargetNodeId, Device = TargetNodeName
| join kind=inner (
biEdges | project n1 = src, UserId = tgt, User = tgtName
) on n1
| join kind=inner userAccess on UserId
| summarize AIAgents = make_set(AIAgent) by Device, User, ResourceCount,
tostring(ResourceTypes)
| sort by ResourceCount desc
Найдите ИИ-агентов, у которых есть пути к критически важным или конфиденциальным ресурсам
Этот запрос отслеживает пути доступа от локальных агентов ИИ через граф воздействия на ресурсы, помеченные как критические или содержащие конфиденциальные данные:
let accessEdges = dynamic(["contains", "has credentials of", "has permissions to",
"has role on", "can authenticate as", "can authenticate to",
"member of", "can impersonate as"]);
let biEdges =
ExposureGraphEdges
| where EdgeLabel in (accessEdges)
| project src = SourceNodeId, tgt = TargetNodeId,
srcName = SourceNodeName, tgtName = TargetNodeName, edge = EdgeLabel
| union (
ExposureGraphEdges
| where EdgeLabel in (accessEdges)
| project src = TargetNodeId, tgt = SourceNodeId,
srcName = TargetNodeName, tgtName = SourceNodeName, edge = EdgeLabel
);
let sensitiveAssets =
ExposureGraphNodes
| extend CriticalityLevel = toint(NodeProperties.rawData.criticalityLevel.criticalityLevel)
| extend HasSensitiveData = iff(isnotempty(NodeProperties.rawData.containsSensitiveData),
"Yes", "No")
| extend CriticalityReason = tostring(NodeProperties.rawData.criticalityLevel.ruleNames)
| where CriticalityLevel > 0 or HasSensitiveData == "Yes"
| extend Criticality = case(
CriticalityLevel == 1, "Critical",
CriticalityLevel == 2, "High",
CriticalityLevel == 3, "Medium",
CriticalityLevel == 4, "Low",
"Sensitive Data"
)
| project AssetId = NodeId, AssetName = NodeName, AssetType = NodeLabel,
Criticality, HasSensitiveData, CriticalityReason;
ExposureGraphEdges
| where SourceNodeLabel == "endpointAiAgent"
| project AIAgent = SourceNodeName, n1 = TargetNodeId, Device = TargetNodeName
| join kind=inner (
biEdges | project n1 = src, n2 = tgt, Hop1 = tgtName, Via1 = edge
) on n1
| join kind=inner (
biEdges | project n2 = src, n3 = tgt, Via2 = edge
) on n2
| join kind=inner (
sensitiveAssets | project n3 = AssetId, AssetName, AssetType,
Criticality, HasSensitiveData, CriticalityReason
) on n3
| summarize ExposedVia = make_set(Hop1) by
AIAgent, Device, AssetName, AssetType,
Criticality, HasSensitiveData, CriticalityReason
| sort by Criticality asc, HasSensitiveData desc