상세 컨텐츠

본문 제목

SMS 스팸을 이용해 전파되는 새로운 안드로이드 랜섬웨어 발견

국내외 보안동향

by 알약(Alyac) 2019. 7. 30. 16:14

본문

Android ransomware is back 


지난 2년간 안드로이드 랜섬웨어가 주춤한 후, 새로운 랜섬웨어 패밀리가 등장했습니다. 


ESET이 발견한 이 새로운 안드로이드 랜섬웨어는 "Android/Filecoder.C"로, 다양한 온라인 포럼 및 피해자의 모바일 기기 주소록을 통해 악성 링크를 포함한 SMS로 확산됩니다.


좁은 타깃팅, 캠페인 실행 및 암호화 구현에 존재하는 결함으로 인해 이 랜섬웨어의 영향은 제한적입니다. 


하지만, 개발자들이 해당 결함을 수정하고 랜섬웨어 운영자들이 더욱 많은 사용자들을 노릴 경우, Android/Filecoder.C는 심각한 위협이 될 수 있습니다.


Android/Filecoder.C는 늦어도 2019년 7월 12월부터 활동을 시작한 것으로 보입니다. 


연구원들이 이 캠페인을 발견했을 때는 RedditXDA Developers 포럼의 악성 포스트를 통해 확산되었습니다. 


Android/Filecoder.C는 피해자의 주소록 내 모든 연락처로 전달되는 SMS의 악성 링크를 통해 확산됩니다.


랜섬웨어는 악성 SMS를 보낸 후, 기기 내 사용자의 파일 대부분을 암호화하고 랜섬머니를 요구합니다. 


암호화 과정에 존재하는 결함 때문에 공격자의 도움 없이도 암호화된 파일을 해독하는 것이 가능합니다.



배포


연구원들이 발견한 캠페인은 공격자가 제어하는 도메인 2개를 통해 운영되었는데, 이 도메인에는 악성 안드로이드 파일이 포함되어 있었습니다.


공격자는 Reddit [그림 1] 및 XDA Developers forum [그림 2]에서 포르노 관련 포스팅을 통해 사용자들의 주의를 끌었습니다. 


모든 댓글, 포스팅에는 악성 앱으로 연결되는 링크나 QR 코드가 포함되어 있었습니다.

 


[그림 1] 공격자의 Reddit 프로필, 악성 포스팅 및 코멘트




[그림 2] XDA Developers forum 내 공격자의 악성 포스팅 일부

<이미지 출처: https://www.welivesecurity.com/2019/07/29/android-ransomware-back/>



공격자는 Reddit에서 공유된 한 링크에 bit.ly 단축키를 사용한 URL을 사용하였습니다. 


이 bit.ly URL은 2019년 6월 11월 생성되었으며, [그림 3]에서 볼 수 있듯 현재 클릭 수 59를 기록했습니다.



[그림 3] Reddit에 공유 된 랜섬웨어 관련 bit.ly 링크의 통계

<이미지 출처: https://www.welivesecurity.com/2019/07/29/android-ransomware-back/>



확산


Android/Filecoder.C 랜섬웨어는 피해자의 주소록의 모든 연락처에 악성 링크가 포함된 SMS 메시지를 보내어 확산됩니다.


악성 링크는 랜섬웨어로 연결되며, [그림 4]와 같이 타깃 피해자들의 주의를 끌기 위해 해당 사용자의 사진을 앱에서 발견했다는 메시지와 함께 전달됩니다. 


또한 랜섬웨어는 확산을 극대화하기 위해 [그림 5]와 같이 랜섬 메시지를 42개 언어로 배포했습니다. 


메시지를 보내기 전, 해당 사용자의 이름을 앞에 붙여 메시지를 커스터마이징합니다.



[그림 4] 랜섬웨어로 연결되는 링크가 포함된 SMS; 사용자의 언어 설정이 영어인 경우 위의 메시지가 사용됨



[그림 5] 랜섬웨어에 하드코딩된 언어 버전 총 42개

<이미지 출처: https://www.welivesecurity.com/2019/07/29/android-ransomware-back/>



기능


사용자는 이 악성 SMS 메시지를 받은 후 수동으로 앱을 설치해야 하며, 앱이 실행되면 포스팅에서 언급한 콘텐츠가 표시됩니다. 


대부분 포르노 관련 온라인 게임이나, 주된 목적은 C&C 통신, 악성 메시지 확산, 암호화/복호화 메커니즘 구현이었습니다.


이 악성코드의 소스 코드에는 C&C 및 비트코인 주소가 하드코딩되어 있었습니다. 


그러나 주소를 동적으로 받아오는 것도 가능했습니다. Pastebin 서비스를 통해 공격자는 비트코인 주소를 변경할 수 있었습니다.



[그림 6] 랜섬웨어가 C&C 주소를 받아오기 위한 주소 세트의 예



이 랜섬웨어는 사용자의 연락처 목록에 접근이 가능해 문자 메시지를 보낼 수 있습니다.


파일을 암호화하기 전, 위의 "확산" 부분에서 설명된 기술을 통해 피해자 연락처에 저장된 모든 사람들에게 메시지를 보냅니다.


이후 랜섬웨어는 시스템 파일이 있는 부분을 제외한 모든 파일들을 확인 후 이중 대부분을 암호화합니다. 


파일이 암호화된 후, 이 랜섬웨어는 [그림 7]과 같이 영어로 된 랜섬 노트를 표시합니다.



[그림 7] Android/Filecoder.C의 랜섬노트

<이미지 출처: https://www.welivesecurity.com/2019/07/29/android-ransomware-back/>



피해자가 앱을 삭제할 경우, 랜섬노트에 명시된 대로 랜섬웨어는 파일을 해독할 수 없어집니다.


하지만 암호화 과정에 존재하는 결함으로 암호화된 파일을 해독할 수 있습니다.

 

이 랜섬웨어는 감염 후 72간이 지나면 데이터가 삭제된다고 주장하지만, 분석 결과 코드에서는 이러한 주장을 뒷받침하는 기능을 찾아볼 수 없었습니다.


[그림 8]과 같이 요구하는 랜섬 머니의 금액은 부분적으로 동적이며, 기본적으로 하드코딩된 금액인 0.01BTC에, 나머지 여섯 자리로는 악성코드가 생성한 user ID 숫자를 붙입니다.


이 독특한 방식은 입금을 식별하려는 목적인 것으로 추측됩니다. 최근 환율인 1BTC = $9,400으로 환산했을 때, 요구되는 랜섬 머니는 $94 – 188 사이입니다.



[그림 8] 악성코드가 랜섬 머니를 산출하는 법

<이미지 출처: https://www.welivesecurity.com/2019/07/29/android-ransomware-back/>



다른 안드로이드 랜섬웨어들과 달리 Android/Filecoder.C는 스크린 사용을 제한해 모바일폰 사용을 막지는 않습니다.


[그림 9]에서 볼 수 있듯이 비트코인 주소에서는 아무런 거래가 발생하지 않았습니다. 


비트코인 주소는 동적으로 변경될 수 있지만, 연구원들이 발견한 모든 사례에서는 동일한 주소를 사용하고 있었습니다.



[그림 9] 공격자가 사용하는 비트코인 주소

<이미지 출처: https://www.welivesecurity.com/2019/07/29/android-ransomware-back/>



파일 암호화 메커니즘


이 랜섬웨어는 대칭 및 비대칭 암호화 기법을 사용합니다. 


먼저, 공개 및 개인 키 한 쌍을 생성합니다. 개인 키는 코드에 하드코딩된 값을 사용하여 RSA 알고리즘으로 암호화되며 공격자의 서버로 전송됩니다. 


공격자는 개인 키를 해독할 수 있으며, 피해자가 랜섬머니를 지불하면 해독한 개인 키를 피해자에게 보냅니다.


파일을 암호화할 때, 랜섬웨어는 각 파일마다 새로운 AES 키를 생성합니다. 이 AES 키는 공개 키를 사용하여 암호화되고, 암호화된 각 파일의 앞에 붙습니다. 


따라서 파일은 ( (AES)public_key + (File)AES ).seven과 같은 패턴으로 만들어집니다.



[그림 10] 암호화된 파일 구조



이 랜섬웨어는 접근이 가능한 스토리지 경로에서 발견된 아래 파일 타입을 암호화합니다.

“.doc”, “.docx”, “.xls”, “.xlsx”, “.ppt”, “.pptx”, “.pst”, “.ost”, “.msg”, “.eml”, “.vsd”, “.vsdx”, “.txt”, “.csv”, “.rtf”, “.123”, “.wks”, “.wk1”, “.pdf”, “.dwg”, “.onetoc2”, “.snt”, “.jpeg”, “.jpg”, “.docb”, “.docm”, “.dot”, “.dotm”, “.dotx”, “.xlsm”, “.xlsb”, “.xlw”, “.xlt”, “.xlm”, “.xlc”, “.xltx”, “.xltm”, “.pptm”, “.pot”, “.pps”, “.ppsm”, “.ppsx”, “.ppam”, “.potx”, “.potm”, “.edb”, “.hwp”, “.602”, “.sxi”, “.sti”, “.sldx”, “.sldm”, “.sldm”, “.vdi”, “.vmdk”, “.vmx”, “.gpg”, “.aes”, “.ARC”, “.PAQ”, “.bz2”, “.tbk”, “.bak”, “.tar”, “.tgz”, “.gz”, “.7z”, “.rar”, “.zip”, “.backup”, “.iso”, “.vcd”, “.bmp”, “.png”, “.gif”, “.raw”, “.cgm”, “.tif”, “.tiff”, “.nef”, “.psd”, “.ai”, “.svg”, “.djvu”, “.m4u”, “.m3u”, “.mid”, “.wma”, “.flv”, “.3g2”, “.mkv”, “.3gp”, “.mp4”, “.mov”, “.avi”, “.asf”, “.mpeg”, “.vob”, “.mpg”, “.wmv”, “.fla”, “.swf”, “.wav”, “.mp3”, “.sh”, “.class”, “.jar”, “.java”, “.rb”, “.asp”, “.php”, “.jsp”, “.brd”, “.sch”, “.dch”, “.dip”, “.pl”, “.vb”, “.vbs”, “.ps1”, “.bat”, “.cmd”, “.js”, “.asm”, “.h”, “.pas”, “.cpp”, “.c”, “.cs”, “.suo”, “.sln”, “.ldf”, “.mdf”, “.ibd”, “.myi”, “.myd”, “.frm”, “.odb”, “.dbf”, “.db”, “.mdb”, “.accdb”, “.sql”, “.sqlitedb”, “.sqlite3”, “.asc”, “.lay6”, “.lay”, “.mml”, “.sxm”, “.otg”, “.odg”, “.uop”, “.std”, “.sxd”, “.otp”, “.odp”, “.wb2”, “.slk”, “.dif”, “.stc”, “.sxc”, “.ots”, “.ods”, “.3dm”, “.max”, “.3ds”, “.uot”, “.stw”, “.sxw”, “.ott”, “.odt”, “.pem”, “.p12”, “.csr”, “.crt”, “.key”, “.pfx”, “.der”


이 랜섬웨어는 ".cache", "tmp", "temp" 문자열을 포함하는 파일은 암호화하지 않습니다.


또한 파일 크기가 51,200 KB/50 MB 이상인 ".zip", ".rar" 파일, 크기가 150KB보다 작은 ".jpeg", ".jpg", ".png" 파일인 경우 암호화하지 않았습니다.


위 파일 타입 목록에는 안드로이드와 관계가 없는 항목이 포함되어 있으며 일반적인 안드로이드 확장자인 .apk, .dex, .so가 포함되어 있지 않았습니다. 


이 목록은 악명 높은 WannaCry 랜섬웨어의 파일 타입 목록을 복사해온 것으로 보입니다.


파일이 암호화되면, [그림 11]과 같이 ".seven" 확장자가 원본 파일명 뒤에 붙습니다. 

 


[그림 11] ".seven"이 붙은 암호화 된 파일

<이미지 출처: https://www.welivesecurity.com/2019/07/29/android-ransomware-back/>



해독 메커니즘


암호화된 파일을 복호화하는 코드는 랜섬웨어 안에 포함되어 있습니다. 


피해자가 랜섬머니를 지불하면, 이 랜섬웨어의 운영자는 [그림 12]와 같이 웹사이트를 통해 이를 확인하고 파일 암호화에 사용할 개인 키를 보냅니다.



[그림 12] 랜섬머니 지불 확인 웹페이지

<이미지 출처: https://www.welivesecurity.com/2019/07/29/android-ransomware-back/>



하지만, 개인 키를 암호화하는데 사용된 키값이 하드코딩되어 있어 암호화 알고리즘을 해독 알고리즘으로 변경한다면 랜섬머니를 지불하지 않고도 파일을 복호화할 수 있습니다. 


해독에 필요한 것은 [그림 13]과 같이 랜섬웨어가 제공하는 UserID, 제작자들이 하드코딩된 키값을 변경했을 때를 대비한 랜섬웨어의 APK 파일입니다.


지금까지는 모든 Android/Filecoder.C 랜섬웨어 샘플들에서 모두 동일한 값이 발견되었습니다.



[그림 13] 랜섬노트에서 확인할 수 있는 UserID

<이미지 출처: https://www.welivesecurity.com/2019/07/29/android-ransomware-back/>



현재 알약M에서는 해당 랜섬웨어에 대해 'Trojan.Android.Ransom'으로 탐지 중에 있습니다.





출처:

https://www.bleepingcomputer.com/news/security/new-android-ransomware-uses-sms-spam-to-infect-its-victims/

https://www.welivesecurity.com/2019/07/29/android-ransomware-back/


관련글 더보기

댓글 영역