Проблема: Необходимо обнаружить индикаторы компрометации (IOC) в логах оркестратора (Kubernetes, Nomad, Swarm) для выявления взлома пода (контейнера/ворклоада).
Причины:
Авторизованный доступ к API оркестратора (скомпрометированный SA-токен, kubeconfig).
Инъекция вредоносного контейнера или sidecar-образа.
Модификация манифеста пода (hostPath, privileged mode, volumeMounts на host-файловую систему).
Outbound соединения к C2 с пода (внешние подключения с нестандартных портов/протоколов).
Решение (шаги анализа):
1. Аномалии в жизненном цикле пода (CrashLoopBackOff, ImagePullBackOff):
Команда (Kubernetes): `kubectl describe pod -n | grep -A5 -i "Events:"`
Анализируй: количество перезапусков (`restartPolicy`), причину `CrashLoopBackOff` (часто — дроппер, сразу падающий в shell).
2. Проверка запущенных/подтянутых образов:
Лог оркестратора: ищи события `Pulling` и `Pulled` с нестандартными registry (вне вашего private registry/ DockerHub).
Команда: `kubectl get pods -o js\n"}{end}'`
Сверяй хеши образов с эталоном (не только теги — хеш `sha256:...`).
3. Привилегии и монтирования:
Анализируй `securityContext`: `privileged: true`, `allowPrivilegeEscalation: true`, `readOnlyRootFilesystem: false`.
Проверь `volumeMounts`: наличие `/var/run/docker.sock`, `/dev/kvm`, `/proc`, `/sys`, hostPath.
4. Сетевые аномалии (подозрительные Egress):
Логи NetworkPolicy (если есть) — reject-логи на запрещённые соединения.
Логи CNI (Calico, Cilium, flannel): `cilium/hubble observe --pod ` или `calicoctl get workloadendpoints` + логи `iptables` на ноде.
Анализ DNS-логов пода (через `coredns` или `kubedns`): нестандартные FQDN (dyndns, raw.githubusercontent.com, IP-адреса на прямую).
5. Изменения в поде без деплоя (Runtime-поведение):
Сравни стартовые аргументы пода (`COMMAND`) с запущенными процессами через `kubectl exec` + `ps aux` на ноде (`crictl ps`).
Логи `auditd` на ноде (особенно записи `execve` от `kubelet` или контейнерного runtime).
6. Форензика ворклета (kubelet/containerd):
На ноде: `journalctl -u kubelet --since "1 hour ago" | grep -i "error\|mounted\|pulled\|evicted"`.
Сбор логов с `containerd`/`docker` (через `crictl logs ` или `docker logs`).
Ключевой IOC: Появление в логах `Exec`, `Attach`, `Upgrade` или `Delete` для пода, у которого не было соответствующего деплоя/Helm-релиза.
Поддержите автора и задайте вопрос экспертам
Вступайте в нашу группу ВКонтакте, чтобы поддержать проект и получить консультацию экспертов по этой теме
Содержание темы
Ответы (0)
Пока нет ответов. Станьте первым, кто ответит!