2013년 7월 23일 화요일

2006년 12월 악성코드 최신 동향과 기법

이래 저래 일들이 많다보니, 블로그 관리가 점점 소흘해지는 것 같네요. 다시 부지런히 글들을 정리 해봐야 할 것 같습니다.

오늘 공개하는 자료는 2006년 12월 H 기업 임직원들을 대상으로 진행되었던 보안 강연입니다. 이 시기에 워낙 비슷한 강연들을 많이 하다 보니 자료 역시 비슷한 내용들이 많이 포함되어 있습니다.

대략적인 목차는 아래와 같습니다.

1. 악성코드 유형별 최근 동향
2. 악성코드 기술적 동향
3. 주요 악성코드 감염 기법



이로서 2006년도 강연 자료들 정리가 모두 끝이 났습니다. 올해가 2013년이니 아직도 많은 강연자료들을 공개하지 못하고 있습니다. 시간 날 때마다 틈틈히 열심히 정리 해야 겠습니다. ^^

이런 강연자료들을 만들 때마다 강의를 많이 해보신 분들은 아시겠지만, 만드는 본인이 더 많이 배우게 됩니다. 기존에 읽었던 자료와 연구 했던 자료들도 다시 뒤져보고 요점 정리하면서 다시 생각도 해보게 되구요.

그리고 특히 작성 했던 자료들을 볼 때마다 저 자신의 지식의 깊이와 넓이가 커지고 있다는 점에서 뿌듯하다고 해야 할까요? 예전 자료들을 보다 보니 이런 저런 생각들이 많이 듭니다.

2013년 7월 4일 목요일

윈도우 시스템 포렌식을 위한 모듬 세트 NirLauncher

윈도우 시스템 포렌식(Windows System Forensic)에 관심이 있거나, 해보신 분들은 아마도 NirSoft라는 소프트 웨어 개발 업체에 대해 한 번 즈음은 들어 보셨거나 해당 업체에서 개발한 툴을  써보셨을 것 같습니다.

NirSoft에서는 GUI(Graphic User Interface) 기반으로 윈도우 시스템에서 간편하게 실행 할 수 있는 다양한 윈도우 시스템 분석 툴들을 무료로 공개하고 있습니다. 무료로 공개되는 툴들 중에는 인터넷 익스플로러(Internet Explorer) 및 파이어폭스(FireFox)와 같은 웹 브라우저의 암호를 복구 할 수 있는 툴에서부터 윈도우 시스템과 네트워크를 분석 할 수 있는 다양한 툴들까지 공개 중이라 여러가지 면에서 유용하게 사용 할 수 있습니다.

저의 경우에는 악성코드 감염으로 추정되는 시스템 분석을 위해 챙겨가는 여러 가지 도구들 중에서 꼭 빠지지 않는 것들 중 하나가 NirSoft에서 개발한 툴들을 모두 복사한 USB나 CD 였습니다. 하지만, 이러한 툴들을 모두 복사해서 폴더 별로 정리하고, 버전 별로 업데이트 하기가 여러가지 번거롭지 않았습니다.

이러한 번거로움을 한 번에 해결해주는 툴이 NirSoft에서 공개되었는데, 그것이 오늘 이야기 할 NirSoft Launcher 입니다.

NirSoft Launcher는 말 그래도 NirSoft에서 공개한 모든 툴을 하나로 모아서 그 것들을 하나의 런처를 이용해서 실행하고 리포트를 작성 할 수 있도록 만든 툴입니다.

우선 NirSoft Launcher를 해당 웹 사이트에서는 ZIP으로 압축된 파일인 nirsoft_package_1.18.04.zip(16,858,042 바이트)로 공개하고 있습니다. 해당 압축 파일을 풀면 아래 이미지와 같은 파일들과 폴더들이 생성 됩니다.


생성된 파일들 중 autorun.inf 파일이 포함되어 있어 USB에 모두 복사 했을 경우에는 해당 USB를 시스템에 연결 하는 것만으로도(물론, 윈도우 레지스트리(Registry)에서 자동 실행 옵션이 활성화 되어 있을 경우에만 해당 됩니다.) 자동으로 NirSoft Launcher의 메인 파일인 NirLauncher가 자동 실행 됩니다.


위 이미지에서 보는 것과 같이 NirSoft에서 제공하늠 모든 소프트웨어들이 Portable 형태로 연결되어 있어, 필요한 분류의 탭만 누르면 관련 툴들이 설명과 함께 나열 됩니다.

하나의 예로 프리페치(Prefetch) 파일들을 확인 할 수 있는 WinPrefetchView를 보면, 아래 이미지와 같이 설명이 되어 있습니다.


이를 더블 클릭하게 되면 아래 이미지와 같이 별도의 WinPrefetchView 툴이 실행 되면서 현재 사용하고 있는 시스템에서 최근에 실행되었던 파일들에 대한 정보들이 모두  나타나게 됩니다.


특히 악성코드 감염이 의심되는 시스템을 분석하기 위해 이래 저래 많은 툴들을 별도로 가지고 다닐 필요 없이 NirSoft Launcher만을 잘 활용해도 도움이 됩니다.

NirSoft Launcher에 포함되어 있는 툴들 중에서도 악성코드 감염으로 의심되는 윈도우 시스템의 다양한 핑거프린트(Fingerprint)와 아티팩트(Artifact)를 타임라인(Timeline)에 따라 추적하기에는 특히 아래 툴들이 많은 도움이 됩니다.

1) AlternateStreamView 
Find all hidden alternate streams stored in the file system.

2) CurrProcess
Displays the list of all processes currently running on your system.

3) FolderChangesView
Monitor folder/drive changes.

4) IECacheView
List all files currently stored in the cache

5) IECookiesView
Displays the cookies that Internet Explorer stores on your computer

6) IEHistoryView
Displays the list of Web sites that you visited with IE Web browser

7) LastActivityView
View the latest computer activity

8) MUICacheView
Edit/delete MUICache items in your system

9) MyEventViewer
MyEventViewer is a simple alternative to the standard event viewer of Winodws

10) OpenedFileView
Displays the list of all opened files on your system

11) ProcessActivityView
Show the file activity  selected process

12) RecentFilesView
Display the list of recently opened files

13) RegFileExport
Export offline Registry files to .reg file

14) UserAssistView
This utility decrypt and displays the list of all UserAssist entries

15) WhatsInStartup
Disable/enable/delete programs that are loaded at Windows startup

16) WinPrefetchView
View the Prefetch files (.pf) stored in your system

2013년 6월 20일 목요일

CrowdStrike에서 무료 배포하는 시스템 분석툴 CrowdInspect

아마도 이 블로그 글을 보시는 분들 중에서는 CrowdStrike 라는 업체가 생소하실 겁니다. CrowdStrike는 2012년에 사업을 시작한 미국의 신생 보안 업체로서, 스타트업이라고 하기에는 해당 업체의 핵심적인 경영진들의 면모가 범상치 않은 업체입니다.

CrowdStrike의 출발은 FoundStone(이후 McAfee에 인수됩니다.)이라는 침해사고 대응 전문 업체의 창업자이자 CEO인 George Kurtz(국내에서는 Hacking Exposed 시리즈의 저자로 더 유명할 것 같네요)와 인텔(Intel)에 인수 된 맥아피(McAfee)의 CTO인 Dmitri Alperovitch에 의해 시작 되었습니다.

개인적으로 Dmitri Alperovitch와 친분이 있어, 2012년 초에 안랩과 협력을 했으면 좋겠다는 연락을 받는 과정에서 그가 맥아피를 그만두고 창업을 하였다는 것을 알게 되었습니다.

여기까지가 CrowdStrike에 대한 이야기이고, 오늘 이야기 할 주제는 해당 업체에서 개발하여 무료로 배포 중에 있는 CrowdInspect라는 침해 사고가 발생 한 것으로 추정되는 시스템을 분석하기 위한 툴입니다.

CrowdInspect는 올해 2월부터 무료 배포되기 시작하였으며, 툴은 간단하게 EXE 파일(522,376 바이트) 1개입니다. 그리고 32비트와 64비트 윈도우 운영체제를 모두 지원합니다.

최초 해당 파일을 실행하게 되면, 사용에 대한 간략한 설명을 하고 동의를 구하게 됩니다. 동의를 클릭하고 난 다음에는 아래 이미지와 같은 사용자 인터페이스가 실행됩니다. 이러한 인터페이스는 기존의 프로세스 익스플로러나 다음 툴들과 큰 차이가 없어 조작과 적응이 쉬운 편입니다.


기본적으로 CrowdInspect는 Live 모드와 History 모드로 동작하게 됩니다. Live 모드는 말 그대로 현재 실행 중인 모든 프로세스 정보, 오픈든 TCP/UDP 정보들을 보여주며, History 모드는 CrowdInspect가 실행 된 그 시각 이후로 있었던 변화들을 순차적으로 Timeline에 맞추어 표기 해줍니다.

그리고 드라이버(.sys) 파일이 하나 정도 생성해서 이를 이용해 프로세스와 포트 검사를 할 것으로 생각 했는데, 순수하게 유저 모드(User Mode) 에서만 동작하도록 제작되었습니다.

여기까지만 보면 CrowdInspect가 다른 프로세스 익스플로러 형태의 시스템 관리 툴과 큰 차이가 없어 보입니다만, 개인적으로 생각되는 차별화 부분은 3가지로 볼 수가 있습니다.

1) 실행 중 또는 타임라인 상의 특정 파일에 대한 바이러스토탈(VirusTotal) 검사 기능
이 기능은 파일의 HASH인 SHA256을 구하여 단순하게 VirusTotal에 조회를 하도록 VirusTotal의 API를 이용한 것입니다.


2) Team Cymru에서 제공하는 Malware Hash Registry 검사 기능
이 역시 1번과 동일하게 Team Cymru의 DB에 HASH를 조회하여 결과를 리턴하는 것으로 보여집니다.

3) Web of Trust의 DB를 이용한 IP 검사 기능
이 역시 1번과 2번 과 같이 오픈된 포트에서 접속되어 있는 IP를 DB에 조회하는 기능이며, 실제 패킷 덤프에서도 해당 업체의 시스템으로 접속을 한 것을 확인 하였습니다.

이러한 장점을 가지고 있지만은 단점도 몇 가지가 분명히 존재합니다.

1) Timeline 기반의 포렌식 분석 기능 부족
타임라인 기능이라고 하여 다른 포렌식 툴에서 처럼 CrowdInspect가 실행 전의 상황들을 참고 할 수 있는 로그를 보여주리라 기대 했습니다만, CrowdInspect 실행 이후의 로그들만 보여주고 있습니다.

2) 프로세스 리스트 기능의 오류
실제 악성코드 샘플을 이용해 시스템이 악성코드에 감염되었다는 가정하에 테스트를 해보았습니다. 악성코드 감염 이후에 CrowdInspect를 실행 할 경우, 프로세스 익스플로러와 같은 프로세스 뷰어에서는 악성코드의 프로세스가 정상적으로 리스트가 되는 반면 CrowdInspect에서만 정상적으로 리스트화 되지 못하였습니다. 이 부분은 기능상 또는 구현상의 오류로 보여집니다.

3) 보안 위협의 트렌드를 반영하지 못한 기능 설계
현재 악성코드로 인한 보안 위협 트렌드로 보았을 때 CrowdInspect의 위치는 모호한 부분이 많습니다. 포렌식 분석을 위한 툴이라고 하기에는 부족하고, 악성코드 검출을 위한 아티팩트 분석 툴이라고 하기에도 기능들이 부족합니다.

여기까지가 CrowdInspect를 테스트하면서 생각해본 점들이며, 장점보다는 아직은 단점이 많아 보입니다. 하지만, 기존의 다른 침해 사고 시스템 분석 툴들과 다르게 DB 조회(클라우드거나 아니거나 상관 없이) 기능을 추가하여 활용하고 있다는 점은 분명한 장점으로 볼 수 있습니다.

마지막으로 패킷 덤프 분석 과정에서 알아낸 것 중 하나가, CrowdInspect가 실행이 되면 CrowdStrike로 GeoTag 정보가 전송이 되더군요. 아마도 내부적으로 어느 국가에서 많이 실행되는지 데이터 관리를 하는게 아닌가 생각 되네요...

2013년 6월 19일 수요일

2006년 중국 공안부 엔지니어들을 대상으로 한 강연

중어중문학을 전공을 하고 1999년에서 2001년 1월까지 중국 청화대학교에서 중국어학 연수를 한 덕분에 북경에 위치한 중국 법인에 출장을 가는 기회들이 자주 있었습니다. 거의 매해 출장을 가는 주된 이유로는 중국 법인에서 근무하는 중국인 엔지니어들을 대상으로 악성코드 대응과 기초 분석을 강연하고, 업무를 진행하는 과정에서 발생하는 어려움들을 듣고 본사로 전달하는 것이었습니다.

이러한 교육들을 여러해에 걸쳐 진행되다 보니 중국에서 보안 업무를 담당하는 엔지니어들과 소통을 하게되는 계기들도 자주 있게 되었습니다. 그리고 중국 현지 보안 업체들인 라이징(Rising), 지앙민(JiangMin)킹소프트(Kingsoft)에서 근무하는 엔지니어들과도 10년 가까이 지내다보니 이제는 친구처럼 편하게 생각하고 있습니다.

오늘 이야기 할 강연 역시 중국 공안부 소속으로 악성코드 분석 및 대응 업무를 담당하고 있는 엔지니어들을 대상으로 한 것입니다.

자료 날짜를 보니 대략 2006년 12월 말 즈음에 한국을 방문 했던 것으로 기억 됩니다. 그 당시 자료는 평소 자주 강연 했던 내용들을 재정리 한 후에 중국어로만 번역하였습니다. 그리고 강연 역시 중국어로 진행해야 했기에 강연 전에 중국어 IT 용어들을 찾아보고, 강연 내용 역시 중국어 표현으로 어색하지 않도록 다듬는 것에 시간을 많이 소비 했던 것이 기억 납니다.

강연은 총 2일에 걸쳐서 진행되었습니다. 1일차에서는 악성코드의 전체적인 동향과 기술적인 특징들에 대한 설명이 주를 이루었으며, 2일차에서는 악성코드 분석을 위한 분석 방법론 설명과 분석 환경 구축 그리고 분석 사례들을 설명하는 순서로 진행되었습니다.





그 때가 맞는 것으로 기억됩니다만, 2일간의 강연이 모두 끝이 난 이후에 공안부 직원들이 감사의 답례로 조그마한 경극 가면 장식품을 주더군요. 그 장식품은 현재 저의 집 서재 책장에 가지런히 진열 되어 있습니다.

2013년 6월 11일 화요일

악성코드 최신 동향과 분석 방안

6월에 들어 처음으로 쓰는 블로그 글입니다. 오늘 쓰는 이 블로그도 역시 2006년 12월 기술지원 부서분들을 모시고 진행되었던 2006년 하반기 보안 위협 동향과 관련된 강연 자료 입니다.

상반기의 연장선상에서 이루어진 교육이라 상반기와 크게 차이 나는 부분은 없으며, 보안 위협 동향과 관련된 내용이 하반기에 맞게 업데이트 된 정도 입니다.

목차는 아래와 같은데, 지금 다시 보니 목차 중 세번째가 제목과 다르게 악성코드 분석 방안이라는 주제와 내용이 포함되어 있네요...
아마도 그 당시 슬라이더를 작성하면서 제가 무언가를 실수를 한 것 같군요.. ^^;;


1. 악성코드 유형별 최근 동향
2. 악성코드 기술적 동향
3. 주요 악성코드 감염 기법