텔레그램 (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에서최신룰팩을구매해다운로드함으로써최신상태를유지할수있습니다.