AWS EC2 메타데이터를 비활성화하는 방법은 무엇입니까?

이 기사에서는 EC2 메타데이터와 이것이 중요한 이유에 대해 설명합니다. SSRF와 같은 공격으로부터 자신을 보호하기 위해 메타데이터를 비활성화하는 방법도 배우게 됩니다.

Amazon Web Services(AWS)에는 확장 가능한 처리 기능을 제공하는 Amazon Elastic Compute Cloud(Amazon EC2) 서비스가 있습니다. Amazon EC2를 사용하면 초기 하드웨어 투자 없이 앱을 더 빠르게 개발하고 배포할 수 있습니다.

필요에 따라 가상 서버를 많거나 적게 시작합니다. Amazon EC2를 사용하여 네트워킹 및 보안 설정을 지정하고 스토리지를 제어합니다.

실행 중인 인스턴스에서 사용자 지정하거나 관리할 수 있는 인스턴스에 대한 정보를 인스턴스 메타데이터라고 합니다. 인스턴스 메타데이터 범주에는 호스트 이름, 이벤트 및 보안 그룹이 포함됩니다. 또한 인스턴스 메타데이터를 사용하여 인스턴스를 시작할 때 지정한 사용자 데이터에 액세스할 수 있습니다.

인스턴스를 구성하는 동안 짧은 스크립트를 포함하거나 매개변수를 지정할 수 있습니다. 사용자 데이터를 사용하여 일반 AMI를 생성하고 시작 시간 구성 파일을 변경할 수 있습니다.

인스턴스 메타데이터 옵션을 사용하여 다음 작업을 수행하도록 신규 또는 기존 인스턴스를 설정할 수 있습니다.

  • 인스턴스 메타데이터 요청이 IMDSv2를 통해 전송되도록 요구
  • PUT 응답 홉 제한을 입력합니다.
  • 인스턴스 메타데이터 액세스 잠금

다음 기술 중 하나를 사용하여 활성 EC2 인스턴스에서 메타데이터에 액세스할 수 있습니다. IMDSv1sIMDSv2

인스턴스 메타데이터 서비스는 IMDS로 알려져 있습니다. 짐작할 수 있듯이 방법론은 약간 다릅니다. IMDSv1은 요청/응답 방식을 사용하는 반면 IMDSv2는 세션 지향적입니다.

AWS는 선호하는 방법인 IMDSv2를 사용할 것을 권장합니다. 기본적으로 AWS SDK는 IMDSv2 호출을 사용하며 IAM 정책에서 IAM 조건 키를 사용하여 IMDSv2가 활성화된 새 EC2를 구성하도록 사용자에게 요구할 수 있습니다.

다음 IPv4 또는 IPv6 URI를 사용하여 실행 중인 인스턴스에서 모든 유형의 인스턴스 메타데이터를 봅니다.

IPv4

컬 http://169.254.169.254/latest/meta-data/

IPv6

컬 http://[fd00:ec2::254]/최신/메타데이터/

IP 주소는 링크 로컬 주소이며 인스턴스에서만 유효합니다.

인스턴스 메타데이터를 보려면 링크 로컬 주소 169.254.169.254만 사용할 수 있습니다. URI를 통한 메타데이터 요청은 무료이므로 AWS에서 추가 요금이 부과되지 않습니다.

메타데이터 비활성화의 필요성

AWS 설정에서 SSRF 공격은 빈번하고 모든 사람에게 잘 알려져 있습니다. 취약점 스캐닝을 자동화하고 공개적으로 액세스 가능한 온라인 애플리케이션에서 IAM 자격 증명을 수집하는 공격자는 Mandiant(사이버 보안 회사)에 의해 발견되었습니다.

  Apple Watch가 알림을 받지 못하는 문제를 해결하는 방법

추가적인 보안 이점이 있는 모든 EC2 인스턴스에 대해 IMDSv2를 구현하면 회사의 이러한 위험을 줄일 수 있습니다. 적이 SSRF를 통해 IAM 자격 증명을 훔칠 가능성은 IMDSv2를 사용하면 크게 줄어듭니다.

SSRF(Server Side Request Forgery)를 사용하여 EC2 메타데이터 서비스에 액세스하는 것은 가장 자주 가르치는 AWS 활용 기술 중 하나입니다.

메타데이터 서비스는 169.254.169.254에서 대부분의 EC2 인스턴스에 액세스할 수 있습니다. 여기에는 IP 주소, 보안 그룹 이름 등과 같은 인스턴스에 대한 유용한 정보가 포함됩니다.

IAM 역할이 EC2 인스턴스에 연결된 경우 메타데이터 서비스에는 이 역할로 인증하기 위한 IAM 자격 증명도 포함됩니다. 사용 중인 IMDS의 버전과 SSRF의 기능에 따라 해당 자격 증명을 훔칠 수 있습니다.

EC2 인스턴스에 대한 셸 액세스 권한이 있는 공격자가 이러한 자격 증명을 얻을 수 있다는 점도 고려해 볼 가치가 있습니다.

이 예에서 웹 서버는 EC2 인스턴스의 포트 80에서 실행됩니다. 이 웹 서버에는 GET 요청을 모든 주소로 보낼 수 있는 간단한 SSRF 취약점이 있습니다. 이것은 http://169.254.169.254로 요청을 보내는 데 사용할 수 있습니다.

메타데이터를 비활성화하려면

인스턴스 메타데이터 서비스의 HTTP 끝점을 차단하면 사용 중인 인스턴스 메타데이터 서비스의 버전에 관계없이 인스턴스 메타데이터에 대한 액세스를 방지할 수 있습니다.

HTTP 끝점을 활성화하여 언제든지 이 변경 사항을 되돌릴 수 있습니다. modify-instance-metadata-options CLI 명령을 사용하고 http-endpoint 파라미터를 disabled로 설정하여 인스턴스의 메타데이터를 비활성화합니다.

메타데이터를 비활성화하려면 다음 명령을 실행합니다.

aws ec2 modify-instance-metadata-options –instance-id i-0558ea153450674 –http-endpoint 비활성화됨

메타데이터 비활성화

메타데이터를 비활성화한 후 액세스하려고 하면 FORBIDDEN 메시지가 표시됩니다.

메타데이터를 다시 활성화하려면 다음 명령을 실행하세요.

aws ec2 modify-instance-metadata-options –instance-id i-0558ea153450674 –http-endpoint 활성화됨

메타데이터 다시 활성화

결론

메타데이터는 대규모 데이터 저장소에서 정보를 추출하는 데 유용할 수 있습니다. 그러나 자신이 알지 못하거나 동의하지 않고 사람의 위치나 신원을 아는 데 오용될 수도 있습니다. 삭제 및 댓글을 포함한 모든 변경 사항을 기록하기 때문에 다른 사람이 볼 수 없도록 하려는 정보가 포함될 수 있음을 인지해야 합니다. 결과적으로 메타데이터를 제거하는 것은 온라인 개인 정보 및 익명성을 유지하는 데 매우 중요합니다.

  Google 기념일 로고를 오프라인으로 저장하는 방법

AWS 학습을 발전시키는 몇 가지 AWS 주요 용어를 탐색할 수도 있습니다.