AWS와 같은 클라우드 공격 표면에도 많은 시스템들이 디폴트 페이지 그대로 방치되어 있다. AWS 클라우드 자산 특성을 잘 이해하는 엔지니어나 AWS의 디폴트 페이지를 봤던 사람들이라면 연관된 키워드를 사용해 OSINT (Open Source Intelligence) 검색으로 디폴트 페이지 상태의 방치된 시스템을 쉽게 탐지할 수 있다. AWS 역시 특정 제품명을 몰라도 쉬운 몇 가지 키워드로 클라우드 공격 표면을 찾아낼 수 있다.
본 글은 이전 글인 디폴트 페이지 노출: 디폴트 페이지에서 발생하는 보안 위협 글과 이어지므로, 이전 글을 먼저 읽어보는 것을 추천한다.
방치된 AWS 자산으로 클라우드 공격 표면 탐지
대표적인 키워드로 “Instance data”를 검색할 수 있다. 클라우드에서는 VM 인스턴스를 많이 사용할 수밖에 없기 때문에, 단순히 이 키워드로만 검색해 봐도 많은 디폴트 상태의 AWS 시스템을 찾을 수 있다.
https://www.criminalip.io/asset/search?query=%22Instance%20data%22

“Instance data” 키워드로 검색한 방치된 AWS 클라우드 공격 표면 서버
아래 스크린샷을 보면, Instance data 기본 페이지에는 VM 인스턴스 ID, Private IP 주소, AWS Region과 심지어 데이터베이스인 RDS 정보까지 포함되어 있다.

“Instance data” 키워드로 찾아낸 AWS 기본 페이지에 노출된 정보
다음으로는 HTML에서 예상되는 문자열로 검색할 수 있다. “class=VmInfo”라는 문자열로 검색해보면 VM 서버들과 연관된 시스템 IP주소가 다수 검색된다. 특히 아래 이미지와 같이 HTML Title이 “Document”로 표시되는 결과들이 있다. 한 페이지에 접속해 확인한 결과, 해당 웹 어플리케이션은 AWS, Azure 등 클라우드 서비스의 가상머신(VM) 정보가 포함되어 있었다.
https://www.criminalip.io/asset/search?query=%22class%3DVmInfo%22

Criminal IP Asset Search 에 “class=VmInfo” 키워드로 검색한 결과

HTML Title 제목이 “Document”로 표시된 웹 어플리케이션 접속 화면, AWS 가상머신(VM) 정보가 포함되어 있다.
아마존 클라우드 포메이션(AWS CloudFormation) 의 보안 위협
AWS 서비스의 특정 제품에서도 클라우드 공격 표면을 탐지할 수 있다. 기본 서비스 페이지 노출 이슈가 있는 제품으로는 클라우드 포메이션 (CloudFormation)이 있다.
AWS의 클라우드 포메이션은 리소스를 자동으로 생성해 주는 서비스로, 템플릿 파일로 작성된 AWS 리소스를 클라우드 포메이션이 분석해 자동으로 생성한다. 클라우드 포메이션을 사용하면 인프라를 소프트웨어 코드로 처리하여 자동화할 수 있기 때문에, 손쉽게 AWS 리소스와 서드 파티 리소스를 모델링, 프로비저닝 및 관리할 수 있다.
https://www.criminalip.io/asset/search?query=title:%22AWS%20CloudFormation%20PHP%20Sample%22

Criminal IP Asset Search에 title 필터로 AWS 클라우드 포메이션을 검색한 결과
이토록 편리한 자동화 시스템의 보안 문제를 경시한 채 외부에 노출되도록 방치해 둔다면, 해커 역시 매우 편리하게 이 시스템을 이용할 수 있다. 위 스크린샷은 Criminal IP Asset Search (https://www.criminalip.io/asset)에서 “title:AWS CloudFormation PHP Sample”로 검색한 결과이다. PHP로 개발하려는 사이트의 클라우드 포메이션 디폴트 페이지 IP 주소만 무려 824개가 검색되고 있다. 검색된 서버 중 한 웹 서버는 아래와 같이 PHP Sample 페이지로 접속되었다. 여기에는 Server 정보, EC2 Instance 정보, Database 정보와 PHP Information으로 phpinfo()가 실행된 결과 화면이 노출되어 있다. 지금은 phpinfo() 뿐인 화면이지만 CloudFormation 템플릿은 .json, .yaml, .template 또는 .txt 등 모든 확장명 텍스트 파일로 파일을 저장할 수 있기 때문에, 해커가 더 많은 접근 권한이 노출된 디폴트 페이지를 발견한다면 데이터 추출 기능으로 추가 액션을 수행할 수도 있다.

Server, EC2 Instance, Database 정보와 PHP Information으로 phpinfo()가 실행된 결과 화면이 노출되어있는 클라우드포메이션 디폴트 페이지
아마존 AWS EC2 (Elastic Compute Cloud) 클라우드 공격 표면 탐지
다음으로는 아마존 AWS EC2(Elastic Compute Cloud) 클라우드 공격 표면 자산을 검색하는 방법이다. “Amazon EC2 Instance”라는 직관적인 키워드를 사용할 수 있다. 검색된 결과를 보면 EC2 인스턴스 ID 정보가 포함되어있는 기본 페이지가 결과가 나온다.
https://www.criminalip.io/asset/search?query=amazon%20EC2%20Instance

Criminal IP Asset Search에 “Amazon EC2 Instance” 키워드로 검색한 결과

Amazon EC2 Instance ID가 노출된 디폴트 페이지
AWS 패러렐 클러스터(Parallel Cluster) 디폴트 페이지 정보 찾기
AWS 페러렐 클러스터(Parallel Cluster)는 AWS HPC(고성능 컴퓨팅) 클러스터를 배포하고 관리할 수 있도록 지원하는 오픈 소스 클러스터 관리 도구로, 필요한 자원과 공유 파일 시스템을 자동으로 세팅하도록 도와준다. AWS 패러렐 클러스터의 디폴트 페이지를 탐지하기 위해 역시 제품명을 그대로 넣은 직관적인 키워드 “AWS ParallelCluster”로 검색하면 185개의 클라우드 공격 표면 노출 자산을 확인할 수 있다.
https://www.criminalip.io/asset/search?query=AWS%20ParallelCluster

Criminal IP Asset Search에 AWS 패러렐 클러스터 디폴트 페이지를 검색한 결과
검색된 IP주소들은 AWS 페러렐 클러스터(Parallel Cluster)의 디폴트 페이지인 아래 이미지와 같은 사이트로 접속이 된다.

방치된 클라우드 공격 표면 자산인 AWS 페러렐 클러스터 디폴트 페이지 접속 화면
디폴트 상태의 시스템이 공격 표면에 방치되는 이유
‘시스템 설치 또는 초기화 후 세팅을 완료하지 않은 채 그대로 자리를 뜨는 엔지니어가 있을까’ 하는 생각이 일반적이겠지만, 인터넷에 디폴트 상태의 방치된 시스템은 셀 수 없이 많다. 디폴트 페이지는 전통적이며 보편적인 웹 어플리케이션은 물론이고, 최근에는 클라우드 공격 표면 지점으로도 문제가 되고 있다. 하나의 시스템만 설치하는 경우라면 세팅이 마무리되지 않은 디폴트 페이지가 방치될 일이 드물겠지만, 최근 클라우드 엔지니어들은 동시에 수백여 개 이상의 시스템을 스크립트로 가동하고 자동화하여 세팅을 마무리하는 경우가 많다. 그럴 때에 몇몇 리소스가 구멍 나듯이 누락되는 경우가 있고, 타 부서에 리소스를 이관하면서 누락되기도 한다.
디폴트 상태 그대로 웹 어플리케이션이 활성화되어 있을 때에 CVE 같은 보안 취약점이 없는 경우라면 일반적인 보안 점검이나 보통의 공격 표면 관리 시스템에서는 탐지하기 힘들 수 있다. 따라서 대규모 시스템을 운영 중인 팀에서는 디폴트 페이지 상태로 시스템이 가동되어 있는지 정밀한 인텔리전스를 기반으로 공격 표면 관리를 반드시 수행해야 한다.
데이터 출처 : Criminal IP (https://www.criminalip.io)
관련 글 :
댓글 남기기