런타임 보안: 실시간 모니터링
La 런타임 보안 DevSecOps 패러다임의 마지막 방어선: 보호 애플리케이션이 프로덕션 환경에서 실행되는 동안 SAST, DAST 및 SCA로 취약점 발견 배포하기 전에 실행되지만 런타임 보안은 활성 위협, 동작을 감지하고 대응합니다. 변칙성과 지속적인 공격.
이 기사에서는 syscall 기반 위협 탐지를 위한 Falco와 eBPF를 살펴보겠습니다. 낮은 오버헤드 모니터링, 이상 탐지 기술 및 SIEM 시스템과의 통합 완전한 가시성을 위해.
무엇을 배울 것인가
- 런타임 위협 감지 작동 방식
- Falco: Kubernetes의 규칙, 구성 및 배포
- eBPF: 고성능 커널 모니터링
- 이상 징후 탐지 및 행동 분석
- 자동화된 사고 대응
- SIEM(Splunk, ELK, Datadog)과 통합
Falco: 런타임 위협 감지
Falco 런타임 보안을 위한 참조 CNCF 프로젝트. 모니터링 시스템콜 실시간으로 Linux 커널을 분석하고 동작이 감지되면 경고를 생성합니다. 정의된 안전 규칙을 위반하는 것. Falco는 컨테이너에서 쉘 생성을 감지할 수 있습니다. 민감한 파일에 대한 액세스, 의심스러운 네트워크 연결 및 권한 상승.
Helm을 사용하여 Kubernetes에 설치
# Aggiungere il repository Helm di Falco
helm repo add falcosecurity https://falcosecurity.github.io/charts
helm repo update
# Installare Falco con il driver eBPF
helm install falco falcosecurity/falco \
--namespace falco --create-namespace \
--set driver.kind=ebpf \
--set falcosidekick.enabled=true \
--set falcosidekick.webui.enabled=true
# Verificare l'installazione
kubectl get pods -n falco
kubectl logs -n falco -l app.kubernetes.io/name=falco
Falco 사용자 정의 규칙
Falco에는 수백 개의 사전 정의된 규칙이 포함되어 있지만 이를 사용자 환경에 맞게 조정하고 맞춤 규칙을 만드는 것이 중요합니다.
# falco-custom-rules.yaml
customRules:
custom-rules.yaml: |-
# Rileva shell in container di produzione
- rule: Shell in Production Container
desc: Detect shell execution in production namespace
condition: >
spawned_process and container and
proc.name in (bash, sh, zsh, dash) and
k8s.ns.name = "production"
output: >
Shell spawned in production container
(user=%user.name command=%proc.cmdline
container=%container.name namespace=%k8s.ns.name
pod=%k8s.pod.name image=%container.image.repository)
priority: CRITICAL
tags: [container, shell, production]
# Rileva accesso a file di credenziali
- rule: Read Sensitive Credential Files
desc: Detect access to credential files
condition: >
open_read and container and
(fd.name startswith /etc/shadow or
fd.name startswith /root/.ssh or
fd.name startswith /run/secrets)
output: >
Sensitive file read in container
(file=%fd.name user=%user.name
container=%container.name command=%proc.cmdline)
priority: WARNING
tags: [container, filesystem, credentials]
# Rileva connessioni di rete inattese
- rule: Unexpected Outbound Connection
desc: Detect outbound connections from containers that should not have network
condition: >
outbound and container and
k8s.pod.label.network-restricted = "true"
output: >
Unexpected outbound connection from restricted pod
(connection=%fd.name pod=%k8s.pod.name
namespace=%k8s.ns.name image=%container.image.repository)
priority: ERROR
tags: [container, network]
eBPF: 고성능 커널 모니터링
eBPF(확장 버클리 패킷 필터) 그리고 리눅스 커널 기술은 수정하지 않고도 커널에서 샌드박스 프로그램을 실행할 수 있습니다. eBPF 및 기술 Falco, Tetragon 및 기타 도구가 낮은 수준 모니터링에 사용되는 기반 syscall 오버헤드.
eBPF의 오버헤드는 일반적으로 다음보다 적습니다.1~2% CPU, 만들기 고성능 환경에서도 지속적인 모니터링이 가능합니다.
Tetragon: eBPF 보안 관찰 가능성
네모꼴 Isovalent(현재 Cisco)에서 개발한 eBPF 기반 도구로 단순한 모니터링: 할 수 있다 적극적으로 차단 커널 수준에서 의심스러운 동작 승인되지 않은 프로세스 실행이나 예상치 못한 네트워크 연결 등이 있습니다.
# tetragon-policy.yaml
apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
name: block-privilege-escalation
spec:
kprobes:
- call: "__x64_sys_setuid"
syscall: true
args:
- index: 0
type: int
selectors:
- matchArgs:
- index: 0
operator: Equal
values:
- "0" # UID 0 = root
matchNamespaces:
- namespace: production
operator: In
matchActions:
- action: Sigkill # Termina il processo
이상 탐지
L'이상 탐지 식별하기 위해 행동 기준선을 사용합니다. 정상적인 행동으로부터의 이탈. 알려진 공격 패턴을 찾는 대신, 장애를 나타낼 수 있는 비정상적인 행동.
- 네트워크 기준선: 일반적인 네트워크 트래픽을 모니터링하고 예상치 못한 연결을 감지합니다.
- 프로세스 기준: 정상적인 프로세스를 기록하고 알 수 없는 프로세스에 대해 경고합니다.
- 파일 액세스 패턴: 파일 액세스를 모니터링하고 비정상적인 판독값을 감지합니다.
- 리소스 사용량: CPU/메모리 급증은 암호화폐 채굴 또는 DoS를 나타낼 수 있습니다.
일반적인 침해 지표(IoC).
| 지시자 | 가능한 공격 | 기구 |
|---|---|---|
| 컨테이너에 쉘 생성 | RCE, 백도어 | Falco |
| 알려진 악성 IP에 연결 | C2 통신 | 네트워크 모니터링 |
| 갑작스러운 CPU 스파이크 | 암호화폐 채굴 | 측정항목/프로메테우스 |
| /etc/shadow 읽기 | 자격 증명 도용 | 호크, 테트라곤 |
| 컨테이너의 Curl/wget 프로세스 | 데이터 유출 | Falco |
자동화된 사고 대응
보안 사고 발생 시 대응 속도는 매우 중요합니다. 사고 대응 자동화를 사용하면 몇 시간이 아닌 몇 초 만에 반응할 수 있습니다.
# Falcosidekick: risposte automatiche agli alert
# values.yaml per Helm
falcosidekick:
config:
# Notifica Slack per alert WARNING+
slack:
webhookurl: "https://hooks.slack.com/services/xxx"
minimumpriority: "warning"
# Esegui azione Kubernetes per alert CRITICAL
kubernetesCR:
enabled: true
minimumpriority: "critical"
# Pagerduty per on-call
pagerduty:
routingkey: "xxx"
minimumpriority: "critical"
# Azioni automatiche
customActions:
# Isola il pod compromesso (rimuovi label di network policy)
- name: isolate-pod
priority: critical
action: kubernetes
parameters:
namespace: "production"
action: "label"
value: "quarantine=true"
SIEM과의 통합
런타임 보안 경고는 중앙 집중식 시스템(시엠) 상관 관계, 분석 및 장기 보존을 위해. 생태계에서 가장 일반적인 SIEM DevSecOps는 다음과 같습니다.
SIEM 통합
- ELK 스택 (Elasticsearch, Logstash, Kibana): 오픈 소스, 유연성, 로그 분석에 적합
- 스플렁크: 엔터프라이즈, 강력한 쿼리, 규정 준수에 좋음
- Datadog 보안 모니터링: SaaS, 클라우드 및 컨테이너와의 기본 통합
- 그라파나 + 로키: 경량, Kubernetes 환경에 적합
런타임 보안 모범 사례
- 각 클러스터에 Falco 배포: 런타임 모니터링은 워크로드의 100%를 포괄해야 합니다.
- 컨텍스트에 대한 사용자 정의 규칙: Falco 규칙을 애플리케이션 환경에 맞게 조정
- 사고 대응 자동화: 손상된 포드 자동 격리
- 행동 기준선: 이상 경고를 트리거하기 전에 기준선을 설정합니다.
- 로그 보존: 최소 90일 동안 보안 로그를 보관합니다(1년이 더 좋음).
- 문서화된 런북: 조사 단계가 포함된 각 경고 유형에 대한 절차
결론
런타임 보안은 DevSecOps 보호의 루프를 닫습니다. 도구를 사용하는 동안 사전 구축(SAST, DAST, SCA, IaC 스캐닝)으로 취약점 방지, 런타임 보안 프로덕션 환경에서 활성 위협을 탐지하고 대응합니다. Falco, eBPF 및 사고 대응 자동화되어 조직은 실시간으로 대응할 수 있습니다.
다음 기사에서는 살펴보겠습니다. 규정 준수 프레임워크, 어떻게 분석하는지 DevSecOps 제어를 GDPR, SOC2 및 ISO27001 요구 사항에 매핑하고 자동화합니다. 코드 준수를 준수합니다.







