[보안뉴스 문정후 기자] 최근 깃(Git) 환경을 노리는 대형 캠페인이 발견됐다. 에머랄드웨일(EmeraldWhale)이라는 이름이 붙은 이 작전은 보안 업체 시스디그(Sysdig)에서 처음 발견해 세상에 알렸다. 공격자들은 깃을 통해 크리덴셜을 탈취하고, 이를 통해 접속한 후 개인 리포지토리를 복제하며, 소스코드에서 클라우드 크리덴셜까지 빼돌리는 것으로 파악되고 있다. 현재까지 1만 개 이상의 개인 리포지터리에서 피해가 발견되고 있다.
[이미지 = gettyimagesbank]
크리덴셜을 통해 공격자들은 여러 클라우드 서비스 및 이메일 서비스 등을 사칭해 피싱 및 스팸 메일 공격을 하려는 것으로 보인다. 이런 크리덴셜들은 계정 당 수백 달러의 가치를 가지고 있다고 추산되며, 에머랄드웨일을 진행하는 자들은 이런 크리덴셜들을 팔아 상당한 수익을 챙길 것으로 보인다. 뿐만 아니라 자신들이 직접 크리덴셜로 추가 공격을 감행하여 추가 데이터를 가져가는 것도 가능하다.
여기서 잠깐, 깃이란?
깃은 여러 개발자가 동일한 코드베이스를 가지고 작업할 수 있도록 해 주는 통합 버전 관리 시스템으로, 소프트웨어 개발 프로젝트의 관리 및 배포에 활용된다. 코드 공유 서비스로 유명한 깃허브(GitHub)는 이러한 깃을 기반으로 한 서비스 중 가장 대표적인 것이라고 할 수 있다. 깃허브는 리눅스와 명령줄 사용자를 위한 도구로서 큰 인기를 누리고 있다.
깃 디렉터리에는 버전 관리를 위한 모든 정보가 저장되어 있다. 이는 다음과 같은 것들을 포함한다.
1) 전체 커밋(commit) 기록
2) 설정 파일
3) 모든 브랜치 관련 정보
4) 참조 목록
그러므로 깃 디렉터리가 노출되면 공격자는 리포지터리의 역사와 구조뿐만 아니라 프로젝트와 관련된 중요한 정보(커밋 메시지, 사용자 이름, 이메일 주소, 비밀번호, API 키 등)를 쉽게 얻어갈 수 있게 된다.
그렇다면 깃 디렉터리는 어떻게 노출될까? “웹 서버를 잘못 구성하면 깃 디렉터리가 노출됩니다. 아마 가장 많은 경우가 여기에 해당될 겁니다. 웹 서버 권한이 적절히 설정되지 않는 경우 사용자가 웹을 통해 깃 디렉터리에 직접 접근하여 전체 리포지터리를 다운로드 하고 그 내용을 분석할 수 있게 됩니다. 에머랄드웨일은 이 점을 악용하여 리포지터리에서 노출된 크리덴셜을 스캔하고 수집했습니다.”
S3에서 처음 발견돼
시스디그의 연구원들은 처음 클라우드 허니팟을 모니터링하며 수상한 신호들을 발견할 수 있었다고 한다. 신호의 정체는 버킷들의 목록을 작성하라는 요청인 ListBuckets였는데, 이 신호 속에 언급되어 있는 S3 버킷이 시스디그의 것이 아니었다. “알 수 없는 계정과 연계되어 있는 버킷이었습니다. 게다가 인터넷에 노출된 상태였고요. 그래서 이 버킷을 조사하기 시작했고, 추적 끝에 공격자들이 사용하는 것으로 보이는 악성 도구와 1 테라바이트 이상의 탈취 데이터를 발견할 수 있었습니다. 악성 도구를 분석했더니 깃의 설정 파일, Laravel.env 파일, 원시 웹 데이터를 스크랩하는 캠페인이 배후에 있음을 알게 되었습니다.”
그래서 시스디그는 먼저 AWS 측에 해당 캠페인에 연루된 버킷들을 신고했고, AWS는 금방 해당 버킷들을 차단했다고 한다.
깃 설정 파일
사건과 연루된 버킷에서 시스디그는 로그 데이터를 추출했다. “해당 데이터에는 8월부터 9월 사이에 노출된 깃 리포지터리 설정 파일을 겨냥한 대규모 스캔 캠페인의 기록이 담겨 있었습니다. 에머랄드웨일의 운영자들은 여러 가지 스캐닝 도구를 활용해 인터넷을 대규모로 스캔했고, 그물을 광범위하게 펼쳤습니다.”
이 기록에 따르면 공격의 과정은 다음과 같았다.
1) IP 주소 범위가 담긴 긴 목록을 작성한다.
2) 이를 기반으로 관련 해당 주소의 호스트를 자동으로 찾아 크리덴셜을 추출한다(그러한 기능을 가진 도구를 활용).
3) 탈취된 토큰을 사용해 모든 깃 호환 서비스의 공개 및 비공개 리포지터리를 복제한다.
4) 복제된 리포지터리에서 추가로 크리덴셜을 추출한다.
5) 그렇게 해서 얻어낸 모든 결과물을 S3 버킷에 업로드 한다.
에머랄드웨일에서 사용된 도구
시스디그가 에머랄드웨일을 조사하며 찾아낸 공격 도구는 크게 두 가지로, 하나는 MZR 2이고 다른 하나는 세이조 2(Seyzo-v2)였다. “이 두 가지 도구들은 다크웹 암시장에서 쉽게 구매할 수 있습니다. 여러 해커들이 다크웹 포럼을 통해서 이 도구들을 활용하는 법을 상세히 설명하고 있기도 하고, 강좌가 개설되어 있기도 합니다. 그렇기 때문에 피싱 캠페인을 하고 싶은 초보 해커들도 이런 도구와 강좌를 통해 손쉽게 수준 높은 공격을 수행할 수 있게 됩니다.”
MZR과 세이조 모두 공격을 하려면 먼저 공격 대상에 대한 정보를 필요로 한다. 보통은 IP 주소가 나열된 목록이면 충분하다. 이러한 목록은 보통 사용자(즉 공격자)들이 사전에 스캔을 통하여 구성한다. “구글 독스(Google Dorks)나 쇼단(Shodan)과 같은 스캔 도구를 활용하기도 하는데 에머랄드웨일 공격자들의 경우 매스스캔(Masscan)을 가장 많이 사용했습니다. 그 외에 공격자의 필요에 따라 암시장에서 IP 주소 목록을 구매하는 것도 가능합니다.”
MZR의 경우 사용법이나 유의해야 할 사항이 적혀 있는 파일(Readme)이 하나 동봉되어 있다. 이 파일은 영어로 작성되어 있는데, 이것이 MZR을 구성하는 요소들 중 유일한 ‘영어’ 파일이다. “스크립트 주석이나 다른 파일들은 전부 프랑스어로 작성되어 있습니다. MZR 자체는 gitfinder.sh, ghpurl.py, checkuser.sh, dumpsph.sh, parser.sh 등 파이선 스크립트와 셸 스크립트들로 구성되어 있습니다.”
세이조도 MZR과 마찬가지로 크리덴셜을 탈취하는 것을 기본으로 하고 있는 도구다. 여러 모로 MZR과 유사하다고 볼 수 있다. 스크립트 내에 프랑스어 문자열이 여러 개 포함되어 있는 것도 비슷하다. 공격 대상이 된 리포지터리에서 여러 정보를 수집하는데, MZR보다 더 많은 정보를 가져가는 것으로 분석됐다. 특히 SMTP, SMS, 클라우드 메일 서비스와 관련된 크리덴셜을 수집하는 것을 주특기로 하고 있다. MZR이 클라우드 서비스 크리덴셜에 집중되어 있는 것과 상반된 특징이라고 할 수 있다.
에머랄드웨일은 주로 잘못 구성된 서버를 찾아 크리덴셜 등 중요한 정보를 가져가는 공격이었지만, 그것이 전부는 아니었다. 대량의 웹 스크래핑도 한 것이다. “이들은 웹 스크랩을 통해 대량의 정보를 수집했고, 여기서부터 또 클라우드 크리덴셜을 찾아냈습니다. 예를 들어 웹사이트가 기능을 발휘할 때 사용되는 자바스크립트 파일 등에 정적으로 정의된 클라우드 크리덴셜이 있는 경우가 있는데, 이런 정보들이 스크랩을 통해 공격자들의 손으로 넘어갔습니다.”
공격 대상
에머랄드웨일이라는 캠페인을 통해 공격자들이 노린 IP 주소는 5억 개 이상이었다. 도메인은 50만 개 이상, EC2 호스트 이름은 100만 개 이상이었다고 시스디그의 연구원들은 설명한다. “이런 공격 표적들이 전부 목록으로 저장되어 있었습니다. 방대한 목록이었죠. 공격자들은 위에서 언급한 도구인 MZR을 사용해 해당 목록을 스캔했고, 여기서 노출된 URL을 6만 7천 개 이상 발견할 수 있었습니다. 이렇게 골라낸 목록은 텔레그램 상에서 100달러에 판매되고 있었습니다. 단순 목록인데 가격이 꽤 높죠. 그 말은 깃과 관련된 정보를 찾는 시장이 활성화 되어 있다는 것을 뜻합니다.”
공격자들이 가져간 크리덴셜은 대부분 깃허브(GitHub), 빗버킷(BitBucket), 깃랩(GitLab)과 같은 유명 서비스와 연계되어 있던 것들이었다. AWS에서 최근에 서비스를 중단한 코드커밋(CodeCommit) 리포지터리에서 사용되는 크리덴셜도 700개 이상 있었다. “약 6천 개의 깃허브 토큰을 분석했을 때 유효한 크리덴셜이 약 2천 개 있음을 확인할 수 있었습니다. 대부분 개인의 것이거나 소규모 조직의 것으로 분석됐습니다.”
라라벨(Laravel) 환경 파일?
깃 설정 파일과 함께 라라벨의 환경 파일도 에머랄드웨일의 주요 공격 대상인 것으로 분석됐다. 라라벨은 PHP 프레임워크의 일종으로, 최근 수년 동안 공격자들 사이에서 주목 받아 왔다. 그러면서 여러 가지 취약점이 발견되기도 했고, 실제 공격 사례도 다수 발굴된 바 있다. 미국의 사이버 보안 전담 기관인 CISA도 라라벨에 주목하여 보안 권고문을 발표했었다. “라라벨의 환경 파일(.env)에는 클라우드 서비스 제공업체 및 데이터베이스와 관련된 다양한 크리덴셜이 저장되어 있습니다. 그래서 공격자들이 선호하는 것입니다.”
실제로 다크웹에서는 라라벨의 취약점을 익스플로잇 하는 도구들이 활발히 거래되고 있다고 시스디그는 경고한다. “이번 조사를 통해 주요 도구 하나가 발견됐는데, 이름은 멀티그래버(Multigrabber)입니다. 도메인이나 IP를 확인해 .env 파일이 존재하는지 확인한 뒤, 수집한 정보를 스팸이나 피싱 공격에 활용할 수 있도록 분류하는 기능을 가지고 있습니다. 이미 여러 해킹 포럼과 채팅 방에서 쉽게 찾을 수 있으며, 여러 버전이 존재합니다. 버전이 오를 때마다 기능도 새롭게 추가되고 있습니다. 8.5가 최신 버전으로 보입니다.”
크리덴셜, 마르지 않는 샘물
시스디그는 “깃이라는 환경 혹은 라라벨이라는 프레임워크가 위험하다는 게 이번 연구의 결론이 아니”라고 강조한다. “지금 공격자들 사이에서 크리덴셜을 노리는 행위가 크게 유행하고 있다는 게 문제의 핵심입니다. 이들은 크리덴셜을 가져가기 위해 별별 수단을 다 동원합니다. 깃의 설정 오류를 대량으로 스캔해서 크리덴셜을 가져가고 라라벨을 노리는 것도 결국 사용자들이 부주의로 흘린 크리덴셜을 찾기 위해서입니다. 크리덴셜을 보다 확실히 관리할 필요가 있습니다.”
에머랄드웨일 캠페인이 공격 기술과 수준이라는 면에서 그리 높지 않다는 것도 놓치지 말아야 할 것이라고 시스디그는 강조한다. “지금 공격자들은 거의 아무런 노력 없이 크리덴셜을 풍성히 가져가고 있습니다. 일단 크리덴셜을 탈취하는 시장이 고도로 발전되어 있어 공격자들은 자동화 도구를 쉽게 구할 수 있습니다. 심지어 무료로 배포되는 도구도 많습니다. 시장도 활성화 되어 있고요. 그리고 무엇보다 사용자들이 크리덴셜을 소중하게 관리하지도 않습니다. 그런 점들이 맞물려 이 시장을 더 번성케 하고 있습니다.”
결국 비밀 관리 기술만으로 우리의 사이버 환경을 온전히 보호할 수 없다는 걸 인지해야 한다고 시스디그는 강조한다. “이제 크리덴셜이 노출되는 경로가 너무나 많아서 전부를 꼼꼼하게 막는 게 어렵습니다. 그렇게 해야 하지만, 그렇지 못한 게 현실이고, 이 현실이 너무나 길게 우리를 괴롭혀 왔습니다. 따라서 이제는 크리덴셜과 관련된 활동들을 세세하게 모니터링할 필요가 있습니다. ‘비밀’이라는 걸 통으로 보호한다는 개념만으로는 부족합니다.”
3줄 요약
1. 깃 환경에서 설정 오류를 통해 각종 크리덴셜 가져가는 대형 캠페인이 발견됨.
2. 이 대형 캠페인은 기술적으로 고도화 되어 있지 않은데도 성과가 좋음.
3. 크리덴셜을 훔치는 기술은 계속해서 발전하고, 크리덴셜 관리 능력은 함양되지 않고 있음.
[국제부 문정후 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>