Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Parte de la información está relacionada con el producto preliminar que se puede modificar sustancialmente antes de su lanzamiento comercial. Microsoft no otorga garantías, expresas o implícitas, con respecto a la información que aquí se proporciona.
La AIAgentsInfo tabla está realizando la transición a la AgentsInfo tabla. Microsoft Agent 365 los clientes deben usar la AgentsInfo tabla hoy en día. La AIAgentsInfo tabla permanece accesible hasta el 1 de julio de 2026. Actualice las consultas para usarlas AgentsInfo antes de esta fecha. Para obtener más información, vea Esquema de búsqueda avanzada: cambios de nomenclatura.
La AIAgentsInfo tabla del esquema de búsqueda avanzada contiene información sobre los agentes de inteligencia artificial y sus entidades asociadas. Utilice esta referencia para crear consultas que devuelvan información sobre la tabla.
Microsoft Defender rellena esta tabla a través de conectores en Microsoft Defender for Cloud Apps Power Plaform y Microsoft Agent 365. Si su organización no implementa estos servicios, las consultas que usan la tabla no funcionan ni devuelven ningún resultado. Para más información, vea:
- Implementación de servicios compatibles con Microsoft Defender XDR
- Introducción a Microsoft Agent 365
Para obtener información sobre otras tablas del esquema de búsqueda avanzada, vea la referencia de búsqueda avanzada.
| Nombre de columna | Tipo de datos | Descripción |
|---|---|---|
Timestamp |
datetime |
Última fecha y hora registradas para la información del agente |
RegistrySource |
string |
Registro que proporcionó los metadatos del agente |
AIAgentId |
guid |
Identificador único del agente asignado en Microsoft 365 Copilot o Copilot Studio |
AIAgentName |
string |
Nombre para mostrar del agente |
AgentCreationTime |
datetime |
Fecha y hora en que se creó el agente |
CreatorAccountUpn |
string |
Nombre principal de usuario (UPN) de la cuenta que creó el agente |
OwnerAccountUpns |
string |
Nombres principales de usuario (UPN) de todos los propietarios del agente |
LastModifiedByUpn |
string |
Nombre principal de usuario (UPN) de la cuenta que modificó por última vez ese agente |
LastModifiedTime |
datetime |
Fecha y hora en que se modificó por última vez el agente |
LastPublishedTime |
datetime |
Fecha y hora en que se publicó por última vez el agente |
LastPublishedByUpn |
string |
Nombre principal de usuario (UPN) de la cuenta que publicó por última vez el agente |
AgentDescription |
string |
Descripción del agente como se muestra en el origen del agente |
AgentStatus |
string |
Estado del agente; valores posibles: Creado, Publicado, Eliminado |
UserAuthenticationType |
string |
El tipo de autenticación configurado por el agente para los usuarios que interactúan con el agente; valores posibles: None, Microsoft, Custom |
AgentUsers |
string |
Lista de nombres principales de usuario (UPN) o identificadores de grupo que pueden usar el agente |
KnowledgeDetails |
string |
Detalles sobre los orígenes de conocimiento agregados al agente |
AgentActionTriggers |
string |
Lista de desencadenadores que hace que un agente autónomo tome medidas |
RawAgentInfo |
string |
Contenido del JSON sin formato que describe el agente y contiene detalles de configuración, tal como se recibe del proveedor. |
AuthenticationTrigger |
string |
Indica cuándo se desencadena la autenticación para el agente; valores posibles: según sea necesario, Always |
AccessControlPolicy |
string |
Usuarios que pueden interactuar con el agente; valores posibles: Cualquiera, Lectores de Copilot, Pertenencia a grupos, Cualquiera (multiinquilino) |
AuthorizedSecurityGroupIds |
dynamic |
Lista de Azure identificadores de grupo de Active Directory que pueden interactuar con el agente |
AgentTopicsDetails |
dynamic |
Especificaciones de los temas que el agente puede realizar |
AgentToolsDetails |
dynamic |
Especificaciones de las herramientas a las que el agente puede acceder y realizar acciones |
EnvironmentId |
string |
Identificador del entorno de Microsoft Power Platform en el que reside el agente |
Platform |
string |
La plataforma que proporcionó la información sobre los agentes; valores posibles: Copilot Studio |
IsGenerativeOrchestrationEnabled |
boolean |
Indica si el agente usa la orquestación generativa (es decir, elige dinámicamente herramientas, conocimientos y acciones basadas en contexto) para funcionar |
AgentAppId |
string |
Identificador de aplicación único registrado para el agente en Microsoft Entra |
ConnectedAgentsSchemaNames |
dynamic |
Enumera los nombres de esquema de los agentes conectados, que son agentes administrados de forma independiente que están vinculados al principal para la orquestación. |
ChildAgentsSchemaNames |
dynamic |
Enumera los nombres de esquema de los agentes secundarios que existen dentro del agente principal. |
Version |
string |
Versión del agente |
IsBlocked |
boolean |
Indica si un administrador ha bloqueado el agente. |
Instructions |
string |
Símbolo del sistema del agente que define su comportamiento, persona y límites operativos predeterminados |
EntraObjectId |
string |
Identificador único de objeto de aplicación empresarial del agente por Microsoft Entra ID |
EntraBlueprintId |
string |
Identificador de la entidad de seguridad del plano técnico de identidad del agente por Agente de Microsoft Entra ID |
AIModel |
string |
El modelo de inteligencia artificial que alimenta el agente |
AccessCapabilities |
dynamic |
Funcionalidades de acceso a datos concedidas al agente |
ElementTypes |
dynamic |
Tipos de componentes técnicos que componen el agente |
SourceAgentId |
string |
Identificador nativo de la plataforma del agente, como el identificador de Azure Resource Manager (ARM) para los agentes de Microsoft Foundry o el identificador de agente con ámbito de entorno para los agentes de Copilot Studio |
Consultas de ejemplo
Las consultas de ejemplo siguientes devuelven resultados en función del origen o conector del Registro especificado:
- Para devolver resultados en Agent 365, agregue
RegistrySource == "A365"la consulta. - Para devolver los resultados de Defender for Cloud Apps Power Platform, use
RegistrySource == "PowerPlatform".
Consultas que usan Agent 365 como origen del Registro
Enumerar todos los agentes de Agent 365
Esta consulta identifica todos los agentes que se publican en Agent 365.
let IdentityIdtoUPN = materialize (
IdentityInfo
| distinct AccountObjectId, AccountUpn
| extend AccountObjectId = tostring(AccountObjectId)
| where isnotempty(AccountObjectId) and isnotempty(AccountUpn));
AIAgentsInfo
| where RegistrySource == "A365"
| summarize arg_max(Timestamp, *) by AIAgentId
| extend AIAgentId = tostring(AIAgentId)
| extend RawAgentInfoJson = parse_json(RawAgentInfo)
| extend DeveloperName = RawAgentInfoJson.developerName
| extend OwnerId = tostring(RawAgentInfoJson.owners[0].entityId)
| extend CreatorId = tostring(RawAgentInfoJson.creatorId)
| join kind=leftouter IdentityIdtoUPN on $left.OwnerId == $right.AccountObjectId
| project-rename OwnerUpn = AccountUpn
| join kind=leftouter IdentityIdtoUPN on $left.CreatorId == $right.AccountObjectId
| project-rename CreatorUpn = AccountUpn
| project-away OwnerId, CreatorId, AccountObjectId, AccountObjectId1
| project-reorder AgentCreationTime, AIAgentId, AIAgentName, OwnerUpn, CreatorUpn, DeveloperName
Agentes publicados sin instrucciones
Esta consulta identifica Agent 365 agentes de inteligencia artificial que se publican pero que carecen de instrucciones configuradas. Las instrucciones que faltan aumentan el riesgo de ataques por inyección rápida, donde la entrada malintencionada puede influir en que el agente se desvíe de su comportamiento previsto. Sin instrucciones claras, el agente puede responder de forma imprevisible o exponer datos confidenciales.
Recomendaciones:
- Asegúrese de que todos los componentes de orquestación generativas tienen instrucciones bien definidas que especifican el propósito, los límites y las acciones permitidas del agente. Revise y actualice periódicamente las instrucciones para mantener la seguridad y evitar el uso indebido.
let IdentityIdtoUPN = materialize (
IdentityInfo
| distinct AccountObjectId, AccountUpn
| extend AccountObjectId = tostring(AccountObjectId)
| where isnotempty(AccountObjectId) and isnotempty(AccountUpn));
AIAgentsInfo
| summarize arg_max(Timestamp, *) by AIAgentId
| where RegistrySource == "A365"
| where IsBlocked == 0 // not blocked
| where isnotnull(Instructions)
| where isempty(Instructions) or Instructions == "N/A"
| extend RawAgentInfoJson = parse_json(RawAgentInfo)
| extend DeveloperName = RawAgentInfoJson.developerName
| extend PublishedStatus = RawAgentInfoJson.publishedStatus
| where PublishedStatus == "Published" //published
| extend OwnerId = tostring(RawAgentInfoJson.owners[0].entityId)
| extend CreatorId = tostring(RawAgentInfoJson.creatorId)
| join kind=leftouter IdentityIdtoUPN on $left.OwnerId == $right.AccountObjectId
| project-rename OwnerUpn = AccountUpn
| join kind=leftouter IdentityIdtoUPN on $left.CreatorId == $right.AccountObjectId
| project-rename CreatorUpn = AccountUpn
| project-away RawAgentInfoJson, OwnerId, CreatorId, AccountObjectId, AccountObjectId1
| project-reorder AgentCreationTime, AIAgentId, AIAgentName, Instructions, OwnerUpn, CreatorUpn ,DeveloperName
Herramientas de MCP configuradas
Esta consulta identifica Agent 365 agentes de inteligencia artificial que tienen configuradas herramientas de Protocolo de contexto de modelo (MCP). Las herramientas de MCP amplían las funcionalidades del agente, pero presentan consideraciones de seguridad adicionales porque pueden ejecutar operaciones avanzadas e interactuar con recursos externos. Si no se configura correctamente o no es necesario, estas herramientas pueden aumentar la superficie expuesta a ataques y exponer datos o funciones confidenciales.
Recomendaciones:
- Confirme con el propietario del agente si la herramienta MCP sigue siendo necesaria. Si es así, revise su configuración para comprobar el cumplimiento de los procedimientos recomendados de seguridad y asegúrese de tener acceso con privilegios mínimos. Quite las herramientas mcp no utilizadas o innecesarias para reducir el riesgo.
let IdentityIdtoUPN = materialize (
IdentityInfo
| distinct AccountObjectId, AccountUpn
| extend AccountObjectId = tostring(AccountObjectId)
| where isnotempty(AccountObjectId) and isnotempty(AccountUpn));
AIAgentsInfo
| where RegistrySource == "A365"
| summarize arg_max(Timestamp, *) by AIAgentId
| extend RawAgentInfoJson = parse_json(RawAgentInfo)
| extend DeveloperName = RawAgentInfoJson.developerName
| extend OwnerId = tostring(RawAgentInfoJson.owners[0].entityId)
| extend CreatorId = tostring(RawAgentInfoJson.creatorId)
| join kind=leftouter IdentityIdtoUPN on $left.OwnerId == $right.AccountObjectId
| project-rename OwnerUpn = AccountUpn
| join kind=leftouter IdentityIdtoUPN on $left.CreatorId == $right.AccountObjectId
| project-rename CreatorUpn = AccountUpn
| where isnotempty(AgentActionTriggers)
| extend AgentActionTriggersJson = parse_json(AgentActionTriggers)
| where array_length(AgentActionTriggersJson) > 1
| mv-expand Trigger = AgentActionTriggersJson
| extend ActionType = Trigger.type
| where ActionType == "RemoteMCPServer"
| project-away Trigger, RawAgentInfoJson, AgentActionTriggersJson, OwnerId, CreatorId, AccountObjectId, AccountObjectId1
| project-reorder AgentCreationTime, AIAgentId, AIAgentName, ActionType, OwnerUpn, CreatorUpn, DeveloperName
Solicitudes HTTP a puntos de conexión que no son HTTPS
Esta consulta identifica Agent 365 agentes de inteligencia artificial que envían solicitudes HTTP a puntos de conexión mediante esquemas que no son HTTPS. La comunicación a través de HTTP sin cifrar expone datos confidenciales en tránsito y aumenta el riesgo de interceptación o manipulación. Los atacantes podrían aprovechar esta vulnerabilidad para capturar credenciales, tokens de sesión u otra información confidencial, lo que conduce a infracciones de datos o acceso no autorizado.
Recomendaciones:
- Revise estos agentes y actualice todas las acciones HTTP para usar puntos de conexión HTTPS. Si la comunicación no segura es absolutamente necesaria para un caso empresarial específico, documente la justificación y aplique controles compensadores, como el cifrado de nivel de red o las restricciones de IP.
let IdentityIdtoUPN = materialize (
IdentityInfo
| distinct AccountObjectId, AccountUpn
| extend AccountObjectId = tostring(AccountObjectId)
| where isnotempty(AccountObjectId) and isnotempty(AccountUpn));
AIAgentsInfo
| where RegistrySource == "A365"
| summarize arg_max(Timestamp, *) by AIAgentId
| extend RawAgentInfoJson = parse_json(RawAgentInfo)
| extend DeveloperName = RawAgentInfoJson.developerName
| extend OwnerId = tostring(RawAgentInfoJson.owners[0].entityId)
| extend CreatorId = tostring(RawAgentInfoJson.creatorId)
| join kind=leftouter IdentityIdtoUPN on $left.OwnerId == $right.AccountObjectId
| project-rename OwnerUpn = AccountUpn
| join kind=leftouter IdentityIdtoUPN on $left.CreatorId == $right.AccountObjectId
| project-rename CreatorUpn = AccountUpn
| where isnotempty(AgentActionTriggers)
| extend AgentActionTriggersJson = parse_json(AgentActionTriggers)
| where array_length(AgentActionTriggersJson) > 1
| mv-expand Trigger = AgentActionTriggersJson
| extend ServerUrls = Trigger.serverUrls
| mv-expand Url = ServerUrls
| extend ParsedUrl = parse_url(tostring(Url))
| extend Scheme = tostring(ParsedUrl["Scheme"])
| where isnotempty(Scheme) and Scheme != "https"
| project-away RawAgentInfoJson, ParsedUrl, ServerUrls, OwnerId, CreatorId, AccountObjectId, AccountObjectId1
| project-reorder AgentCreationTime, AIAgentId, AIAgentName, Url, Scheme, OwnerUpn, CreatorUpn, DeveloperName
Consultas que usan Power Platform como origen del Registro
Agente sin autenticación
Es importante identificar los agentes que no usan mecanismos de autenticación. Estos agentes pueden suponer riesgos significativos para la organización porque están disponibles públicamente. Las organizaciones deben conocer estos agentes para que puedan solucionar cualquier problema.
Recomendaciones:
- Confirme el caso de uso del agente con el propietario para determinar si está pensado para el acceso público.
- Revise los temas, las acciones y los orígenes de conocimiento para asegurarse de que no se incluye información interna o confidencial.
AIAgentsInfo
| summarize arg_max(Timestamp, *) by AIAgentId
| where RegistrySource == "PowerPlatform"
| where AgentStatus != "Deleted"
| where UserAuthenticationType == "None"
| project-reorder AgentCreationTime ,AIAgentId, AIAgentName, AgentStatus, CreatorAccountUpn, OwnerAccountUpns
Solicitud HTTP sospechosa al puerto no estándar
Identifique los agentes que usan acciones HTTP en puertos distintos de 443 u 80.
Recomendaciones:
- Confirme con el propietario del agente si es necesario e indaga sobre el caso de uso empresarial específico.
AIAgentsInfo
// Find agents with topic that contains Http request action to non 443 port
| summarize arg_max(Timestamp, *) by AIAgentId
| where RegistrySource == "PowerPlatform"
| where AgentStatus != "Deleted"
| mvexpand Topic = AgentTopicsDetails
| where Topic has "HttpRequestAction"
| extend TopicActions = Topic.beginDialog.actions
| mvexpand action = TopicActions
| where action['$kind'] == "HttpRequestAction"
| extend Url = tostring(action.url.literalValue)
| extend ParsedUrl = parse_url(Url)
| extend Port = tostring(ParsedUrl["Port"])
| where isnotempty(Port) and Port != 443
| project-reorder AgentCreationTime ,AIAgentId, AIAgentName, ParsedUrl ,Url, Port, AgentStatus, CreatorAccountUpn, OwnerAccountUpns, Topic
Solicitud HTTP sospechosa al punto de conexión del conector
Identifique los agentes que usan acciones HTTP en un punto de conexión con un conector de Power Platform disponible.
Recomendaciones:
- Compruebe con el propietario del agente si es necesario y pregunte sobre el caso de uso empresarial. Considere la posibilidad de usar un conector en su lugar.
AIAgentsInfo
// Find agents with topic that contains Http request to endpoint with built-in connector
| summarize arg_max(Timestamp, *) by AIAgentId
| where RegistrySource == "PowerPlatform"
| where AgentStatus != "Deleted"
| mvexpand Topic = AgentTopicsDetails
| where Topic has "HttpRequestAction"
| extend TopicActions = Topic.beginDialog.actions
| mvexpand action = TopicActions
| where action['$kind'] == "HttpRequestAction"
| extend Url = tostring(action.url.literalValue)
| extend ParsedUrl = parse_url(Url)
| extend Host = tostring(ParsedUrl["Host"])
| where Host has_any("graph.microsoft.com", "management.azure.com")
| project-reorder AgentCreationTime ,AIAgentId, AIAgentName, ParsedUrl ,Url, Host, AgentStatus, CreatorAccountUpn, OwnerAccountUpns, Topic
Envío de correo electrónico a valores de entrada controlados por inteligencia artificial
Identifique los agentes que usan orquestación generativa que implica el envío de herramientas de correo electrónico a través de Outlook y los valores de entrada de las acciones rellenadas por el orquestador generativo. Esta configuración es arriesgada, ya que con un ataque XPIA correcto, el agente se puede usar para filtrar datos a destinatarios arbitrarios.
Recomendaciones:
- Confirme con el propietario del agente si es necesario e indaga sobre el caso de uso empresarial. Si es factible, codifique de forma rígida al destinatario del correo electrónico en la acción.
AIAgentsInfo
//Find agents with email sending tool via microsoft 365 connector, where the input //parameters of the inputs are populated by generative orchestrator
| summarize arg_max(Timestamp, *) by AIAgentId
| where RegistrySource == "PowerPlatform"
| where AgentStatus != "Deleted"
| extend IsGenAIOrchestrator = tostring(todynamic(RawAgentInfo).Bot.Attributes.configuration) has '"GenerativeActionsEnabled": true'
| where IsGenAIOrchestrator
| mvexpand Action = AgentToolsDetails
| extend OperationId = tostring(Action.action.operationId), ActionName = tostring(Action.modelDisplayName), Action
| where OperationId == "SendEmailV2"
| where isempty(Action.inputs) //All inputs are populated by Orchestrator
| project-reorder AgentCreationTime ,AIAgentId, AIAgentName, AgentStatus, CreatorAccountUpn, OwnerAccountUpns, ActionName
Credenciales codificadas de forma rígida en temas o acciones
Los agentes con credenciales codificadas de forma rígida en Temas o Acciones pueden exponer credenciales de texto no cifrado a entidades no intencionadas.
Recomendaciones:
- Considere la posibilidad de mantener las credenciales en Azure Key Vault y recuperarlas en tiempo de ejecución mediante variables de entorno (consulte Uso de variables de entorno para Azure Key Vault secretos).
- Si no puede usar Azure Key Vault, asegúrese de habilitar la opción de entrada protegida (consulte Administración de entradas confidenciales como contraseñas).
//Find Agents with hard-coded credentials in Topics or Actions can expose clear-text credentials to unintended entities.
let suspicious_patterns = @"(AKIA[0-9A-Z]{16})|(AIza[0-9A-Za-z_\-]{35})|(xox[baprs]-[0-9a-zA-Z]{10,48})|(ghp_[A-Za-z0-9]{36,59})|(sk_(live|test)_[A-Za-z0-9]{24})|(SG\.[A-Za-z0-9]{22}\.[A-Za-z0-9]{43})|(\d{8}:[\w\-]{35})|(eyJ[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+)|(Authorization\s*:\s*Basic\s+[A-Za-z0-9=:+]+)|([A-Za-z]+:\/\/[^\/\s]+:[^\/\s]+@[^\/\s]+)";
AIAgentsInfo
| summarize arg_max(Timestamp, *) by AIAgentId
| where RegistrySource == "PowerPlatform"
| where AgentStatus != "Deleted"
| mv-expand tool = AgentToolsDetails
| mv-expand topic = AgentTopicsDetails
| where isnotempty(tool) and isnotempty(topic)
| where tool matches regex suspicious_patterns or topic matches regex suspicious_patterns
| extend SuspiciousMatchTool = tool, SuspiciousMatchTopic = topic
| project-reorder AgentCreationTime ,AIAgentId, AIAgentName, AgentStatus, CreatorAccountUpn, OwnerAccountUpns, SuspiciousMatchTool, SuspiciousMatchTopic
Agentes con una herramienta MCP configurada
Busque agentes con una herramienta MCP configurada.
Recomendaciones:
- Confirme con el propietario del agente si la herramienta MCP sigue siendo necesaria. De lo contrario, considere la posibilidad de quitarlo para mitigar los posibles riesgos.
//Find agents with MCP tool configured
AIAgentsInfo
| summarize arg_max(Timestamp, *) by AIAgentId
| where RegistrySource == "PowerPlatform"
| where AgentStatus != "Deleted"
| mvexpand Action = AgentToolsDetails
| where Action.action.operationDetails["$kind"] == "ModelContextProtocolMetadata"
| extend MCPName = Action.action.operationDetails["operationId"]
| summarize MCPTools = make_set(MCPName) by AIAgentName, AIAgentId, EnvironmentId, CreatorAccountUpn
Temas relacionados
- Información general sobre la búsqueda avanzada de amenazas
- Aprender el lenguaje de consulta
- Usar consultas compartidas
- Buscar entre dispositivos, correos electrónicos, aplicaciones e identidades
- Entender el esquema
- Aplicar procedimientos recomendados de consulta
Sugerencia
¿Desea obtener más información? Participe con la comunidad de Seguridad de Microsoft en nuestra Tech Community: Tech Community de Microsoft Defender XDR.