cron 이 새벽 세 시에 curl 을 했다 · 잡은 다음에 무엇을 먼저 하는가 · 실습
새벽 세 시의 한 시간을 되짚는다
목표
한 사건의 자료 네 종류를 받아 조사를 한 바퀴 돕니다. 세고, 집고, 보존하고,
타임라인으로 엮고, 축을 잡아 클러스터까지 따라가고, 조치 순서를 정하고,
사후 분석 보고서를 씁니다.
왜 중요한가
알림이 울린 뒤 30분 동안 무엇을 하느냐가 그 사건의 결말을 정합니다. 급한 마음에
파드를 지우고 노드를 재부팅하면 침입 경로가 함께 사라지고, 반대로 증거를
완벽하게 모으는 동안 유출된 자격증명으로 다른 네임스페이스가 털립니다.
그래서 대응은 "무엇이 옳은가" 가 아니라 "무엇을 먼저 하는가" 의 문제이고, 그
순서는 사건이 나기 전에 정해 두어야 합니다. 휘발성이 큰 것부터 모으고, 원본은
건드리지 않고, 시각은 UTC 로 통일하고, 자격증명 폐기는 미루지 않는다 — 이런
규칙들은 전부 누군가 한 번씩 잃어 보고 나서 생겼습니다.
이 실습의 자료는 합성한 것입니다. 대신 형식은 실제와 같습니다. Falco 의 JSON
출력, 커널 감사의 원본 레코드, journalctl -o json 의 필드, 쿠버네티스 감사
이벤트를 그대로 씁니다.
단계
1. 자료 네 종의 줄 수를 세어 /root/ir/01-sources.tsv 에 저장하세요.
2. 가장 이른 Falco 알림의 규칙 이름·시각·PID 를 /root/ir/02-first.json 에 저장하세요.
3. 자료 네 종을 /root/ir/evidence/ 로 복사하고 manifest.sha256 을 남기세요.
4. 네 출처를 하나의 시간축에 올린 타임라인을 /root/ir/04-timeline.tsv 에 8행 이상 쓰세요.
5. 축 네 개(pid·cron-file·c2-host·k8s-identity)를 /root/ir/05-pivot.tsv 에 값과 근거로 적으세요.
6. 조치 여섯 가지의 시점과 근거를 /root/ir/06-containment.tsv 에 적으세요.
7. 훔친 신원이 클러스터에서 한 일을 /root/ir/07-k8s.tsv 에 적으세요.
8. 사후 분석 보고서를 /root/ir/08-postmortem.md 에 쓰세요.
참고
- 자료는
/opt/lab/fixtures/detection/incident/아래에 있습니다:falco.jsonl,audit.log,cron.jsonl,kube-audit.jsonl. 그리고 로그가 아닌 참고 자료로host-facts.json이 있습니다. - 4단계의 출처 이름은
falco·auditd·cron·kube-audit넷 중 하나로 적습니다. 시각은2026-03-14T03:00:04Z꼴입니다. - 6단계의 조치 이름은
메모리 수집·네트워크 차단·프로세스 종료·예약 작업 제거·자격증명 폐기·노드 재설치여섯이고, 시점은지금·나중·안함중 하나입니다. - 7단계는 거부된(403) 요청도 행위입니다. 빼지 마세요.
- 흔한 실수: 커널 감사 원본의 시각은 에폭 초입니다.
date -u -d @<초>로 바꿔 보세요. - 흔한 실수: 원본 파일을 편집기로 열어 고치는 것. 원본은 읽기 전용으로 다루고 사본만 봅니다.
단계 8개
- 무엇이 있는지 센다
- 최초 알림을 집는다
- 원본을 건드리지 않고 보존한다
- 하나의 시간축에 올린다
- 축을 잡고 건너뛴다
- 무엇을 먼저 하는가
- 훔친 신원이 클러스터에서 한 일
- 다음 주를 바꾸는 글