티스토리 뷰
쿠버네티스 실습: 실시간 위협 탐지와 보안 이상 대응 자동화 (Falco + Loki + Prometheus + Grafana + SOAR Pipeline)
octo54 2025. 10. 30. 13:16쿠버네티스 실습: 실시간 위협 탐지와 보안 이상 대응 자동화 (Falco + Loki + Prometheus + Grafana + SOAR Pipeline)
앞선 글에서는 서비스 간 권한 인증(JWT, SPIFFE, OPA, mTLS) 을 통해
모든 마이크로서비스 요청이 **“누가 무엇을 하는가”**를 증명하고 검증받는 Zero Trust 기반 보안 구조를 완성했습니다.
이제 마지막 단계로, 운영 환경에서 보안 이상 탐지(Threat Detection) 와 자동 대응(SOAR: Security Orchestration, Automation and Response) 시스템을 구축합니다.
이번 실습은 실시간으로 침입이나 이상 행위를 탐지하고 자동으로 대응하는 보안 파이프라인을 완성하는 데 초점을 맞춥니다.
1) 목표 아키텍처
[쿠버네티스 클러스터]
│
├── Falco (런타임 위협 탐지)
├── Loki (로그 집계 및 저장)
├── Prometheus (지표 수집)
├── Grafana (시각화)
└── Falco Sidekick → Webhook → Slack / Argo Workflow / Incident Response
핵심 구성 요소
구성요소 역할
| Falco | 시스템 호출(Syscall) 기반 실시간 침입 탐지 |
| Loki | Falco 및 애플리케이션 로그 저장 |
| Prometheus | Falco 이벤트 메트릭 수집 |
| Grafana | 실시간 대시보드 및 알람 설정 |
| SOAR Pipeline (Argo Workflow or n8n) | 자동 격리·차단·복원 등 대응 수행 |
2) Falco 설치 (Sysdig OSS Runtime Security Engine)
Falco는 커널 수준의 Syscall을 감시해 비정상 행위를 탐지합니다.
helm repo add falcosecurity https://falcosecurity.github.io/charts
helm repo update
helm install falco falcosecurity/falco -n falco --create-namespace
설치 확인:
kubectl get pods -n falco
결과:
NAME READY STATUS AGE
falco-xxxxxx 1/1 Running 1m
3) Falco 기본 탐지 규칙
/etc/falco/falco_rules.yaml (Pod 내부 또는 ConfigMap)
예시:
- rule: Terminal shell in container
desc: Detect interactive shell executed inside a container
condition: >
spawned_process and container and shell_procs and
not user_known_shell_activity
output: >
Shell spawned in container (user=%user.name container=%container.id)
priority: WARNING
tags: [container, shell, mitre_execution]
즉, 누군가 Pod 내부에서 bash를 실행하거나 쉘을 열면 즉시 경고를 발생시킵니다.
4) Falco Sidekick으로 이벤트 전달
Falco는 falco-event를 Sidekick에 전달할 수 있습니다.
Sidekick은 이를 Slack, Webhook, Argo Workflow 등으로 중계합니다.
helm install falcosidekick falcosecurity/falcosidekick \
--set webserver.enabled=true \
--set config.slack.webhookurl=https://hooks.slack.com/services/XXXX
테스트:
kubectl exec -it <pod> -- bash
→ Slack 메시지:
[WARNING] Falco Alert: Shell spawned in container (user=root, pod=nestjs-5c89d...)
5) Loki로 Falco 로그 수집
Falco 로그를 Loki로 전송하여 검색 및 시각화를 가능하게 합니다.
values.yaml (Falco Helm)
falco:
json_output: true
json_include_output_property: true
log_output: stdout
Loki 설치:
helm repo add grafana https://grafana.github.io/helm-charts
helm install loki grafana/loki-stack --set promtail.enabled=true -n monitoring --create-namespace
이후 Grafana에서 Loki를 데이터 소스로 추가 → “Falco Alerts” 대시보드 구성.
6) Prometheus와 Falco 메트릭 통합
Falco는 Prometheus 형식의 메트릭을 제공합니다.
helm upgrade falco falcosecurity/falco \
--set falco.metrics.enabled=true \
--set falco.metrics.output_type=prometheus
메트릭 확인:
kubectl port-forward svc/falco 8765:8765 -n falco
curl localhost:8765/metrics
→ falco_events_total 등의 지표가 수집됩니다.
7) Grafana로 실시간 보안 대시보드 구성
추천 대시보드:
- Falco Event Trend (이상행위 발생 횟수)
- Top Affected Namespaces
- Event Type by Severity
- Syscall Distribution (e.g., open, execve, chmod 등)
대시보드 예시 쿼리:
sum by (rule) (rate(falco_events_total[5m]))
8) 자동 대응(SOAR) 파이프라인 구성
Falco Sidekick → Webhook → Argo Workflow / n8n / SlackBot을 활용합니다.
예시: Falco 이벤트 발생 시 Pod 자동 격리
falco-response.yaml
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: falco-auto-response
spec:
entrypoint: isolate
templates:
- name: isolate
steps:
- - name: quarantine
template: quarantine
- name: quarantine
container:
image: bitnami/kubectl
command: ["/bin/sh", "-c"]
args:
- >
echo "Isolating pod {{workflow.parameters.pod_name}}...";
kubectl label pod {{workflow.parameters.pod_name}} quarantine=true --overwrite;
kubectl annotate pod {{workflow.parameters.pod_name}} action=isolated --overwrite;
Webhook 설정:
falcosidekick:
config:
webhook:
address: "http://argo-workflow-server:2746/api/v1/workflows/falco-auto-response"
→ 누군가 컨테이너 내부 쉘을 열면 자동으로 해당 Pod가 격리(Quarantine) 됩니다.
9) SIEM/보안 로그 통합
Falco + Loki + Prometheus 로그를 ElasticSearch, Splunk, Grafana Cloud 등 외부 SIEM에 전송하면
조직 보안팀이 모든 이벤트를 통합 분석할 수 있습니다.
output:
- type: loki
url: http://loki.monitoring.svc:3100/loki/api/v1/push
- type: syslog
host: siem.company.net
port: 514
10) 정리
- Falco: 실시간 시스템 호출 감시로 컨테이너 내부 이상행위 탐지
- Loki + Grafana: 로그 기반 시각화 및 알람
- Prometheus: 보안 이벤트 메트릭 수집
- Falco Sidekick + Argo Workflow: 자동 대응(SOAR) 파이프라인 완성
- Vault + OPA + Istio 와 결합 시, 탐지 → 격리 → 복원 → 재배포까지 자동화된 완전한 Self-Healing 보안 시스템 구축
다음 글에서는 이 모든 인프라를 기반으로
“운영 자동화 + AI 기반 이상 탐지(Anomaly Detection)” 기능을 추가해
실시간으로 학습하고 예측하는 AI Ops 클러스터를 구축하겠습니다.
쿠버네티스,Falco,Loki,Prometheus,Grafana,SOAR,보안자동화,실시간탐지,DevSecOps,K8s실습
✅ 참고할 최신 자료
- Falco 공식 소개: “실시간으로 커널 이벤트 기반으로 비정상 동작을 탐지”한다는 설명이 공식 문서에 나와 있습니다. (Falco)
- Falco와 Loki/Prometheus 통합에 대한 설명: Falco → Falcosidekick → Loki/Prometheus 구조 등이 설명되어 있습니다. (Medium)
- Loki 설치 및 로그 수집 에이전트인 Promtail 설명도 포함되어 있으며, 로그 스택 구축 맥락에서 참고 가능합니다. (Grafana Labs)
⚠️ 보완/강화 제안
- Falco 규칙 작성/관리: 기본 예시로 “컨테이너 내부 쉘 실행 탐지”를 든 것은 좋습니다. 다만 운영 환경에서는 “파일 권한 변경”, “외부 네트워크 연결”, “루트 권한 escalation” 등 다양한 규칙이 추가로 필요하다는 설명을 곁들이면 더 좋습니다.
- SOAR(자동 대응) 파이프라인: Webhook → 자동 격리 → 알림 흐름을 예시로 든 점도 좋지만, “실패 시 수동 대체 경로” 혹은 “가짜 경보(false positive) 필터링” 등의 운영 현실적인 고려사항도 약간 넣으면 독자가 대비하기 좋습니다.
- 로그·메트릭 통합 관점: 단순히 이벤트 수집만이 아니라 “이상탐지 트렌드”, “이벤트 패턴 변화”를 모니터링해야 한다는 것을 강조하면 더 완성도 높습니다.
- 정책/규정 대응: 탐지와 대응 외에도 “감사(audit) 로그 저장”, “보안 이벤트 히스토리 보존” 같은 항목이 실제 운영에서는 매우 중요하므로 언급하면 좋습니다.
'project > 맥미니로 시작하는 쿠버네티스' 카테고리의 다른 글
- Total
- Today
- Yesterday
- Next.js
- 개발블로그
- llm
- REACT
- Prisma
- SEO최적화
- PostgreSQL
- Python
- kotlin
- 웹개발
- JWT
- Docker
- CI/CD
- nextJS
- NestJS
- flax
- seo 최적화 10개
- fastapi
- JAX
- rag
- 생성형AI
- Redis
- node.js
- 백엔드개발
- DevOps
- LangChain
- Express
- ai철학
- 쿠버네티스
- 딥러닝
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |

