Spacebar Campaigns

FL-005 Falco IMDS Credential Access

Log ID:
FL-005
Source:
SB-04 K8s Node
Representative Path:
journalctl -u falco-modern-bpf.service
Collection:
Wazuh agent journald input
Primary Use:
IMDS 접근을 통한 EC2 Instance Profile 임시 자격증명 획득 시도 확인

공격 행위 요약

FL-005는 공격자가 컨테이너 내부에서 AWS EC2 Instance Metadata Service(IMDS)에 접근하여 Instance Profile 임시 자격증명 획득을 시도한 행위를 설명하는 Falco 런타임 로그이다.

공격자는 169.254.169.254 메타데이터 엔드포인트에 접근해 IMDSv2 토큰을 발급받고, /latest/meta-data/iam/security-credentials/ 경로를 조회하여 EC2 인스턴스에 연결된 IAM Role 이름과 임시 자격증명을 확인했다.

Falco에서 cmd, parent_cmd, pod, ns, container_id가 함께 확인되므로, 해당 IMDS 접근 행위가 kube-system 네임스페이스의 pwned-pod-final 컨테이너 실행 환경에서 발생했음을 판단할 수 있다.

로그 발생 위치

구분위치설명
K8s NodeFalcoIMDS 접근 명령 실행 이벤트 탐지
journaldfalco-modern-bpf.serviceFalco 탐지 로그 저장
WazuhWazuh Dashboard수집된 Falco alert 확인

수집 방식

구분방식
Falco 탐지 기준169.254.169.254 또는 IMDS 자격증명 경로 접근 여부 확인
Falco 탐지 메시지조건 매칭 시 [FL-005] IMDS Credential Access 로그 생성
Linux syscallexecve, execveat, connect 이벤트가 Falco에 전달
journaldFalco 이벤트가 falco-modern-bpf.service 로그에 저장
Wazuh agentK8s node에서 journald 로그 수집
Wazuh manager수집된 Falco 로그를 FL-005 룰과 매칭
Wazuh Dashboard[FL-005] IMDS Credential Access 이벤트로 표시

로그 출력 명령어

sudo journalctl -u falco-modern-bpf.service --no-pager | grep -E "\[FL-005\] IMDS Credential Access"

실제 관측 로그

May 27 02:15:48 ip-10-0-133-48 falco[28369]:
  02:15:48.482415537: Warning [FL-005] IMDS Credential Access
  technique=T1552.005
  cmd="curl -s -X PUT http://169.254.169.254/latest/api/token -H X-aws-ec2-metadata-token-ttl-seconds: 21600"
  parent_cmd="bash -i"
  user=root
  pod=pwned-pod-final
  ns=kube-system
  container_id=f8b62c77cf58
  dst=<NA>:<NA>
  container_name=pwned
  container_image_repository=docker.io/library/node
  container_image_tag=20
  k8s_pod_name=pwned-pod-final
  k8s_ns_name=kube-system
May 27 02:15:56 ip-10-0-133-48 falco[28369]:
  02:15:56.366299003: Warning [FL-005] IMDS Credential Access
  technique=T1552.005
  cmd="curl -s -H X-aws-ec2-metadata-token: AQAEAP7LAethDQ9zByQBHqydzdrK9byyq2VF8Pqij5yK9iV0BygILA== http://169.254.169.254/latest/meta-data/iam/security-credentials/"
  parent_cmd="bash -i"
  user=root
  pod=pwned-pod-final
  ns=kube-system
  container_id=f8b62c77cf58
  dst=<NA>:<NA>
  container_name=pwned
  container_image_repository=docker.io/library/node
  container_image_tag=20
  k8s_pod_name=pwned-pod-final
  k8s_ns_name=kube-system
May 27 02:16:03 ip-10-0-133-48 falco[28369]:
  02:16:03.822634472: Warning [FL-005] IMDS Credential Access
  technique=T1552.005
  cmd="curl -s -H X-aws-ec2-metadata-token: AQAEAP7LAethDQ9zByQBHqydzdrK9byyq2VF8Pqij5yK9iV0BygILA== http://169.254.169.254/latest/meta-data/iam/security-credentials/vuln-eks-node-role"
  parent_cmd="bash -i"
  user=root
  pod=pwned-pod-final
  ns=kube-system
  container_id=f8b62c77cf58
  dst=<NA>:<NA>
  container_name=pwned
  container_image_repository=docker.io/library/node
  container_image_tag=20
  k8s_pod_name=pwned-pod-final
  k8s_ns_name=kube-system

주요 필드

필드의미예시
cmd실행된 IMDS 접근 명령curl ... 169.254.169.254/latest/meta-data/iam/security-credentials/
pod명령이 실행된 Podpwned-pod-final
nsPod 네임스페이스kube-system
container_id명령이 실행된 컨테이너 IDf8b62c77cf58

커버 대상 Techniques Used

Primary LogTechniqueMapping Reason
AL-001T1552.005 Unsecured Credentials: Cloud Instance Metadata APIIMDS로 획득한 임시 자격증명으로 STS GetCallerIdentity API를 호출한 행위를 설명한다.
FL-005T1552.005 Unsecured Credentials: Cloud Instance Metadata APIIMDS 엔드포인트와 IAM security credentials 경로에 접근해 임시 자격증명을 조회한 행위를 설명한다.

탐지 포인트

Technique관찰 행위주요 필드
T1552.005 Unsecured Credentials: Cloud Instance Metadata API컨테이너 내부에서 IMDS 엔드포인트 접근 명령이 실행되었는지 확인한다.cmd
T1552.005 Unsecured Credentials: Cloud Instance Metadata APIIMDSv2 토큰 발급 요청이 발생했는지 확인한다.cmd
T1552.005 Unsecured Credentials: Cloud Instance Metadata APIIAM Role 이름 또는 임시 자격증명 경로가 조회되었는지 확인한다.cmd
T1552.005 Unsecured Credentials: Cloud Instance Metadata API해당 명령이 pwned-pod-final 컨테이너에서 실행되었는지 확인한다.pod, ns, container_id
T1552.005 Unsecured Credentials: Cloud Instance Metadata APIFL-005 이후 AL-001에서 STS GetCallerIdentity 호출이 이어졌는지 확인한다.cmd, pod