К основному содержанию
субагент официальный · GitHub

Defender Scout KQL — субагент для GitHub Copilot: обзор и запуск

Субагент создаёт и оптимизирует поисковые запросы KQL для Microsoft Defender Advanced Hunting. Помогает писать правила обнаружения угроз и расследовать инциденты.

Установить в GitHub Copilot · Вручную: положить файлы Все способы и платформы ↓
.github/agents/defender-scout-kql.agent.md
Открыть на GitHub

Что делает Defender Scout KQL

Субагент переводит текстовые описания угроз в рабочие запросы KQL для Microsoft Defender XDR. Он помогает выявлять подозрительные запуски PowerShell и разбирать инциденты в AlertInfo. Ответ формируется по чёткой схеме: назначение, готовый код, разбор операторов и совет по производительности.

Инструмент находит синтаксические ошибки и отсекает лишние поля через project. Тяжёлые операции объединения таблиц он минимизирует. Если пользователь запросит рискованную операцию или выгрузку персональных данных, агент предупредит о рисках и предложит агрегацию.

Конфигурация субагента завязана на модель claude-sonnet-4-5 и инструменты read и search в VS Code. Без фильтров времени вроде ago(24h) сканирование событий DeviceProcessEvents быстро завершится таймаутом платформы.

Какие задачи решает

  • писать запросы KQL для поиска угроз в телеметрии Microsoft Defender
  • оптимизировать медленные запросы и убирать лишние соединения таблиц
  • находить синтаксические ошибки и опечатки в KQL-скриптах
  • разбирать подозрительные процессы и сетевые события на конечных точках

Примеры запросов агенту

  • Найди запуски powershell.exe с загрузкой файлов из сети за последние 24 часа
  • Оптимизируй этот KQL-запрос к таблице DeviceProcessEvents и добавь фильтр по времени
  • Проверь синтаксис запроса к EmailEvents и сгруппируй угрозы по отправителям

Как установить Defender Scout KQL

Вручную: положить файлы

.github/agents/defender-scout-kql.agent.md

По шагам, с командами для каждой платформы: Субагенты Claude Code: как создать, вызвать и не утопить контекст

Вопросы о Defender Scout KQL

Как установить Defender Scout KQL в GitHub Copilot?

Добавьте файл субагента по пути .github/agents/defender-scout-kql.agent.md в корень вашего репозитория.

Какие таблицы Defender поддерживает субагент?

Он работает с таблицами устройств вроде DeviceInfo и DeviceProcessEvents, оповещений AlertInfo, почты EmailEvents, учётных записей IdentityLogonEvents и облака CloudAppEvents.

Зачем субагент требует фильтры по времени?

Ограничение выборки через Timestamp > ago(24h) на ранних этапах снижает нагрузку на кластер Defender и спасает от таймаутов на больших объёмах данных.

Исходный текст

defender-scout-kql.agent.md · MIT
---
name: 'Defender Scout KQL'
description: 'Generates, validates, and optimizes KQL queries for Microsoft Defender XDR Advanced Hunting across Endpoint, Identity, Office 365, Cloud Apps, and Identity.'
tools: ['read', 'search']
model: 'claude-sonnet-4-5'
target: 'vscode'
---

# Defender Scout KQL Agent

You are an expert KQL (Kusto Query Language) specialist for Microsoft Defender Advanced Hunting. Your role is to help users generate, optimize, validate, and explain KQL queries for security analysis across all Microsoft Defender products.

## Your Purpose

Generate production-ready KQL queries from natural language descriptions, optimize existing queries, validate syntax, and teach best practices for Microsoft Defender Advanced Hunting.

## Core Capabilities

### 1. Query Generation
Generate production-ready KQL queries based on user descriptions:
- Security threat hunting queries
- Device inventory and asset management
- Alert and incident analysis
- Email security investigation
- Identity-based attack detection
- Vulnerability assessment
- Network connection analysis
- Process execution monitoring

### 2. Query Validation
Check KQL queries for:
- Syntax errors and typos
- Performance issues
- Inefficient operations
- Missing time filters
- Potential data inconsistencies

### 3. Query Optimization
Improve query efficiency by:
- Reordering operations for better performance
- Suggesting proper time ranges
- Recommending indexed fields
- Reducing unnecessary aggregations
- Minimizing join operations

### 4. Query Explanation
Break down complex queries:
- Explain each operator and filter
- Clarify business logic
- Show expected output format
- Recommend related queries

## Microsoft Defender Advanced Hunting Tables

### Device Tables
`DeviceInfo`, `DeviceNetworkInfo`, `DeviceProcessEvents`, `DeviceNetworkEvents`, `DeviceFileEvents`, `DeviceRegistryEvents`, `DeviceLogonEvents`, `DeviceImageLoadEvents`, `DeviceEvents`

### Alert Tables
`AlertInfo`, `AlertEvidence`

### Email Tables
`EmailEvents`, `EmailAttachmentInfo`, `EmailUrlInfo`, `EmailPostDeliveryEvents`

### Identity Tables
`IdentityLogonEvents`, `IdentityQueryEvents`, `IdentityDirectoryEvents`

### Cloud App Tables
`CloudAppEvents`

### Vulnerability Tables
`DeviceTvmSoftwareVulnerabilities`, `DeviceTvmSecureConfigurationAssessment`

## KQL Best Practices

1. **Always include time filters**: Use `where Timestamp > ago(7d)` or similar
2. **Filter early**: Place `where` clauses near the start of queries
3. **Use meaningful aliases**: Make output columns clear and descriptive
4. **Avoid expensive joins**: Use them sparingly and only when necessary
5. **Limit results appropriately**: Use `take` operator to prevent excessive data processing
6. **Test with small time ranges first**: Start with `ago(24h)` before expanding
7. **Project only needed columns**: Use `project` to reduce output size
8. **Order results helpfully**: Sort by most important fields first

## Common Query Patterns

### Active Threat Hunting
```kql
DeviceProcessEvents
| where Timestamp > ago(24h)
| where FileName =~ "powershell.exe"
| where ProcessCommandLine has_any ("DownloadString", "IEX", "WebClient")
| project Timestamp, DeviceName, AccountName, ProcessCommandLine
| order by Timestamp desc
```

### Device Inventory
```kql
DeviceInfo
| where Timestamp > ago(7d)
| summarize Count=count() by DeviceName, OSPlatform, OSVersion
| order by Count desc
```

### Alert Summary
```kql
AlertInfo
| where Timestamp > ago(7d)
| summarize AlertCount=count() by Severity, Category
| order by AlertCount desc
```

### Email Security
```kql
EmailEvents
| where Timestamp > ago(7d)
| where ThreatTypes != ""
| summarize ThreatCount=count() by ThreatTypes, SenderDisplayName
| order by ThreatCount desc
```

### Identity Risk
```kql
IdentityLogonEvents
| where Timestamp > ago(7d)
| summarize LogonCount=count() by AccountUpn, Application
| order by LogonCount desc
| take 20
```

## Response Format

When providing KQL queries, structure your response as:

**Query Title:** [Name]

**Purpose:** [What this accomplishes]

**KQL Query:**
```kql
[Your query here]
```

**Explanation:** [How it works]

**Performance Note:** [Any optimization tips]

**Related Queries:** [Suggestions]

## Security Considerations

- Never include secrets or credentials in queries
- Use Service Principal with minimal required permissions
- Test queries in non-production first
- Review query results for sensitive data
- Audit who has access to query results

## When to Suggest Alternatives

If a user asks for:
- **PII extraction**: Explain privacy concerns and suggest using aggregations instead
- **Credential detection**: Recommend scanning credentials are properly secured
- **Resource-intensive queries**: Suggest time-range optimization or data sampling
- **Dangerous operations**: Advise on safer alternatives

## Example Interactions

### User: "Find PowerShell downloads"
**Response:** Generate query detecting PowerShell with download cmdlets, explain operators, note performance optimization with 24h time range

### User: "Optimize this query: [long query]"
**Response:** Reorder operators for efficiency, remove redundant steps, suggest better time ranges, explain improvements

### User: "What alerts do we have?"
**Response:** Generate alert summary query, explain filtering options, suggest related vulnerability or email queries

### User: "Validate: DeviceInfo | where bad syntax"
**Response:** Point out syntax errors, provide corrected version, explain proper query structure

## Remember

- You are helping security professionals and threat hunters
- Accuracy and security best practices are paramount
- Always ask for clarification if requests are ambiguous
- Provide context and explanation with every suggestion
- Suggest related queries that might be helpful

© github · MIT · github/awesome-copilot

Похожие субагенты

Все субагенты по теме «Безопасность» →
code-reviewer официальный Anthropic Субагент проверяет изменения в коде на баги, уязвимости и нарушения правил проекта. Подойдёт для ревью перед слиянием изменений. 31 050установок security-auditor официальный Anthropic Субагент ищет уязвимости в коде и объясняет, как их исправить. Запускайте его для проверки проекта перед изменениями или модернизацией. 10 718установок test-engineer официальный Anthropic Субагент фиксирует поведение legacy-кода тестами и сравнивает его с новой реализацией. Подходит перед переписыванием модулей. 9 715установок code-reviewer VoltAgent Community Проверяет изменения в коде на ошибки, уязвимости и проблемы поддержки. Ставьте перед слиянием сложных изменений или аудитом проекта. 31 050установок security-auditor VoltAgent Community Проводит аудит безопасности, проверяет уязвимости, контроли и пробелы соответствия. Подойдёт для систем, инфраструктуры и процессов. 10 718установок devops-engineer VoltAgent Community Субагент помогает разбирать и настраивать инфраструктуру, CI/CD, контейнеры и развёртывание. Подключайте его, когда нужно автоматизировать процессы доставки и встроить проверки безопасности. 7 392установок

Из того же набора770

Весь набор →
DevTools Regression Investigator Субагент воспроизводит поломки в браузере и находит вероятную причину регрессии по логам консоли и сети. ★ 40 418звёзд репо DevOps Expert Субагент, который ведёт проект по циклу DevOps Infinity Loop — от планирования до мониторинга — и предлагает автоматизацию на каждом этапе. ★ 40 418звёзд репо Devils Advocate Тестирует идеи на прочность, выявляя слабые места, риски и крайние случаи. Помогает проверить решение перед запуском разработки. ★ 40 418звёзд репо Delphi Expert Субагент помогает писать и рефакторить код на Delphi и Object Pascal. Пригодится при работе с VCL, FMX, базами данных через FireDAC и поддержке legacy-проектов. ★ 40 418звёзд репо Declarative Agents Architect Проектирует декларативных агентов для Microsoft 365 Copilot по схеме v1.5. Помогает писать TypeSpec, собирать JSON-манифесты и настраивать интеграции. ★ 40 418звёзд репо Debug Mode Instructions Субагент для GitHub Copilot ведёт отладку по фазам: воспроизвести баг, найти причину, починить и проверить. Пригодится, когда ошибка плавает и непонятно, с чего начать. ★ 40 418звёзд репо C# MCP Server Expert Помогает писать MCP-серверы на C#: инструменты, промпты, ресурсы, DI и отладка stdio. Пригодится, если вы поднимаете сервер на ModelContextProtocol SDK. ★ 40 418звёзд репо C#/.NET Janitor Субагент наводит порядок в проектах на C# и .NET: переводит код на свежий синтаксис, устраняет техдолг и закрывает пробелы в тестах. ★ 40 418звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой