Lokale KI-Agenten mit Microsoft Defender for Endpoint erkennen (Vorschau)

Wichtig

Einige Informationen in diesem Artikel beziehen sich auf ein vorab veröffentlichtes Produkt, das vor der kommerziellen Veröffentlichung möglicherweise erheblich geändert wird. Microsoft übernimmt in Bezug auf die hier bereitgestellten Informationen keine Gewährleistung, weder ausdrücklich noch konkludent.

Microsoft Defender erkennt automatisch unterstützte lokale KI-Agents und MCP-Server, die auf integrierten Geräten konfiguriert sind, und zeigt sie im KI-Agent-Bestand und der erweiterten Suche an. Weitere Informationen zur Ermittlung des lokalen KI-Agents finden Sie unter Ermittlung des lokalen KI-Agents mit Microsoft Defender for Endpoint.

In diesem Artikel erfahren Sie, wie Sie ermittelte Agents im Bestand anzeigen, ihre Beziehungen zu Geräten und Identitäten untersuchen und die Anwesenheit von Agents mithilfe der erweiterten Suche untersuchen.

Hinweis

Die Ermittlung des lokalen KI-Agents bietet nur Ermittlungs- und Untersuchungsfunktionen und umfasst keine Sicherheitsstatusbewertung oder Warnungen für Endpunkt-Agents.

Voraussetzungen

Bevor Sie lokale KI-Agents auf Endpunkten ermitteln können, stellen Sie sicher, dass sie die folgenden Anforderungen erfüllen:

  • Ihre Umgebung befindet sich in der kommerziellen Cloud. Souveräne und nationale Clouds werden nicht unterstützt.
  • Ihre Organisation verfügt über eine Microsoft Defender for Endpoint Plan 2-, Microsoft 365 E5-, Microsoft Agent 365- oder Microsoft 365 E7-Lizenz.
  • Ihre Geräte sind in Microsoft Defender for Endpoint integriert.
  • Ihre Geräte führen eine unterstützte Version von Windows oder macOS aus, und Microsoft Defender Antivirus wird mit den aktuellen monatlichen Plattform- und Modulupdates aktualisiert.
  • Auf Ihren Geräten wird Microsoft Defender Antivirus im aktiven Modus ausgeführt, wobei der Echtzeitschutz in der Windows-Sicherheit aktiviert ist.

Sie benötigen keine zusätzlichen Bereitstellungen, Konfigurationen oder Skripts, die über die Anforderungen für das Onboarding des Geräts hinausgehen. Wenn das Gerät alle Voraussetzungen erfüllt, beginnt die Agent-Ermittlung automatisch.

Lokale KI-Agenten im Bestand anzeigen

  • Um eine Liste aller auf Endpunkten erkannten lokalen KI-Agenten anzuzeigen:

    1. Melden Sie sich beim Microsoft Defender-Portal an.

    2. Wählen Sie im linken Navigationsbereich Assets>AI Agents aus.

    3. Wählen Sie Lokale Agents aus, um eine gefilterte Liste der lokalen KI-Agents anzuzeigen, die auf Endpunktgeräten ermittelt wurden.

  • So zeigen Sie die Details eines bestimmten Agenten an:

    1. Wählen Sie in der Liste Lokale Agents einen Agent aus, um den Bereich Agent zu öffnen.

      Screenshot mit dem Inventar lokaler KI-Agenten im Microsoft Defender-Portal mit aufgelisteten erkannten Agenten.

    2. Überprüfen Sie die Agent-Details, einschließlich:

      • Agentname, Version und zugehöriger Prozess
      • Zugeordnetes Gerät und Benutzer
      • Zeitstempel der ersten Erfassung und der letzten Aktualisierung
      • Integritätsgrad, automatisches Genehmigen von Status- und Vertrauensindikator
      • Wenn konfigurierte MCP-Server erkannt werden

    Weitere Informationen zur Verwendung des KI-Agentenbestands finden Sie unter KI-Agenten entdecken und den Sicherheitsstatus mit Microsoft Defender bewerten.

Abfragen lokaler KI-Agents mithilfe von erweitertem Hunting

Verwenden Sie die erweiterte Suche, um das Vorhandensein lokaler KI-Agents proaktiv zu untersuchen, zu verstehen, welche Benutzer und Ressourcen Agents erreichen können, und um Konfigurationen mit hohem Risiko zu identifizieren. Diese Abfragen helfen Ihnen, die Gefährdung zu bewerten, Zugriffspfade für sensible Ressourcen nachzuverfolgen und Sicherheitsreaktionen zu priorisieren.

Die Tabellen ExposureGraphNodes und ExposureGraphEdges stellen das Sicherheitsdiagramm für lokale KI-Agents dar, einschließlich Entitäten und Beziehungen.

Hinweis

Die folgenden Abfragen verwenden die ExposureGraphEdges Tabelle, um das gerät abzufragen, das dem KI-Agent zugeordnet ist. Sie können die ExposureGraphNodes Tabelle auch verwenden, um den tatsächlichen Agent abzufragen.

Erhalten Sie einen Überblick über KI-Agenten auf allen Endpunkten

Diese Abfrage listet alle ermittelten lokalen KI-Agents und die Geräte auf, auf denen sie ausgeführt werden:

ExposureGraphEdges
| where SourceNodeLabel == "endpointAiAgent"
| where EdgeLabel =~ "runs on"
| summarize Devices = make_set(TargetNodeName),
            DeviceCount = dcount(TargetNodeName)
    by AIAgent = SourceNodeName
| sort by DeviceCount desc

Zuordnen von KI-Agents zu Benutzern

Diese Abfrage ordnet lokale KI-Agenten den Benutzern zu, deren Anmeldeinformationen auf den Geräten vorhanden sind, auf denen sie ausgeführt werden:

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

KI-Agenten auf Geräten von Nutzern mit umfangreichen Zugriffsrechten finden

Diese Abfrage identifiziert, welche Benutzer auf lokalen KI-Agent-Geräten über Berechtigungen für die meisten Ressourcen verfügen, sodass Sie Risiken basierend auf dem Zugriffsbereich priorisieren können:

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

KI-Agenten mit Zugriffspfaden zu kritischen oder sensiblen Ressourcen finden

Diese Abfrage verfolgt Zugriffspfade von lokalen KI-Agents über das Expositionsdiagramm für Ressourcen nach, die als kritisch gekennzeichnet sind oder vertrauliche Daten enthalten:

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