К основному содержанию
скилл CX Codex

dd-audit-security-investigation — скилл для Claude Code

Помогает расследовать инциденты безопасности в Datadog Audit Trail через утилиту pup. Находит авторов удалений, изменений прав и подозрительные входы.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
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
Открыть на GitHub

Что делает 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-code
npx skills add datadog-labs/agent-skills --skill security-investigation -a claude-code

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

~/.claude/skills/security-investigation/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/security-investigation/

По шагам, с командами для каждой платформы: Как установить скилл в 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

Похожие скиллы

Все скиллы по теме «Безопасность» →
git-guardrails-claude-code Matt Pocock Скилл ставит хук Claude Code, который останавливает опасные Git-команды до их запуска. Нужен, если агент не должен делать push или удалять изменения. 499 069установок ponytail-review DietrichGebert Скилл проверяет изменения глубже обычного diff: читает связанный код, ищет ошибки, риски, проблемы нагрузки и недостающие тесты. Пригодится для ревью PR и коммитов. CX Codex +1 57 000установок ponytail-audit DietrichGebert Проверяет репозиторий и ранжирует ошибки, риски и лишний код. Подойдёт, если нужен разовый разбор без автоматических правок. CX Codex +1 45 400установок security-audit cloudflare Проверяет кодовую базу на уязвимости и ищет нарушения границ доверия. Пригодится перед релизом или для точечного разбора опасных участков кода. CX Codex +1 54 800установок security-and-hardening addyosmani Помогает проектировать защиту и проверять код на уязвимости при работе с вводом, авторизацией, сессиями и внешними сервисами. Подойдёт перед релизом и при создании функций, которые обрабатывают недоверенные данные. CX Codex +1 70 200установок supabase официальный supabase Скилл помогает настраивать базу данных, аутентификацию и RLS в Supabase без скрытых дыр в безопасности. CX Codex GP ChatGPT 8установок

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

agent-observability-eval-pipeline Ведёт инструментированное ml_app по шести фазам: классификация трейсов, разбор сбоев, бутстрап эвалуаторов, датасет, эксперимент и анализ. CX Codex +1 540установок agent-observability-session-classify Оценивает удовлетворённость пользователя в трейсах и сессиях Datadog Agent Observability. Возвращает вердикт yes, partial или no с коротким пояснением. CX Codex +1 529установок service-remapping Скилл для работы с правилами переименования сервисов Datadog APM: схлопывает шумные inferred-сущности, чистит автоимена, помогает после переименования сервиса. CX Codex +1 478установок dd-audit-compliance-report Собирает доказательства из Datadog Audit Trail под требования SOC 2 и PCI DSS и выдаёт готовый к проверке отчёт. CX Codex +1 477установок dd-audit-cost-spike-investigation Скилл связывает скачок потребления в Datadog с изменениями конфигурации из Audit Trail и показывает, кто и что поменял перед всплеском. CX Codex +1 473установок upgrade-browser-sdk-v7 Ведёт проект с Datadog Browser SDK с версии 6 на 7: находит устаревшие опции, меняет CDN-ссылки и API. Пригодится, когда после обновления сыпятся ошибки конфигурации. CX Codex +1 459установок k9-ownership-byod-setup Собирает CSV-таблицу предпочтений владения ресурсами для Datadog и подсказывает, как её загрузить. Нужен, когда Ownership Agent ошибается с владельцами. CX Codex +1 454установок agent-observability-auto-experiment Гоняет цикл улучшения кода против реальных данных Datadog LLM-Obs: замеряет базовую оценку, вносит одно изменение, пересчитывает и оставляет его, если стало лучше. CX Codex +1 453установок

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

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