🦅 Falco 실무 스터디

데이터 엔지니어 · AI 엔지니어를 위한 핵심 요약
📅 2026.03  ·  v0.38.x  ·  runtime-security · k8s · threat-detection
#runtime-security #k8s #threat-detection #CNCF

📑 목차

  1. Falco란?
  2. 왜 써야 하는가?
  3. 핵심 개념
  4. 퀵스타트
  5. 핵심 설정 레퍼런스
  6. 실무 팁 & 트러블슈팅
  7. 참고 자료

1. Falco란?

Falco는 CNCF 인큐베이팅 프로젝트로, Linux 커널에서 시스템 콜을 실시간 분석하여 이상 행위를 탐지하는 런타임 보안 엔진입니다. Kubernetes, 컨테이너, 클라우드 환경에서 위협 탐지의 사실상 표준으로 자리잡고 있습니다.

🔍 커널 기반 탐지

eBPF 또는 커널 모듈로 시스템 콜을 후킹하여 프로세스, 파일, 네트워크 활동을 모니터링합니다.

📜 규칙 엔진

YAML 기반 규칙으로 위협 시그니처를 정의. Falco는 기본 제공 규칙 세트(침투, 권한 상승 등)를 포함합니다.

🔔 실시간 경보

표준 출력, Syslog, gRPC, Slack, PagerDuty 등으로 경보를 전송. 보안 오케스트레이션과 자연스럽게 연동됩니다.

✅ AI 보안 관점: Falco는 모델 서빙 인프라에서 비정상 프로세스 실행, 민감 파일 접근, 역방향 셸 등을 탐지하여 AI 파이프라인 보안에 기여합니다.

2. 왜 써야 하는가?

기존 보안 솔루션(SELinux, AppArmor, auditd)과 비교한 Falco의 장점을 표로 정리했습니다.

기능Falcoauditd / SELinuxAppArmor
컨테이너 인식✅ 네이티브 (k8s 메타데이터)❌ 제한적❌ 프로파일 필요
규칙 언어YAML + 매크로 (가독성 높음)복잡한 감사 규칙텍스트 프로파일
클라우드 지원K8s audit log, AWS, GCP❌❌
배포 용이성Helm, DaemonSet, Docker커널 파라미터패키지 설치
실시간 경보다중 출력(표준, gRPC, Slack 등)syslog 기반syslog
⚠️ 주의: Falco는 행위 탐지에 특화되어 있지만 정적 취약점 스캐너는 아닙니다. 이미지 스캔(Trivy 등)과 함께 사용해야 완전한 보안 체계를 구성할 수 있습니다.

3. 핵심 개념 & 아키텍처

Falco는 커널 이벤트 → 규칙 엔진 → 출력 파이프라인으로 구성됩니다. 아래 다이어그램은 데이터 흐름을 단순화한 것입니다.

┌─────────────────────────────────────────────────────┐ │ K8s / 호스트 │ │ ┌──────────┐ ┌─────────────┐ ┌──────────┐ │ │ │ eBPF │───▶│ Falco │───▶│ 출력 │ │ │ │ or kmod │ │ 규칙 엔진 │ │ (stdout,│ │ │ │ (syscall│ │ (rule/ │ │ gRPC, │ │ │ │ hook) │ │ macro) │ │ Slack) │ │ │ └──────────┘ └─────────────┘ └──────────┘ │ │ │ │ │ ▼ │ │ ┌──────────────────┐ │ │ │ Kernel buffer │ (ring buffer) │ │ └──────────────────┘ │ └─────────────────────────────────────────────────────┘
🧠 AI 보안 적용: 모델 학습 중 갑작스러운 `curl` 호출, 예상치 못한 프로세스 포크, 호스트 파일 시스템 읽기 등 비정상 동작 탐지에 사용합니다.

4. 퀵스타트

로컬 Docker 환경에서 Falco를 빠르게 경험해봅니다.

4.1 설치 (Docker)

# 최신 Falco 이미지 pull & 실행 (권장: eBPF 드라이버)
docker run -d --name falco \
  --privileged \
  -v /proc:/host/proc:ro \
  -v /boot:/host/boot:ro \
  -v /lib/modules:/host/lib/modules:ro \
  -v /usr:/host/usr:ro \
  -v /etc:/host/etc:ro \
  falcosecurity/falco:latest

4.2 간단한 테스트 (컨테이너에서 비정상 행위)

# 테스트 컨테이너 실행 & 쉘 획득
docker exec -it falco bash

# Falco 로그 확인 (호스트에서)
docker logs falco --tail 20

# 테스트: 새 컨테이너에서 'whoami' & 'curl' 실행
docker run --rm alpine sh -c "whoami; curl http://example.com"

4.3 첫 번째 커스텀 규칙 (Python 예제)

# custom_rules.yaml (호스트에 저장)
- rule: AI Model Access Outside Allowed Path
  desc: 모델 가중치 파일을 예상치 못한 프로세스가 읽음
  condition: >
    evt.type=open
    and fd.name startswith /models/weights
    and proc.name not in (python3,tritonserver)
  output: >
    비정상 모델 접근 (user=%user.name command=%proc.cmdline file=%fd.name)
  priority: WARNING
  tags: [ai, model-security]
# Falco 실행 시 규칙 추가 (볼륨 마운트)
docker run -d --name falco-custom \
  --privileged \
  -v $(pwd)/custom_rules.yaml:/etc/falco/rules.d/custom.yaml:ro \
  -v /proc:/host/proc:ro \
  -v /boot:/host/boot:ro \
  -v /lib/modules:/host/lib/modules:ro \
  -v /usr:/host/usr:ro \
  -v /etc:/host/etc:ro \
  falcosecurity/falco:latest
⚠️ 프로덕션 팁: Helm 차트로 Kubernetes DaemonSet 배포를 권장합니다. helm install falco falcosecurity/falco

5. 핵심 설정 레퍼런스

옵션 (falco.yaml)기본값설명
json_outputfalseJSON 형식 로그 (프로그램 파싱에 유용)
log_levelinfodebug / info / warning / error
time_format_iso_8601falseISO 8601 타임스탬프
buffered_outputstrue출력 버퍼링 (성능 향상)
rules_file/etc/falco/rules.d/사용자 정의 규칙 디렉터리
grpc_outputenabled: falsegRPC 출력 활성화 (Falco-sidekick)
syscall_event_dropsthreshold: 0.1이벤트 드롭 허용 비율
modern_ebpffalse최신 eBPF 기능 사용 (커널 5.19+)
📌 실무 조정: AI 워크로드에서는 syscall_event_drops.threshold를 0.2까지 높여도 탐지 정확도에 큰 영향 없음. 다만 priority가 INFO인 규칙은 알림 피로도를 낮추기 위해 필터링하세요.

6. 실무 팁 & 트러블슈팅

✅ eBPF 드라이버 우선

커널 모듈보다 eBPF가 안전하고 업데이트가 쉬움. 최신 커널(5.19+)에서는 modern_ebpf: true를 활성화하세요.

🔄 Falco-sidekick 연동

falcosidekick를 통해 Slack, PagerDuty, S3 등으로 경보 전달. AI 모델 서빙 클러스터에 필수.

🐛 디버깅: 이벤트 드롭

falco --stats 로 드롭률 확인. syscall_event_drops.threshold 조절 또는 CPU/메모리 증설.

⚠️ 규칙 오탐지 관리

기본 규칙 중 일부는 AI 학습 파이프라인에서 오탐 발생. 규칙 우선순위 조정 또는 exceptions 사용.

자주 겪는 문제 & 해결

증상원인해결
Falco가 시작되지 않음eBPF 헤더 누락falco-driver-loader 실행 또는 Docker 호스트 커널 헤더 설치
경보가 너무 많음기본 규칙 + AI 워크로드우선순위 WARNING 이상만 알림, 매크로 조건에 프로세스 예외 추가
CPU 100%이벤트 폭주syscall_event_drops.threshold 증가, 드롭 허용
K8s Audit Log 탐지 안 됨Falco 설정 누락falco.yaml 에 k8s_audit 섹션 활성화 및 webhook 설정

7. 참고 자료

🔬 AI 보안 확장: Falco와 MLflow, Kubeflow를 함께 사용하면 모델 서빙 단계의 비정상 접근을 실시간 차단할 수 있습니다.