제로엑세스(ZeroAccess)로도 알려진 스미서(Smiscer) 변형은 얼마 전 국내 언론의 "악성코드 ‘제로액세스’, 전 세계 900만대 감염시켜" 기사를 통해 전 세계적으로 많은 감염 피해를 유발하고 있다.


ASEC에서는 9월 초에 발견된 스미서의 변형에 대해 상세한 분석을 통해 이 번에 발견된 스미서 변형이 어떠한 방식으로 동작하는지 파악하였다.


우선 스미서 변형의 감염 기법을 이해하기 위해서는 EA(Extended Attributes)에 대한 이해가 선행되어야 한다. 


EA(Extended Attributes)는 원래 HPFS(High Performance File System)에 있는 기능을 NTFS에서 구현 해 놓은 것을 말하며, 쉽게 설명하면 파일의 추가적인 속성을 "Name=Value" 처럼 환경 변수 형태로 파일에 붙이는 것을 이야기 한다.

 

윈도우 시스템에서는 ZwSetEaFile과 ZwQueryEaFile 두 개의 API로 해당 값들을 Set 혹은 Query 할 수 있게 제공하고 있으며 FILE_FULL_EA_INFORMATION이라는 구조체의 링크드 리스트(Linked List)로서 EA를 구현해 놓았다. 물론 EaValueLength가 2 Byte 변수이므로 최대 64K 바이트(Byte)까지 값을 쓸수 있다.



위 이미지와 같은 구조체가 아래 이미지와 같은 형태로 파일마다 확장 속성으로 부여 될 수 있다. 예전에 ADS(Alternate Data Steam)에 데이터(Data)를 숨겼 놓았 던 것처럼 여기에도 악성코드의 코드 혹은 데이터를 저장 할 수 있는 익스플로잇(Exploit)이 존재하며 이 번에 발견된 시미서 제작자 역시 이를 이용하였다. 



이 번에 발견된 스미서 변형은 다음과 같은 기능들을 가지고 동작하게 된다.
 
1. 윈도우(Windows) 보안 프로세스들의 스레드(Thread) 중지
 
스미서 변형에 감염이 되면 스미서 변형은 자신의 작업을 위하여 아래 이미지와 같은 윈도우 시스템의 보안 프로세스의 스레드(Thread)들을 중지 시켜 놓는다.


2. Explorer.exe에 코드 삽입

 

윈도우 시스템에 존재하는 정상 시스템 파일 중 하나인 Explorer.exe에 0x430 Byte의 코드를 삽입하고 이를 실행 시킨다. 여기서 스레드(Thread)를 새로 생성하지 않고 Explorer.exe의 스레드(Thread) 중에서 WaitReason이 DelayExecution인 스레드(Thread)를 찾아 이 스레드(Thread)가 삽입된 코드를 수행하게끔 Context에서 EIP를 변조하게 된다. 그리고 삽입된 코드는 Explorer.exe 프로세스에 로드된 ActionCenter와 Wscntfy 모듈을 언로드 시키는 기능을 수행하게 된다. 

 

3. 페이로드(Payload)에 의한 DLL 파일 생성

 

윈도우 시스템의 아래 경로에 접근하게 된다.


\??\C:\Documents and Settings\<User Name>\Local Settings\Applicatuin Data\{043A.....}\ 


해당 경로에는 다음과 같은 파일과 디렉토리를 생성하게 되는데, 그 중 "@"은 데이터 파일로 시간 정보를 포함한 특정 정보를 포함하고 있다. 그리고 "n"은 PE 파일로 제작자의 명령에 따라 동작하는 악의적인 봇(Bot) 기능을 수행하게 된다.


U : 디렉토리(Directory)

L : 디렉토리(Directory)

@ : 데이터(Data) 파일

n : PE 파일

  

4. 윈도우(Windows) 보안 무력화를 위한 스레드(Thread) 생성

 

스미서는 스레드(Thread)를 하나 생성하게 되는데, 윈도우에 포함되어 있는 보안 기능들을 무력화 시키는데 사용된다.


1) 특정 서비스들 제거

MsMpSvc, windefend, SharedAccess, iphlpSvc, wscsvc, mpssvc, bfe


2) 특정 프로세스 강제 종료

wscntfy.exe, MSASUci.exe, MpCmdRun.exe, NisSrv.exe, msseces.exe

  

5. CMD 프로세스를 생성하여 코드를 삽입

 

스미서는 CMD 프로세스를 생성하여, 해당 프로세스의 스택(Stack)에 데이터를 삽입하게 된다. 아래와 같은 특정 API들의 파라미터를 차례로 스택(Stack)에 넣어 코드 없이 API 만으로 스미서 자신의 프로세스가 종료 된 이후에는 Cmd가 자신 파일을 삭제 할수 있게끔 조작하게 된다.

 

ZwClose -> ZwDelayExecution -> ZwSetInformation -> ZwClose

 

 6. 외부 네트워크에 존재하는 시스템으로 접속 시도

 

스미서는 감염 된 시스템에서 외부 네트워크에 존재하는 promos.fling.com 도메인을 가진 시스템에 역 접속을 시도하여 성공하게 되면, 감염 시스템에서 운영체제 정보 및 스미서 의 동작 진행 상황들을 전송 하게 된다..

  

7. 자신의 복제본 및 허위 InstallFlashPlayer 생성

 

스미서는 자신의 복제본을 DLL 파일의 속성만 부여한 후에 msimg32.dll 파일 명으로 생성 한 이후에  Explorer.exe 프로세스에 의해 로드하게 된다. 그리고 허위 InstallFlashPlayer 를 생성히게 된다. 

 

9. ExitProcess의 후킹(Hooknig)

 

스미서 자신이 필요로 하는 감염된 시스템의 정보들을 수집하여, 제작자에게 전송 하기 전에 프로세스가 강제로 종료 되는 것을 막기 위해 ExitProcess를 후킹하게 된다.

  

9. Services.exe를 감염

 

스미서에 의해 EA(Extended Attributes)가 이용 되는 부분은 Services.exe를 감염 시킬 때로  Services.exe의 중간에 0x300 바이트(Byte)를 자신의 코드로 덮어 쓰게 된다. 여기서 덮어 쓰여진 코드는 자신 파일(Services.exe)에서 스미서 드로퍼(Dropper)가 생성해 놓은 EA(Extended Attributes) 데이터를 읽는 역할을 수행하게 된다.


이 EA(Extended Attributes) 데이터에는 페이로드(Payload)를 수행하는 코드와 패치(Patch)한 0x300 바이트(Byte)의 원본 코드를 포함하고 있다. 


그래서 정확한 치료를 위해서는 EA(Extended Attributes)를 읽어 이 0x300 바이트(Byte)를 찾아 원래 위치로 복구 해주어야 하며 이 부분의 동작을 간략하게 도식화 하게 되면 아래 이미지와 동일하다.



앞서 언급한 바와 같이 제로엑세스(ZeroAccess)로도 알려진 스미서(Smiscer) 변형은 윈도우 시스템에 존재하는 정상 파일인 Services.exe를 감염시킴으로서 외부 네트워크에 존재하는 시스템에 접속하여 제작자에 의해 내려지는 악의적인 명령들을 수행하게 된다.


그리고 EA(Extended Attributes)를 이용함으로서 윈도우 시스템에서 치료를 더욱 어렵도록 제작되어 있다. ASEC에서는 스미서 변형에 대한 정확한 진단 및 치료를 위해 아래와 같이 별도의 전용 백신을 제작하여 배포 중에 있다.


Win-Trojan/Smiscer 전용 백신


* 주의 사항

전용백신 실행 전 작업중인 데이타는 반드시 저장하시고, 전용백신 이외에 다른 응용 프로그램은 반드시 종료하시기 바랍니다. 또한 전용백신의 동작중 다른 응용 프로그램의 실행은 가급적 권장 하지 않습니다.

저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Posted by 비회원
해외 시각으로 2011년 10월 31일 미국 보안 업체인 시만텍(Symantec)에서는 니트로(Nitro)로 명명된 보안 위협을 공개하였으며, 공개된 니트로 보안 위협에 대해서는 해외 언론들을 통해서도 알려져 있다.

시만텍에서 이번에 공개한 니트로 보안 위협은 화학 제품을 생산하는 기업들을 대상으로한 공격이었으나, 최초인 4월 말경에는 인권 관련단체인 NGO를 대상으로 시작 된 것으로 밝히고 있다. 

화학 업체들을 대상으로한 니트로 보안 위협은 최초 2011년 7월에서 시작되어 해당 보안 위협이 탐지된 9월까지 진행 되었으며, 원격 제어를 위한 C&C(Command and Control) 서버의 경우에는 4월경에 구축 된 것으로 알려져 있다.

그리고 공격 대상이 된 기업은 화학 관련 업체 29개와 군수 업체를 포함한 다른 업종의 기업 19개로 총 48개 기업이 이번 니트로 보안 위협의 공격 대상이 되었다.

시만텍에서는 아래 이미지와 같이 해당 니트로 보안 위협에 의해 감염된 시스템들은 지리적으로 미국과 방글라데시(Bangladesh)가 가장 많은 것으로 밝히고 있다.



이번에 알려진 니트로 보안 위협은 전형적인 APT(Advance Persistent Threat) 형태의 공격으로 사회 공학(Social Engineering) 기법을 포함하고 있는 전자 메일에 원격 제어 형태의 백도어인 포이즌아이비(PoisonIvy)가 첨부 파일로 존재하였다.

니트로 보안 위협에 사용된 포이즌아이비는 언더그라운드에서 해당 백도어를 생성할 수 있는 악성코드 생성기가 이미 공유되고 있어, 니트로 보안 위협의 공격자는 아래 이미지와 유사한 포이즌아이비 툴 킷들을 이용하여 악성코드를 제작한 것으로 추정된다. 


실제 공격에 사용된 악성코드들은 대부분이 RARSfx로 압축된 파일들이며, 해당 파일들이 실행되면 사용자 계정의 Temp 폴더에 자신을 복사본을 생성한다. 

그리고 생성한 복사본은 인터넷 익스플로러(Internet Explorer)의 스레드(Thread)에 자신의 코드를 삽입하여 C&C 서버와 통신을 시도하여, 공격자의 명령에 따라 악의적인 기능을 수행하게 된다.

수행하게 되는 악의적인 기능은 아래 이미지와 같이 감염된 시스템의 실행 중인 프로세스(Process) 리스트에서부터 레지스트리(Registry) 및 키로깅(Keylogging)까지 다양한 악의적인 기능들을 수행 할 수가 있다.


이 번 니트로 보안 위협에 대해 ASEC에서는 추가적인 조사를 진행하여 해당 보안 위협에 악용된 악성코드들이 약 50여개인 것으로 파악하였다.

니트로 보안 위협에 악용된 악성코드들은 모두 V3 제품군에서 다음과 같이 진단하고 있다.

Win-Trojan/Poison.150937
Win-Trojan/Adsagent.141530
Win-Trojan/Poisonivy.135794
Win-Trojan/Poisonivy.150357
Win-Trojan/Poisonivy.133511
Win-Trojan/Poisonivy.154827
Win-Trojan/Poison.155705
Win-Trojan/Adsagent.132031
Win-Trojan/Adsagent.153026
Dropper/Agent.136569
Win-Trojan/Adsagent.7680.E
Win-Trojan/Hupigon.133007
Win-Trojan/Injecter.62464.D
Win-Trojan/Injector.26624.AN
Win-Trojan/Poison.27136.R
Win-Trojan/Poison.154539
Win-Trojan/Injector.3073
Win-Trojan/Agent.159762
Win-Trojan/Bumat.111104
Win-Trojan/Poison.147456 
Win-Trojan/Poison.133951
Win-Trojan/Gendal.62464
Win-Trojan/Injector.89088.AL
Win-Trojan/Poison.43520.P
Win-Trojan/Poisonivy.173068 
Win-Trojan/Poison.111104.M 
Win-Trojan/Injector.89600.BP
Win-Trojan/Magania.3399704
Win-Trojan/Magania.240239 
Win-Trojan/Poisonivy.128204
Win-Trojan/Poison.62464.AA 
Win-Trojan/Poisonivy.177722
Win-Trojan/Poisonivy.150357
PDF/Exploit
Win-Trojan/Downbot.153938
Win-Trojan/Adsagent.141530
Win-Trojan/Poisonivy.154827
Win-Trojan/Adsagent.153026
Dropper/Agent.136569
Win-Trojan/Poisonivy.536397
Win-Trojan/Poisonivy.133511
Win-Trojan/Poisonivy.128405
Win-Trojan/Poisonivy.128204
Win-Trojan/Poisonivy.173068
Win-Trojan/Poison.150937
Win-Trojan/Agent.159762
Win-Trojan/Adsagent.136314
Win-Trojan/Poisonivy.532499
Win-Trojan/Poison.155705
Win-Trojan/Adsagent.132031
Win-Trojan/Poisonivy.128421
Win-Trojan/Poisonivy.135794
 
이러한 APT 형태의 보안 위협에 대응하기 위해서는 단일 보안 제품만으로는 대응이 불가능하며, 사내에 존재하는 보안 정책과 직원들을 대상으로한 보안 인식 교육 그리고 유기적으로 동작하는 각 단계에 맞는 보안 제품들이 다단계적인 대응(Defense in Depth)가 이루어져야 한다.
저작자 표시
신고
Creative Commons License
Creative Commons License
Posted by 비회원