2013년 10월 22일 화요일

2008년 악성 코드와 보안 위협 동향

벌써 10월도 월말로 접어드는 것이 이제 정말 2013년도도 얼마 남지 않은 것을 실감하게 되네요.. 10월이라고 하니 예전 암울 했던 군대 신병 시절이 기억나네요...

8월에 입대해서 자대 배치 받은지 얼마되지 않은 10월의 마지막 날... 취침 점호 이후 정훈병 고참이 틀어주었던 이용의 잊혀진 계절이 생각나네요. 그 당시에는 고향 집을 떠나온지 얼마 되지 않아 순간 울컥 했던 생각이 나네요...

그래서 오늘은 특별히 나는가수다에서 국카스텐이 부른 "잊혀진 계절"을 블로그에 한번 실어봅니다.



오늘 공유하는 발표 자료는 2008년 10월 한국자산관리공사에서 근무하시는 일반 직원분들을 대상으로한 보안 인식 교육 자료 입니다.

일반 직원분들을 대상으로 하다 보니 해당 발표 자료의 주된 요지는 악성코드와 관련 보안 위협이 급격하게 증가하고 있으니 주의 하셔야 된다. 그러니까 보안팀에서 공지하는 내용 잘 따르고 이런 이런 행동들을 하시면 않된다는 내용입니다.

그래서, IT에 전문 지식이 없으신 일반 직원분들 교육 하실 때 도움이 될 것 같다는 생각이 듭니다.



그리고...코엑스에 위치한 한국자산관리공사에는 2012년도 즈음으로 기억되는데, 다시 한번 방문 했던 기억이 납니다. 그 당시에는 보안 담당 직원들을 대상으로 한 교육이라 APT(Advanced Persistent Threat)을 주제로 강연 했었던 기억이 납니다.

2013년 10월 13일 일요일

2008년 서울여대 정보보호 전공 수업 자료

2주전에 슬라이더쉐어에 자료 올려놓고 이래 저래 다른 일로 바쁘다가 독일 베를린 출장까지 겹쳐서 이제서야 블로그에 공개를 하게 되는군요.

독일 베를린 출장은 VB2013이라는 Virus Bulletin 이라는 영국 독립 안티 바이러스 테스트 및 전문 잡지 발행 기관에서 주최하는 컨퍼런스 참관이 목적이었습니다. 주로 악성코드와 관련 보안 위협 및 테스팅 관련 주제들이 주로 발표를 됩니다만, 최근에는 조금 더 넓은 주제로 확대되고 있습니다만 여전히 주요 주제는 악성코드 관련 이야기들입니다.

그래서 덕분에 좋은 분들을 많이 만나고 독일의 부드러운 맥주들도 많이 맛볼 기회가 있었습니다. 해당 컨퍼런스와 관련된 이야기들은 다음 번에 차차 하기로 하고, 오늘 공유하는 자료는 2008년 서울여대 정보보호 전공 학생들을 대상으로 진행한 수업 자료 입니다.

지금은 연구소에서 서울여대 뿐만이 아니라 고려대, 인하대 등 여러 대학교의 정보 보호 전공 또는 관련 학과에서 수업을 진행하고 있습니다만 당시에는 서울여대에서 처음으로 진행하였던 수업이었습니다.

결론적으로 이야기하면 해당 학년도의 학생들에게는 죄송하지만, 제가 맡았던 수업 자체는 실패였습니다. 실패였다는 이야기는 강의 자체가 학생들의 눈높이와 흥미를 전혀 만들어 낼 수 없었던, 저와 해당 과목 교수님만의 수업이었습니다.

처음 수업을 맡으라는 전무님의 말씀을 듣고 자료를 준비하면서, 기존 강의 경험이 많았던 일반 업체의 보안팀이나 IT 팀을 생각하고, 정보보호 전공 학생들이니 당연히 이 정도는 알 것이라는 전제하에 만든 자료가 아래 슬라이드들입니다.







그래서, 생전 처음으로 여대를 방문한다는 설레이는 맘을 안고 서울여대를 방문해서, 담당 교수님께 인사를 드린 후에 수업을 진행하면서도 무언가 이상하다는 느낌이 계속 있었습니다.

수업 분위기가 왠지 무언가 집중이 되지 않는다는 느낌을 많이 받았습니다만, 학생들이니 그르려니 했습니다. 하지만, 그 이후 담당 교수님께 말씀을 듣고 교수님 강의 자료를 살펴 본 이후에야 제가 학생들의 수준을 너무 과대평가하고 눈높이를 전혀 맞추지 못했다는 것을 알았습니다.

그 다음 해인 2009년에는 이러한 실패의 경험을 거울 삼아, 윈도우 시스템 구조에서부터 어셈블리어 기초, 안티 바이러스 엔진 구조까지 기본적인 것들부터 정리해서 수업을 하였습니다. 그리고, 사비를 털어 V3 패키지들을 몇 카피 준비해 수업 가운데에 퀴즈를 내서 맞추는 학생들에게 선물을 주는 등 나름 흥미와 관심을 유도하고자 노력한 덕분에 2008년 보다는 조금 좋은 분위기가 형성되더군요.

2009년도 수업 자료는 다음 기회에 공유 해보도록 하겠습니다.

2013년 9월 9일 월요일

2008년 9월 악성코드와 최근의 동향

벌써 아침 저녁으로 서늘한 바람이 부는 9월 가을의 문턱에 와 있는 것 같습니다. 불과 몇 주전까지만 하더라도 더워서 집에서 에어콘을 틀고 했었는데, 이제는 밤에 창문을 열어놓고 자면 감기 들 정도로 날씨가 빠르게 변하는 것 같습니다.

오늘 공개하는 자료는 제 기억으로는 유일하게 앵콜(?) 강연 요청을 받았던 곳이었던 것 같습니다. 2008년 9월 경상남도 창원시에 위치한 경상남도청 공무원들을 대상으로 하는 보안인식 교육이었습니다.

처음 해당 도청으로부터 공무원들을 대상으로 하는 보안 인식 교육을 진행 해달라는 요청을 받고, 어떻게 풀어가야 될까 고민이 되었는데, 요구 사항이 간단하더군요. 알기 쉽고, 이해하기 빠르고 재미있게 해달라 것이더군요.

간단한 요구 사항이지만, 유머 감각이 뛰어나지 않아서 기대에 부흥 할 수 있을까 하는 생각에 이런 저런 멘트들도 많이 준비해 갔었는데, 다행이 교육이 재미 있고 유익했다는 평가를 받았습니다.

그래서, 일반 공무원들을 대상으로 하는 보안 인식 교육이다 보니 목차 역시 일반 개인 사용자들을 중심으로 구성되어 있습니다.

1. 악성코드 정의와 분류

2. 악성코드의 상반기 동향

3. 정보 보호에 대한 기본 상식




2013년 8월 29일 목요일

2008년 팀 내부 세미나 발표 "Windows Vista Security"

이제 2008년도 자료까지 진행되었네요. 아무래도 2007년도에 이래 저래 바쁜 일들이 많아서 자료들을 많이 작성하고 정리하지 못 했던 것들이 큰 이유였다고 기억 되네요.

오늘 공유하는 자료는 2008년 3월에 팀 내부 세미나 용도로 제작한 자료로  "Windows Vista Security"에 대해서 다루고 있습니다.

이 당시 개인적인 용도와 회사 업무 용도로든 대부분의 시스템에서 윈도우 XP를 사용하고 있던 상황에서 윈도우 비스타의 등장은 변화되고 추가된 다양한 기능들로 인해 큰 충격이었습니다. 하지만 그 충격 만큼이나 판매 실적도 저조 했습니다.

이러한 큰 변화들이 지금이야 윈도우 7이 보편화되어 UAC(User Account Control)나 윈도우 디펜더(Windows Defender)가 어색하지 않지만, 이 당시만 하더라도 윈도우 XP에서 모든 권한으로 프로그램과 파일을 실행 하던 대부분의 사람들에게는 어색함과 불편함이 가장 컸었습니다.

그래서, 개인적인 궁금함도 있었지만 변화된 윈도우 운영체제 속에서 악성코드를 어떻게 탐지하고 방어를 하게 될 것인지에 대한 주요 기능들을 살펴봐야 된다는 생각이 세미나를 준비하게 되었습니다.

지금 다시 살펴보아도 윈도우 비스타에 포함되어 있는 기본적인 큰 골격의 보안 기능들은 윈도우 7과 8에도 이어지고 있어, 히스토리적인 면에서 아직 유용할 것 같습니다.

해당 슬라이드에서 포함하고 있는 내용은 다음과 같습니다.

1. 윈도우 비스타의 보안 개념
2. 윈도우 비스타의 새로운 보안 기능
3. 윈도우 비스타의 설계적 보안 기능
4. 사용자 계정 컨트롤
5. 윈도우 디펜더
6. 인터넷 익스플로러의 보안 기능
7. 비트락커
8. 코드 무결성와 윈도우 리소스 보호
9. 커널 패치 보호와 드라이버 서명 요구
10. 윈도우 서비스 강화와 데이터 실행 방지
11. 주소 영역 난소화
12. 윈도우 비스타의 악성코드 대응



2013년 8월 14일 수요일

메모리 포렌식(Memory Forensic)을 위한 메모리 분석 툴 Mandiant Redline

컴퓨터 포렌식 중에서도 멀웨어 포렌식(Malware Forensic) 분야를 기법적인 면을 기준으로 본다면 크게 4가지 정도로 나눌 수 있다고 보여집니다.

첫 번째가 메모리 포렌식(Memory Forensic)으로서 램(RAM)에 존재하는 악성코드 감염과 관련된 다양한 흔적(네트워크 접속 정보 및 프로세스 정보 등)들을 분석하는 것입니다. 

두번째로는 레지스트리 포렌식(Registry Forensic) 입니다. 일반적으로 거의 대부분의 악성코드들(일부 그렇지 않은 악성코드들도 존재 합니다.)은 감염된 시스템이 재부팅을 하거나 시스템 사용자가 특정 행위를 수행 하였을 때 악성코드 자신이 실행되기 위하여 윈도우 시스템의 레지스트리에 새로운 키(Key)를 생성 및 변경 하게 됩니다. 

특정 악성코드의 경우에는 윈도우 XP에 존재하는 안전모드 부팅(Safe Mode Booting) 관련 레지스트리를 삭제하여 안전모드 부팅을 방해하기도 합니다.

세번째로 인터넷 포렌식(Internet Forensic) 입니다. 이메일(E-Mail), 메신저(Instant Messenger)  그리고 웹 브라우저(Web Browser)와 같이 인터넷 활동과 관련된 어플리케이션(Applications)으로 인해 악성코드에 감염되는 사례들이 다수를 차지하고 있습니다. 이러한 경우에는 인터넷 관련 어플리케이션들의 행위를 분석하는 것만으로도 의외로 쉽게 악성코드의 감염 경로를 파악 할 수 있습니다.

최근 수행한 멀웨어 포렌식의 대상은 방송 관련 업무를 하시는 분들의 노트북들이었습니다. 분석을 하는 과정에서 1대의 노트북에서 악성코드 감염으로 인해 안랩(AhnLab)의 전용백신으로 진단, 치료 하였던 흔적을 발견 할 수가 있었습니다. 

결론적으로 그 악성코드의 감염 경로는 웹 브라우저 취약점을 악용한 중국산 웹 익스플로잇 킷(Web Exploit Kit)인 공다(GongDa)에 의해서 였으며, 이러한 감염 경로를 파악하는데 결정적인 역할을 한 것이 바로 인터넷 포렌식과 레지스트리 포렌식 기법의 복합적인 사용이었습니다.

그리고 마지막으로 디스크 포렌식(Disk Forensic) 입니다. 이는 전통적인 컴퓨터 포렌식에서 이야기하는 디스크 이미징(Disk Imaging) 이 후 엔케이스(EnCase)나 FTK와 같은 분석 툴을 이용해 디스크 전체를 분석하는 과정 입니다.

그 중 오늘 이야기 할 주제는 첫번째인 메모리 포렌식을 할 경우에 무료로 사용할 수 있도록 맨디언트(Mandiant)에서 개발한 레드라인(Redline)이라는 메모리 분석 툴입니다.

메모리 분석 관련 툴들 중에서 많이 사용되는 것으로 오픈소스(Open Source) 인 볼라틸리티(Volatility)와 커맨드라인(Command-Line) 형태로 동작하는 맨디언트의 메모라이즈(Memoryze)가 존재 합니다. 그래서 컴퓨터 포렌식이나 멀웨어 포렌식 관련 서적들에서는 위 2가지 툴에 대해 빼놓지 않고 언급 하고 있습니다.

위에서 언급한 2개의 메모리 분석 툴은 여러가지 장점들로 인해 일반적으로 많이 사용되는 툴들이며, 분석 과정에서 오류가 없다는 것을 인정을 받았습니다. 하지만 악성코드 감염으로 인해 침해사고가 발생하여 신속하게 실시간 대응(Live Response)를 진행해야 되는 상황에서 앞서 언급한 2개의 메모리 분석툴들은 모두 커맨드 라인 형태를 가지고 있어 조금 불편함이 존재합니다.

이러한 관점에서 본다면 레드라인은 맨드언트에서 언급한 문구인 "Accelerated Live Response"와 같이 신속하게 메모리 분석을 진행 할 수 있도록 도와주는 GUI 기반의 툴입니다.

레드라인을 설치하고 실행을 하기 위해서는 설치 대상이 되는 시스템에 닷넷 프레임워크(.Net Framework) 4.0 을 필요로 합니다. 그래서 이를 설치하고 맨드언트에서 무료로 제공하는 레드라인 설치 파일인 Redline-1.9.2.msi (56,139,776 바이트)을 설치합니다.

설치가 완료되고 레드라인을 실행하면 맨디언트사 특유의 붉은 색이 주를 이루는 GUI를 볼 수가 있습니다.


레드라인은 메모리 분석을 위한 툴이기도 하지만, 이와 함께 침해 사고가 의심되는 컴퓨터 시스템에서 메모리 덤프(Memory Dump)를 제작 할 수 있는 기능도 포함되어 있습니다. 하지만 닷넷 프레임워크를 필요로 한다는 점에서 이 기능이 그렇게 활용 가능성이 높다고 보기 어려울 것 같습니다.

레드라인을 테스트 해보기 위해 기존에 제작해둔 악성코드 감염 시스템에서 생성한 메모리 덤프 파일들을 레드라인으로 분석을 진행 해봤습니다.

약 130 MB의 메모리 덤프 파일을 레드라인에서 읽어들이는 과정에서 시간 소요가 조금은 필요 했습니다. 이는 기존에 사용되던 메모라이즈에 포함되어 있던 모든 기능들을 레드라인에 포함시켜 이를 활용하는 과정에서 시간 소요가 발생하는 것으로 보여집니다.

130 MB의 메모리 덤프에서 사용자가 체감할 정도의 시간 소요가 발생 했다는 점에서 최근에 사용되는 윈도우 시스템의 메모리가 대부분이 2, 3 GB가 넘는 것을 감안 할 경우, 실제 침해 사고 발생 시스템의 메모리 분석시에는 더 긴 시간 소요가 필요 할 것으로 보여집니다.

기본적으로 레드라인에서 제공하는 메모리 분석 기능은 기존 맨디언트에서 제공하는 커맨드 라인 메모리 분석 툴인 메모라이즈에서 제공하는 기능들을 모두 포함하고 있습니다. 

그리고 여기에다 MRI(Mandiant for Intelligent Response)라는 기능이 추가 되어 있습니다. 이 MRI 기능은 메모리 분석 과정에서 프로세스(Process)나 핸들(Handle) 등에서 악성코드와 관련 있는 의심스러운 아티팩트(Artifact)를 발견하게 될 경우 붉은 색으로 표기를 해줍니다.

아래 이미지는 Oficla(a.k.a Sasfis)에 감염된 윈도우 XP 시스템에서 생성한 메모리 덤프 파일들을 분석한 내용입니다. 

붉은 색으로 표기된 MRI가 존재하는 svchost.exe는 정상 윈도우 시스템 프로세스입니다만, Oficla가 자신의 코드를 임의로 svchost의 메모리 영역에 코드 인젝션(Code Injection)을 수행한 상태입니다. 


결론적으로 코드 인젝션이 발생한 svchost.exe에 MRI가 표기 되었다는 점에서 레드라인이 Oficla 악성코드 감염 흔적을 메모리에서 발견했다라고 생각 해볼 수 있습니다.

그리고 다른 메모리 분석 툴에서 제공하지 않는 타임라인(TimeLine) 분석 기능을 제공 합니다.이 타임라인 분석 기능은 아래 이미지에서와 같이 메모리에 존재하는 정보들을 조합하여 시간 순서로 정렬하여 보여줍니다.

그래서 아래 이미지와 같이 악성코드의 코드 인젝션이 발생한 svchost.exe가 실행 된 시간을 기준으로 대략 이 시점 이전에 해당 시스템으로 악성코드가 유입되어 감염이 발생하였다는 것을 판단 할 수 있습니다.


이렇게 간편하고 빠르게 메모리 분석을 수행 할 수 있도록 도와주는 장점을 가진 레드라인은 MRI라는 기능으로 인해 더 신속하게 악성코드로 의심되는 메모리 영역과 파일을 판단 할 수가 있습니다.

이 MRI라는 기능의 알고리즘이 어떻게 제작되었는지 멘디언트에서 공개하지 않아 알 수가 없어 쉽게 판단을 할 수가 없습니다만, 다른 악성코드 감염 시스템에서 제작한 메모리 덤프들로 테스트를 하는 과정에서 일부 악성코드와 관련된 메모리 정보들을 MRI가 붉은 색으로 표기 해주지는 못하는 것을 확인 하였습니다.

그러므로, MRI의 붉은 색 표기만을 전적으로 신뢰하기 보다는 이 정보는 참고용으로 사용하고, 분석가의 경험과 역량이 더 중요하게 적용된다는 점을 생각해야 됩니다.

그리고, 오픈소스와 파이선(Python)의 장점들을 모두 가진 볼라틸리티와 비교를 한다면 향후 확장성과 성능 개선이라는 면에서는 발전이 빠르지는 않을 것으로 보여집니다. 하지만 경험이 풍부한 침해 사고 대응 전문 업체에서 제작한 메모리 분석 툴임으로 오픈소스와는 또 다른 분석 기능을 보여줄 것으로 기대 됩니다.

이러한 장, 단점을 고려해두고 신속하게 메모리 분석을 수행하여야 되는 경우에 레드라인을 사용한다면 조금 더 편하고 빠르게 메모리 분석을 진행 할 수 있을 것으로 생각 됩니다.