FL-005 Falco IMDS Credential Access
공격 행위 요약
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 Node | Falco | IMDS 접근 명령 실행 이벤트 탐지 |
| journald | falco-modern-bpf.service | Falco 탐지 로그 저장 |
| Wazuh | Wazuh Dashboard | 수집된 Falco alert 확인 |
수집 방식
| 구분 | 방식 |
| Falco 탐지 기준 | 169.254.169.254 또는 IMDS 자격증명 경로 접근 여부 확인 |
| Falco 탐지 메시지 | 조건 매칭 시 [FL-005] IMDS Credential Access 로그 생성 |
| Linux syscall | execve, execveat, connect 이벤트가 Falco에 전달 |
| journald | Falco 이벤트가 falco-modern-bpf.service 로그에 저장 |
| Wazuh agent | K8s 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 | 명령이 실행된 Pod | pwned-pod-final |
ns | Pod 네임스페이스 | kube-system |
container_id | 명령이 실행된 컨테이너 ID | f8b62c77cf58 |
커버 대상 Techniques Used
| Primary Log | Technique | Mapping Reason |
| AL-001 | T1552.005 Unsecured Credentials: Cloud Instance Metadata API | IMDS로 획득한 임시 자격증명으로 STS GetCallerIdentity API를 호출한 행위를 설명한다. |
| FL-005 | T1552.005 Unsecured Credentials: Cloud Instance Metadata API | IMDS 엔드포인트와 IAM security credentials 경로에 접근해 임시 자격증명을 조회한 행위를 설명한다. |
탐지 포인트
| Technique | 관찰 행위 | 주요 필드 |
| T1552.005 Unsecured Credentials: Cloud Instance Metadata API | 컨테이너 내부에서 IMDS 엔드포인트 접근 명령이 실행되었는지 확인한다. | cmd |
| T1552.005 Unsecured Credentials: Cloud Instance Metadata API | IMDSv2 토큰 발급 요청이 발생했는지 확인한다. | cmd |
| T1552.005 Unsecured Credentials: Cloud Instance Metadata API | IAM Role 이름 또는 임시 자격증명 경로가 조회되었는지 확인한다. | cmd |
| T1552.005 Unsecured Credentials: Cloud Instance Metadata API | 해당 명령이 pwned-pod-final 컨테이너에서 실행되었는지 확인한다. | pod, ns, container_id |
| T1552.005 Unsecured Credentials: Cloud Instance Metadata API | FL-005 이후 AL-001에서 STS GetCallerIdentity 호출이 이어졌는지 확인한다. | cmd, pod |