ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS EC2 IMDSv1 취약점과 IMDSv2 보안 강화 소개
    IT/Cloud 2025. 5. 16. 23:44
    반응형

    서론

    AWS EC2 인스턴스는 내부 메타데이터 서비스(IMDS)를 통해 인스턴스 정보를 쉽게 조회할 수 있습니다. 이 서비스는 인스턴스 ID, IAM 역할 자격증명 등 중요한 정보를 제공합니다. 하지만 초기 버전인 IMDSv1은 보안상 치명적인 취약점을 내포하고 있어 공격자가 이를 악용할 수 있었습니다. 이번 글에서는 IMDSv1의 취약점 시연 사례와, 이를 보완한 IMDSv2의 주요 특징 및 적용 방법을 자세히 살펴보겠습니다.

    IMDS란 무엇인가?

    • IMDS (Instance Metadata Service) 는 AWS EC2 인스턴스 내부에서 인스턴스 관련 메타데이터를 조회하는 HTTP 서비스입니다.
    • 주소는 http://169.254.169.254/latest/meta-data/로 고정되어 있습니다.
    • 여기서 인스턴스 ID, AMI ID, IAM 역할 정보 등 다양한 정보를 조회할 수 있습니다.

    서비스 영향에 대한 부분

    IMDS 영향도 점검 대상 영역

    • EC2 인스턴스 내 사용자 스크립트 (bash, python 등에서 IMDSv1 방식으로 직접 접근하는 코드)
    • 애플리케이션 코드 (예: IAM 역할 크리덴셜을 IMDS에서 직접 가져오는 코드)
    • EC2에 설치된 AWS 에이전트/데몬
      • SSM Agent
      • CloudWatch Agent
      • Inspector Agent 등 (대부분 최신 버전은 IMDSv2 지원)
    • AWS SDK/CLI를 사용하는 툴이나 라이브러리 (IMDS 접근 시 내부적으로 사용)

    서비스(외부 서비스나 네트워크 인프라) 부분은 보통 IMDS와 직접 관련이 없으니 영향도 점검 대상이 아닙니다.

    예를 들어, 로드밸런서, RDS, VPC 등 외부 서비스는 IMDS를 호출하지 않습니다.

    IMDS는 오직 EC2 인스턴스 내부에서만 접근 가능합니다.

    IMDSv1의 취약점: SSRF 공격 시나리오

    1. 문제의 핵심

    IMDSv1는 HTTP GET 요청만으로 메타데이터를 조회할 수 있어, 별도의 인증 절차가 없습니다.
    이 때문에 내부 서비스가 SSRF(Server-Side Request Forgery) 취약점을 갖고 있다면, 공격자가 IMDS에 접근해 민감한 IAM 임시 자격증명을 탈취할 수 있습니다.

    2. SSRF 공격 시연 사례

    • 공격자는 취약한 웹 애플리케이션에 다음과 같이 요청합니다: 
    • http://vulnerable-app.local/proxy?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/
    • 메타데이터 서비스가 반환하는 IAM 역할 이름과 임시 자격증명을 획득
    • 이 정보를 이용해 AWS API에 인증된 호출을 할 수 있습니다.

    3. 실습용 명령어 예시

    # IAM 역할 이름 조회
    curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
    
    # 임시 자격증명 조회
    curl http://169.254.169.254/latest/meta-data/iam/security-credentials/RoleName

    RoleName 은 앞에서 조회한 실제 IAM 역할 이름으로 교체해야 합니다.

    IMDSv1 취약점이 가져온 위험

    • 탈취된 IAM 임시 자격증명으로 인해 EC2 인스턴스 권한 범위 내에서 AWS 자원에 대한 무단 접근, 조작 가능
    • 기업 데이터 유출, 인프라 손상, 금전적 피해까지 이어질 수 있는 심각한 보안 위협

    IMDSv2: 보안 강화의 시작

    AWS는 IMDSv1의 보안 취약점을 보완하기 위해 IMDSv2를 도입했습니다.

    IMDSv2 주요 특징

    • 토큰 기반 인증
      최초에 PUT 요청으로 토큰을 발급받고, 이후 메타데이터 요청 시 토큰을 반드시 헤더에 포함해야 함
    • SSRF 공격 완화
      토큰 발급 절차가 있어 단순 SSRF 공격으로는 메타데이터 접근 불가
    • 선택적 또는 필수 적용 가능
      EC2 인스턴스 메타데이터 옵션에서 IMDSv2만 허용하도록 설정 가능

    IMDSv2 적용 방법

    aws ec2 modify-instance-metadata-options \
      --instance-id i-xxxxxxxxxxxxxxxxx \
      --http-tokens required \
      --http-endpoint enabled
    • http-tokens required 설정 시 IMDSv2 토큰 없이는 메타데이터 접근이 차단됩니다.

    마무리 및 권장 사항

    • 즉시 IMDSv2 적용을 권장합니다.
    • 내부 애플리케이션에서 IMDS 호출이 있다면 반드시 IMDSv2 방식으로 변경해야 합니다.
    • SSRF 취약점 제거와 IAM 역할 최소 권한 원칙도 병행해야 합니다.
    반응형
Designed by Tistory.