Compartir a través de


Complementos de KQL en Microsoft Copilot para seguridad

Cree complementos eficaces mediante consultas de Lenguaje de consulta Kusto (KQL) para explorar los datos y detectar patrones.

Configuración de aptitudes de KQL

Detección de configuración común

Esta configuración es común a todas las aptitudes de KQL.

Settings:
  # What type of KQL endpoint to connect to.
  # One of { Defender, Sentinel, SentinelDataLake, LogAnalytics, Kusto }
  Target: Sentinel
  # A URL to download the KQL query template from.
  # Specify either TemplatUrl or Template but not both.
  TemplateUrl: https://gist.githubusercontent.com/NitinKumarGoel/c862ba63878dd2624acb1b0e260f409a/raw/3a527014757b4ee1f00302a1b34a13e7b83ff77a/gistfile1.txt
  # An inline KQL query template.
  # Specify either TemplatUrl or Template but not both.
  Template: |-
    SigninLogs
    | where UserDisplayName == '{{user}}' or UserPrincipalName == '{{user}}'
    | project TimeGenerated, OperationName, UserDisplayName, UserPrincipalName, Location, ResourceDisplayName, ConditionalAccessStatus, IsInteractive
    | top 100 by TimeGenerated desc

En la tabla siguiente se muestra que settings se puede configurar para cualquier destino de aptitud de KQL:

Nombre de la configuración Tipo Descripción Obligatorio
Template string Plantilla de símbolo del sistema de KQL. Admite hasta 80 000 caracteres. Sí, si no se especifica TemplateUrl.
TemplateUrl string Dirección URL pública desde la que descargar la plantilla de símbolo del sistema de KQL (hasta 80 000 caracteres). Sí. Especifique TemplatUrl o Template, pero no ambos.
PackageUrl string Dirección URL pública del archivo ZIP con la plantilla de solicitud de KQL en él. Nota: Esto se especifica en el nivel SkillGroup. Similar a gpt skill packageurl: ejemplo. Sí, si no se especifica Template o TemplateUrl.
TemplateFile string Ruta de acceso relativa a la plantilla de símbolo del sistema de KQL (hasta 80 000 caracteres) en el archivo zip PackageUrl. Sí, si se especifica PackageUrl.

Configuración específica de destino

Destino: Sentinel

Esta configuración es válida para las aptitudes de KQL donde Target es Sentinel.

Descriptor: Name: DisplayName: Description: Settings: - Name: TenantId Required: true - Name: WorkspaceName Required: true - Name: SubscriptionId Required: true - Name: ResourceGroupName Required: true SupportedAuthTypes: - None

SkillGroups:

  - Format: KQL
    Skills:
      - Name: 
        DisplayName: 
        Description: 
        Settings:
          Target: Sentinel
          # The ID of the AAD Organization that the Sentinel workspace is in.
          TenantId: '{{TenantId}}'
          # The id of the Azure Subscription that the Sentinel workspace is in.
          SubscriptionId: '{{SubscriptionId}}'
          # The name of the Resource Group that the Sentinel workspace is in.
          ResourceGroupName: '{{ResourceGroupName}}'
          # The name of the Sentinel workspace.
          WorkspaceName: '{{WorkspaceName}}'

Destino: Kusto

Esta configuración es válida para las aptitudes de KQL donde Target es Kusto.

Settings:
  # The Kusto cluster URL.
  Cluster: 
  # The Kusto database name.
  Database: 

Ejemplo

Descriptor:
  Name: SampleDefenderKQL
  DisplayName: My Sample Defender KQL Plugin
  Description: Skills to query email logs in M365 Advanced Hunting

SkillGroups:
  - Format: KQL
    Skills:
      - Name: GetLatestEmailsByRecipient
        DisplayName: Get Latest Emails By Recipient
        Description: Fetches the latest emails received by the user with the specified email address
        Inputs:
          - Name: email
            Description: The email address of the recipient
            Required: true
        Settings:
          Target: Defender
          Template: |-
            EmailEvents
            | where RecipientEmailAddress =~ '{{email}}'
            | project Timestamp, NetworkMessageId, SenderFromAddress, SenderDisplayName, Subject, DeliveryLocation
            | top 100 by Timestamp desc

Descriptor:
  Name: Get sample data from Sentinel Data Lake
  DisplayName: Sentinel Data Lake Get sample data from Sentinel Graph
  Description: Query Sentinel Data Lake to get sample security data
SkillGroups:
  
  - Format: KQL
    Skills:
      - Name: GetInsightsfromMSG
        DisplayName: Get top 10 insights results from Sentinel Graph 
        Description: Querying Insights table to gather top 10 insights from Sentinel Graph
        Settings:
          Target: SentinelDataLake
          Template: |-
            InsightsMetrics
            | take 10