시스코 코리아 블로그

ROKRAT 재출현하다

1 min read



게시물은Warren Mercer, Paul Rascagneres, Jungsoo (Jason) An기여를통해작성되었습니다.

Executive Summary

올해초 Talos는한국내위협과관련된 2개의기사를게재했습니다. 첫번째기사내용은다수의손상된웹사이트의악성페이로드를받는데사용되는다운로더를드롭한악성 HWP 문서의사용에관한것이었습니다. 손상된웹사이트중에는정부웹사이트도있었습니다.우리는이사건에 “사악한새해(Evil New Years)”라는이름을

붙였습니다.두번째기사는 ROKRAT 악성코드의분석과발견에관한것이었습니다.

이번 달에 Talos는 새로운 ROKRAT 버전을 발견했습니다. 이 버전에는 이전의 두 기사를 연결하는 기술적 요소가 포함되어 있습니다. 이 새로운 샘플에는 올해 초의 2개 간행물의 코드가 포함되어 있습니다.

  • –  사용된 동일한 정찰 코드를 포함하고 있습니다.
  • –  “사악한 새해(Evil New Years)” 샘플이 사용한 유사한 PDB 패턴이 발견되었습니다.
  • –  ROKRAT이 사용한 동일한 클라우드 기능 및 유사한 복사-붙여넣기 방법을 포함합니다.
  • –  클라우드 플랫폼을 C&C로 사용하지만 완전히 동일하지는 않습니다. 이 버전은 pcloud,box, dropbox, yandex를 이용합니다.

우리는 또한 ROKRAT의 새로운 버전이 FreeMilk 캠페인에서 사용되는 다운로더인 Freenki와 코드를 공유한다는 사실도 알게 되었습니다.

해당 캠페인은 예상대로 악성 HWP 문서와 함께 시작했습니다. 이 문서는 북한 인권 및 한반도 통일을 위한 “시민” 연대를 대표한다는 한 변호사가 작성했다고 주장하면서, 11월 1일 서울에서 개최된 이 단체의 회의를 언급합니다. 이와 같은 악의적인 내용으로 보아, 이 문서는 읽는 이가 북한의 상황에 관심을 가지도록 만든다는 점을 추측할 수 있습니다. 이 악성 문서는 새로운 ROKRAT 버전을 드롭하고 실행합니다.

HWP 악성 문서

이전 ROKRAT 캠페인에서 우리는 이 악성코드와 함께 사용되는 감염 벡터가 악성 HWP 문서임을 설명한 바 있습니다. HWP 파일은 한글과컴퓨터에서 개발하였으며, 한국인에게는 Microsoft Office의 대체 소프트웨어라 할 수 있는 한글 워드 프로세서를 이용해 생성됩니다. 여기 해당 악성 문서의 스크린샷이 있습니다.

이 악성 문서에서는 “북한 인권 및 통일 커뮤니티”가 언급되어 있습니다. 우리는 먼저 그의 2017년 11월 중 캠페인을 관찰했습니다. 문서는 ‘올인통 (올바른북한인권법과통일을위한시민모임)’으로 알려진 커뮤니티를 대표해온 변호사가 작성한 것이라고

주장하고 있었습니다.

해당 문서의 목적은 2016년 한국에서 통과된 ‘북한 인권법’과 ‘법 제정’과 관련된 항목을 논의하기 위한 회의를 주선하는 것입니다.

회의 날짜(2017년 11월 1일)를 고려하면, 이 유인용 문서가 2017년 11월 전에 사람들이 활동에 보다 관심을 갖게 할 수 있는

아이디어나 방법을 논의하도록 참여 요청을 가장하는 방식으로 ‘올인통’ 커뮤니티의 이해관계자에게 전달되었을 것으로 추측할 수 있습니다.

HWP 파일에는 BIN0001.OLE라는 OLE 개체가 포함되어 있습니다. 추출 후 압축을 해제(zlib)하면 다음과 같은 스크립트를

얻을 수 있습니다:

목적은 base64 알고리즘을 사용하여 strEncode 변수의 콘텐츠를 디코딩하는 것입니다. 디코딩된 데이터는 c:ProgramDataHncModuleUpdate.exe 파일에 저장되고 실행됩니다. 이 바이너리는 ROKRAT 드로퍼입니다. 특정 파일 이름 ‘HncModuleUpdate’을 보면 사용자가 정상적인 한글과컴퓨터 소프트웨어인 것처럼 속을 수 있습니다.

1 단계: 드로퍼

드로퍼의 목적은 SBS 라는 이름의 리소스를 추출하는 것입니다. 이 리소스는 악성 쉘코드를 포함합니다. 또한 드로퍼는 새로운 cmd.exe 프로세스를 실행하고 추출된 리소스를 인젝션하여 실행합니다. 코드 인젝션 VirtualAlloc(), WriteProcessMemory() 및 CreateRemoteThread() Api에 의해 수행됩니다.

일단 실행되고 나면 쉘코드는 PE 파일을 디코딩하고, 그것을 cmd.exe의 메모리에 로드한 후 최종적으로 해당 파일을 실행합니다.

이 페이로드는 ROKRAT의 새로운 변종입니다.

또한, 분석된 드로퍼 중 하나는 사용자에게 아래와 같은 사진을 표시합니다.

사진에있는사람들은한국전쟁과 “독립운동” 기간중의독립운동과관련된사람들입니다. 왼쪽상단의이미지는출처가위키백과입니다. 왼쪽중간에있는그림은이블로그에서가져온것입니다. 그리고하단왼쪽이미지는이뉴스웹사이트가그출처입니다. 유인용이미지는여러장의공개이미지인것으로보입니다.

2 단계: ROKRAT“사악한 새해(Evil New Years)” MalDoc과의 유사성

ROKRAT의 변종에는 “사악한 새해(Evil New Years)” 다운로더와 유사한 코드가 포함되어 있습니다. 정찰 단계 동안 수집된 정보는 비슷합니다. 이 악성코드는 컴퓨터 종류를 확인하기 위해 다음의 레지스트리 키를 사용합니다: HKLMSystemCurrentControlSetServicesmssmbiosDataSMBiosData. “System Manufacturer(시스템 제조사)” 값은 컴퓨터의 유형을 식별하는 데 사용됩니다. 다음은 “사악한 새해” 다운로더의 그래프 흐름입니다:

ROKRAT 변종의 그래프 흐름:

그래프 흐름은 99% 유사합니다. 또한, 컴퓨터 종류는 다음과 같은 문자열로 표기합니다:

해당코드는사용된 Win32 Api의사용방법을설명하는이포럼게시물에기반하는것으로나타났으며, 소스코드는다음종류만을고려합니다:

ROKRAT 저자역시사용하고있는 ()을주목하십시오. SMBIOS 문서에서볼수있듯이일부값은무시됩니다:

누락된 값은 포럼 게시물에서도 생략되어 있습니다.

또 다른 유사성은 PDB 경로입니다. “사악한 새해” 샘플은 다음 PDB의 경로를 포함했습니다:

– e:HappyWorkSourceversion 12T+MResultDocPrint.pdb

이 새로운 ROKRAT는 다음 PDB를 포함하고 있습니다:- d:HighSchoolversion 132ndBDT+MT+MResultDocPrint.pdb

따라서 이 둘의 패턴이 유사함을 뚜렷하게 확인할 수 있습니다.

안티 샌드박스

이 ROKRAT 변종은 안티 샌드박스 트릭을 포함합니다. 이것은 다음의 라이브러리 로드를 확인하여 수행됩니다.

  • –  SbieDll.dll (sandboxie 라이브러리)
  • –  Dbghelp.dll (Microsoft 디버깅 도구)
  • –  Api_log.dll (threatAnalyzer / GFI SandBox)
  • –  Dir_watch.dll (threatAnalyzer / GFI SandBox)

안티 디버그

이 ROKRAT 버전은 안티 디버그 트릭을 포함합니다. 예를 들자면 다음 NOP 기술이 사용됩니다:

nop dword ptr [eax + eax + 00 h] 는 5 바이트 NOP: 0x0F1F440000입니다. 그러나 이 opcode는 Immunity Debugger에 의해 올바르게 지원되지 않으며, 어셈블리는 스크린샷의 빨간색 “???”로 대체되어 있습니다:

스크린샷 특징

두 개의 ROKRAT 버전 스크린샷을 수행했습니다. 흥미롭게도 두 버전 간에 유사성이 발견되었는데, 특히 저장된 스크린샷의 파일명에서 이러한 점을 확인할 수 있습니다. 다음은 4월 ROKRAT 버전입니다:

그리고 11월 버전의 코드는 다음과 같습니다:

패턴은 다음과 같이 정확하게 일치합니다: %s%04X%04X.tmp. 두 개의 %04X는 임의의 값이며, %s는 임시 경로(GetTempPath()으로 확보)를 포함하고 있습니다. 두 샘플 모두에서 문자열 길이는 0x12C (300)입니다. 이 부분은 틀림없이 복사-붙여넣기를 수행한 것입니다.

브라우저 비밀번호 스틸러

분석된 11 월 ROKRAT 샘플 중 하나는 브라우저 정보를 훔치는 기능을 포함하고 있습니다. 악성 코드는 Internet Explorer, Chrome, Firefox에서 저장된 암호를 추출할 수 있습니다. Chrome, Firefox의 경우, 악성 코드는 URL, 사용자 이름 및 비밀번호를 포함하는 sqlite 데이터베이스를 쿼리합니다:

또한, ROKRAT는 Microsoft Vault 메커니즘을 지원합니다. Vault는 Windows 7에서 구현되었으며, Internet explorer의 모든 민감한 데이터(자격 증명)를 포함합니다. 이것은 Vault API의 초기화입니다:

ROKRAT 구현은다음프로젝트에상당부분기초하고있습니다. 이것은이전샘플/버전과비교할때 ROKRAT에대한전술변화가있음을보여줍니다. 이번의이악성코드는추가적인침해에사용될수있는정보뿐만아니라잠재적인개인계정에대한정보까지대상으로하고있다고볼수있습니다. 또한 ROKRAT 공격자가사용하는방법은악성코드가전체 SQLite 라이브러리를자체실행가능파일에내장하여 Firefox 및 Google Chrome에사용되는 SQLite 브라우징시도를허용한다는점에서다른일반적인경우와차별화됩니다.조사과정에서,브라우저비밀번호스틸러코드가FreeMilk캠페인중사용된코드와완전히동일하다는사실이드러났습니다. 이미 FreeMilk와 ROKRAT 간의 C2 인프라중복이확인되었으며, 2개의샘플간에일부코드중복이있다는사실도확인할수있습니다:

왼쪽은 ROKRAT 샘플이고 오른쪽은 FreeMilk 샘플입니다. 코드 외에도 “IE Registery”와 같은 영어 오타까지 복사-붙여넣기한 것을 볼 수 있습니다.

C&C로 사용되는 클라우드 플랫폼

마지막으로, 이 ROKRAT 버전은 우리의 이전 분석과 정확하게 일치하는 방식으로 클라우드 플랫폼을 사용합니다. 이번에는 소셜 네트워크 플랫폼이 아닌, 다른 클라우드 제공업체가 사용되었습니다.

결론

이캠페인은 ROKRAT 배후공격조직이여전히활동하고있음을보여줍니다. PDB 정보를기반으로추정해보면이악성코드는

13번째버전일수있습니다. 이공격조직은적법한클라우드플랫폼만을이용하도록결정을내렸지만마지막실현단계에서일부를변경했습니다. 이는공격자의관점에서볼때흥미로운선택이라할수있습니다. 네트워크플로우는 HTTPS와함께기본으로암호화되고악성플로우는합법적인트래픽중간에섞여있어찾기어렵기때문입니다. 이공격조직은이미인터넷에서구할수있는코드를사용하는것을선호한다는사실도확인할수있었습니다. 이러한코드는이게시물전체에서언급된다양한저장소, 즉 GitHub, Code Project 및기타공개포럼에존재하는것입니다.

소스코드복사-붙여넣기기법을볼때, 우리는 ROKRAT의공격조직은 FreeMilk 스피어피싱캠페인배후에있거나또는그배후자들과협력하고있음을확신할수있습니다. ROKRAT이 FreeMilk 캠페인에사용된 Freenki 다운로더와코드를공유한다는점을고려하면이러한추측은더욱신빙성이높습니다.

또한이공격조직은동일한패턴의대상에항상관심이있으며, 유인용문서는남북한의지정학적상황과관련된특정요소를언급하고있습니다. 문서는전반적으로통일부또는북한주민의상황에대해언급합니다.

이러한내용에는실제로존재하는특정회의또는컨퍼런스가포함되는경우가많아서, 한국및북한에서진행되는이벤트에대한높은지식을보유하고있음을보여주고있습니다.

커버리지

고객이 이 위협을 탐지 및 차단할 수 있는 또 다른 방법은 다음과 같습니다.

Advanced Malware Protection(AMP)은이러한위협행위자가사용하는악성코드의실행을차단하는데가장적합합니다.

CWS또는 WSA웹스캐닝은악성웹사이트로접근하는것을방지하고이러한공격에사용되는악성코드를탐지합니다.

Email Security는위협행위자가캠페인의일환으로전송하는악성이메일을차단할수있습니다.

NGFW,NGIPS,Meraki MX와같은네트워크보안어플라이언스는이러한위협과연결된악성활동을탐지할수있습니다.

AMP Threat Grid는악성바이너리파일을확인하고모든 Cisco 보안제품내에보호기능을구축하게해줍니다.

Umbrella는 Cisco의보안인터넷게이트웨이(SIG)로, 사용자가기업네트워크에연결되어있는지여부에상관없이악성도메인, IP, URL에연결되는것을차단합니다.

오픈소스 Snort 구독자규칙세트고객은Snort.org에서구매한제품을위한최신규칙팩을다운로드하여제품을최신으로유지할수있습니다.

IOC

경로: c:ProgramDataHncModuleUpdate.exe

MalDoc: 171e26822421f7ed2e34cc092eaeba8a504b5d576c7fd54aa6975c2e2db0f824

Dropper #1: a29b07a6fe5d7ce3147dd7ef1d7d18df16e347f37282c43139d53cce25ae7037

Dropper #2: eb6d25e08b2b32a736b57f8df22db6d03dc82f16da554f4e8bb67120eacb1d14

Dropper #3: 9b383ebc1c592d5556fec9d513223d4f99a5061591671db560faf742dd68493f

ROKRAT: b3de3f9309b2f320738772353eb724a0782a1fc2c912483c036c303389307e2e

Freenki: 99c1b4887d96cb94f32b280c1039b3a7e39ad996859ffa6dd011cf3cca4f1ba5

이번 포스팅은 시스코 탈로스 팀에서 작성한 ROKRAT Reloaded를 바탕으로 준비되었습니다.

 

댓글 쓰기