[Evolution] Создание агента incident-responder #111

Open
opened 2026-05-09 11:45:52 +00:00 by NW · 1 comment
Owner

Контекст

В ходе реального инцидента IR-2026-05-09 (3 сервера, RCE, ELF backdoor, web-shells) была выявлена уязвимость агентской сети:

Отсутствует специализированный агент для серверного incident response и system hardening.

Все задачи по очистке выполнялись orchestrator-ом через bash напрямую, что не масштабируется и не дает повторяемый pipeline workflow.

Цель

Создать универсального агента incident-responder, способного работать с произвольным сервером по предоставленному SSH-доступу — отчистка от malware, hardening, восстановление, отчетность.

Почему существующие агенты не подошли

Агент Назначение Что не могли сделать
security-auditor Сканирование кода на OWASP/CVE Live server forensics, удаление malware, hardening
devops-engineer Docker/K8s/CI/CD Malware removal, forensic analysis, persistence hunting
system-analyst Архитектура/API Работа с компрометированными системами
the-fixer Исправление багов Массовый incident response

Scope agent incident-responder

Обязательно умеет

  • Подключиться к серверу по SSH и credentials и изучить окружение (ОС, панель, сервисы)
  • Обнаружить persistence (cron, rc.local, systemd timers, chattr +i, chroot jailbreak)
  • Найти malware по IoC (сигнатуры, эвристика, аномалии)
  • Проанализировать подозрительные файлы (до удаления) — размер, entropy, eval/base64 patterns
  • Удалить malware без повреждения легитимных файлов (проверка перед, замена если часть ядра)
  • Восстановить системные файлы из архивов или стандартных пакетов
  • Установить hardening (.htaccess uploads, CSF, fail2ban, AIDE)
  • Получить дампы баз и сайтов с зараженного сервера
  • Создать финальный отчет с IoC, timeline, рекомендациями

Не делает

  • Не пишет production код — это lead-developer
  • Не деплоит в Kubernetes — это devops-engineer
  • Не аудирует исходный код — это security-auditor
  • Не решает баги приложений — это the-fixer

Permissions

read: allow
edit: allow
write: allow
bash: allow  # Критично: forensics, SSH, system commands
glob: allow
grep: allow
task:
  "*": deny
  "code-skeptic": allow   # После написания скриптов
  "orchestrator": allow    # Отчёт обратно

Model

ollama-cloud/kimi-k2.6:cloud (аналитическая, большой context window, системные задачи)

Routing

Keywords: incident, compromise, breach, hack, malware, shell, backdoor, forensic, cleanup, harden, server security, remove virus, integrity check


Эволюционные задачи

Phase 1: Research

  • Изучить агентов на пересечение с server incident response
  • Проанализировать AI-driven DFIR automation best practices
  • Определить scope и отличия от security-auditor/devops-engineer
  • Обобщить требования — любая панель, любая ОС

Phase 2: Specification

  • Персона, behavior, skills, hardening checklist
  • Определить permissions (bash: allow)
  • Создать skill modules (.kilo/skills/incident-response/)
    • forensics-checklist.md — процедуры поиска malware
    • malware-signatures.md — сигнатуры PHP shells, ELF backdoors
    • hardening-procedures.md — CSF, fail2ban, AIDE, .htaccess
    • backup-verification.md — проверка целостности архивов
    • server-recon.md — определение ОС, панели, сервисов
  • Создать workflow (.kilo/workflows/incident-response.md)

Phase 3: Implementation

  • .kilo/agents/incident-responder.md (YAML frontmatter)
  • Обновить orchestrator.md (таблица Task Tool Invocation)
  • Обновить kilo-meta.json
  • Обновить kilo.jsonc
  • Обновить AGENTS.md
  • Обновить capability-index.yaml
  • Валидация (validate-agents.cjs)
  • Синхронизация (sync-agents.js --fix)

Phase 4: Testing

  • Тестовый вызов через Task tool
  • Проверка делегирования
  • Проверка permissions
  • Проверка отсутствия дублирования

Phase 5: Documentation

  • Обновить KILO_SPEC.md
  • Обновить EVOLUTION_LOG.md
  • Закрыть milestone

Status: phase::researching
Next agent: @capability-analyst
Related incident: IR-2026-05-09
Budget: 50000 tokens

## Контекст В ходе реального инцидента IR-2026-05-09 (3 сервера, RCE, ELF backdoor, web-shells) была выявлена уязвимость агентской сети: **Отсутствует специализированный агент для серверного incident response и system hardening.** Все задачи по очистке выполнялись orchestrator-ом через bash напрямую, что не масштабируется и не дает повторяемый pipeline workflow. ## Цель Создать универсального агента incident-responder, способного работать с произвольным сервером по предоставленному SSH-доступу — отчистка от malware, hardening, восстановление, отчетность. ## Почему существующие агенты не подошли | Агент | Назначение | Что не могли сделать | |-------|-----------|---------------------| | security-auditor | Сканирование кода на OWASP/CVE | Live server forensics, удаление malware, hardening | | devops-engineer | Docker/K8s/CI/CD | Malware removal, forensic analysis, persistence hunting | | system-analyst | Архитектура/API | Работа с компрометированными системами | | the-fixer | Исправление багов | Массовый incident response | ## Scope agent incident-responder ### Обязательно умеет - Подключиться к серверу по SSH и credentials и изучить окружение (ОС, панель, сервисы) - Обнаружить persistence (cron, rc.local, systemd timers, chattr +i, chroot jailbreak) - Найти malware по IoC (сигнатуры, эвристика, аномалии) - Проанализировать подозрительные файлы (до удаления) — размер, entropy, eval/base64 patterns - Удалить malware без повреждения легитимных файлов (проверка перед, замена если часть ядра) - Восстановить системные файлы из архивов или стандартных пакетов - Установить hardening (.htaccess uploads, CSF, fail2ban, AIDE) - Получить дампы баз и сайтов с зараженного сервера - Создать финальный отчет с IoC, timeline, рекомендациями ### Не делает - Не пишет production код — это lead-developer - Не деплоит в Kubernetes — это devops-engineer - Не аудирует исходный код — это security-auditor - Не решает баги приложений — это the-fixer ### Permissions ```yaml read: allow edit: allow write: allow bash: allow # Критично: forensics, SSH, system commands glob: allow grep: allow task: "*": deny "code-skeptic": allow # После написания скриптов "orchestrator": allow # Отчёт обратно ``` ### Model ollama-cloud/kimi-k2.6:cloud (аналитическая, большой context window, системные задачи) ### Routing Keywords: incident, compromise, breach, hack, malware, shell, backdoor, forensic, cleanup, harden, server security, remove virus, integrity check --- ## Эволюционные задачи ### Phase 1: Research - [ ] Изучить агентов на пересечение с server incident response - [ ] Проанализировать AI-driven DFIR automation best practices - [ ] Определить scope и отличия от security-auditor/devops-engineer - [ ] Обобщить требования — любая панель, любая ОС ### Phase 2: Specification - [ ] Персона, behavior, skills, hardening checklist - [ ] Определить permissions (bash: allow) - [ ] Создать skill modules (.kilo/skills/incident-response/) - `forensics-checklist.md` — процедуры поиска malware - `malware-signatures.md` — сигнатуры PHP shells, ELF backdoors - `hardening-procedures.md` — CSF, fail2ban, AIDE, .htaccess - `backup-verification.md` — проверка целостности архивов - `server-recon.md` — определение ОС, панели, сервисов - [ ] Создать workflow (.kilo/workflows/incident-response.md) ### Phase 3: Implementation - [ ] .kilo/agents/incident-responder.md (YAML frontmatter) - [ ] Обновить orchestrator.md (таблица Task Tool Invocation) - [ ] Обновить kilo-meta.json - [ ] Обновить kilo.jsonc - [ ] Обновить AGENTS.md - [ ] Обновить capability-index.yaml - [ ] Валидация (validate-agents.cjs) - [ ] Синхронизация (sync-agents.js --fix) ### Phase 4: Testing - [ ] Тестовый вызов через Task tool - [ ] Проверка делегирования - [ ] Проверка permissions - [ ] Проверка отсутствия дублирования ### Phase 5: Documentation - [ ] Обновить KILO_SPEC.md - [ ] Обновить EVOLUTION_LOG.md - [ ] Закрыть milestone --- **Status:** phase::researching **Next agent:** @capability-analyst **Related incident:** IR-2026-05-09 **Budget:** 50000 tokens
Author
Owner

Evolution complete: incident-responder agent created

Component Added

  • Agent: .kilo/agents/incident-responder.md
  • Skills: 5 modules under .kilo/skills/incident-response/
  • Model: ollama-cloud/kimi-k2.6:cloud
  • Mode: subagent

Files Created (7 new)

File Purpose
.kilo/agents/incident-responder.md Agent definition with YAML frontmatter + role/prompts
.kilo/skills/incident-response/SKILL.md Skill index and workflow overview
.kilo/skills/incident-response/forensics-checklist.md SSH recon, persistence hunt, timeline, integrity
.kilo/skills/incident-response/malware-signatures.md PHP shells, ELF backdoors, entropy scans, IoC hashes
.kilo/skills/incident-response/hardening-procedures.md SSH/CSF/fail2ban/AIDE/.htaccess/kernel/audit
.kilo/skills/incident-response/backup-verification.md Pre-action DB/site/config backup + integrity
.kilo/skills/incident-response/server-recon.md OS/panel/web/db/service/user/network detection

Files Modified (7)

File Change
kilo-meta.json Added incident-responder definition
kilo.jsonc Added agent config + permissions
.kilo/agents/orchestrator.md Whitelisted incident-responder in task permissions and Task Tool table
.kilo/capability-index.yaml Added agent capabilities + routing incident_response -> incident-responder
.kilo/KILO_SPEC.md Added @IncidentResponder to Pipeline Agents table
AGENTS.md Added Security and Incident Response section
.kilo/EVOLUTION_LOG.md Logged evolution entry

Commit

feat(evolution): add incident-responder agent for server incident response and forensics
Hash: c031c4b
Files: 14 changed, 931 insertions (+)

Verification Checklist

  • YAML frontmatter valid (quoted color, valid mode, model in KILO_SPEC, all permissions present)
  • Task deny-by-default "*": deny + subagent denied
  • Orchestrator permission whitelist includes incident-responder: allow
  • kilo-meta.json synced
  • kilo.jsonc synced
  • capability-index.yaml synced
  • KILO_SPEC.md synced
  • AGENTS.md synced
  • EVOLUTION_LOG.md updated

Status: READY

Next: Orchestrator now routes incident keywords (incident, compromise, breach, hack, malware, shell, backdoor, forensic, cleanup, harden) to @IncidentResponder

## Evolution complete: incident-responder agent created ### Component Added - **Agent**: `.kilo/agents/incident-responder.md` - **Skills**: 5 modules under `.kilo/skills/incident-response/` - **Model**: ollama-cloud/kimi-k2.6:cloud - **Mode**: subagent ### Files Created (7 new) | File | Purpose | |------|---------| | `.kilo/agents/incident-responder.md` | Agent definition with YAML frontmatter + role/prompts | | `.kilo/skills/incident-response/SKILL.md` | Skill index and workflow overview | | `.kilo/skills/incident-response/forensics-checklist.md` | SSH recon, persistence hunt, timeline, integrity | | `.kilo/skills/incident-response/malware-signatures.md` | PHP shells, ELF backdoors, entropy scans, IoC hashes | | `.kilo/skills/incident-response/hardening-procedures.md` | SSH/CSF/fail2ban/AIDE/.htaccess/kernel/audit | | `.kilo/skills/incident-response/backup-verification.md` | Pre-action DB/site/config backup + integrity | | `.kilo/skills/incident-response/server-recon.md` | OS/panel/web/db/service/user/network detection | ### Files Modified (7) | File | Change | |------|--------| | `kilo-meta.json` | Added incident-responder definition | | `kilo.jsonc` | Added agent config + permissions | | `.kilo/agents/orchestrator.md` | Whitelisted `incident-responder` in task permissions and Task Tool table | | `.kilo/capability-index.yaml` | Added agent capabilities + routing `incident_response -> incident-responder` | | `.kilo/KILO_SPEC.md` | Added `@IncidentResponder` to Pipeline Agents table | | `AGENTS.md` | Added `Security and Incident Response` section | | `.kilo/EVOLUTION_LOG.md` | Logged evolution entry | ### Commit ``` feat(evolution): add incident-responder agent for server incident response and forensics Hash: c031c4b Files: 14 changed, 931 insertions (+) ``` ### Verification Checklist - [x] YAML frontmatter valid (quoted color, valid mode, model in KILO_SPEC, all permissions present) - [x] Task deny-by-default `"*": deny` + subagent denied - [x] Orchestrator permission whitelist includes `incident-responder: allow` - [x] kilo-meta.json synced - [x] kilo.jsonc synced - [x] capability-index.yaml synced - [x] KILO_SPEC.md synced - [x] AGENTS.md synced - [x] EVOLUTION_LOG.md updated ### Status: READY **Next**: Orchestrator now routes incident keywords (`incident`, `compromise`, `breach`, `hack`, `malware`, `shell`, `backdoor`, `forensic`, `cleanup`, `harden`) to `@IncidentResponder`
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: UniqueSoft/APAW#111