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. 주요 악성코드 감염 기법