프로그래밍공부(Programming Study)/보안(Security)

AWS IMDS의 문제점과 보안 취약성: 무엇을 알고 대비해야 할까?

Chaany 2024. 8. 28.
728x90

AWS IMDS란 무엇인가?

AWS IMDS(Instance Metadata Service)는 AWS에서 실행되는 EC2 인스턴스가 메타데이터 및 사용자 데이터를 조회할 수 있는 서비스입니다. 이 서비스는 인스턴스의 설정 정보를 확인하거나, 임시 보안 자격 증명을 가져오는 등의 작업에 사용됩니다. IMDS는 EC2 인스턴스 내에서 HTTP 엔드포인트(http://169.254.169.254)를 통해 접근할 수 있습니다.

AWS IMDS의 주요 기능

  • 메타데이터 접근: 인스턴스 ID, 인스턴스 타입, AMI ID 등의 정보를 조회할 수 있습니다.
  • 사용자 데이터 접근: 인스턴스가 시작될 때 제공된 스크립트나 설정 데이터를 조회할 수 있습니다.
  • 임시 자격 증명: IAM 역할을 가진 인스턴스에서 임시 자격 증명을 가져와 AWS 리소스에 접근할 수 있습니다.

AWS IMDS의 문제점

보안 취약성

AWS IMDS의 주요 문제점 중 하나는 보안 취약성입니다. IMDS는 EC2 인스턴스 내의 모든 프로세스가 접근할 수 있기 때문에, 만약 인스턴스 내에서 실행되는 애플리케이션이나 스크립트에 취약성이 존재할 경우, 외부 공격자가 이를 악용해 임시 자격 증명을 탈취할 수 있습니다. 특히 SSRF(Server-Side Request Forgery) 공격에 취약하며, 공격자가 인스턴스의 메타데이터에 접근해 민감한 정보를 얻을 수 있습니다.

설정의 복잡성

IMDSv1은 기본적으로 모든 인스턴스에서 활성화되어 있었으나, 이는 보안 취약성 문제를 증가시켰습니다. 이를 개선하기 위해 AWS는 IMDSv2를 도입했지만, 이 버전은 설정이 복잡하고, 기존 애플리케이션과의 호환성 문제를 발생시킬 수 있습니다. IMDSv2는 요청 토큰을 필요로 하며, 이를 구현하기 위해서는 추가적인 개발 작업이 필요합니다.

AWS IMDS 문제를 해결하기 위한 방법

  • IMDSv2 사용: AWS는 보안 강화를 위해 IMDSv2를 도입했습니다. IMDSv2는 요청에 대해 토큰을 사용하며, 이 토큰은 만료 시간이 있어 보안을 강화합니다. 가능한 한 IMDSv2를 사용하도록 설정하고, IMDSv1을 비활성화하는 것이 좋습니다.
  • 네트워크 액세스 제어: IMDS 엔드포인트에 대한 네트워크 접근을 제한하는 보안 그룹이나 네트워크 ACL을 설정하여 외부 공격자가 접근하지 못하도록 해야 합니다.
  • 애플리케이션 보안 강화: 인스턴스에서 실행되는 모든 애플리케이션과 스크립트의 보안을 강화하고, 외부 입력을 철저히 검증하도록 설정합니다. 특히, SSRF와 같은 공격을 방어할 수 있는 보안 조치를 취합니다.

결론

AWS IMDS는 EC2 인스턴스의 메타데이터 및 자격 증명 관리에 필수적인 서비스이지만, 보안 취약성 문제가 존재합니다. 이를 해결하기 위해서는 IMDSv2를 사용하고, 네트워크 액세스를 엄격히 통제하며, 애플리케이션의 보안을 강화하는 것이 중요합니다. AWS의 보안 권장 사항을 준수하여 인스턴스의 안전을 확보하는 것이 필수적입니다.

728x90

댓글