텔레그램 (Telegram, 보안 메시징 서비스)을 노린 러시아발 악성코드 Telegrab
게시: 2018년 5월 16일 오전 10시 17분(PDT 기준)
서론
Talos는 지난 한달 반 동안 암호화 인스턴트 메시징 서비스인 Telegram에서 캐시파일과 핵심 파일을 수집하는 멀웨어를 발견했습니다. 이 멀웨어는 2018년 4월 4일에 처음 발견됐으며 4월 10일에 두 번째 변종이 출현했습니다.
초기에 등장한 멀웨어는 시스템에서 발견한 모든 텍스트 파일을 비롯해 브라우저 자격 증명과 쿠키만 탈취하는 데 반해, 두 번째 등장한 변종은 Telegram의 데스크톱 캐시 및 핵심 파일뿐만 아니라 Storefrone Steam 비디오 게임의 로그인 정보까지 수집했습니다.
Talos는 이 멀웨어로 추정되는 인물의 신원을 파악할 수 있었습니다. 이 개발자는 Telegram의 수집 파일을 사용하여 Telegram 세션을 탈취하는 방법과 배포 목적으로 이를 패키지화하는 방법을 설명하는 YouTube 동영상을 여러 차례 게시했습니다.
이 멀웨어 유포자는 하드코딩된 여러 개의 pcloud.com 계정을 사용하여 추출한 정보를 저장합니다. 이 정보는 암호화되지 않으므로 이 자격 증명을 확보한 사람이라면 누구나 유출된 정보에 액세스할 수 있습니다.
이 멀웨어는 주로 러시아어를 구사하는 사용자를 표적으로 삼으며 익명 서비스와 관련된 IP 주소 의도적으로 배제합니다.
데스크톱 버전에 대한 Telegram의 책임 부인
이 멀웨어는 Telegram의 취약점을 공략하거나 악용하지 않습니다. 대신, 비공개 대화(Secret Chat) 기능을 지원하지 않고 기본 설정이 허술한 Telegram의 데스크톱 버전에 영향을 미칩니다.
https://core.telegram.org/tsi/e2ee-simple#2-why-are-there-no-secret-chats-on-desktop-apps
Telegram 데스크톱 및 웹 버전이 비공개 대화 기능을 지원하지 않는다는 사실은 telegram.org 웹사이트에 명확히 명시되어 있습니다. 이 두 버전은 클라우드를 기반으로 하므로 로컬 저장 콘텐츠가 존재하지 않는 것으로 전제합니다. 이 멀웨어는 버그가 아닌 비공개 대화 기능의 부재를 악용할 뿐입니다. Telegram 데스크톱 버전은 기본적으로 자동 로그아웃 기능이 실행되도록 설정되어 있지 않습니다. 멀웨어는 이 두 가지 맹점을 악용하여 세션을 장악하고, 결과적으로 대화 내용을 탈취합니다.
그렇다고 해서 Telegram의 보안이 뚫렸다거나 모바일 플랫폼의 비공개 대화 기능 공격에 이 공격 수법을 사용할 수 있다는 의미는 아닙니다.
Telegram 데스크톱 데이터 가치
신종 멀웨어는 Telegram 캐시 데이터 전체를 수집하여 압축한 후 파일을 추출합니다.
데이터 추출 준비에 사용되는 코드
Talos는 이 정보를 확보하여 Telegram 세션을 탈취하는 방법에 관한 실습 영상을 찾아냈습니다. 그 방법을 요약하자면, 세션이 공개되어 있는 경우 캐시 파일과 맵 파일을 기존의 Telegram 데스크톱 설치 지점에 복원하는 것입니다. 이렇게 하면 피해자의 세션과 연락처 목록 및 이전 채팅 내용에 액세스할 수 있습니다. Talos는 영상 제작자와 멀웨어 개발자가 동일 인물이라고 확신하고 있습니다.
하지만 흔히 있는 일은 아닙니다. Talos가 알고 있는 바로는 캐시 정보를 해독할 수 있는 툴은 존재하지 않습니다. GitHub TelegramDesktop 리포지토리에 게시된 글[여기]에서는 캐시 정보를 해독할 툴을 개발하는 것이 가능하다고 나와 있습니다.
Telegram 데스크톱 데이터의 파일을 암호화하는 데 사용되는 키는 사용자의 비밀번호로 암호화되는 map* 파일에 저장됩니다.
GitHub.com TelegramDesktop 리포지토리
사이버 범죄자가 이 파일의 비밀번호를 모르더라도 무차별 암호 대입 공격으로 파일에 어렵지 않게 침투할 수 있습니다. 위 예시의 코드는 이미 만들어져있는 구성 요소만을 사용해서 파일을 여는 방법입니다. Telegram은 AES를 통해 암호화하기 때문에 OpenCL을 사용하거나 HashCat용 add-on을 설치하더라도 우수한 성능을 유지할 수 있습니다.
사이버 범죄자는 로컬 캐시 데이터에만 액세스할 수 있습니다. Telegram은 로컬로 저장되는 데이터에 대해 어떠한 보증도 하지 않으므로 사용자는 이 점을 명심해야 합니다. 단, 채팅 내용은 클라우드에 저장됩니다
멀웨어 개발자
Talos는 이 멀웨어의 다양한 변종을 분석한 끝에, Eyenot(Енот/Enot) 및 Racoon Pogoromist(sic)로 알려진 Racoon Hacker라는 이름의 사용자가 이 멀웨어와 연관이 있다는 사실을 밝혀냈습니다.
동영상을 대략적으로 분석해본 결과, Racoon Hacker는 러시아어를 모국어로 사용하며 Python 프로그래밍 언어에 능통한 것으로 추정됩니다. 확보한 게시물이나 동영상은 많지 않지만 모든 자료를 종합해볼 때, 타 계정 도용자나 페이로드 로더 개발과 관련이 있었습니다. 동영상에서는 이 멀웨어의 변종에 사용된 것과 유사한 플랫폼/수법이 자주 거론됩니다.
키릴 문자 기반 사용자 경로
위 이미지의 코드 첫 번째 줄에서 개발자가 키릴 문자 기반의 언어를 사용한다는 것을 잘 알 수 있습니다. 사용자 홈 디렉토리의 해독에는 CP-1251 문자 인코딩 체계가 동원되는데, 이는 주로 러시아어나 우크라이나어와 같은 언어에 사용됩니다.
Racoon Hacker는 Telegram 세션을 탈취하는 방법을 소개하는 YouTube 동영상(위 참조)을 게시했습니다. 동영상을 잘 보면 enot 사용자를 지칭하는 것을 발견할 수 있습니다.
영상에서 확인된 Enot
Racoon Hacker는 러시아 중급 해킹 포럼인 lolzteam.net에서 2017년 가을 무렵부터 활동을 시작했으며, 현재 Racoon Progoromist라는 이름으로 활동하고 있습니다. 그는 멀웨어 제작 과정을 간략히 소개한 "2018년 Telegram 공략"이라는 제목의 게시글을 올렸습니다.
Telegram 세션 탈취 툴에 관한 블로그 게시글
또 다른 중급 해킹 포럼인 sft.st에서도 이 소프트웨어에 대해 다루고 있는데, 여기서는 Python 스크립트 GitHub 링크를 비롯해, 사용자들이 그의 수법을 모방하는 데 사용할 수 있는 기타 툴을 설명하고 있습니다.
GitHub를 언급한 sft.st 포럼 자료
현재 Enot272 소유의 GitHub 계정에는 python 스크립트가 없지만, Talos는 콘텐츠 목록을 찾아낼 수 있었습니다.
GitHub Stealer_for_Telegram_Desktop 리포지토리 콘텐츠
GitHub TelegramDesktop 리포지토리의 콘텐츠에는 앞서 언급한 동영상과 동일한 이름의 파일과 이 동영상에 대한 링크가 있습니다. 바로 여기서 Racoon Hacker와 enot272 사용자가 긴밀한 연관이 있음을 추정할 수 있습니다. Stealer_for_Telegram_Desktop은 삭제됐지만 GitHub에 이 게시물이 올라온 시점에 enot272 소유의 계정은 여전히 활동 중이었습니다. 계정의 상세 정보를 살펴봤더니 Racoon Hacker가 신종 멀웨어의 개발자라는 두 가지 증거를 추가로 발견했습니다.
Enot272 GitHub.com 계정 상세 정보
이 사용자의 아이콘은 동영상을 게시한 YouTube 계정의 아이콘과 동일합니다. 그리고 이 계정은 별점 2점을 받았는데, 그 중 하나는 변종 멀웨어가 pcloud.com 클라우드 스토리지 서비스에 데이터를 추출하기 위해 사용한 API와 동일합니다. 이 API는 사용자들에게 인기가 없어서 별점 8점을 받았습니다.
특히 한 영상에서 Racoon Hacker가 멀웨어와 연관이 있다는 확실한 증거를 발견했습니다. 이 영상은 AutoIt로 제작한 로더의 사용법을 설명하고 있습니다.
tesytest1enot.ucoz.net 파일 관리자 콘텐츠
3분 6초짜리 동영상에서는 testytest1enot.ucoz.net라는 웹사이트의 콘텐츠가 등장합니다. 여기서, 지금까지 언급한 두 개의 멀웨어 변종과 정확히 일치하는 두 개의 파일명(dist1.txt 및 sdadasda.txt)을 볼 수 있습니다. URL 역시 드롭퍼에서 발견된 것과 정확히 일치합니다.
변종 멀웨어의 URL
로더의 크레딧은 다른 사용자의 것으로 보여지지만 이 Telegrab 역시 이 특정 로더/드롭퍼를 통해 배포되고 있습니다.
enotproject.exe의 역코드
또한, 멀웨어가 액세스하지 말아야 할 IP 목록을 다운로드하기 위해 사용한 URL내에도 동일한 사용자정보인 enot272가 포함되어 있습니다.
멀웨어 상세 정보
이 멀웨어는 각기 다른 언어로 제작된 다양한 다운로더를 통해 유포됩니다. Talos는 세 가지 이상의 언어(Go, AutoIT, Python)와 네 번째 언어의 프로토타입(DotNet)을 발견했으며, 그 중 하나는 실행 파일로 컴파일된 AutoIT 스크립트입니다.
AutoIT 스크립트를 역컴파일하자, 많은 이름 중에 whiteproblem.exe라는 이름의 검색기 다운로드 실행 파일을 발견했습니다(IOC 섹션 참조).
다운로드되는 멀웨어는 Go로 작성된 실행 파일인 finder.exe을 기준으로 했을 때 두 가지 변종으로 나뉩니다. 첫 번째 변종은 finder.exe만 사용합니다. 두 번째 변종은 RAR 자동 추출 파일로 배포되는데, 그 중에는 finder.exe 외에 enotproject.exe 또는 dpapi.exe라는 이름의 Python 스텁 실행 파일도 있습니다.
RAR 자동 추 파일 헤더
압축을 해제하면 위에 보이는 설정 변수에 따라 finder.exe가 실행됩니다.
finder.exe는 하드 드라이브에서 Chrome 브라우저 자격 증명을 검색하고, 세션 쿠키에서 기본 사용자를 검색합니다. 하드 드라이브를 검색하는 동안 시스템상의 모든 텍스트 파일(.txt)도 수집합니다. 두 번째 변종이 실행되면 상황에 따라 두 번째 실행 파일인 enotproject.exe이나 dpapi.exe를 실행합니다.
또한 이 실행 파일은 수집된 정보를 추출합니다. 이 데이터는 GitHub[여기]에서 제공되는 오픈 소스 라이브러리를 사용하여 pcloud.com 웹사이트에 업로드 됩니다.
pCouldClient.Login() 호출
인증은 finder.exe 자체에 하드코딩된 자격 증명을 통해 수행됩니다. Talos는 finder.exe 표본에서 5개의 pcloud.com 계정을 발견했습니다. 코드를 분석해본 결과, 추출된 데이터를 암호화한 흔적은 발견되지 않았습니다. 즉, 이 자격 증명을 가진 사람이라면 누구나 이 정보에 액세스 할 수 있으므로 훨씬 더 위험합니다.
두 번째 변종은 Python으로 작성된 enotproject.exe 또는 dpapi.exe라는 파일이며, pyinstaller를 사용해 실행 파일로 패키지화 됩니다. 일반적으로 dpapi.exe의 타임스탬프가 enotproject.exe보다 오래됐으며, 코드가 더 간단한 것으로 보아 이 멀웨어에서 진화한 변종임을 쉽게 알 수 있습니다.
enotproject.exe에는 Telegram과 Steam 데이터를 수집하는 코드가 추가되어 있습니다. 또한 이 코드는 피해자의 IP 주소가 https://enot272[.]neocities[.]org/IPLogger-output.txt에서 다운로드한 목록에 포함되어 있는지 확인합니다. 피해자의 IP 주소가 목록에 있으면 멀웨어가 종료됩니다. 이 목록에는 기타 국가의 익명 서비스와 함께 중국 및 러시아 IP 주소가 포함되어 있습니다.
Steam and Telegram에 대한 정보를 수집하는 코드는 2018년 4월 10일에 처음 발견됐습니다.
세 번째 버전의 Python 코드는 py2exe 실행 파일로 패키지화된 것으로 확인됐습니다. 이 코드는 두 번째 변종에서 발견된 enotproject.exe와 유사하지만 독립 실행 파일이라는 점이 다릅니다. 이 변종에는 추출 코드가 없기 때문에 공격자가 이 정보를 수집하는 방법을 알 수 없습니다. 타임스탬프로 미루어 보건대 이 변종은 최근 유포된 것으로 추정됩니다.
멀웨어에 Persistence 메커니즘을 지속적으로 사용하지 않은 것으로 보아, 이 공격자들은 정보 수집에만 관심을 기울인 것으로 보입니다.
결론
이 멀웨어의 가장 흥미로운 기능은 Telegram 세션 탈취입니다. 이 공격 수법은 세션 탈취를 실시하는 데 한계가 있음에도 불구하고 피해자의 연락처 목록과 이전 채팅 내용을 수집할 수 있습니다. 어떤 취약점을 악용하지 않고서도 이런 종류의 정보를 수집하는 멀웨어는 흔치 않습니다. 암호화된 메시징 시스템 사용자는 이 멀웨어를 경계해야 합니다. 명확히 설명되지 않은 기능과 허술한 기본 설정 때문에 개인정보가 유출될 수 있습니다.
대규모 범죄 단체가 동원하는 대규모 봇 네트워크에 비하면 이 위협이 대수롭지 않게 보일 수도 있습니다. 그러나 이렇게 사소한 멀웨어가 감시망을 피하면서 한 달도 채 되지 않은 기간 동안 수천 개의 자격 증명을 탈취함으로써 피해자의 개인 정보에 막대한 영향을 미치고 있다는 사실을 명심해야 합니다. 이 멀웨어 사용자는 자격 증명과 쿠키를 도용하여 vk.com, yandex.com, gmail.com, google.com 등의 웹사이트에서 피해자 정보에 액세스할 수 있습니다. Talos가 분석한 멀웨어 표본은 그리 정교하지는 않지만 효율적입니다. 지속성 메커니즘은 적용되지 않았기에 피해자가 멀웨어를 실행하더라도 재부팅했을 때 자동으로 다시 실행되지 않습니다.
대응
고객이 위협을 탐지하고 차단하는 데 유용한 기타 솔루션은 다음과 같습니다.
AMP(Advanced Malware Protection)는 공격자가 사용하는 멀웨어가 실행되는 것을 방지하는 데 이상적입니다.
CWS 또는 WSA 웹 검사 솔루션은 악성 웹사이트에 대한 접속을 방지하고 이 공격 수법에 사용되는 멀웨어를 감지합니다.
Email Security는 해커가 공격의 일환으로 보낸 악성 이메일을 차단할 수 있습니다.
NGFW, NGIPS, Meraki MX 같은 네트워크 보안 어플라이언스는 이 위협과 관련된 악성 트래픽을 감지할 수 있습니다.
AMP Threat Grid는 악성 바이너리를 식별하고 모든 Cisco 보안 제품에 보호 기능을 구축하는 데 효과적입니다.
Talos의 인터넷 보안 게이트웨이(SIG)인 Umbrella는 사용자가 회사 네트워크 안팎에서 악성 도메인, IP 및 URL에 연결하는 것을 방지합니다.
Open Source Snort Subscriber Rule Set 고객은 Snort.org에서 최신 룰 팩을 구매해 다운로드함으로써 최신 상태를 유지할 수 있습니다.
'디지털 세상 > 보안' 카테고리의 다른 글
NavRAT, 북미 정상회담을 대한민국 사이버 공격을 위한 미끼로 사용 (0) | 2018.06.01 |
---|---|
Talos 블로그 - 전 세계 50만 대의 네트워킹 장비를 공격한 신종 VPNFilter 멀웨어 (0) | 2018.05.25 |
네티즌이라면 알아야할 개인정보보호, GDPR은 무엇? (0) | 2018.04.10 |
바이러스 백신 프로그램으로 위장한 신종 Android 악성 프로그램 KevDroid 발견 (0) | 2018.04.06 |
사이버 공격자들이 진화한다 (0) | 2018.03.12 |