Поделиться через


Подключаемые модули KQL в Microsoft Copilot для безопасности

Создавайте мощные подключаемые модули с помощью запросов язык запросов Kusto (KQL) для изучения данных и обнаружения шаблонов.

Параметры навыков KQL

Общие параметры

Эти параметры являются общими для всех навыков 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

В таблицы показаны параметры (settings), которые можно настроить для любых целевых объектов навыков KQL.

Имя параметра Тип Описание Обязательный
Template string Шаблон запроса KQL. Поддерживает до 80 000 символов. Да, если TemplateUrl не указан.
TemplateUrl string Общедоступный URL-адрес для скачивания шаблона запроса KQL (до 80 000 символов). Да. Можно задать либо TemplateUrl, либо Template, но не оба этих параметра одновременно.
PackageUrl string Общедоступный URL-адрес ZIP-файла с шаблоном запроса KQL. Примечание. Этот параметр задается на уровне SkillGroup. Пример аналогичен пакету навыков GPT. Да, если шаблон или TemplateUrl не указаны.
TemplateFile string Относительный путь к шаблону запроса KQL (до 80 000 символов) в ZIP-файле PackageUrl. Да, если указан PackageUrl.

Параметры целевого объекта

Целевой объект: Sentinel

Эти параметры действуют для навыков KQL, у которых Target имеет значение Sentinel.

Дескриптор: Имя: 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}}'

Целевой объект: Kusto

Эти параметры действуют для навыков KQL, у которых Target имеет значение Kusto.

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

Пример

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