dd-audit-security-investigation — скилл для Claude Code
Помогает расследовать инциденты безопасности в Datadog Audit Trail через утилиту pup. Находит авторов удалений, изменений прав и подозрительные входы.
npx skills add datadog-labs/agent-skills --skill dd-audit-security-investigation -a claude-code
npx skills add datadog-labs/agent-skills --skill security-investigation -a claude-codeЧто делает dd-audit-security-investigation
Скилл передаёт агенту сценарии для расследования инцидентов через CLI pup audit-logs. Модель формирует точечные поисковые запросы к Datadog Audit Trail. Вывод фильтруется через jq, собирая имена пользователей и затронутые ресурсы.
Инструкции охватывают события авторизации, правки ролей в Access Management и выпуск API-ключей. Агент обращает внимание на подозрительные маркеры вроде действий техподдержки (SUPPORT_USER) или массовых удалений ресурсов за короткое время.
Без утилиты pup с авторизацией через OAuth2 либо ключей DD_API_KEY и DD_APP_KEY с правом audit_logs_read запросы завершатся ошибкой.
Какие задачи решает
- найти автора удаления или модификации ресурса по его ID
- проверить неудачные попытки входа и географию авторизаций
- отследить смену прав доступа и манипуляции с API-ключами
- выявить массовые операции и подозрительную активность с конкретного IP
Примеры запросов агенту
- Проверь, кто удалял мониторы или дашборды в Datadog за последние 24 часа.
- Посмотри историю действий пользователя [email protected] за неделю через pup audit-logs.
- Выясни, кто создал новый API-ключ за последние 90 дней.
Как установить dd-audit-security-investigation
1Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill dd-audit-security-investigation -a claude-codenpx skills add datadog-labs/agent-skills --skill security-investigation -a claude-code2Вручную: положить файлы
~/.claude/skills/security-investigation/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/security-investigation/
1Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill security-investigation -a codex2Вручную: положить файлы
.agents/skills/security-investigation/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill security-investigation -a cursor2Вручную: положить файлы
.cursor/skills/security-investigation/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install datadog-labs/agent-skills security-investigation2Вручную: положить файлы
.github/skills/security-investigation/SKILL.md1Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill security-investigation -a gemini-cli2Командой платформы
gemini skills install https://github.com/datadog-labs/agent-skills --path dd-audit/security-investigationВручную: положить файлы
.devin/skills/security-investigation/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill security-investigation -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о dd-audit-security-investigation
Как установить dd-audit-security-investigation в Claude Code?
Выполните команду npx skills add datadog-labs/agent-skills --skill dd-audit-security-investigation -a claude-code.
Что делает dd-audit-security-investigation?
Скилл даёт ассистенту готовые шаблоны команд для Datadog Audit Trail, позволяя быстро проверять подозрительные логины, удаление конфигураций и смену ролей.
Какие доступы нужны для запуска проверок?
Понадобится войти через pup auth login по OAuth2 либо настроить переменные окружения DD_API_KEY и DD_APP_KEY с областью прав audit_logs_read.
Исходный текст
SKILL.md · MIT
---
name: dd-audit-security-investigation
description: Answer "who did what" security questions from Audit Trail — deletions, config changes, login activity, permission changes, actions from a specific user or IP.
metadata:
version: "0.1.0"
author: datadog-labs
repository: https://github.com/datadog-labs/agent-skills
tags: datadog,audit,security,investigation,dd-audit
alwaysApply: "false"
---
# Audit Trail: Security Investigation
Answer common security investigation questions using `pup audit-logs`.
## Prerequisites
```bash
pup auth login # OAuth2 (recommended)
# or set DD_API_KEY + DD_APP_KEY with audit_logs_read scope
```
## Command Execution Order
1. Clarify the investigation scope: who, what resource type, what time window.
2. Run the most specific query first; broaden only if results are empty.
3. If results are large, pipe to `jq` to group or summarize.
4. Highlight anomalies: bulk operations, unusual geo, off-hours activity, support user actions.
## Common Investigation Queries
### Who deleted resources in a time window?
```bash
pup audit-logs search --query "@action:deleted" --from 24h -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
user: .attributes.attributes.usr.email,
actor_type: .attributes.attributes.evt.actor.type,
resource_type: .attributes.attributes.asset.type,
resource_id: .attributes.attributes.asset.id,
country: .attributes.attributes.network.client.geoip.country.name
}]'
```
### Who modified a specific resource (by ID)?
```bash
pup audit-logs search --query "@asset.id:RESOURCE_ID" --from 7d -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
user: .attributes.attributes.usr.email,
action: .attributes.attributes.action,
event: .attributes.attributes.evt.name
}]'
```
### What did a specific user do?
```bash
pup audit-logs search --query "@usr.email:[email protected]" --from 7d --limit 200 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
action: .attributes.attributes.action,
event: .attributes.attributes.evt.name,
resource_type: .attributes.attributes.asset.type,
resource_id: .attributes.attributes.asset.id,
ip: .attributes.attributes.network.client.ip,
country: .attributes.attributes.network.client.geoip.country.name
}]'
```
### Login activity — all logins with geo
```bash
pup audit-logs search --query "@evt.name:Authentication @action:login" --from 7d --limit 200 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
user: .attributes.attributes.usr.email,
status: .attributes.attributes.status,
ip: .attributes.attributes.network.client.ip,
city: .attributes.attributes.network.client.geoip.city.name,
country: .attributes.attributes.network.client.geoip.country.name,
asn: .attributes.attributes.network.client.geoip.as.name
}]'
```
### Failed logins only
```bash
pup audit-logs search --query "@evt.name:Authentication @action:login @status:error" --from 7d --limit 200 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
user: .attributes.attributes.usr.email,
ip: .attributes.attributes.network.client.ip,
country: .attributes.attributes.network.client.geoip.country.name
}]'
```
### Who changed roles or permissions?
```bash
pup audit-logs search --query "@evt.name:\"Access Management\"" --from 30d --limit 200 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
user: .attributes.attributes.usr.email,
action: .attributes.attributes.action,
resource_type: .attributes.attributes.asset.type,
resource_id: .attributes.attributes.asset.id
}]'
```
### What actions came from a specific IP?
```bash
pup audit-logs search --query "@network.client.ip:1.2.3.4" --from 30d --limit 200 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
user: .attributes.attributes.usr.email,
actor_type: .attributes.attributes.evt.actor.type,
action: .attributes.attributes.action,
event: .attributes.attributes.evt.name,
resource_type: .attributes.attributes.asset.type
}]'
```
### Who created or deleted API keys?
```bash
pup audit-logs search --query "@evt.name:Authentication @asset.type:api_key" --from 90d --limit 200 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
user: .attributes.attributes.usr.email,
action: .attributes.attributes.action,
key_id: .attributes.attributes.asset.id,
ip: .attributes.attributes.network.client.ip,
country: .attributes.attributes.network.client.geoip.country.name
}]'
```
## Event Category Reference
| Category (`@evt.name`) | What it covers |
|------------------------|----------------|
| `Authentication` | Logins, API key create/delete/modify |
| `Access Management` | Roles, user add/remove, restriction policies |
| `Dashboard` | Create, modify, delete, share |
| `Monitor` | Create, modify, delete, resolve |
| `Log Management` | Pipelines, indexes, archives, exclusion filters |
| `Integration` | Add/modify/delete integrations |
| `Metrics` | Custom metric create/modify/delete |
| `Organization Management` | Child org creation, org settings |
| `Notebook` | Create, modify, delete |
| `APM` | Retention filters, sampling config |
| `Cloud Security Platform` | CWS rules, security signal state changes |
| `Bits AI SRE` | MCP tool calls, AI investigations |
## Anomaly Flags to Surface
When presenting investigation results, call out:
- **Actor type `SUPPORT_USER`** — Datadog support accessed the org
- **Bulk deletions** — same user, same action, many resources in a short window
- **Unexpected geography** — country not seen in prior logins for this user
- **Off-hours activity** — actions at unusual times for the user's typical timezone
- **First-time ASN** — action from a cloud provider or VPN not seen before (`@network.client.geoip.as.name`)
## References
- [Audit Trail API](https://docs.datadoghq.com/api/latest/audit/)
- [Audit Trail event categories](https://docs.datadoghq.com/account_management/audit_trail/events/)
© datadog-labs · MIT · datadog-labs/agent-skills