랜섬웨어, 스파이웨어, 데이터 도난이 결합된 “EvilQuest”

랜섬웨어 기능이 있는 새로운 macOS 위협이 퍼지고 있다는 소식은 당연히 큰 관심을 끌어 모았습니다. 보안 연구원들은 맬웨어를 연구하는 Dinesh Devadoss가 처음 발견하여 macOS 커뮤니티의 관심을 받았던 이 위협에 대해 철저히 조사했으며, Scott Knight, Patrick Wardle 및 당사의 SentinelLabs 팀이 탁월한 성과를 얻었습니다. 이 위협은 그저 새로운 랜섬웨어가 아니라, Mac 플랫폼을 노리는 보다 복잡한 신종 위협으로서 활발하게 진화하는 중입니다. 이 게시물에서는 지금까지 알려진 내용을 설명하고 최근 되풀이된 사건을 빠르게 훑어봅니다.

EvilQuest, ThiefQuest, MacRansom.K 등 다양한 이름

Malwarebytes의 연구원들은 처음에 이 위협을 “EvilQuest”라고 부르다가 며칠 뒤 “ThiefQuest”로 이름을 바꿨습니다. 제안된 두 가지 이름 외에, 다수의 VT 엔진에서는 MacRansom.K라고 표기합니다.

이로 인해 위협 자체는 물론 위협의 기능에 대한 혼란이 발생했습니다.

Mac.Ransom.K는 알려진 명명 규칙(플랫폼/유형/변형)을 준수하지만, 이 위협은 단순한 랜섬웨어 위협이 아닐 뿐더러 주 기능이 랜섬웨어도 아니기 때문에 이 이름에는 문제가 있습니다. 모든 플랫폼의 맬웨어 작성자가 여러 기능을 제공하기 위해 코드를 재사용하는 일이 많아짐에 따라, 위협 유형별로 분류하는 것은 별로 유용하지 않을 수도 있습니다.

공통의 특징별로 맬웨어 샘플을 논리적으로 그룹화하는 맬웨어 명명 규칙이 효과적입니다. 이와 관련하여 지금까지 샘플에서 확인된 가장 공통적인 특징은 __cstring 리터럴 “toidievitceffe”입니다. 이 리터럴은 “rennur.c”(c.runner) 등 다른 문자열과 마찬가지로 인식 가능한 영어 단어를 역방향으로 쓴 것이 분명합니다.

echo 'toidievitceffe' | rev
effectiveidiot

게다가 개발자들이 명백히 “toidievitceffe”를 Xcode 프로젝트의 이름으로 사용한 것도 확인됩니다.

그 밖에 “naughtycuckoo”, “keylogger”, “filewatcher” 등의 흥미로운 역방향 문자열도 여기에 나옵니다. 아래에서 자세히 설명하겠지만, 이러한 문자열을 통해 위협 행위자의 진정한 동기를 더 잘 파악할 수 있습니다.

일부 샘플에서는 “effectiveidiot”의 역방향 문자열이 60회 넘게 발생하며, 이는 보안 연구원들이 이것을 이름으로 정하면 좋겠다는 맬웨어 작성자의 생각을 나타내는 것일 수도 있습니다. 여기서는 네이티브 strings 유틸리티 대신 효과적인 floss 도구를 사용하여 문자열을 추출합니다.

또한 최근 샘플에서 보이는 문자열 난독 처리는 개발자가 속성에 대한 오해를 불러일으키기 위해 사용자 이름 “drozdovsky” 및 빌드 이름 “toidievitceffe”를 의도적으로 심었다는 것을 보여 줍니다.

맬웨어 명명 규칙은 그리 중요하지 않다는 주장도 있지만, 그럼에도 불구하고 명명 규칙은 진행 중인 공개 토론과 연구 내용을 추적하는 사람들이나 연구원에게는 특히 유용합니다. 이 새로운 위협을 “OSX.EffectiveIdiot”라고 부르자는 주장도 거세지만, 이름을 둘러싼 혼란은 이미 돌이킬 수 없는 일입니다. 처음에 언론에서 “EvilQuest/ThiefQuest”라는 이름을 광범위하게 사용했기 때문에 앞으로도 이렇게 불릴 가능성이 있습니다. 그리고 당연히 헤드라인에 범죄자나 악당의 느낌을 조금 더해서 눈길을 끌고 싶지 않겠습니까?

무너진 암호화: 랜섬웨어 기능은 그저 전시용일까요?

원래 “EvilQuest/ThiefQuest”에 관심이 쏠린 이유는 새로 등장한 macOS 랜섬웨어 위협이기 때문이었습니다. 먼저 이 점을 살펴보겠습니다. 랜섬웨어는 최근 들어 Windows 환경에 침입했지만, 사실 이 새로운 위협은 macOS를 노리는 것으로 알려진 ‘현장의’ 랜섬웨어 중 세 번째에 불과합니다. 이것 자체가 특이한 점입니다. 왜냐하면 기업 환경에서 위협 행위자에게 매력적인 표적이 되는 고위 경영진과 개발자들이 특히 Mac을 많이 사용하기 때문입니다. 따라서 Mac 랜섬웨어 같은 것은 새로운 위협인 동시에 어떤 의미에서는 예측 가능한 위협이기도 합니다.

하지만 “EvilQuest/ThiefQuest”는 어떤 기준으로 보아도 랜섬웨어로서는 상당한 실패작입니다. 무엇보다, 사용자의 파일을 암호화하여 금전을 갈취하려면 해독 불가능한 암호를 만들어야 합니다. 암호화는 어려운 작업이며, 암호화를 할 수 있을 정도로 똑똑한 사람이라면 누구나 이렇게 말할 것입니다. “혼자서 암호화를 시도하지 마세요, 잘못될 수밖에 없으니까요.” 성공적인 랜섬웨어 공격자는 영리하기 때문에 이러한 조언을 잘 따르며, 기존의 암호화 알고리즘을 사용하되 대개 최소한 일부 구성 요소는 비대칭으로 합니다. 다시 말해, 암호를 풀려면 공격자만 가지고 있는 프라이빗 키에 액세스해야 합니다.

그러나 여기 제시된 사례의 “EffectiveIdiot” 개발자는 이 방법 대신 대칭 키 암호화를 사용했습니다(파일 암호화에 사용한 것과 동일한 키로 암호 해독). 더욱이 SentinelLabs의 연구 책임자인 Jason Reaves은 다음과 같은 이점을 밝혀 냈습니다.

“…파일 암호화 키를 암호화하는 데 사용된 일반 텍스트 키가 암호화된 파일 암호화 키 뒤에 추가됩니다. 완전히 암호화된 파일을 살펴보면 데이터 블록이 추가된 것을 확인할 수 있습니다.”

이로써 Jason과 SentinelLabs 팀은 이 맬웨어로 인해 피해를 입은 사람 누구나 사용할 수 있는 공개 암호 해독기를 만들어 냈습니다. 사용 방법은 이 동영상을 참조하세요.

EvilQuest 랜섬웨어 암호 해독기의 작동 모습 보기
See how our intelligent, autonomous cybersecurity platform harnesses the power of data and AI to protect your organization now and into the future.

랜섬웨어 공격자는 암호를 해독하기 어렵게 만드는 것 외에도 자신의 노력에 대해 충분한 보상을 받고 싶어 합니다. “EvilQuest/ThiefQuest” 맬웨어가 뭔가 잘못되었음을 나타내는 첫 번째 힌트는 금전을 요구하는 메모 자체였을 것입니다.

두 가지가 눈에 띕니다. 하나는 믿을 수 없을 정도로 적은 액수이고, 다른 하나는 피해자가 공격자와 통신할 이메일이나 다른 연락 수단이 없다는 사실입니다. Windows 환경의 모델에 따르면 랜섬웨어 공격자는 아주 능숙하고 효율적으로 피해자가 금전을 지불하게 만듭니다. 이들은 위협했다가 다시 안심시키고, 심지어 어느 정도의 고객 지원까지 활용합니다. 이 예에서는 그렇지 않았습니다. 금전을 요구하는 메모에 “송금하라, 우리가 연락하겠다”는 내용이 있지만 송금했다는 사실을 위협 행위자에게 알릴 방법이 없고, 연락처 주소를 요구하지도 않으며, 샘플 암호화 파일이나 다른 신원 정보를 요구하는 것도 아닙니다. “전화하지 마라, 우리가 전화하겠다”라는 전형적인 말투가 떠오릅니다.

당연히 이 위협 행위자들은 거액을 모으지는 못했습니다. 지금까지의 모든 샘플에서 공통적으로 확인된 비트코인 주소에서도 거래가 전혀 없었습니다.

마지막으로, SentinelLabs는 랜섬웨어 구성 요소 중 암호화 해독 루틴인 uncarve_target의 코드에도 호출자가 없으며, 이것은 기능의 불완전성 또는 작성자가 결코 암호를 해독해 주지 않기로 결심했음을 나타낸다고 지적했습니다(이 경우 코드에 존재하는 암호 해독 루틴은 이전 테스트의 아티팩트로 추정).

공유하는 사람이 바로 공유 폴더의 데이터 도둑

위와 같은 세부 정보가 드러남에 따라 이 맬웨어의 다른 기능, 특히 /Users/Shared 폴더에서 세 개의 Python 스크립트를 다운로드하여 실행하는 기능에 관심이 쏠리기 시작했습니다. 이러한 스크립트는 특정 확장명이 있는 파일을 검색하고 반출하기 위한 것입니다.

스크립트의 이름은 샘플마다 다양하지만 처음에는 다음과 같이 짧은 이름을 사용합니다.

/Users/Shared/.dr
/Users/Shared/.p
/Users/Shared/.gp

또한 사용자의 Library 폴더에 보관된 숨겨진 Mach-O 바이너리 안에 잠겨 있는 맬웨어의 데이터 도난 기능에 더 주목해야 합니다.

다음 암호화된 문자열을 살펴보세요.

역시 macOS 연구원인 Scott Knight가 개발한 도구를 사용하여 이 문자열을 해독하면 다음과 같은 일반 텍스트가 나타납니다.

bytearray(b'*id_rsa*/ix00')
bytearray(b'*.pem/ix00')
bytearray(b'*.ppk/ix00')
bytearray(b'known_hosts/ix00')
bytearray(b'*.ca-bundle/ix00')

이 맬웨어는 손쉽게 원격 로그인하고 웹 브라우저를 조작하여 신뢰할 수 있는 사이트로 보안 경고 없이 연결하기 위해 SSH 키 및 신뢰할 수 있는 인증서를 찾고 있는 것으로 보입니다.

다른 연구원들이 관찰한 바와 같이, 키 누르기 같은 낮은 수준의 하드웨어 이벤트를 노리는 API 호출이 존재한다는 것도 키 로깅 기능이 작동한다는 확실한 증거입니다. 함수 이름의 앞부분이 역방향이고, “file”은 “klgr_flie”로 잘못 입력되었을 수 있습니다.

이 랜섬웨어 구성 요소는 와이퍼 맬웨어 및 다른 플랫폼에 적용되는 다른 공격적인 랜섬웨어 변종과 달리 사용자의 지속적인 디바이스 사용을 실제로 방해하지는 않습니다. 사용자는 osascript에서 생성된 간단한 경고 대화 상자를 통해 상황을 알게 됩니다.

“OK”(확인)를 누르면 대화 상자가 닫히고 사용자는 계속해서 머신을 사용할 수 있게 됩니다. 이것은 스파이웨어 구성 요소에 아주 유용한 동작입니다!

macOS 연구원의 노력을 요구하는 새로운 변종

초기의 자세한 기술 정보는 상당 부분 macOS 연구원 Patrick Wardle이 게시한 내용입니다. 여기서는 이 모든 정보를 반복하지 않겠습니다. 지난 주에 처음 발견된 초기 “AppQuest” 샘플에 대한 Wardle 연구원의 유용한 게시물을 여기에서 확인하시기 바랍니다. Wardle 연구원은 이 맬웨어에 바이러스 같은 기능이 있으며, 맬웨어가 사용자의 홈 폴더에 있는 기존 실행 파일을 감염시키려고 시도한다고 언급했습니다(SentinelOne 테스트에서는 그러한 행동이 확인되지 않음).

초기 연구 이후에 하드 코딩된 문자열 및 경로가 업데이트된 새로운 변종이 나타났습니다. 특히 암호화된 문자열 “Hello Patrick”이 포함된 “react_ping” 메서드는 Wardle의 연구 결과를 뒷받침합니다.

최근 버전에서는 하드 코딩된 C2 주소가 이전의 167.71.237.219 에서 159.65.147.28 로 업데이트되었으며, 확인할 소프트웨어 목록에 Wardle 연구원의 “Knock Knock” 보고 도구가 포함되어 있습니다.

그 밖의 새로운 변경 사항이라면 실행 파일 레이블로 “abtpd”를 사용하는 것입니다. 코드에는 다양한 설치에서 “.ab**d”로 변형될 수 있다고 나와 있지만, 이 게시물의 작성 시점에는 확인하지 못했습니다. 지속성 에이전트는 폴더 이름 “AppQuest”를 사용하는 대신 이제 공격자가 생성한 “PrivateSync”라는 폴더를 가리킵니다.

마찬가지로, 43바이트 문자열이 들어 있는 이전 샘플의 숨겨진 일반 텍스트 파일은 “.ncspot”라는 이름으로 /var/root/ 및 /Users/User1/에 배치됩니다. SentinelOne에서 테스트한 최신 샘플에서 스폿 파일은 동일한 위치에 있지만 이름이 “.aespot”입니다.

지금까지의 신속한 반복 속도를 보면 이 모든 세부 정보는 며칠, 심지어 몇 시간 안에 변경될 것으로 예상됩니다.

EvilQuest/ThiefQuest macOS 맬웨어로부터 보호

SentinelOne 플랫폼은 EvilQuest/ThiefQuest로부터 엔터프라이즈를 효과적으로 보호합니다.

SentinelOne이 EvilQuest macOS 랜섬웨어를 막아 내는 방법
See how our intelligent, autonomous cybersecurity platform harnesses the power of data and AI to protect your organization now and into the future.

SentinelOne으로 보호받지 못하는 사용자가 이 맬웨어의 피해를 입는 경우, 알려진 정상 백업을 사용하여 완전히 복원하는 것이 좋습니다. 또한 키 로깅 및 다른 스파이웨어 기능 때문에 모든 암호를 변경하고 SSH 및 신뢰할 수 있는 인증 자격 증명을 재설정하는 것이 좋습니다.

EvilQuest에 의해 파일이 암호화되었다면 여기에서 SentinelOne의 공개 암호 해독기 도구를 사용할 수 있습니다.

결론

“EffectiveIdiot”, “ThiefQuest” 또는 “EvilQuest”라고 불리는 랜섬웨어, 데이터 도난, 스파이웨어의 이 조합이 등장한 것은 중대한 사건입니다. 이 조합은 많은 보안 도구가 인식하지 못할 뿐더러, 피해자가 잘못된 판단으로 암호화된 파일이라는 명백한 문제의 해결 방법을 찾느라 감염된 머신을 계속 사용하면서 중요 데이터를 유출하게 될 수도 있습니다. macOS 사용자는 맬웨어가 더 이상 Windows 환경의 전유물이 아니라는 경고에 주의하여 적절한 보안 조치를 취하는 것이 좋습니다.

샘플 해시

06974e23a3bf303f75c754156f36f57b960f0df79a38407dfdef9a1c55bf8bff Mach-O
d18daea336889f5d7c8bd16a4d6358ddb315766fa21751db7d41f0839081aee2 Mach-O
c5a77de3f55cacc3dc412e2325637ca7a2c36b1f4d75324be8833465fd1383d3 Mach-O

IoC(손상 지표)

/var/root/.aespot
~/.aespot
~/Library/LaunchAgents/com.apple.abtpd.plist
~/Library/PrivateSync/com.abtpd.questd
/Library/LaunchDaemons/com.apple.abtpd.plist
/Library/PrivateSync/com.abtpd.questd


Like this article? Follow us on LinkedIn, Twitter, YouTube or Facebook to see the content we post.

Read more about Cyber Security