'Stuxnet'에 해당되는 글 1건

  1. 2010.10.03 [Malware Analysis] Stuxnet 웜 분석 자료 (2)

최근 이슈가 되고 있는 Stuxnet 웜 관련 분석자료입니다.
아래 내용은 시만텍의 분석 자료를 바탕으로 작성되었으며, 본문은 아래 경로에서 받아보실 수 있습니다.
http://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/w32_stuxnet_dossier.pdf

Summary

Stuxnet은 이란의 gas pipeline이나 power plant 등의 특정 산업 제어 시스템을 대상으로 한다, Stuxnet의 궁극적인 목적은 공격자의 의도대로 PLC(Programmable Logic Controller)를 변형하여 정상적인 기능을 방해하는 것이다.

○ Stuxnet의 특징

- 이동식 디스크의 자동 실행 취약점을 이용한 자기 복제
  (Microsoft Windows Shortcut 'LNK/PNF' Files Automatic File Execution Vulnerability BID 41732)
- Windows Print Spooler 취약점을 이용한 LAN 상의 전파
  (Microsoft Windows Print Spooler Service Remote code Execution Vulnerability BID 43073)
- SMB 취약점을 이용한 전파
  (Microsoft Windows Server Service RPC Handling Remote Code Execution Vulnerability BID 31874)
- 네트워크 공유를 통한 원격 컴퓨터 감염
- WinCC Database Server 운영 중인 컴퓨터 감염
- Step 7 Project 시작시 자동실행을 통해 Step 7 Project에 악성코드 복사
- LAN 상에서 peer-to-peer 메커니즘을 이용한 업데이트
- 사용하는 총 4개의 윈도우 취약점 중 자기 자신 복제를 위해 2개(위에 언급), 권한 상승을 위해 2개 사용
- C&C(Command and Control) 서버에 접속
- 루트킷을 통한 존재 사실 숨김
- 보안 제품 우회 시도
- 특정 산업 제어 시스템의 정보 수집 및 잠재적으로 시스템 정상 작동 방해를 위해 Simens PLC의 코드 변경
- PLC용 루트킷을 통해 변조된 PLC 코드 숨김

Stuxnet Architecture

Stuxnet의 중요 파일은 많은 export 함수와 resource를 갖는 .dll 파일로 구성되어 있으며, 숙주 Dropper는 .stub 섹션을 갖고 있으며, 실생시 Stuxnet의 주요 역할을 수행하는 다양한 export 함수와 resource를 갖는 .dll 파일을 생성한다.
<.dll 파일의 export 함수의 기능>
○ Resource
.dll 파일의 resource에는 설정파일이나 취약점 관련 모듈, 루트킷 파일 등이 존재한다.
○ Injection Technique
export 함수 호출시 Stuxnet은 DLL을 다른 프로세스에 injection 및 특정 export 함수를 호출한다. 특정 윈도우 프로세스나 trusted process에 injection을 수행하며 그 목록은 다음과 같다.
- lsass.exe
- winlogon.exe
- svchost.exe
- 보안 제품 프로세스

○ Configuration Data Block
Configuration data block에는 stuxnet이 감염된 시스템을 어떻게 제어할 것인지에 대한 정보가 저장되며, 새로운 버젼의 stuxnet 생성시 configuration file은 업데이트 된다.

Installation

15번 export 함수 호출시 아래와 같은 과정이 실행됩니다.
① configuration data가 최신인지 여부 점검
② 64-bit machine 여부 점검
③ OS 버젼 검사
    (실행 가능 OS : Win2K, WinXP, Windows 2003, Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2)
④ 관리자 권한 점검
    권한이 없다면 zero-day 권한 상승 공격을 수행한다. Vista, Windows 7, Windows Server 2008 R2일 경우 아직 알려지지 않은 Task  
    Scheduler Escalation exploit을 이용하며, Windows XP의 경우 역시 알려지지 않은 win32k.sys 권한 상승 취약점을 이용한다.
⑤ 16번 export 함수를 호출한다.(main installer 수행)

16번 export 함수 호출시 아래와 같은 과정이 진행된다.
① configuration data의 유효성을 검사한다.
② 다음 레지스트리 키의 NTVDM TRACE 값을 검사한다.
    HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ MS-DOS Emulation. 이 값은 감염 여부를 기록하는 값으로 값이
    19790509이면 감염된 시스템을 의미한다. 1979년 5월 9일을 의미하며, 관련 내용은 다음 주소를 참고하기 바란다.
    http://en.wikipedia.org/wiki/Habib_Elghanian
③ configuration data의 날짜를 검사한다.
④ global mutex를 생성한다.
⑤ stuxnet의 .stub 섹션으로부터 아래와 같이 암호화된 파일을 생성한다.
    1) main stuxnet payload .dll 파일을 Oem7a.PNF로 저장
    2) %SystemDrive%\inf\mdmeric3.PNF
    3) %SystemDrive%\inf\mdmcpq3.PNF(configuration data)
    4) %SystemDrive%\inf\oem6C.PNF(log file)
⑥ 현재 날짜가 2012년 6월 24일 이전인지 검사. 또한 최신 버젼 여부 검사
⑦ 201, 241 resource를 디스크에 Mrxnet.sys, Mrxcls.sys로 저장하며, 각각 Load Point와 Rootkit으로 동작한다.
⑧ .dll 파일을 services.exe에 injection 후 export 32를 호출하여 연결되는 이동식 디스크 감염과 RPC Server를 시작한다.
⑨ Step 7 project 감염을 위해 .dll 파일을 Step 7 프로세스(S7tgtopx.exe)에 injection 후 2번 export 함수를 호출

Command and Control

stuxnet 감염 과정 완료 후 시스템 정보 수집 후에 아래 주소로 HTTP를 이용하여 전송한다,
- www.mypremierfutbol.com
- www.todayfutbol.com

Rootkit Function

Stuxnet은 MrxNet.sys 파일(Realteck 디지털 서명 존재) 생성 후 레지스트리의 아래 경로에 기록하며 Rootkit 기능을 수행한다.
HKLM\SYSTEM\CurrentVersion\Services\MRxNet\"ImagePath" = %system%\drivers\mrxnet.sys
Stuxnet은 새로운 device object를 생성하며 모든 IRP request를 가로챈다. 또한 새로 생성되는 파일 시스템 후킹을 위해 driver를 filesystem registration callback routine에 등록한다.
루트킷에 의해 아래와 같은 종류의 파일은 디렉토리 조회시 필터링되어 보이지 않는다.
- 4,171 byte의 .LNK 확장자 파일
- 4KB ~ 8MB 크기의 -WTR[숫자4자리].TMP 파일

Conclusion

시만텍 분석정보를 바탕으로 감염 과정 위주로 정리해 봤습니다. 나머지 전파 및 PLC 감염과 관련된 내용은 상위 링크를 통해 확인하실 수 있습니다. 다음에는 샘플을 바탕으로 좀 더 자세히 분석해 보도록 하겠습니다.
특정 산업 시스템을 대상으로 한 악성코드라는 점에서 세계적인 이슈가 되고 있습니다. 영화에서나 나오던 내용이 이제 점점 현실이 되어가나 봅니다. 보안분야 종사자로서 빨리 능력을 키워야 겠군요.

                                                                                                    +---------------------------------+
                                                                                                    | Infinite Flow..                              |

                                                                                                    | mail : geekspark@gmail.com         |
                                                                                                    | Blog : http://sinun.tistory.com       |
                                                                                                    | twitter : @unpacker                      |
                                                                                                    | CISSP                                        |
                                                                                                    +----------------------------------+

저작자 표시 비영리 변경 금지
신고
Posted by By. PHR34K

티스토리 툴바