Короткий ответ
Постинцдентный разбор — документ: timeline (UTC + локаль), что сломалось/украли, корневая причина (не «человек глупый»), что сработало, меры с владельцем и датой. Без публичных обвинений. Пишите, пока живы копии логов. Шаблон ниже заточен под WS-042, ivan.petrov, 10.0.10.55, host.example. Не заменяйте разбор статусом «закрыто» в helpdesk.
Входы: 15 минут, артефакты, учётки.
Симптомы и как отличить
Нужен разбор, если был IR с изоляцией, компрометацией, потерей данных, простоем выше порога. Не нужен роман на 40 страниц из‑за одного fail2ban бана, но строка в журнале изменений — да.
| Плохой «разбор» | Нормальный |
|---|---|
| «Иван кликнул, сам виноват» | макросы из интернета были разрешены — мера: ASR, владелец ИТ, дата |
| Время «около ночи» | 2026-09-08 21:14:02 UTC 4624 |
| Меры «усилить безопасность» | конкретный контроль |
| Нет приложений логов | ссылка на E:\IR\... |
Возможные причины
- Боятся директора.
- Логи уже нет.
- Нет шаблона.
- Путают RCA с актом списания.
- Аутсорс ушёл, знаний нет.
- Инцидент «неудобный», его переименовали в «сбой диска».
Диагностика
- Тикет IR, чаты (экспорт).
- SIEM, evtx, journal.
- Change calendar: что меняли до.
- Backup: какие точки живы.
- Опросы: что Иван делал, не «что думает про коллег».
Сверьте часовые пояса. Один столбец только UTC.
# пример выдержки для приложения, не весь лес
Get-WinEvent -Path 'E:\IR\WS-042\Security.evtx' |
Where-Object { $_.Id -in 4624,4625,4688,1102 } |
Select-Object TimeCreated, Id |
Sort-Object TimeCreatedsudo grep -E '10.0.10.55|ivan.petrov' /mnt/ir/host.example/journal.txt | headРешение
Копируйте разделы в Confluence/тикет. Обязательные поля:
1. Шапка
- ID инцидента, дата начала/конца UTC.
- Классификация: confidentiality / integrity / availability.
- Системы:
WS-042,host.example, шара, VPN. - Координатор IR.
2. Краткое «что случилось» (10 строк)
Факт, не гипотеза. «На WS-042 пользователь ivan.petrov открыл вложение, затем 1116, затем 4624 Type 3 на FS01 с 10.0.10.55» — если IP внутренний после VPN, так и напишите.
3. Timeline
Таблица: время UTC, источник факта (Event ID / журнал / человек), событие, комментарий «факт/гипотеза».
Гипотезы помечайте явно. Не смешивайте.
4. Воздействие
Простой часов, какие данные, уведомляли ли субъектов (это юр. трек, ссылка, не любительская оценка GDPR в статье). Backup: удалось ли restore.
5. Корневая причина
Метод «5 почему» без издевательства. Примеры формулировок:
- RDP 3389 был на WAN;
- не было MFA на VPN;
- webroot writable, PHP в uploads;
- DA на повседневном ПК;
- логи только локальные 20 МБ.
Не: «Иван невнимательный» как корень. Можно: «не было технического запрета макросов, обучение не закрывает контроль».
6. Что сработало
Defender 1116, дежурный изолировал порт за 8 минут, immutable жив. Это важно повторить.
7. Меры
Каждая строка: мера, владелец, срок, как проверим. Примеры:
- закрыть DNAT 3389 — сеть — дата — скан WAN;
- MFA VPN — IdP — дата — тест учётки;
- WEF на OU Workstations — ИТ — дата — событие тест видно в SIEM.
Отдельно быстрые hotfix (уже сделано в IR) и системные.
8. Приложения
Хеши IR-файлов, не содержимое персональных писем оптом.
Метрики и повтор через 30 дней
В конце документа — таблица мер: закрыт ли DNAT, включён ли WEF, жив ли immutable test restore. Через 30 дней координатор ставит «проверено/провалено», иначе разбор — проза. Не копируйте меры из прошлого инцидента без привязки к этому timeline на WS-042 / host.example.
Приложения: хеши IR, не персональные вложения. IP 10.0.10.55 в тексте внутреннего RCA допустим; во внешнем — обобщите. Расхождение показаний ivan.petrov и 4624 оставляйте как факт «человек / лог», не выбирайте удобное. Если корневая причина «нет коллектора логов» — мера должна появиться в бюджете, не в слайде «культура». Связанные инциденты (тот же hash, тот же forward) — ссылки, не один бесконечный тикет.
Версия v1 не ждёт вендора malware: пишите, что видели. v2 — когда придёт лаборатория. Без v1 через две недели не будет никого, кто помнит UTC.
Как проверить, что проблема устранена
Разбор готов, когда:
- timeline не противоречит логам;
- причина не сводится к личности;
- меры измеримы;
- IR-копии ещё существуют;
- бизнес видел impact;
- открытые действия в трекере не в том же IR-тикете-могильнике.
Через 30 дней: сверка, что меры не умерли.
Хранение IR-копий N дней и порог «когда RCA обязателен» уберите из головы координатора в регламент. Меры без тикета в трекере умрут. ivan.petrov не объект воспитательной беседы в RCA; контроль макросов — да. Хост host.example и IP 10.0.10.55 остаются в timeline.
Если не помогло
- Спорят две версии timeline — оставьте обе гипотезы, укажите, каких логов нет (очистка).
- Юристы запретили детали — внутренний технический appendix с доступом need-to-know.
- Аутсорс не даёт логи периметра — это находка RCA: нет контракта на логи.
- «Причина — 0-day» без артефакта — не писать. Нет CVE — нет CVE. Пишите, что видели (процесс, hash, вход).
Профилактика
- Шаблон этой статьи в wiki.
- Обязательный разбор по порогу (ransomware, DA, утечка, простой X часов).
- Хранение IR-копий N дней.
- Ретро без директора-судьи, директор читает меры.
- Связь с change management: меры = задачи.
FAQ
Нужно ли звать всех на встречу на 2 часа?
Короткий созвон по timeline, документ асинхронно. Большая аудитория = спектакль.
Писать ли публичный postmortem?
По решению бизнеса. Технический внутренний — всегда. Внешний без IOC внутренних IP/имён файлов.
Иван хочет «вычеркнуть» себя из текста
Хост и роль нужны. Формулировки про характер — нет. HR-трек отдельно.
Когда закрывать IR-тикет?
Когда сдерживание и восстановление сервиса ок. Разбор — связанная задача, не держите P1 вечно из‑за RCA.
Нет SIEM, мало логов
Это и есть RCA. Мера: коллектор. Не выдумывайте недостающие 4624.