레이블이 Security인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Security인 게시물을 표시합니다. 모든 게시물 표시

2015년 1월 3일 토요일

IT보안과 사회공학(Social Engineering)

시간이 화살과 같이 빠르다는 것을 새삼 느낍니다. 벌써 2014년이 지나가고 2015년 새해가 밝았습니다. 블로그 글을 보시는 모든 분들 새해 복 많이 받으시고, 하시는 모든 일들이 잘 되기를 기원하겠습니다.

개인적으로 2014년을 되돌아 보면 가장 행복 했던 순간은 둘째가 건강하고 튼튼하게 태어난 것입니다.

2015년에 저에게도 역시 좋은 일이 많이 있기를 바라며, 많은 분들에게 도움이 되실 수 있는 연구 결과물들을 만들도록 노력해 보겠습니다. 물론 그 연구 결과물들은 개인 블로그에 모두 공개할 예정이구요.

아마도 2015년에는 많은 분들을 찾아 뵐 수 있는 기회가 더 많지 않을까 생각 됩니다. ^^

오늘 공개하는 자료는 12월 17일 용산 국방부 사이버사령부에서 진행된 강의에서 사용하였던 자료로 "IT보안과 사회공학(Social Engineering)"이라는 주제 입니다.

개인적으로 군 관련기관을 방문 했던 것이 6년 전 정도에 진해 해군사령부에서 진행되었던 악성코드 분석 관련 교육이후로 처음이었던 것 같습니다.

용산 국방부를 방문하던 그 날따라 날씨도 무척 쌀쌀했는데다, 바람까지 많이 불어서 가는 길이 편하지는 않았습니다. 하지만, 담당 주무관님들의 따뜻한 환대 덕분에 많은 분들과 좋은 이야기들을 나눌 수 있었습니다. 이자리를 빌어 담당 주무관님들께 감사의 말씀드립니다. ^^



강연은 총 2시간 예정되었으며, 중간에 10분 정도 휴식시간을 가지고 질의응답시간을 포함해 1시간 40분 정도에 끝이 났습니다. 내용이 악성코드나 취약점 분석과 같은 기술적인 내용이 아닌 심리학과 사회학이 배경이 되는 내용이다 보니 저도 편안하게 말씀을 드리고, 들으시는 분들도 여러 질문들을 편안하게 주셨던 것 같습니다.

주된 내용은 사회공학(Social Engineering)이 무엇이며, IT보안과 관련해 발생하는 보안 위협들이 사회공학을 어떠한 방식들로 사용하는지 사례를 설명드렸습니다. 그리고, 이러한 사회공학을 예방하기 위해서는 어떠한 방식으로 보안인식 교육이 진행되어야 하는지 설명을 드렸습니다.

오랜만에 군기관을 방문해 여러가지 말씀을 드릴 수 있었던 좋은 기회였습니다. 그리고, 제가 속한 조직에서도 외부 출강을 적극 지원 및 후원해주셔서, 추운 날씨에도 편안한 마음으로 다녀 올 수 있었던 것 같습니다.


2014년 10월 4일 토요일

2014년 8월 28일, "Volatility를 이용한 Memory Forensics" 강연

오늘 두번째로 공개하는 자료는 8월 28일 KISA에서 주관하는 사이버보안인력(K-Shield) 재교육 프로그램 중 하나로 멀웨어 포렌식(Memory Forensics)에서 자주 언급되는 메모리 포렌식(Memory Forensics) 관련 내용을 강의한 자료 입니다.

기본적인 자료는 2013년 가을에 완성하여 올해 1월에 원고 수준으로 완성한 "볼라틸리티(Volatility)를 이용한 메모리 분석 사례" 입니다만, 강의 요청을 받고 예전에 만든 자료를 다시 살펴보니 시기에 맞지 않는 업데이트 된 부분들이 제법 있더군요.

대표적인 부분이 2013년도에 작성 할 때는 백트랙(BackTrack)으로 실습 이미지를 만들었는데, 2014년도로 접어들면서 해당 운영체제가 칼리(Kali)로 대체되었습니다. 이 외에도 강연 자료의 핵심인 메모리 포렌식 도구인 볼라틸리티(Volatility)도 버전이 2.4 업데이트 되었습니다.

그래서 강의자료를 초반을 제외한 실습과 관련된 이미지와 내용들을 포함해서 70% 정도를 새롭게 테스트하고 작성하였습니다.

특히, 실습 이미지와 환경을 디지털 포렌식(Digital Forensics)을 위해 제작된 SANS SIFT 3.0에서 가능하도록 만들었습니다. 그리고 맨드언트(Mandiant)의 레드라인(RedLine)의 업데이트 된 버전 내용도 짧게 나마 다루고 있습니다.

결론적으로, 전체적인 큰 줄거리는 변함이 없지만, 최근에 새롭게 업데이트 된 분석 도구나 환경들을 새롭게 반영하였다는 것이 이번 강의 자료에 특징이라고 할 수 있습니다.



2014년 7월, "APT(advanced persistent threat) 공격의 현재와 대응 방안" 강연

날씨가 이제 아침, 저녁으로 제법 쌀쌀 한 것이 이제 완연한 가을로 접어들었는 것 같습니다.

8월에 블로그 글을 게시하고, 9월을 건너뛰고 10월에 들어서야 글을 작상하게 되었네요. 7월, 8월에는 회사 업무 가운데에 외부 활동을 병행해야 되어서 주말에는 집 근처 카페나 토즈에서 보내야 하는 시간들이 제법 있었습니다.

오늘 공개하는 자료는 올해 7월 서울과학종합대학원의 산업보안 MBA 및 전문가 과정에서 강의하였던, APT  공격의 현재와 대응 방안이라는 자료 입니다.

 이 번 강의는 지난 번에 강의하였던 자료에서 크게 달라진 내용이 없습니다. 그러나, 강의에서 해주셨던 질문들을 생각해보면, 다음 강의에서는 조금 더 시스템적인 체계를 다루는 "침해사고 대응 체계와 방법론"이라는 주제를 다루어야 할 것 같더군요.




2014년 5월 18일 일요일

2011년 9월 "APT Case Study" 발표 자료

4월에 블로그에 글을 포스팅하고, 거의 한 달 반에 블로그에 글을 게시하게 되는군요. 기존 생활 습관과 다른 생활들을 하면서 천천히 적응을 하다보니 평소에 짬을 내서 해야 겠다는 연구 활동과 블로그 활동 등이 우선 순위에서 많이 떨어지게 되는군요. 이 번달 말에 이사가는 새 집에서는 조금 더 여유를 내서 여러 활동들을 많이 해봐야 할 것 같습니다.

오늘 소개하는 자료는 과거에 공유 했던 APT(Advanced Persistent Threat) 연구 자료들과 크게 차이가 나지 않습니다. 해당 자료가 2011년 9월 지적공사 내부 보안 관련 직원들을 대상으로 진행되었다는 차이점만 있습니다.

목차는 아래와 같이 나누어 집니다.

I. APT(Advanced Persistent Threat)
1. APT(Advanced Persistent Threat) 특징
2. APT(Advanced Persistent Threat) 대상
3. APT(Advanced Persistent Threat)의 Targeted Attack
4. APT(Advanced Persistent Threat)의 Remote Control

II. APT(Advanced Persistent Threat) Case Study
1. 2010년 1월 Operation Aurora 침해 사고
2. 2011년 2월 Night Dragon 침해 사고
3. 2011년 3월 EMC/RSA 침해 사고
4. 2011년 4월 농협 전산망 마비 사고
5. 2011년 8월 Operation Shady RAT 침해 사고

Ⅲ. APT(Advanced Persistent Threat) Defense Strategy
1. APT(Advance Persistent Threat) Timeline
2. APT(Advance Persistent Threat) Defense Overview
3. Lessons Learned for Proactive Defense



2014년 4월 20일 일요일

2011년 6월 보안 위협 동향과 대응 방안 강연자료

요즘 날씨가 좋다 보니 바깥으로 다니는 시간들이 많이 늘게 되었던 것 같습니다. 그 덕분에 아기와 아내랑 더 많은 시간을 보내게 된 것 같아 가족과 보낸 시간에 개인적으로 만족한다고 생각합니다.

오늘 공개하는 자료는 2011년 6월 삼성SDS 직원들을 대상으로 한 보안 인식 교육에 사용되었던 자료 입니다. 방문했던 사업장은 코엑스에 위치한 사업장인데, 그 때 처음으로 삼성SDS의 사업장이 이 곳 저 곳으로 많이 분산되어 있다는 것을 처음으로 알게 되었습니다.

당시에 강연한 자료의 목차는 다음과 같으며, 전반적인 내용은 2010년도에 예측한 2011년도 보안 위협들과 2011년도 1분기에 발생한 보안 위협들의 특징들에 대해 다루고 있습니다.

I. 2011년 예상 7대 보안 위협
1. SNS 활용핚 다양핚 공격 범용화
2. DDoS 공격 지능화
3. 사회 기반 시설 겨냥한 Targeted Attack 증가
4. 금전 노린 Smartphone 위협 증가
5. 무선 인터넷 취약점 노린 공격 등장
6. Cloud, Virtualization 기술 이용핚 위협 등장
7. Zero-Day 공격 기법 고도화

II. 2011년 1분기 보안 위협 통계
1. 2011년 1분기 악성코드 감염 보고
2. 2011년 1분기 악성코드 형태별 유형
3. 2011년 1분기 보앆 취약점
4. 2011년 1분기 웹 사이트 보안 위협

Ⅲ. 2011년 1분기 주요 보안 위협 이슈
1. 정교한 Targeted Attack 기반의 APT 위협과 보앆 사고들
2. 다양한 언어를 지원하도록 제작되는 악성코드들
3. Cloud 기반 보앆 제품을 공격하는 악성코드
4. 7.7 DDoS를 업그레이드한 3.4 DDoS 공격
5. SNS를 이용핚 악성코드의 다양핚 형태로 증가
6. 실제 백싞으로 위장한 허위 백신들
7. 본격적인 Mobile 악성코드의 양산
8. Zero-Day 취약점과 Targeted Attack

Ⅳ. 맺음말
1. 2010년부터 2011년 현재까지 발생핚 보안 사건, 사고
2. 맺음말



2014년 3월 30일 일요일

2011년 5월 SNS 보안 위협 사례 강연 자료

이제까지 외부에서 강연하거나 발표한 자료들 모두 제가 소속된 회사명으로 공개되었습니다. 하지만 오늘 발표 하는 자료는 처음으로 회사에 소속된 연구원이 아니 다른 조직에 속한 팀원이자 연구원으로 발표한 자료 입니다.

대략 7년 전 즈음에 (ISC)2에서 주관하는 CISSP(Certified Information Systems Security Professional)라는 보안 관련 인증을 접하고는 나름 열심히 공부해서 인증을 받을 수가 있었습니다.

인증을 획득한 그 이후에는 회사 업무와 개인적인 연구에만 집중하다 어느날 한국에 별도의 한국 CISSP 협회가 있고, 다양한 보안 분야에 있으신 분들이 그 곳에서 좋은 활동들을 많이 하시고 있다는 것을 알게 되었습니다.

그래서 저 역시 2011년부터 한국 CISSP 협회에서 간사로 활동하며, 협회에서 정기적으로 진행하는 정보보호리더세미나에서 발표한 자료 입니다.

비록 발표는 제가 하였지만 그 당시 같이 활동하였던 "SNS 보안팀" 팀원 모두가 주제에 대한 아이디어와 자료에 대한 검증에 참가하여 좋은 협업에 대한 경험이 아니었나 생각 됩니다.

발표 주제는 그 당시 소셜 네트워크(Social Network)라는 새로운 네트워킹 플랫폼에서 발생하는 다양한 보안 위협들에 대한 사례 연구와 향후 발생 가능성이 높은 보안 위협 형태에 대해 다루고 있습니다.

발표 주제는 "SNS에서 발생한 보안 위협 사례"이며 목차는 다음과 같습니다.

1. 소셜 네트워크 보안 위협 특징

2. 소셜 네트워크 보안 위협 사례

3. 향후 예측되는 보안 위협 형태



2014년 3월 25일 화요일

2011년 4월 보안 위협과 악성코드 분석 기법 강연 자료

이 자료 역시 2011년 4월 서울종합과학대학원 산업보안MBA 과정 학생들을 대상으로 이루어진 강연 자료 입니다.

강연 자료의 제목은 2010년 11월에 이루어졌던 강연 주제와 동일합니다만, 내용면에서는 변화를 가져가고 있습니다. 아래 목차에서도 알 수가 있지만, 해당 시기부터 외부 강연 자료에서 APT(Advanced Persistent Threat)에 대한 내용들을 포함하기 시작하였습니다.

이렇게 강연 내용에 APT 보안 위협을 다룰 수 있었던 것은 2010년 가을 2개월에 걸친 연구를 통해 "고도화된 보안 위협의 생산, APT (Advanced Persistent Threat)" 원고를 작성해서 해당 위협에 대한 지식을 학습 할 수 있었던 것이 크게 작용 한 것으로 보여집니다. 그리고, 몇 년에 걸친 사례 연구들을 통해 2013년 말에 작성 했던 "APT(Advanced Persistent Threat) 공격의 현재와 대응 방안"을 통해 그 이후에도 계속 연구 내용을 다듬을 수 있었기 때문으로 보여집니다.

1. 고도화된 보안 위협의 생산, APT
2. 악성코드의 특징과 진단 기법
3. 악성코드의 분석 기법
4. 악성코드의 분석 사례



2014년 3월 20일 목요일

2010년 11월 보안 위협과 악성코드 분석 기법 강연 자료


날씨가 다시 추워지는 것이 조금 쌀쌀 해지는군요. 이런 환절기에는 감기 조심하는 것이 중요한 것 같습니다.

오늘 공개하는 자료는 2010년 11월 서울종합과학대학원 산업보안MBA 과정 학생들을 대상으로한 강연 자료입니다. 자료 구성은 크게 현재 발생하는 보안 위협들에 대한 전반적인 이해와 이러한 보안 위협을 분석하기 위한 방법론과 사용 도구들 그리고 사례로 마무리를 하고 있습니다.

이제까지 강의 경험으로 보았을 때 MBA과정 학생들이 IT 지식에 대한 수준이 모두 달라서 2010년도와 2011년도 강연 자료는 특히나 어렵게 받아들였던 시기가 아니었나 생각 되네요.

강연자료는 크게 4가지 목차로 다음과 같습니다.

1. 블랙 마켓으로 인한 사이버 범죄

2. 악성코드의 특징과 진단 기법

3. 악성코드의 분석 기법

4. 악성코드의 분석 사례




2014년 3월 19일 수요일

2010년 10월 보안 위협 동향과 대응 방안 강연자료

대략 일주일 정도 블로그를 작성하지 않다가, 오늘에서야 다시 작성하게 되는군요. 한 동안 부모님 및 가족과 함께 시간을 보내면서 지내다 보니 이렇게 시간이 흘러가게 되었군요.

오늘 공유하는 자료는 2010년 10월 대구 대학교 전산 실무자 분들을 대상으로 강연한 "보안 위협 동향과 대응 방안" 입니다. 대구 대학교는 저의 본가가 있는 대구에 위치해 있어 덕분에 오랜만에 본가에도 잠시 들려 부모님을 뵐 수 있었던 기억이 나네요.

해당 강연 자료는 청중이 전산 실무자 분들을 대상으로 하다 보니, 관리자의 관점에서 보안을 어떻게 바라보고, 보안 관리와 정책을 운영을 해야 되는가와 관련된 부분들이 주된 내용 입니다.

목차는 아래와 같이 3 부분으로 나누어져 있습니다.

1. 보안 위협의 발전과 악성코드의 증가

2. 2010년 주요 보안 위협 이슈

3. 보안 관리자로서 보안 위협 대응 방안



2014년 3월 6일 목요일

2010년 9월 "2010년 상반기 보안 위협 동향과 주요 보안 위협" 강연 자료

요즘 다시 날씨가 쌀쌀해지는 것이 외부 활동 일들이 있어서 다니기가 편하지는 않더군요. 일산을 갈 일이 있어 차를 운전해서 가는 꽃가루인지 먼지인지 모를 것이 살짝 날리길래 "이게 뭐지?" 했었는데, 저녁 뉴스를 보니 그게 눈이였다고 하더군요. 개구리가 깨어난다는 경칩이 오늘인데 나왔던 개구리들 동사 내지는 따뜻한 냄비를 찾아 갈 것 같은 날씨더군요.

오늘 공개하는 자료는 2010년 9월 SK Coms에서 개발자들과 보안 담당자들을 대상으로 한 "2010년 상반기 보안 위협 동향과 주요 보안 위협" 강연 자료 입니다. 그 당시 모바일 악성코드와 PC 악성코드 분야를 나누어서 강연들이 있었습니다만, 아쉽게도 2011년 7월에 언론을 통해 알려진 바와 같이 SK Coms에서 보안 사고가 있었습니다. 돌이켜서 생각해보면 참 아쉽고도, 아이러니컬하다는 생각이 많이 듭니다.

그 당시에 제가 강연하였던 주제는 2010년도 상반기 동안 발생 하였던 보안 위협들의 동향과 함께 주요 보안 위협들에 대한 것이 주를 이루었습니다.



2014년 3월 4일 화요일

볼라틸리티(Volatility)를 이용한 메모리 분석 사례

오늘 공유하는 자료는 2013년 하반기 대략 3개월 정도 연구 및 분석을 통해 작성한 자료 입니다. 최초에는 PPT 슬라이드 파일로 작성해서 공유를 했었는데, 2013년 12월 초 즈음에 회사 내부 기획 업무를 담당하시는 분께서 원고를 하나 써달라고 말씀을 하셔서, 슬라이드를 다시 원고로 작성한 글 입니다.

그래서, 슬라이드와 원고가 모두 존재하는 몇 개 않되는 외부 발표 자료인데 최초 제가 정한 제목은 "Memory forensics with volatility"였는데, 원고 담당자 분께서 적절하게 "볼라틸리티를 이용한 메모리 분석 사례"로 변경 해주셨습니다. 그리고 원고 분량 슬라이드는 70 페이지, A4로는 44 페이지 정도 되어서 아래와 같이 나누어서 보기 좋게 정리를 해주셨습니다.


블로그에 정리에는 슬라이드와 2개의 원고를 모두 합쳐셔, 블로그 글만 보셔도 전체를 보실 수 있게 꾸며 봤습니다.

슬라이드 목차는 아래와 같으며, 가급적이면 슬라이드 내용만 보시고도 따라 하실 수 있도록 쉽게 정리 했습니다.

01 Memory Forensics
02 Windows Memory
03 Windows Memory Dump and Analysis
04 What is Volatility
05 Installing Volatility on Windows and BackTrack
06 Memory analysis using Volatility
07 Case Study and Hands-on Lab
08 Conclusion



이런 슬라이드 내용을 정리한 원고가 아래와 같이 정리 했습니다.

+---------------

컴퓨터 포렌식과 침해 사고 대응

일반적으로 컴퓨터 포렌식 또는 디지털 포렌식(Digital Forensic)은 범죄 수사에서 적용되고 있는 과학적 증거 수집 및 분석기법의 일종으로, 각종 디지털 데이터 및 통화기록, 이메일 접속기록 등의 정보를 수집, 분석하여 DNAㆍ지문ㆍ핏자국 등 범행과 관련된 증거를 확보하는 수사기법을 의미한다.

최근 발생하는 APT(Advanced Persistent Threat)를 포함한 침해 사고에서 악성코드(Malware, Malicious Code)는 조직 내부의 중요 기밀 데이터를 유출하는 과정에서 핵심적인 역할을 하고 있다. 그러므로, 피해의 시작과 범위를 조사하고 분석하기 위한 목적으로 포렌식은 반드시 필요한 보안 기술로 인정받고 있다. 즉, 기업의 내부 네트워크에서 발생한 침해 사고가 어떠한 경로로 이루어졌고, 어떠한 악성코드에 의해, 어떠한 데이터가 외부로 유출하였는지를 조사 및 분석하는 과정을 타임라인(Timeline)에 기반해 파악하기 위해서는 컴퓨터 포렌식 기법들이 가장 적합하고 효율적이기 때문이다.

이러한 특징으로 인해 침해 사고 대응과 분석에 사용되는 컴퓨터 포렌식 기법을 멀웨어 포렌식(Malware Forensic)이라는 표현으로도 자주 사용하고 있다.

다양한 멀웨어 포렌식(Malware Forensic) 기법

앞서 언급한 바와 컴퓨터 포렌식 기법들 중에서 멀웨어 포렌식(Malware Forensic) 분야에서 언급되는 기법들을 관점이나 기준에 따라 여러 가지 형태로 나눌 수가 있지만, 기술적인 면을 기준으로 나누어 본다면 크게 5가지 정도로 나눌 수 있다.

첫 번째는 메모리 포렌식(Memory Forensic)으로 휘발성이 강하지만 고유의 독특한 정보가 많이 존재하는 물리적인 램(RAM)에 남아 있는 악성코드 감염과 관련된 다양한 흔적(파일 실행, 네트워크 접속 및 프로세스 정보 등)을 분석하는 기법이다.

두 번째로는 레지스트리 포렌식(Registry Forensic)이다. 일반적으로 대부분의 악성코드는 감염된 시스템이 재부팅을 하거나 시스템 사용자가 특정 행위를 수행했을 때 악성코드 자신이 실행되기 위해 윈도 시스템의 레지스트리에 새로운 키(Key)를 생성 및 변경한다. 이러한 악성코드의 특징에 기반해 레지스트리를 중심으로 분석이 이루어지는 기법이 레지스트리 포렌식이다.

세 번째는 인터넷 포렌식(Internet Forensic)이다. 인터넷 사용이 보편화 됨에 따라 이메일 클라이언트(E-Mail Client), 메신저(Instant Messanger) 그리고 웹 브라우저(Web Browser)와 같이 인터넷 활동과 관련된 애플리케이션(Applications)으로 인해 악성코드에 감염되는 사례가 다수를 차지하고 있다. 그러므로 인터넷 관련 애플리케이션의 행위와 흔적(Artifact) 분석을 통해 악성코드의 감염 경로와 감염 매개체를 파악할 수 있다.

네 번째로는 네트워크 포렌식(Network Forensic)이다. 현재 발생하는 대부분의 악성코드는 어떠한 방식으로든 인터넷에 존재하는 시스템과 네트워크 연결이 이루어짐으로써 네트워크 패킷(Packet)에 기반한 분석을 통해 감염 경로와 함께 감염 시스템을 추적하고 분류할 수 있다.

그리고 마지막 다섯 번째로는 파일 시스템 포렌식(File System Forensic, 또는 디스크 포렌식(Disk Forensic)이다. 파일 시스템 포렌식은 전통적인 컴퓨터 포렌식 분야에서 중요하게 언급하는 기법 중 하나로 악성코드 감염이 의심되는 시스템의 디스크 이미징(Disk Imaging)을 통해 생성한 디스크 복사본을 인케이스(EnCase)나 FTK(Forensic ToolKit)와 같은 파일 시스템 분석 소프트웨어를 이용해 디스크 전체를 분석하는 기법이다.

메모리 포렌식(Memory Forensic)의 필요성

멀웨어 포렌식의 여러 가지 기술적인 분류 중에서 메모리 포렌식은 앞서 언급한 바와 같이 여러 가지 포렌식 소프트웨어를 이용하여 물리적인 램을 분석하는 일련의 과정이다.

메모리 포렌식은 최근 몇 년 사이에 주목을 받고, 그에 따른 연구가 활발하게 이루어지고 있다. 그 이유는 컴퓨터 시스템은 구조적으로 중앙처리장치(CPU, Central Processing Unit)에 의해 연산이 이루어지는데, 여기서 어떠한 소프트웨어라도 메모리인 RAM에 그 데이터와 코드가 적재되어야만 중앙처리장치에서 연산이 가능하기 때문이다. 이러한 컴퓨터 시스템의 특성으로 인해 메모리에는 하드디스크와는 다른 소프트웨어 또는 파일이 실행되는 과정이나 실행되었던 특유의 정보가 존재한다.

일반적으로 메모리 포렌식 과정에서 획득할 수 있는 메모리 분석 정보는 크게 4가지 정도로 나눌 수 있다.

1) 프로세스(Process)와 쓰레드(Threads) 정보

프로그램이나 파일이 실행 중이거나 이미 종료되었지만 메모리에 남아 있는 정보 추출

2) 모듈(Modules)와 라이브러리(Libraries) 정보

프로그램이나 파일이 실행 중이거나 이미 종료된 프로세스 관련 모듈과 라이브러리 정보 추출

3) 실행된 파일과 소켓(Sockets) 정보

실행 중이거나 이미 종료된 파일에 대한 정보와 네트워크 연결을 위해 사용되었거나 사용중인 소켓 정보 추출

4) 다양한 데이터 구조 정보

메모리에만 존재하는 운영체제, 소프트웨어 및 파일과 관련된 다양한 데이터의 구조 정보 추출

이렇게 메모리 포렌식 기법을 통해 획득할 수 있는 정보의 특성으로 인해 메모리 포렌식은 침해 사고 대응과 분석 과정에서 악성코드의 감염과 관련된 여러 주요 데이터를 확인할 수가 있다.

32비트 윈도 운영체제 메모리 구조와 분석 대상

메모리 포렌식에 대해 조금 더 구체적으로 논의하기 전에 일반적인 컴퓨터 시스템 구조상에서 메모리 역할과 메모리 포렌식에서 분석 대상되는 부분에 대해 살펴보자.

일반적으로 32비트 윈도 운영체제에서는 특정 파일이 실행되기 위해 생성하는 모든 프로세스는 기본적으로 4GB의 가상 메모리(Virtual Memory)를 할당 받게 된다. 모든 프로세스가 할당 받게 되는 4GB 가상 메모리에는 아래 [그림 1]과 같이 2GB 크기의 유저 모드(User Mode)와 2GB 크기의 커널 모드(Kernel Mode)로 나누어 사용된다.


이렇게 윈도 운영체제로부터 4GB의 가상 메모리를 할당 받는 모든 프로세스는 개별적인 가상 주소(Virtual Address)를 가지고 있으며, 개별적인 가상 주소 영역에 포함된 코드들은 연산을 위해 다시 물리 메모리에 적재된다. 그러나, 윈도우 운영체제의 메모리 관리 구조는 물리적 크기 제한이 존재하는 램으로 인해 [그림 2]와 같이 주기적으로 가상 메모리의 내용을 하드 디스크에 존재하는 페이지 파일(Page File)로 이동하는 과정인 페이징(Paging)이 발생하는 형태를 가지고 있다.


이러한 구조를 가지고 있는 32비트 윈도 운영체제에서 메모리 포렌식의 분석 대상이 되는 곳은 [그림 2]에 표시되어 있는 바와 같이 물리적인 메모리 영역으로, 다양한 메모리 덤프(Memory Dump) 소프트웨어를 이용하여 해당 영역을 분석이 가능한 파일 형태로 생성한다.

그 외에도 특정 메모리 덤프 소프트웨어의 경우에는 페이징이 발생하는 페이지 파일 자체도 분석이 가능한 파일 형태로 추출해내기도 한다.

다양한 메모리 덤프 파일 생성 및 분석 소프트웨어

현재 인터넷과 시중에는 메모리 포렌식을 위해 다양한 형태의 메모리 덤프 소프트웨어와 이를 분석하기 위한 메모리 분석 소프트웨어가 존재한다. 각각의 소프트웨어는 공개용인지 상용으로 판매되는 소프트웨어 인지에 따라 기능적으로 조금씩 다른 특징이 있다.

여기에서는 일반적으로 많이 사용되는 공개용으로 알려진 소프트웨어를 중심으로 살펴보면 다음과 같다.

1) Win(32/64)dd.exe

Win(32/64)dd.exe는 메모리 덤프를 위해 2007년 마티유 시우슈(Matthieu Siuche)가 개발한 공개용 소프트웨어이다. 하지만 32비트와 64비트 버전이 별도로 존재함으로 메모리 포렌식의 대상이 되는 컴퓨터 시스템에 설치된 운영체제의 버전을 미리 확인해야 한다.

그리고 2008년부터 현재까지는 Moonsols(http://www.moonsols.com)에서 MoonSols Windows Memory Toolkit(http://www.moonsols.com/resources/)에 포함되어 무료로 배포 중이다.


2) DumpIt.exe

DumpIt.exe는 2007년 마티유 시우슈가 개발한 Win(32/64)dd.exe를 응용하여 제작된 공개용 소프트웨어로, 가장 큰 장점으로는 32비트 및 64비트 운영체제 버전에 상관 없이 메모리 덤프 파일을 생성 할 수 있다는 것이다. 그리고 메모리 덤프 파일 생성을 위해 특정 인자 값 입력 없이 dumpit.exe 실행만으로 해당 소프트웨어가 존재하는 동일 경로에 메모리 덤프 파일을 생성하는 것이 장점이다.

해당 소프트웨어 역시 2010년부터 Moonsols(http://www.moonsols.com)에서 MoonSols DumpIt (http://www.moonsols.com/resources/)으로 무료로 배포하고 있다.


3) FTK Imager Lite

FTK Imager Lite는 액세스데이터(AccessData, http://www.accessdata.com/)라는 상용 컴퓨터 포렌식 소프트웨어개발 업체에서 개발하는 FTK(Forensic Toolkit)의 일부 기능을 제한하여 공개한 무료 버전 (http://www.accessdata.com/support/product-downloads)이다.

상용 버전에 비해 기능적인 한계는 존재하나 메모리 캡처(Capture Memory), 디스크 이미지 생성(Create Disk Image) 및 이미지 마운팅(Image Mounting)과 같은 기본적인 기능은 자유롭게 사용 가능하다.


액세스데이터에서는 현재 FTK Imager Lite 3.1.1.8 버전을 무료로 제공 중이며, 이 파일은 전체 약 75MB 크기로 USB에 복사하여 침해 사고가 발생한 것으로 추정되는 컴퓨터 시스템에 연결한 후 바로 사용이 가능하다.

4) 볼라틸리티(Volatility)

볼라틸리티는 파이선썬(Python) 프로그래밍 언어로 제작 된 메모리 분석에 많이 사용되는 공개용 소프트웨어이다. 현재 볼라틸리티는 볼라틸 시스템즈(https://www.volatilesystems.com/)에 의해 볼라틸리티 프레임워크(Volatility Framework)를 오픈 소스(https://code.google.com/p/volatility/)로 공개하고 있다.


볼라틸리티가 공개용 소프트웨어로 배포 중이어서, 메모리 분석과 관련된 다양한 기능을 가진 공개용 플러그인(Plugin) 파일이 개발되고 있다. 그리고, 침투 테스트(Pentest)를 목적으로 개발된 우분투 커널(Ubuntu Kernel) 기반 운영체제인 백트랙(BackTrack, http://www.backtrack-linux.org/downloads/) 및 칼리 리눅스(Kali Linux, http://www.kali.org/downloads)에도 포함되어 있다.

5) 맨디언트 레드라인(Mandiant Redline)

레드라인(Redline, https://www.mandiant.com/resources/download/redline)은 얼마 전 파이어아이(FireEye)에 인수된 침해 사고 대응을 전문으로 하는 보안 업체인 맨디언트(Mandiant)에서 개발해 무료로 공개한 메모리 분석 소프트웨어이다.

레드라인은 윈도 GUI(Windows GUI)를 기반으로 하는 메모리 분석 소프트웨어임으로 사용이 비교적 간단하며, 다른 공개용 메모리 분석 소프트웨어에 비해 비교적 빠르게 메모리 분석을 진행 할 수 있다.


그리고 레드라인에는 맨디언트에서 정의한 MRI(Mandiant for Intelligent Response) 기능으로 메모리 분석 과정에서 메모리 덤프 파일에 존재하는 악성코드로 의심되는 항목을 별도의 붉은색으로 표기하여 메모리 분석 시에 분석 시간 단축을 위해 효율성을 높이고 있다.

그러나 테스트 과정에서는 일부 악성코드로 판단되는 항목을 붉은색으로 표기하지 못하는 것을 발견했다. 그러므로 레드라인을 이용한 메모리 분석시에 MRI만을 전적으로 신뢰하기는 어려우니, 참고 용도로 사용하는 것이 좋다.


이 외에 메모리 덤프 파일에 존재하는 여러 데이터를 조합하여 시간 순서로 정렬한 타임라인 기능으로 인해 악성코드로 의심되는 항목이 최초 컴퓨터 시스템에 실행되었던 시각을 역으로 추적 할 수 있게 해준다.


그러나, 레드라인을 이용해 메모리 덤프 파일을 생성하고 분석하기 위해서는 설치 및 실행을 위해 닷넷 프레임워크(.NET Framework) 4.0의 설치가 필요한 단점이 있다.

6) VMWare를 이용한 메모리 덤프 파일 생성과 분석

VMWare는 악성코드 동적 분석에도 많이 사용되는 가상화 소프트웨어로서, 2008년 브렛 셰이버(Brett Shavers)의 논문 ‘Virtual Forensics: A Discussion of Virtual Machines Related to Forensics Analysis’을 통해 VMWare를 이용한 메모리 덤프 생성과 분석이 공개됐다.

일반적으로 VMWare 소프트웨어에는 다음의 주요 확장자 파일로 구성된다.

.Log – 가상 머신(Virtual Machine)에 대한 일반적인 활동 기록 파일

.VMDK – 게스트 운영체제(Guest OS)에 대한 실질적인 가상 하드 드라이브(Virtual Hard Drive)

.VMEM – 게스트 운영체제에 대한 실질적인 가상 페이징 파일(Virtual Paging File)

.VMSN – VMWare에서 생성하는 스냅샷(Snapshot) 파일로, 게스트 운영체제에 대한 상태 저장

.VMSD – VMWare에서 생성한 스냅샷 파일에 대한 메타데이터(Metadata) 기록 파일

.NVRAM – 게스트 운영체제에 대한 바이오스(BIOS) 정보 기록 파일

.VMX – 게스트 운영체제에 대한 설정 기록 파일

.VMSS – 게스트 운영체제를 일시 중지(Suspend) 상태로 변경할 경우, 당시의 게스트 운영체제 상태를 저장한 파일

VMWare가 가지고 있는 위와 같은 주요 확장자 파일들 중 VMWare 소프트웨어에서 게스트 운영체제 상태로 가동 중인 시스템의 메모리 분석 대상은 .VMEM 확장자를 가진 파일이다. 게스트 운영체제에서 .VMEM 확장자 파일을 추출하기 위해서는 실행 중인 게스트 운영체제를 일시 중지 시켜 현재 메모리 상태를 저장해야 한다.


그리고 .VMEM 확장자를 가진 파일을 별도로 복사하여 메모리 분석을 위한 소프트웨어를 이용하여 분석을 진행할 수 있다.


볼라틸리티 프로젝트와 프레임워크

현재 메모리 분석을 위해 가장 널리 사용되고 있는 볼라틸리티는 최초 2006년 아론 월터스(Aaron Walters)의 메모리 분석 관련 FATKit 프로젝트에서 출발하여 볼라툴즈 프로젝트(Volatools Project)로 발전한 사례이다.

그 이후 2007년 아론 월터스에 의해 볼라틸리티 프레임워크 개발팀인 볼라틸 시스템즈가 만들어지고 해당 팀에 의해 현재 볼라틸리티 프레임워크는 공개용 소프트웨어로 자리잡았다.

현재 볼라틸 시스템즈에서는 볼라틸리티 프레임워크 개발과 함께 다양한 기능을 가진 플러그인 사용 및 제작에 대한 전문적인 강의를 진행 중이다.

볼라틸리티는 현재 2.3.1 버전이 공개 중이나 필자는 이 글에서는 버전 2.2 (https://code.google.com/p/volatility/wiki/Release22)를 기준으로 설명할 예정이다. 볼라틸리티 프레임워크 2.2 에서는 다음 운영체제 버전에서 생성된 메모리 덤프 파일에 대한 분석이 가능하다.

1) Windows (x86)

Windows XP Service Pack 2 and 3
Windows 2003 Server Service Pack 0, 1, 2
Windows Vista Service Pack 0, 1, 2
Windows 2008 Server Service Pack 1, 2
Windows 7 Service Pack 0, 1

2) Windows (x64)

Windows XP Service Pack 1 and 2
Windows 2003 Server Service Pack 1 and 2
Windows Vista Service Pack 0, 1, 2
Windows 2008 Server Service Pack 1 and 2
Windows 2008 R2 Server Service Pack 0 and 1
Windows 7 Service Pack 0 and 1

3) Linux

32-bit Linux kernels 2.6.11 to 3.5
64-bit Linux kernels 2.6.11 to 3.5

그리고 볼라틸리티 프레임워크 버전 2.2는 분석이 가능한 메모리 데이터 영역을 5가지로 구분하고 그와 관련된 다양한 명령어들이 존재하나, 이 글에서는 아래 3가지 영역만을 다룰 예정이다.

1) Windows Core

* Image Identification - imageinfo, kdbgscan, kpcrscan

* Processes and DLLs - pslist,pstree, psscan, psdispscan, dlllist, dlldump, handles, getsids, cmdscan, consoles, envars, verinfo, enumfunc

* Process Memory - memmap, memdump, procmemdump, procexedump, vadinfo, vadwalk, vadtree, vaddump, evtlogs

* Kernel Memory and Objects - modules, modscan, moddump, ssdt, driverscan, filescan, mutantscan, symlinkscan, thrdscan

* Networking - connections, connscan, sockets, sockscan, netscan

* Registry - hivescan, hivelist, printkey, hivedump, hashdump, lsadump, userassist, shellbags, shimcache, getservicesids

* Crash Dumps, Hibernation, and Conversion – crashinfo, hibinfo, imagecopy, raw2dmp

* Miscellaneous – strings, volshell, bioskbd, patcher, pagecheck

2) Windows GUI

sessions, wndscan, deskscan, atomscan, atoms, clipboard, eventhooks, gahti, messagehooks, screenshot, userhandles, gditimers, windows, wintree

3) Windows Malware

malfind, yarascan, svcscan, ldrmodules, impscan, apihooks, idt, gdt, threads, callbacks, driverirp, devicetree, psxview, timers

윈도와 백트랙에서 볼라틸리티 설치

현재까지 볼라틸리티 프레임워크는 일반적으로 많이 활용되고 있는 운영체제인 윈도 버전과 리눅스 버전 2개를 구분하여 공개 중에 있다.

이 중에서 윈도 환경에서는 다시 2가지 버전으로 구분되는데, 이 차이는 윈도 운영체제에서 단독으로 실행되느냐 설치가 필요한 패키지 버전이냐의 차이이다.

1) 단독 실행 형인 volatility-2.2.standalone.exe

볼라틸리티 2.2 단독형 윈도 프로그램 (https://volatility.googlecode.com/files/volatility-2.2.standalone.exe)


2) 설치를 필요로 하는 volatility-2.2.win32.exe

볼라틸리티 2.2 윈도 모듈 인스톨러(https://volatility.googlecode.com/files/volatility-2.2.win32.exe)

윈도 운영체제에 설치를 필요로 하는 패키지인 volatility-2.2.win32.exe의 경우에는 기본적으로 제공되는 플러그인과 별도로 공개되는 플러그인 모두를 사용하기 위해서는 파이썬 2.6 또는 2.7 버전을 추가로 설치해야 한다.

리눅스를 지원하는 볼라틸리티 프레임워크의 경우에는 앞서 언급한 바와 같이 침투 테스트를 위한 우분투 기반 운영체제인 백트랙과 칼리 리눅스에는 기본적으로 볼라틸리티 2.2 버전이 포함되어 있다.


이 외에 SANS에 개발하여 공개 중인 SIFT(SANS Investigate Forensic Toolkit, http://computer-forensics.sans.org/community/downloads)라는 컴퓨터 포렌식 목적으로 제작된 우분투 기반 리눅스 운영체제에도 볼라틸리티가 기본적으로 포함되어 있다. 그러나 현재 공개 중인 SIFT 2.14 버전에는 볼라틸리티 프레임워크 2.0 버전이다. 하지만 2014년 상반기 중으로 SIFT 3.0 버전이 공개 예정이라고 하니, 볼라틸리티 버전 역시 변경 될 것으로 예상된다.

이렇게 윈도 및 리눅스 운영체제 모두를 지원하는 볼라틸리티 프레임워크는 일반적으로 윈도 운영체제에서의 사용을 권장하지 않는다.

그 이유는 마이크로소프트사에서 제공하는 보안 패치로 인해 볼라틸리티를 이용한 메모리 분석 과정에서 실제와 다른 오류가 발생할 수 있기 때문이다. 그러므로 일반적인 메모리 분석 과정에서는 백트랙과 같은 리눅스 환경에서 작업을 권장한다.
이러한 사유로 이후부터 다루는 볼라틸리티를 이용한 메모리 분석 전 과정은 백트랙 운영체제를 통해 진행되었다.

볼라틸리티를 이용한 메모리 분석 방법론

침해 사고가 발생해 악성코드 감염이 의심되는 시스템에서 생성한 메모리 덤프 파일을 분석하기 위해서는 [그림 14]와 같은 6단계의 절차를 이용하여 메모리 분석을 진행할 수 있다.


볼라틸리티를 이용한 각 단계별 분석 과정과 주요 프레임워크 명령어는 다음과 같다.

1) 운영체제 분석

메모리 덤프 파일을 생성한 운영체제가 어떠한 버전의 운영체제인지 확인하는 과정을 거치게 된다. 이 단계에서 확인한 운영체제 버전에 따라 향후 이루어지는 메모리 분석의 방향과 분석에 적용될 볼라틸리티의 명령어가 다르게 사용될 수 있다.

 imageinfo - 생성한 메모리 덤프 파일의 운영체제, 서비스 팩(Service Pack)과 하드웨어 정보 나열

2) 프로세스 분석

윈도 시스템에서 동작하는 악성코드는 다른 일반적인 윈도우 프로그램과 유사한 구조를 가지고 있으므로, 악성코드 역시 자신의 코드를 메모리에 적재한 후에 자신의 프로세스와 쓰레드를 생성하여야만 실행이 가능하다. 그러므로 확보한 메모리 덤프 파일에서 실행 중이거나 은폐된 프로세스 및 그와 관련된 정보를 분석한다.
   
 pslist - 실행 중인 프로세스 정보 나열

 psscan - 실행 중인 프로세스 정보와 함께 이미 종료된 프로세스 정보 나열

 psxview – pslist 및 psscan에서 확인한 프로세스 정보를 비교하여 나열함으로써, 은폐된 프로세스 정보 획득

 pstree - pslist와 유사한 정보를 보여주나 부모(Parent) 프로세스와 자식(Child Process) 프로세스 간의 상관 관계 나열

 procexedump – 프로세스의 메모리 영역에서 빈 공간(Slack space)를 포함하지 않고 바이너리(Binary) 형태로 추출

 volshell – 메모리 덤프 파일 분석 시에 Windbg와 유사한 명령 형식으로 분석

3) 네트워크 정보

최근 발견되는 대부분의 악성코드는 감염된 윈도 시스템에서 외부 네트워크와 접속을 시도한다. 특히 침해 사고에서 많이 발견되는 원격 제어 형태의 악성코드는 메모리 덤프 파일 내부에서 공격자가 접속한 원격 시스템을 확인할 수 있는 다양한 정보가 포함되어 있다.

 connections –활성화 상태의 네트워크 연결 정보 나열 (Windows XP, Windows 2003 Server 만 사용 가능)

 connscan - 활성화 상태의 네트워크 연결 정보와 함께 이미 종료된 네트워크 연결 정보도 나열 (Windows XP, Windows 2003 Server 만 사용 가능)
 netscan – 활성화 상태의 네트워크 연결 정보를 보여주나 윈도 비스타와 7 그리고 윈도 2008 서버에서만 사용 가능

4) DLL 및 쓰레드 분석

일부 악성코드의 경우에는 특정 프로세스에 자신이 생성한 DLL 파일을 인젝션(Injection) 하거나 특정 시스템 프로세스의 특정 메모리 쓰레드 영역에 자신의 코드를 삽입하는 경우가 있다.

 dlllist - 특정 프로세스에서 로드 한 DLL의 정보 분석

 ldrmodules - 특정 프로세스나 DLL에 의해 은폐된 DLL 정보 분석

 dlldump - 특정 프로세스에서 로드한 DLL을 바이너리 형태로 추출

 Malfind – 사용자 모드 형태로 은폐되어 있거나 인젝션된 코드 또는 DLL 정보 분석

 apihooks – 사용자 및 커널 모드에서 API 후킹 정보 분석

5) String 분석

악성코드에 감염된 것으로 추정되는 시스템에서 생성한 메모리 덤프 파일에 존재하는 특정 프로세스의 메모리 영역 전체 또는 인젝션된 DLL 및 쓰레드 영역을 바이너리 형태로 추출한다. 그 이후 바이너리 형태로 추출해 낸 파일에서 악성코드와 관련된 문자열 및 관련 IP 주소 등을 검색 할 수 있다.

 yarascan - YARA를 이용하여, 사용자 및 커널 모드 메모리 영역에 포함된 바이트(Byte) 순서, ANSI 및 유니코드 (Unicode) 문자열 검색

 string – 문자열 검색을 위해 백트랙에 기본적으로 포함된 프로그램

6) 레지스트리 분석

일반적으로 악성코드는 감염된 윈도 시스템이 재부팅 되더라도 자동으로 재시작하기 위해 윈도 레지스트리(Windows Registry) 영역에 특정 키(Key)를 생성하거나 특정 값(Value) 등을 변경한다. 그러므로 메모리 덤프 파일 내부에 남아 있는 레지스트리 관련 데이터의 분석을 통해 악성코드로 의심되는 파일을 추출할 수 있다.

 printkey - 특정 레지스트리 키에 포함되어 있는 하위 키(Subkeys) 값과 데이터를 검색하여 나열

 userassist – 메모리 덤프 파일에서 UserAssist 관련 레지스트리 키 정보 추출

지금까지 볼라틸리티를 이용해 악성코드 감염이 의심되는 시스템에서 생성한 메모리 덤프 파일을 이용해 분석을 진행하는 방법론과 6단계에 걸친 분석 과정을 소개했다. 다음은 볼라틸리티를 이용해 실제 악성코드에 감염된 시스템에서 생성한 메모리 덤프 파일을 이용해 분석한 사례를 살펴보자.

볼라틸리티(Volatility)를 이용한 메모리 분석 사례

지금부터 소개할 볼라틸리티를 이용한 메모리 분석 사례는 실제 악성코드에 감염된 윈도 시스템에서 생성한 메모리 덤프 파일을 대상으로 이루어졌다. 전체적인 메모리 분석 과정은 앞서 지난 호에서 언급한 6 단계의 메모리 분석 방법론에 따라 이루어졌다.

Backdoor/Win32.Rbot.R327
(a.k.a Win32/IRCBot.worm.variant, W32.IRCBot, Backdoor.Win32.Rbot.aftu)

해당 Backdoor/Win32.Rbot.R327는 몇 년 전 지속적으로 그 변형이 발견되었던, IRCBot 웜의 변형 중 하나이다. 일반적으로 IRCBot 웜 변형들은 감염된 윈도 시스템에서 리버스 커넥션(Reverse Connection)을 통해 인터넷에 존재하는 악성코드 제작자 또는 유포자가 개설한 IRC 채널로부터 다양한 악의적인 공격 명령을 수신하여 이를 실행한다.

IRCBot 웜에 감염된 윈도 시스템에서 생성한 메모리 덤프 파일을 백트랙 운영체제에 설치되어 있는 볼라틸리티의 ‘imageinfo’ 명령으로 [그림 1]과 같이 감염된 시스템의 윈도 버전과 메모리 덤프 파일의 생성 시각을 확인한다.

[그림 1] ‘imageinfo’ 명령으로 윈도 버전과 메모리 덤프 파일 생성 시각 확인

‘imageinfo’ 명령으로 확인한 윈도 운영체제 버전을 바탕으로 향후 분석 방향이 수립되었다면, [그림 2]와 같이 ‘psscan’ 명령과 ‘pslist’ 명령이 조합된 ‘psxview’ 명령을 이용하여 메모리 덤프 파일을 생성한 윈도 시스템에서 은폐 기능으로 동작하는 프로세스가 존재하는지 확인한다.

[그림 2] ‘psxview’ 명령으로 은폐된 프로세스가 있는지 확인

[그림 2]에서는 ‘pslist’와 ‘psscan’에서 모두 ‘True’가 검색 되었으므로, 해당 윈도 시스템에서는 은폐형 기능으로 동작하는 프로세스는 존재하지 않는 것으로 판단 할 수 있다.

또한 메모리 덤프 파일을 생성할 당시에 감염된 윈도 시스템에서 동작 중인 프로세스의 생성 시간과 이미 종료된 프로세스의 종료 시간 정보를 획득 할 수 있는 ‘psscan’ 명령으로 [그림 3]과 같이 프로세스와 관련 추가적인 정보를 획득한다.

[그림 3] ‘psscan’ 명령으로 프로세스와 관련된 추가 정보 획득

그리고, 실행 중인 프로세스의 상관 관계 정보를 획득하기 위해 [그림 4]와 같이 ‘pstree’ 명령으로 추가적인 정보를 획득한다.

[그림 4] ‘pstree’ 명령으로 프로세스의 상관 관계 정보 획득

[그림 4]에 존재하는 붉은색 박스의 프로세스 항목을 확인 해보면 의심스러운 사항이 발견된다. 일반적으로 윈도 시스템에서 실행 중인 시스템 프로세스는 트리(Tree) 구조에서 시스템(System) 이라는 부모 프로세스 항목에 자식 프로세스 구조를 가지게 된다.

하지만 붉은색 박스의 ssms.exe 프로세스는 다른 시스템 프로세스와 상관 관계를 가지고 있지 않으면서, 시스템 프로세스와 유사한 파일명을 가지고 있다. 이를 의심스러운 프로세스로 추정 해 볼 수 있다.

그 다음으로는 메모리 덤프 파일을 생성할 당시의 감염된 윈도 시스템에서 발생하였던 네트워크 접속 관련 정보들을 획득하기 위해 [그림 5]와 같이 ‘connections’ 명령을 실행한다.

[그림 5] ‘connections’ 명령을 통해 네트워크 연결 정보 획득

[그림 5]에 존재하는 붉은색 박스를 살펴보면, 악성코드에 감염된 윈도 시스템은 메모리 덤프 파일을 생성할 당시에 프로세스 아이디(PID) 240번 프로세스에 의해 외부 인터넷에 존재하는 87.117.252.150 시스템의 65146번 포트로 접속 중인 상태이다.

외부 인터넷에 존재하는 시스템과 접속 중인 PID 240번인 프로세스를 확인 하기 위해 [그림 5]를 다시 확인 해보면, 이는 최초 의심스러운 프로세스로 추정했던 ssms.exe 프로세스인 것을 알 수 있다.

앞서 PID 240번 프로세스인 ssms.exe가 외부 인터넷에 존재하는 시스템과 접속 중이며, 시스템 프로세스 구조상 의심스러운 부분이 있다는 것을 확인했다. 해당 의심스러운 프로세스가 실제 악성코드가 정확한지 확인하기 위해 메모리 덤프 파일에서 [그림 6]과 같이 “procexedump” 명령을 실행한다.

해당 명령은 특정 프로세스의 메모리 영역 전체를 파일 형태로 추출할 수 있으며, 볼라틸리티에 의해 추출된 파일명은 executable.[PID].exe 형태를 가지게 된다.

[그림 6] ‘procexedump’ 명령으로 특정 프로세스 메모리 영역을 파일 형태로 추출

여기에서 주의할 점은 특정 프로세스 메모리 영역 전체를 파일 형태로 추출 할 수 있다고 하여, 추출한 해당 파일을 다른 윈도 시스템에서 실행을 통해 동적 분석을 수행 할 수는 없다.

이는 일반적으로 메모리에 적재된 파일들을 메모리 덤프를 통해 추출 해 낼 경우, 실제 디스크상에 존재하는 파일의 PE(Portable Executable) 파일 형식에서 IAT(Import Address Table)가 손상되어 실제 윈도 시스템에서는 정상적으로 실행 되지 않기 때문이다.

그러므로, 메모리 덤프를 통해 추출해낸 파일의 경우에는 인위적으로 IAT를 보정해주는 과정을 거쳐야 한다. 하지만, 해당 과정에 대한 설명은 본 원고의 주제를 벗어나는 부분임으로 다루지 않도록 한다.

의심스러운 프로세스인 ssms.exe의 메모리 영역 전체를 ‘procexedump’ 명령을 통해 파일 형태로 추출한 executable.240.exe에서, 사람이 읽을 수 있는 문자열들을 추출하기 위해 [그림 7]과 같이 백트랙에 포함된 ‘string’ 명령을 이용하여 임의로 텍스트 파일을 생성한다.

[그림 7] ‘string’ 명령으로 파일 형태의 프로세스 메모리 영역에서 문자열 추출

사람이 읽을 수 있는 문자열을 추출해 낸 텍스트 파일을 열어보면, [그림 7]과 같이 일반적으로 IRC 채널 접속을 위해 사용하는 IRC 명령어와 함께 윈도 시스템에 존재하는 레지스트리 키를 발견하게 된다.

[그림 8] ‘string’ 명령으로 파일 형태의 텍스트 파일에서 발견된 문자열

해당 단계에서 발견된 IRC 명령어와 레지스트리 및 다른 관련 문자열을 조합해 볼 때 PID 240번 프로세스인 ssms.exe는 기존에 많이 발견되었던 IRCBot 웜의 변형 중 하나일 것으로 판단할 수 있다.

[그림 8]에서 발견한 IRC 관련 명령어를 [그림 9]과 같이 “yara” 명령어를 이용하여 PID 240번을 가지는 ssms.exe 프로세스 메모리 전체 영역을 검색 해보면, 기존에 많이 발견되었던 IRCBot에서 사용되는 문자열을 추가적으로 발견할 수 있다.

[그림 9] ’yara’ 명령으로 특정 프로세스 메모리 영역에서 문자열 검색

 그리고, 해당 IRCBot 웜 변형이 윈도 시스템의 레지스트리에서 어떠한 부분에 자신과 관련된 키를 생성하였는지 확인 하기 위해, 메모리 덤프 파일에 존재하는 윈도 레지스트리 관련 정보를 추출하는 ‘printkey’ 명령과 함께 인자 값으로 [그림 10]에서 추출한 윈도 레지스트리 관련 문자열을 사용했다.

[그림 10] ‘printkey’ 명령으로 의심스러운 프로세스를 생성한 윈도 레지스트리 키 검색

이 과정에서 [그림 10]과 같이 윈도 시스템에서 일반적으로 악성코드가 자동 실행을 위해 많이 사용하는 레지스트리 위치에 ‘윈도 업데이트(Windows Update)’라는 키를 생성하고 자신을 데이터로 생성한 것을 확인 할 수 있다.

Trojan/Win32.Oficla
(a.k.a Win-Trojan/Oficla.82432.C, Trojan.Sasfis, Trojan.Win32.Oficla.bv)

Trojan/Win32.Oficla는 기존에 알려진 브레도랩(Bredolab) 트로이목마 변형 중 하나로서, 금융 정보 탈취를 목적으로 제작 및 유포되는 제우스(Zeus)와 스파이아이(SpyEye)의 소스코드(Source Code)에서 파생되어 제작되어진 형태이다.

그리고, 정상 시스템 프로세스인 svchost.exe 또는 explorer.exe의 프로세스 메모리 영역 중 하나 또는 그 이상의 쓰레드 영역을 생성하여 자신의 코드 또는 전체를 코드를 인젝션하여 동작한다. 감염이 성공적으로 이루어지면 외부 인터넷에 악성코드 제작자 또는 유포자가 생성한 C&C(Command and Control) 시스템으로부터 명령을 수신하여 다른 악성코드 다운로드 후 실행하는 기능 등을 수행한다.

Oficla 트로이목마에 감염된 윈도 시스템에서 생성한 메모리 덤프 파일을 백트랙 운영체제에 설치되어 있는 볼라틸리티의 “imageinfo” 명령으로 [그림 11]와 같이 감염된 시스템의 윈도 버전과 메모리 덤프 파일의 생성 시각을 확인한다.

[그림 11] ‘imageinfo’ 명령으로 윈도 버전과 메모리 덤프 파일 생성 시각 확인

‘imageinfo’ 명령으로 확인한 윈도 운영체제 버전을 바탕으로 향후 분석 방향이 수립되었다면, [그림 12]와 같이 ‘psscan’ 명령과 ‘pslist’ 명령이 조합된 ‘psxview’ 명령을 이용하여 메모리 덤프 파일을 생성한 윈도 시스템에서 은폐 기능으로 동작하는 프로세스가 존재하는지 확인한다.

[그림 12] ‘psxview’ 명령으로 은폐된 프로세스 존재 여부 분석

[그림 12]에서는 ‘pslist’와 ‘psscan’에서 모두 ‘True’가 검색 되었으므로, 해당 윈도 시스템에서는 은폐 기능으로 동작하는 프로세스는 존재하지 않는 것으로 판단할 수 있다.

메모리 덤프 파일을 생성 할 당시에 감염된 윈도 시스템에서 동작 중인 프로세스의 생성 시간과 이미 종료된 프로세스의 종료 시간 정보를 획득 할 수 있는 ‘psscan’ 명령으로 [그림 13]과 같이 프로세스와 관련 추가적인 정보를 획득한다.

[그림 13] ‘psscan’ 명령으로 프로세스와 관련 추가 정보 획득

그리고, 실행 중인 프로세스의 상관 관계 정보를 획득하기 위해 [그림 14]와 같이 ‘pstree’ 명령으로 추가적인 정보를 획득한다.

[그림 14] ‘pstree’ 명령으로 프로세스의 상관 관계 정보 획득

[그림 14]에 존재하는 붉은색 박스의 프로세스 항목을 확인 해보면 의심스러운 사항이 발견된다. 일반적으로 윈도 시스템에서 실행 중인 시스템 프로세스는 트리(Tree) 구조에서 시스템(System) 이라는 부모 프로세스 항목에 자식 프로세스 구조를 가지게 된다.

하지만 붉은색 박스의 svchost.exe 프로세스는 다른 시스템 프로세스와 상관 관계를 가지고 있지 않으면서, 시스템 프로세스와 동일한 프로세스 명을 가지고 있음으로 이를 의심스러운 프로세스로 추정 해 볼 수 있다.

그 다음으로는 메모리 덤프 파일을 생성할 당시의 감염된 윈도우 시스템에서 발생하였던 네트워크 접속 관련 정보들을 획득하기 위해, ‘connections’ 명령을 실행했다. 하지만, 그 당시에 외부 인터넷에 존재하는 시스템에 접속 중인 활성화 상태의 프로세스는 존재하지 않았다.

추가적으로, 이미 종료된 네트워크 접속 상태 정보들을 획득하기 위해 [그림 15]와 같이 ‘connscan’ 명령을 통해, 외부 네트워크로 접속했던 프로세스 리스트를 확인했다.

[그림 15] ‘connscan’ 명령을 통해 네트워크 연결 정보 획득

이 과정에서 최초 [그림 14]에서 의심스러운 프로세스로 추정했던 PID 192번 프로세스인 svchost.exe가 외부 네트워크로 접속을 하였던 흔적이 발견되었다.

해당 의심스러운 프로세스가 실제 악성코드가 정확한지 확인하기 위해 메모리 덤프 파일에서 첫 번째 분석 사례에서 언급한 [그림 6]과 같이 의심스러운 프로세스인 svchost.exe의 메모리 영역 전체를 ‘procexedump’ 명령을 통해 파일 형태로 추출했다.

그 이후, 사람이 읽을 수 있는 문자열을 추출하기 위해 파일에서 첫 번째 사례에서 언급한 [그림 7]과 같이 백트랙에 포함되어 있는 ‘string’ 명령을 이용하여 임의로 텍스트 파일을 생성하여, 문자열을 확인했다. 그러나 특별히 악성코드로 의심 할 수 있는 문자열을 확인하지 못했다.

의심스러운 프로세스인 svchost.exe의 메모리 영역 전체가 악성코드가 아닐 수도 있음으로, 해당 프로세스 메모리 영역에 코드 인젝션이 발생 한 것을 확인 하기 위해, [그림 16]와 같이 “malfind” 명령을 통해 PID 192번의 의심스러운 프로세스인 svchost.exe의 메모리 영역을 검사했다.

[그림 16] ‘malfind’ 명령을 이용해 특정 프로세스 메모리 영역의 코드 인젝션 정보 획득

이 과정에서 svchost.exe의 메모리 영역의 0x90000 주소에서 특정 코드가 인젝션이 된 것이 발견되었다. 해당 프로세스 메모리 영역에서 발견된 코드 인젝션에 대한 추가 정보 획득을 위해 [그림 17]과 같이 ‘volshell’ 명령을 실행 한 후 ‘CC’ 명령으로 PID 192번 svchost.exe의 메모리 영역을 호출하였다.

[그림 17] ‘volshell’ 명령 실행 후 ‘CC’ 명령으로 PID 192번 svchost.exe의 메모리 영역 호출

그리고, ‘volshell’ 명령 창에서 [그림 18]과 같이 ‘db’ 명령을 실행하여, 앞서 언급한 [그림 16]에서 확인한 코드 인젝션이 시작되는 0x90000 주소부터 호출하는 메모리 크기를 조금씩 늘려나가며 분석을 진행하였다.

[그림 18] ‘volshell’ 명령 실행 후 ‘db’ 명령으로 0x90000에서 640 바이트만큼 호출

크기를 조금씩 늘려나가며 분석하는 과정에서, 640 바이트(byte) 크기만큼 호출한 영역에서 [그림 18]의 붉은색 박스에서와 같이 의심스러운 문자열들을 확인 할 수 있었다. 인젝션 된 메모리 영역에서 “1.tmp” 이라는 문자열이 존재하므로 코드 인젝션이 DLL 파일에 의해 발생한 것으로 추정 할 수 있다.

의심스러운 프로세스로 추정했던 PID 192번 svchost.exe의 메모리 영역에 대한 모듈(module) 정보를 획득하기 위해 [그림 19]와 같이 “ldrmodules” 명령을 실행하여 로드 되었거나 인젝션 되어 있는 DLL 파일을 확인했다.

[그림 19] ‘ldrmodules’ 명령을 실행하여 로드 되거나 인젝션된 DLL 파일

이 과정에서 앞서 언급한 [그림 18]에서 발견된 [그림 19]의 붉은색 박스와 동일한 ‘1.tmp’ 파일이 PID 192번 svchost.exe의 쓰레드 영역에도 로드된 것을 확인 할 수 있었다. 여기에서 발견된 ‘1.tmp’가 악성코드인지 정확히 확인하기 위해 해당 ‘1.tmp’ 파일의 메모리 영역을 파일 형태로 추출이 필요하다. 이를 위해 [그림 20]과 같이 ‘dlldump’ 명령으로 ‘1.tmp’의 메모리 영역인 0x10000000부터 파일 형태로 추출하였다.

[그림 20] ‘dlldump’ 명령으로 ‘1.tmp’의 메모리 영역인 0x10000000부터 파일 형태로 추출

의심스러운 파일인 ‘1.tmp’의 메모리 영역 전체를 ‘dlldump’ 명령을 통해 파일 형태로 추출한 후, 사람이 읽을 수 있는 문자열을 추출하기 위해 [그림 21]과 같이 백트랙에 포함되어 있는 ‘string’ 명령을 이용하여 임의로 텍스트 파일을 생성한다.

[그림 21] ‘string’ 명령으로 파일 형태로 추출된 ‘1.tmp’ 메모리 영역에서 문자열 추출

사람이 읽을 수 있는 문자열을 추출 해낸 텍스트 파일을 열면, [그림 22]와 같이 특정 웹 사이트 주소 관련 문자열이 발견된다.

 [그림 22] ‘1.tmp’로부터 추출한 파일에서 발견된 특정 웹 사이트 문자열

[그림 22]에서 발견한 특정 웹 사이트 주소를 [그림 23]과 같이 ‘yara’ 명령어 키워드에 특정 웹사이트 주소를 이용하여 전체 메모리 덤프 파일을 대상으로 검색 해보면, 코드 인젝션이 발생한 PID 192번 프로세스인 svchost.exe만이 검색된다.

 [그림 23] ‘yara’ 명령으로 메모리 덤프 전체 영역에서 특정 웹 사이트 문자열 검색

이러한 일련의 분석 과정을 정리하자면, 최초 의심스러운 프로세스였던 PID 192번 svchost.exe에는 ‘1.tmp’ 라는 악성코드로 판단되는 파일이 ㅆ레드로 인젝션되어 svchost.exe 프로세스를 이용하여 외부 특정 시스템으로 역 접속을 시도했던 것으로 판단할 수 있다.

맺음말

앞서 우리는 컴퓨터 포렌식이 침해 사고 대응과 분석이 이루어지는 과정에서 어떠한 역할을 하는지 살펴보고, 여기서 다시 멀웨어 포렌식이라는 새로운 기술적인 영역이 악성코드의 감염 경로와 악성코드로 의심되는 파일들을 추출하기 위해 어떠한 세부 기술들이 사용되는지 알 수 있었다.

이러한 세부 기술들 중에서 메모리 분석을 위한 메모리 포렌식이 무엇이며, 어떠한 소프트웨어들로 분석이 가능한지도 알 수 있다. 그 중에서도 메모리 분석을 위해 가장 많이 사용되는 소프트웨어 중 하나인 볼라틸리티가 무엇이며, 볼라틸리티를 이용하여 실제 악성코드에 감염된 시스템에서 생성한 메모리 덤프 파일들의 분석 과정과 사례들을 살펴보았다.

볼라틸리티를 이용한 메모리 포렌식 분석 사례들을 통해 일련의 과정들을 살펴보면, 메모리 분석의 장ㆍ단점이 존재한다.
우선, 메모리 포렌식 분석은 메모리에만 존재하는 휘발성 정보들로부터 악성코드 감염 시스템에서 발생한 다양한 정황적 정보를 확보할 수 있음을 알 수 있다. 그리고 생성한 메모리 덤프 파일을 대상으로 추후에라도 다양한 메모리 분석 툴과 기법을 이용하여 반복적인 적용과 검토가 가능 하다는 장점이 존재한다.

이 외에도 메모리 포렌식 분석에 사용된 볼라틸리티와 관련 플러그인들 모두가 파이선으로 제작되어, 운영체제에 따른 제약을 받고 사용이 가능한 확장성이 뛰어나고, 시스템적인 자동화와 같은 부가적인 응용성이 뛰어나다고 볼 수 있다.

이러한 장점들이 존재하지만 메모리 포렌식 분석만으로는 악성코드에 감염된 시스템을 완벽하게 분석하기에는 많은 어려움이 따른다. 그러므로, 최초 앞부분에서 언급하였던 다른 멀웨어 포렌식 기법들과 병행이 되어야만이 조금 더 자세하게 분석을 진행 할 수 있다.

그리고, 볼라틸리티를 이용한 메모리 포렌식 분석에서는 메모리 덤프 파일에 존재하는 윈도 레지스트리 정보를 분석하기에는 많은 어려움이 따른다. 볼라틸리티를 이용한 메모리 분석 사례에서는 언급되지 않았지만 사용자와 커널 모드에서 은폐 기법을 사용하는 악성코드에 의해 생성된 프로세스 영역을 볼라틸리티에서는 은폐된 프로세스로 탐지는 가능하다. 하지만, 다른 형태와 기법 등으로 추가적인 분석을 진행하기에는 많은 제약이 따른다.

하지만, 전체적인 메모리 포렌식과 관련된 기술의 발전이 빠르게 진행되고 있다. 또한 다양한 컴퓨터 포렌식커뮤니티에서 이와 관련된 논의들이 자주 이루어지고, 메모리 포렌식만을 전문으로 하는 컨퍼런스가 해마다 개최되고 있다는 점에서 메모리 포렌식 기술의 발전은 긍정적이라고 할 수 있다.

그러므로, 향후에는 침해 사고 대응과 분석 과정에서 메모리 포렌식 분석이 차지하는 비중은 점점 커질 것이며, 이와 관련된 다양한 소프트웨어와 분석 기법들을 많이 등장하리라 판단된다.

[참고 문헌] 

인사이드 윈도우 포렌식 (Windows Forensic Analysis 2/e, 2009년), 할랜 카비 저, 정상민, 정명주 역, 박병익 감수, BJ 퍼블릭, 2010년
제 1장 실시간 대응: 휘발성 데이터 수집
제 2장 실시간 대응: 데이터 분석
제 3장 윈도우 메모리 분석

■ 윈도 포렌식 실전 가이드, 고원봉 저, 한빛 미디어, 2010년
1장 라이브 리스폰스
2장 메모리 분석

■ 악성코드와 멀웨어 포렌식 (Malware Forensics, 2008년), 제임스 아퀼리나, 에이헨 케이시, 카메론 말린 저, 박재호 역,
에이콘, 2012년
01장 멀웨어 사고 대응: 동작 중인 윈도우 시스템에서 휘발성 자료 수집과 검사
03장 메모리 포렌식: 멀웨어 관련 증거물에 대한 물리적 메모리 덤프와 프로세스 메모리 덤프 분석

■ 표적형 공격 보안 가이드, APT 공격, 실전 방어 및 대응 (HYOUTEKIGATA KOUGEKI SECURITY GUIDE, 2013년),
이와이 히로키 저, 박선필 역, BJ 퍼블릭, 2013년
6장 초동 대응
6-1 스냅샷 취득

■ Mastering Windows Network Forensics and Investigation, Second Edition, Steve Anson, Steve Bunting, Ryan Johnson, Scott Pearson 저, Sybex, 2012년
Chapter 6 Live-Analysis Techniques

■ Malware Forensics Field Guide for Windows System – Digital Forensics Field Guides, Cameron H. Malin, Eoghan Casey, James M. Aquilina 저, Syngress, 2012년
Chapter 2 Memory Forensics – Analyzing Physical and Process Memory Dumps for Malware Artifacts

■ SANS Forensic 508 Advanced Computer Forensic Analysis And Incident Response, Rob Lee 저, SANS Institute, 2011년
508.2 Live Response and Complex Evidence Acquisition
Windows Live Response

■ Virtual Forensics: A Discussion of Virtual Machines Related to Forensics Analysis
http://www.forensicfocus.com/downloads/virtual-machines-forensics-analysis.pdf

■ FATKit: A Framework for the Extraction and Analysis of Digital Forensic Data from Volatile System Memory
http://www.4tphi.net/fatkit/papers/dfrwswip.pdf

■ Volatools: Integrating Volatile Memory Forensics into the Digital Investigation Process
http://www.blackhat.com/presentations/bh-dc-07/Walters/Paper/bh-dc-07-Walters-WP.pdf

■ Open Memory Forensics Workshop (OMFW)
https://www.volatilesystems.com/volatility/omfw/Walters_OMFW_2008.pdf

■ Windows Memory Dump Analysis Volatility Plugin 을 이용한 Windows Memory Dump 분석
http://ls-al.org/wp-content/uploads/2012/07/volatility-plugin-manual11.pdf

2014년 3월 1일 토요일

2010년 6월 "보안 위협과 악성코드 분석 기법" 강의 자료

3월 1일에 벌써 두 번째 블로그 글을 올리게 되는군요. 오늘 공개하는 자료는 2010년 6월 서울종합과학대학원 산업보안 MBA 및 산업보안전문가 과정에서 강연하였던 "보안 위협과 악성코드 분석 기법" 입니다.

지금 돌이켜서 생각해보면 연구 활동과 강연 활동에 조금 게을러지기 시작한 시기가 아닌가 합니다. 연구 활동이 부족해지다보니 자연스럽게 강연 자료가 충실해지지 못했던 것 같습니다. 아마도 2010년 1월에 결혼을 해서 신혼 생활에 여유를 많이 부렸던 것도 같습니다.

그리고 이 강의를 하면서도 조금 후회가 되는 부분이 학생들의 절반 이상이 기술 기반을 가진 분들이 아니라서 강연 내용을 전반적으로 이해하기 어려워 하셔서 수준을 잘 못 맞추지 않았나 하는 생각이 들더군요.

2010년 1학기에 진행되었던 강연의 주제는 전반적인 보안 위협의 동향과 이러한 보안 위협의 큰 축으로 자리 잡은 악성코드를 분석하기 위한 기법들에 대해 다루고 있습니다.



2014년 2월 19일 수요일

2010년 2월 조선대 CERT팀에 대한 보안 강의

드디어 2010년 자료를 공유하는 시점까지 오게 되었네요. 2010년 첫 외부 강연은 2월 전라남도 광주에 위치한 조선대에서 이루어지게 되었습니다.

개인적으로 전라도 광주를 방문 해본적이 대학 1년 시절인 1995년이고, 그 이후로 처음 방문해보는 것이 새로운 여행지를 온듯한 느낌이 많았습니다. 조선대는 생각보다 크고 넓었으며, 캠퍼스 전체가 정갈하고 깔금하다는 느낌을 많이 받았습니다.

이번 외부 보안 강의는 이제까지 학부생들을 대상으로 해왔던 강의와는 조금 달리 조선대CERT(Computer Emergency Response Team)팀의 팀원들을 대상으로 진행하였습니다. 조선대CERT팀은 학내에서 발생하는 보안 사고들을 직접 교직원들과 함께 대응하는 업무도 담당하고 있어 생각보다 많은 부분들을 익히 알고 있었습니다.

해당 보안 강의는 총 3시간에 걸쳐서 진행되어 왔으며, 첫 번째 시간은 2009년 당시에 발생하는 보안 위협들에 대한 전반적인 현황과 특징들에 대해 설명하였습니다. 그리고, 두 번째 시간은 발생하는 보안 위협들을 분석하기 위한 방법론 중 동적 분석에 대해 살펴보고, 각 단계에서 사용하는 분석 도구들과 간단한 데모로 끝을 맺었습니다.

방학 기간이라 생각보다 많은 학생들을 강연을 들어오지 않았지만, 강연 후에 토론에 가까운 질문들이 이어져 저 역시 좋은 경험을 할 수 있었던 계기였었습니다.





2014년 2월 11일 화요일

APT(Advanced Persistent Threat) 공격의 현재와 대응 방안

오늘은 두 개의 글을 포스팅하게 되는군요. 시간 날때 집에서 써야지 하다가다 애기의 장난과 저의 게으름에 그냥 지나치기 일쑤 인데, 오늘은 모처럼 시간을 내어 봅니다.

APT(Advanced Persistent Threat)와 관련된 원고도 과거에 한번 썼었던 적이 있었고, 외부 및 내부 강의로 인해 파워포인트(PowerPoint) 슬라이드도 버전만 조금씩 다르지 작성해 두었던 것이 제법 있었습니다.

오늘 공유하는 자료는 2014년 1월 초에 내용을 업데이트 한 자료인데, 당시 다른 메모리 포렌식(Memory Forensic) 관련 원고를 작성 중에 있던 시점이었습니다. 그래서, 원고를 담당하시는 담당자분께 파워포인트 슬라이드 파일만 전달 해드렸는데, 이를 원고로 보기좋게 정리를 하셔서 "월간 안" 2월호에 옮겨 주셨더군요.

그래서, 강남 성형외과 광고에 자주 보였던 문구 중 하나인 "비포(Before) & 애프터(After)"로 나누어, 초안이었던 PPT 슬라이더를 먼저 보여드리고, 그 아래 부분에 정리되어 실렸던 원고를 게시하였습니다.



초안이 되었던 PPT 슬라이드가 과거 자료와 다른 점은 마지막 3장에 조금 더 실질적이고 현실적인 대안이 "APT(Advanced Persistent Threat) 공격 예방적 System Hardening"와 "APT(Advanced Persistent Threat) 공격 탐지적 Network Control" 라는 내용으로 추가되었습니다.

이는 작년 가을 서울종합과학대학원 산업보안 MBA 과정에서 진행되었던 특강시에 받았던 여러 질문 중 하나가 "현실적으로 조치 할 수 있는 가이드라인(Guild-line)이 무엇이냐" 였습니다.

이 질문을 주신 분은 실제 기업 보안팀에서 현업 엔지니어로 근무하시는 분이라 개념적인 내용과 공격 기법 분석 역시 중요하지만, 방어적인 차원에서 삼을 수 있는 가이드라인이 필요하였던 분이었습니다. 그래서 내부 자료들을 정리하면서 가이드라인으로 삼을 수 있는 부분들을 추가하였습니다.

이런 초안이 아래와 같은 원고로 변경되어 "월간 안" 2월 호에 동일한 제목으로 "APT 공격의 현재와 대응 방안, APT 공격 예방을 위한 11가지 수칙"으로 공개되었습니다.

+---------------------

APT 공격 예방을 위한 11가지 수칙

인터넷으로 연결된 세상은 그야말로 그물망처럼 더욱 정교하고 공고해지고 있다. 이러한 환경은 악성코드가 서식하기에 더없이 좋은 조건이기도 하다. 신년인사나 청첩장, 이력서도 이메일이나 SNS를 통해 전달하는 것이 이젠 어색하지 않다. 그러나 무심코 열어본 이메일, 늘 사용하던 SNS에 생각지도 못한 악성코드의 위험이 도사리고 있다. 인터넷 환경이 발달할수록, 사용자가 많아질수록, 그 틈새를 노리는 악성코드도 더욱 교묘해지기 마련이다. 더욱이 공격 타깃이 불특정 다수가 아닌 특정 기업이나 기관, 사회기반 시설 등이 되고 있으며 그 파괴력 또한 상상을 초월한다. 이제 보안을 아는 사람이라면 더 이상이 낯설지 않게 되어 버린 APT. 2014년 현재 APT는 어느 수준이며 이에 대응하기 위한 방안은 무엇인지 다시 한번 점검해보자.

APT의 정의

2004년 6월 우리나라 정부와 기업들을 대상으로 한 핍뷰어(PeepViewer)라는 트로이목마가 유포된 사례가 있었다. 국가정보원에 따르면, 6개 공공기관의 PC 64대와 민간 기업의 PC 52대가 감염되었다. 이 트로이목마는 이메일로 ‘워크숍 내용과 일정.MDB’라는 첨부 파일을 전송하여 악성코드 감염을 시도한 것으로 나타났다. 이것은 정부와 일반 기업들을 대상으로 정부 기밀을 탈취하기 위한 국내 최초의 APT 공격 사례로 꼽히고 있다.

이후 국내에서 APT 공격 사례가 대거 나타나기 시작한 것은 2011년부터였다.

2011년 4월에 농협 전산망 마비 사고가 대표적이다. 외부 공격으로 인해 농협의 전산망 시스템이 손상되어 모든 업무가 마비되었다. 이 사고는 외주 직원의 노트북 PC를 감염시킨 후 내부 시스템으로 침입하는 기법을 사용했다. 공격자는 P2P 프로그램으로 악성코드를 유포한 후 7개월 동안 꾸준히 감시하면서 공격 시점을 엿보았던 것으로 드러났다.

같은 해 7월, 3500만 명의 고객 개인정보가 유출된 SK커뮤니케이션즈 침해 사고가 대한민국을 뒤흔들었다. 무료 소프트웨어 업데이트 서버를 해킹하여 정상 파일을 악성코드로 변경한 후 유포하는 방식을 이용하였다. 공격자는 8일 만에 DB 관리자 권한을 획득하였고 DB 데이터를 분할 압축하여 외부로 유출하였다.

해외에서는 2010년 이란 원자력 발전소의 시스템 파괴를 목적으로 한 스턱스넷(Stuxnet)이 발견되었다. 공격자는 MS 윈도의 알려진 취약점 3개와 제로데이 취약점 2개를 악용하여 악성코드를 유포하였다. 2011년에 보고된 듀크(Duqu)와 2012년 발견된 플레임(Flame) 모두 이란 원자력 발전소 관련 정보 수집을 목적으로 침투한 사건이었다.


2010년 1월에는 구글의 기업 기밀 정보를 탈취하기 위한 일명 오퍼레이션 오로라(Aurora)가 발생했다. 이 사고는 구글 외에 첨단 IT 기업 34개도 공격하였다. 마이크로소프트 인터넷 익스플로러의 제로데이 취약점을 악용했으며, 이메일과 메신저로 악의적인 웹 사이트로 접속하는 링크를 전달했다.


2011년 3월에는 EMC/RSA의 OTP(One Time Password) 제품 기밀 정보를 탈취하려는 시도가 있었다. 공격 대상을 선정하기 위해 소셜 네트워크로 내부 직원의 개인정보를 확보하였다는 점에서 본격적인 APT 침해 사고로 알려져 있다. 어도비 플래시 플레이어의 제로데이 취약점을 악용한 첨부 파일을 이메일로 전파, 사회공학적 기법으로 내부 직원의 악성코드 감염을 유도했다.


2012년 2월 CNN은 시리아 정부가 반정부 인사 감시를 위한 악성코드를 유포했다고 폭로했다. 이메일 첨부 파일, 허위 유튜브(Youtube) 페이지, 스카이프(skype)로 악성코드를 유포했으며 언더그라운드에 공개된 DarkComet RAT 악성코드 생성기로 악성코드를 제작한 것으로 알려졌다.

시리아, 이스라엘, 사우디아라비아, 레바논 등지의 PC가 주로 감염됐다.

2013년에 APT 공격은 더욱 기승을 부렸다.

1월에는 오퍼레이션 ‘붉은 10월(Red October)’이라는 악성코드가 동유럽 및 중앙아시아 국가의 기관들을 해킹하는 사건이 발생했다. 이 악성코드는 정부와 연구 기관 등을 타깃으로 정교한 공격을 시도한 것으로 알려졌다. 2월에는 뉴욕타임즈, 월스트리트저널 등 미국의 주요 언론사들이 이전에 해킹 시도가 있었다고 밝히면서 그 배후를 중국의 ‘APT 1’이라고 보도하여 논란이 되었다. 3월에는 인도의 해커 집단인 오퍼레이션 행오버(hangover)가 인근 국가의 정부기관을 해킹하는 사건이 발생했고, 우리나라에서는 KBS, MBC, YTN과 농협, 신한은행, 제주은행 등 방송ㆍ금융 6개사의 전산망이 마비되는 3ㆍ20 사이버테러가 발생했다.

4월에는 국제 해커 집단 윈티(Winnti)가 한국, 미국, 일본 등 전 세계 30여 개국의 온라인 게임 업체를 공격했다고 발표됐으며, 6월에는 악성코드 넷트래블러(NetTraveler)가 우리나라를 포함해 40개국 350개 기관을 공격한 것으로 드러났다. 또한 9월에는 한국과 일본의 주요 정부 기관과 기업들을 대상으로 공격을 시도한 소규모 사이버 용병 그룹인 아이스포그(Icefog), 중국에 거점을 둔 청부 해커 집단인 Hidden Lynx 등에 대한 실체가 드러났다. 이어 12월에는 중국의 해커 집단인 케상창(Ke3chang)이 G20 정상회담 직전 유럽 5개국 외교통상부 장관의 컴퓨터를 해킹한 사건이 보도됐다.


APT 공격 형태의 특징

공격 대상의 확대

인터넷과 컴퓨터의 발달로 정부 기관이나 각 기업에서 업무 자동화 시스템을 도입하고 있다. 따라서 모든 업무는 물론, 기밀 문서 역시 전자 문서와 같은 데이터 형태로 파일 서버에 보관하는 것이 일반적이다. 이러한 환경은 APT 형태의 타깃형 공격이 증가하기 좋은 토양이 된다.

APT 공격의 목적은 더욱 다양화되고 있으며 그 공격 대상 역시 확대되고 있다.

과거에는 정부나 군사 기관만이 주요 공격 대상이었으나, 지금은 경제적 고부가가치 데이터를 보유한 첨단 기업들을 포함한 민간 기업으로까지 확대됐다.

한국과 일본은 특히 금융기관, 언론사 및 온라인 게임 업체들이 주 대상이 되고 있다.



고도화된 공격 기법

웹과 소셜 네트워크의 발달은 공격 대상의 개인정보 수집이 용이한 상황을 만들어준다. 수집한 개인정보들로 공격 대상에게 최적화된 사회공학적 기법을 개발하고 적용하기 쉬워진 것이다. EMC/RSA 침해 사고도 내부 직원들에게 채용 정보 관련 메일로 위장한 것이었다.

또한, 악성코드 제작 및 취약점 개발 기술들의 발전은 보안 제품 탐지 우회와 APT 공격의 성공률을 높이는 데 기여하였다. 악성코드는 셀프 업데이트(self-update), 보안 제품 무력화 등 다수의 개별 기능을 가진 파일들을 조합하기도 한다. 취약점은 다양한 일반 소프트웨어의 알려진 취약점이나 제로데이 취약점을 악용하고 있다.

현재까지 APT 공격의 주요 기법은 이메일의 첨부 파일을 이용하는 형태였다. 이전에는 첨부 파일이 실행 가능한 파일이었으나 최근에는 전자 문서 형태로 변하고 있다. 우리나라에서는 무료 소프트웨어의 자동 업데이트 기능과 국산 P2P 프로그램을 악용하는 사례가 늘고 있다.



APT 공격 대응 방안

APT 공격 방식

APT 공격은 먼저 공격 대상을 정의하는 데서 시작한다. 공격 대상을 정하고 나면, 대상에 맞는 악성코드를 제작하거나 구매한다. 이후 공격 대상에 대해 연구하면서 내부 감염을 시도한다. 이때 사회공학적 기법을 이용한 타깃형 공격이 진행된다. 내부 감염이 성공하면 일단 거점이 확보된 것이다. 악성코드가 감염되었으면 공격자와 연결하기 위해 역 접속(reverse connection)으로 C&C 서버와 연결한다. 연결 후에는 C&C 서버를 통해 원격으로 제어하건 공격 명령을 지시할 수 있다. 이렇게 해서 내부 데이터를 탈취한 후에는 잠복 흔적을 제거함으로써 대상에서 빠져나 온다.



APT 통합 대응 전략

보안 위협에 대응하기 위해 위기 관리 기반의 기업 보안 정책을 수립하는 것이 선행돼야 한다.

또한 공격 표면 축소와 공격 탐지의 효율을 위해 심층 대응(Defense in Depth) 전략을 수립하고, 새로운 보안 위협에 대한 신속한 대응을 위해 시큐리티 인텔리전스(Security Intelligence)를 확보해야 한다.

보안 위협의 출발점이 내부 임직원인 경우가 많으므로, 주기적인 보안 인식 교육도 매우 중요하다.


APT 공격을 사전에 예방하기 위해서는 아래 사항을 빠짐없이 준수하여야 한다.

APT 공격 예방을 위한 시스템 강화

1. 모든 운영체제와 웹 애플리케이션 및 관련 서버는 최신 버전을 유지하고 보안 패치를 적용한다.

2. WSUS(Windows Server Update Services)로 최신 보안 패치를 배포하고 설치한다.

3. 모든 시스템에는 안티바이러스 소프트웨어를 설치하고 안티바이러스 관리 서버에서 모니터링한다.

4. 모든 운영체제에 존재하는 사용하지 않는 사용자 계정은 비활성화하거나 삭제한다.

5. HSM(Host Security Monitoring, HIPS) 설치 후 모니터링하고 주기적으로 분석한다.

6. 터미널 서버에는 공용 계정을 삭제하고 저장된 계정 정보와 암호를 모두 삭제한다.

7. 터미널 서버에는 업무 목적별로 개별 계정을 생성한 후에 로그인 로그를 생성하고 관리한다.

8. 데이터베이스의 xp_cmdshell Procedure를 삭제하고 관련 파일 xplog70.dll을 삭제한다.

9. 데이터베이스 정보는 암호화해서 관리하되, 웹 서버에서 암호화하여 데이터베이스로 전송한다.

10. 웹 서버에는 SSL(Secure Socket Layer)를 활성화 한다.

11. 윈도우 이벤트 로그 및 IIS 웹 로그는 통합하여 로그 매니지먼트 서버에서 관리한다.

APT 공격 탐지를 위한 네트워크 제어

1. 백본 스위치에서는 화이트리스트 및 블랙리스트를 이중 정책으로 설정해 관리한다.

2. 기업 외부 네트워크에서 기업 내부로 접속할 때 IPSec VPN 혹은 SSL VPN을 이용하도록 한다.

3. IPSec VPN 혹은 SSL VPN 연결 시마다 발생하는 모든 VPN 로그를 별도로 관리한다.

4. VPN 계정은 업무 목적별로 생성하고, 권한도 구분하여 적용한다.

5. 기업 내부 아웃바운드 패킷에 대한 필터링을 적용한다.

6. 기업 내부 HTTP 통신은 모두 웹 프록시를 거치도록 운영하고 관리한다.

7. 기업 내부에서는 파일 공유 서비스 대신 SFTP 또는 SCP(Secure Copy)만 사용하도록 한다.

8. NIDS와 같은 NSM(Network Security Monitoring) 247을 운영 및 관리한다.

9. NIDS 이벤트 및 전체 세션 데이터와 전체 패킷을 저장하고 분석한다.

10. 업무 영역별로 네트워크 분리 후 각 업무 영역마다 방화벽을 설치하고 관리한다.

11. 시스템, 네트워크 및 데이터베이스 등 IT 관리 부서는 일반 업무 영역과 별도로 구분한다.

윈도우 레지스트리(Windows Registry) 포렌식에 대한 이해를 위해

1월 초에 읽었던 기술 서적을 블로그에 포스팅 하려고 합니다. 작년 하반기부터 멀웨어 포렌식(Malware Forensic)에 대해 깊이 있게 파볼려고 4개 부분(메모리, 레지스트리, 네트워크, 파일 시스템)으로 나누어 연구와 실험을 계속 해오고 있습니다. 연구를 계속 할 수록 업무적으로 다루었던 사항들과 연결되는 부분들이 많이 있더군요..

이러한 연구에 대한 결과물로 메모리 포렌식(Memory Forensic)은 작년 초겨울 파워포인트(PowerPoint) 슬라이드로 만들어 내부적으로 공유도 했었고, 별도로 회사 간행물인 "월간 안"에 "볼라틸리티를 이용한 메모리 포렌식 분석"이라는 제목으로 이번 2월호에 원고가 게시 되었습니다. 해당 원고가 A4로 40 페이지가 넘다 보니, 담당자 분께서 깊은 고민 끝에 2부작으로 나누어 실어주셨습니다. 그래서 현재 1부만 게시되었고, 2부는 다음 3월호에 실릴 예정이라고 합니다.

이렇게 해서 메모리 포렌식에 대해서는 어느 정도 매듭을 지었고, 두 번째로 2013년 12월부터는 레지스트리 포렌식에 대한 서적들과 논문들을 읽으면서, 실험이 필요한 부분들은 직접 검증을 하며 연구를 진행 중에 있습니다.

이 레지스트 포렌식 연구 과정에서 제일 먼저 참고하여 읽었던 서적이 오늘 포스팅하는 "철통보안, 윈도우즈 레지스트리 포렌식 보안 전문가를 위한 디지털 포렌식 분석" 입니다.


이 책 역시 컴퓨터 포렌식(Computer Forensic) 분야에 정통한 할렌 카비(Harlan Carvey)가 저술하였으며, 윈도우(Windows) 시스템의 핵심 구성 요소 중 하나인 레지스트리와 이에 대한 포렌식 기법들에 대해 다루고 있습니다. 역자 역시 한국 CISSP 협회에서 몇 번 뵈었던 백제현 이사님으로 컴퓨터 포렌식 분야에 정통하신 분입니다. 그 덕분에 번역이 정갈하게 잘 되어 원서를 다시 찾아 보지 않아도 될 정도로 잘 정리 되었습니다.

이 책의 가장 큰 장점을 언급한다면, 윈도우 시스템에 존재하는 레지스트리에 대한 개론에서부터 이를 검증할 수 있는 다양한 툴과 기법들을 같이 소개하고 있다는 점입니다. 이러한 부분으로 인해 레지스트리 분석을 통해 시스템으로부터 얻을 수 있는 데이터에 대해 종합적으로 생각해 볼 수가 있었습니다.

하지만, 레지스트리 부분에 대한 기술적인 설명만을 놓고 본다면 "윈도우 인터널즈(WINDOWS INTERNALS(제5판) 마이크로소프트 윈도우 커널 공식 가이드)" 보다는 자세하지 않습니다. 하지만 이 "윈도우즈 레지스트리 포렌식" 책은 레지스트리 포렌식에 대한 전반적인 이해를 돕고자 쓰여진 책이므로, 사실상 목적이 다르다고 볼 수 있습니다. 이러한 목적에 부합하기 위해 레지스트리를 대상으로 실험 할 수 있는 다양한 툴들과 기법들에 대해서는 충실하게 설명이 되어 있습니다.

개인적으로 한가지 아쉬운 부분은 악성코드 분석과 관련하여 자동 실행을 위한 윈도우 레지스트 부분에 대한 자세한 설명이 부족하며, 이러한 부분의 분석을 위한 툴이나 기법 소개도 역시 생각보다 풍부하지는 않습니다. 그러나 앞서 설명한 바와 레지스트리 포렌식에 대한 전반적인 이해를 돕기 위한 책입니다.

그러므로, 악성코드 분석에 관심 있으신 분들이나, 컴퓨터 포렌식에 관심 있으신 분들 모두 읽어도 도움이 많이 되는 기술 서적이라고 할 수 있습니다. 물론, 윈도우 레지스트리를 많이 다루어 왔지만, 다시 한번 되짚어 보고자 하시는 전문가 분들에게도 도움이 되는 책이라고 할 수 있습니다.

2014년 2월 3일 월요일

2009년 10월 서울여대 정보보호학과 강의 자료

드디어 2009년의 마지막 자료까지 왔네요. 서울여대 강의는 기억에 참 많이 남습니다. 지금 근무하는 회사에서 처음으로 시도한 대학 강의였고, 저 역시 대학생 더군다나 여대생들을 대상으로 강의를 하게 된 좋은 경험이었던 것 같습니다.

특히나 2010년 2학기 강의에는 2009년 강의 실패를 교훈 삼아서 학생들의 눈높이에 맞추어 실무에 필요한 기본 지식부터 강의하자라는 생각으로 만든 자료 였었습니다. 그래서 시간적인 투자와 표현 방법들에 대한 노력에서부터 별도로 V3 365 패키지를 구매해서 중간 중간 간단한 퀴즈에 답변한 친구들에게 나누어주면서 흥미과 관심을 유발하고자 나름대로 교수법에까지 많은 노력을 했던 기억이 많이납니다.

그래서 인지 그 이후에 회사에 연수생으로 지원한 친구들 중에서 제 강의를 들었다는 친구들도 제법 있더군요.

2010년 10월 서울여대 정보보호학과 학생들을 대상으로 이루어진 보안 교육은 총 3일 9시간에 걸쳐서 이루어졌습니다. 그 덕분에 매주 서울여대를 방문해야 했고 그 때 마다 당시 담당 교수님이셨던 김명주 교수님께서 저녁을 사주시면서 이런 저런 말씀들을 나누었습니다.

아래는 그 당시에 강의 했던 자료로 총 6개의 자료가 강의에 사용되었으며, 강의 순서는 보안 위협 동향에서 윈도우 시스템과 파일 구조, 윈도우 커널과 루트킷(Rootkit), 리버싱(Reversing) 기초, 동적 분석 그리고 마지막으로 정적 분석으로 이어집니다.

1. 2009년 상반기 보안 위협 동향

첫 강의는 학생들이 앞으로 실무에서 맞주치게 될 보안 위협들에 대해 설명한 "Know Your Enemy" 컨셉의 강의로, 악성코드 개론에서부터 블랙 마켓과 언더그라운드 등에 대한 전반적인 내용들을 다루고 있습니다.



2. Windows System과 File Format

두 번째 강의는 윈도우 시스템에 대한 개략적인 이해와 Win32 API로 제작된 윈도우 실행 파일의 구조 그리고 DOC와 PDF 파일에 대한 개략적인 구조에 대해 설명하고 있습니다.



3. Windows System과 Rootkit

두 번째 강의에서 윈도우 시스템에서 개론적인 전체를 살펴봤다면, 세 번째 강의에서는 윈도우 시스템의 핵심인 커널과 이와 관련된 유저 모드(User Mode) 및 커널 모드(Kernel Mode) 루트킷들의 기법과 형태에 대해 다루고 있습니다.



4. Reverse Engineering Basic

리버스 엔지니어링에 대한 기본 개념과 로우 레벨(Low Level) 프로그래밍과 컴파일러(Compiler) 특징들에 대해 다루고 있습니다.



5. System Level Reversing

시스템 레벨 리버싱으로도 표현되는 동적 분석(Dynamic Analysis)에 대한 개념과 방법론들 이와 관련된 도구들에 대해 다루고 있습니다.



6. Code Level Reversing

정적 분석(Static Analysis)로 이야기 되는 코드 레벨 리버싱에 대한 개념과 어셈블리(Assembly) 언어 기본 그리고 디버깅(Debugging) 및 디스어셈블링(Dissembling) 기본에 대해 다루고 있습니다.



이렇게 해서 총 3일간의 강의는 끝이 나게 되었습니다.

항상 강의를 하고 나면 느끼지만, 자료를 정리하고 만드는 과정에서 저 역시 많이 배운다는 점입니다. 자료를 통해 평소에 잘 못 알고 있던 지식들도 고치고, 새로운 기법들도 배우게 됩니다.

그래서 평소에 책이나 자료를 보면서 지식들을 정리 해두는 것이 중요 한 것 같습니다.

2014년 1월 22일 수요일

2009년 5월 해군 CERT 대상 악성코드 분석 교육

1월말이 다 되어 가는데 2014년 들어 처음으로 작성하는 블로그 입니다. 조금 더 부지런하게 살아야 된다는 생각은 늘 하고 있는데, 현실의 벽은 생각 보다 높다는 생각이 듭니다.

오늘은 처음으로 하는 일이 2가지 있는데요.. 첫번째가 2014년 첫 블로깅이라는 점과 두 번째로 새로 입양한 울트라 노트북으로 작성하는 첫 블로깅이라는 점입니다.

기존에 사용하던 노트북은 집에 있는 와이프의 여가 생활과 홈쇼핑을 위해 헌납하고, 도시바(Toshiba)에서 나온 포르테제 z930 모델을 하나 입양 했습니다. 무게는 1 Kg으로 가볍고 3세대 i5 모델인데, 메모리만 10 GB로 늘려서 VMWare 막 돌리며 쓰고 있습니다.

서론이 좀 길었습니다만, 오늘 공개하는 자료는 2009년 5월 진해에 위치한 해군사령부에서 진행한 해군 CERT 담당자들을 대상으로 한 악성코드 개론과 분석 기법들에 대해 다루고 있습니다.

지금도 진해 출장 갔을 때 기억나는 것이 5월이라 이미 날씨가 더워지기 시작해서 벚꽃들은 모두 지고 없더군요. 그래서 벚꽃들은 못 보고 나무들만 보고 왔었습니다.

그리고 수업 중에 있었던 이야기 입니다만, 교육생 중 해병대 하사관분이 계셨습니다. 점심을 먹고 오후 수업 중에 갑자기 벌떡 일어 나시더니 뒤로 나가서셔 앉았다 일어 섰다를 반복 하시더군요. -_-;;;
무척 당황스러웠지만 수업이 진행 중인 상황이라 말씀을 드리지는 않고 쉬는 시간에 조용히 여쭈어 보니 날씨도 덥고, 나른한 저의 목소리를 계속 들으니 졸리셨다고 하시더군요. ^^;;;

전반적인 내용들은 지난 번 공개한 서울여대 수업자료에서 크게 벗어나지 않습니다만, 교육생들의 수준은 아무래도 해군 CERT 담당자분들이 컴퓨터 전공이시고, 실무를 하시는 분들이라 전반적인 이해는 빠른 편이었습니다.

교육은 크게 다음과 같이 3가지 주제로 오전 9시부터 5시까지 진행 되었습니다.

1. 악성코드 진단 기법 개론
2. 악성코드 분석 방법론과 기법
3. 악성코드 분석 사례







2013년 12월 30일 월요일

2009년 3월 악성코드와 개인 정보 보호

이 게시물을 임시 저장물로 만들어 놓고 다시 손을 봐야지 했던 것이 한 달이 그냥 휙~ 하고 지나 가버렸네요.. -_-;;;

오늘 회사에서 종무식을 하였습니다. 종무식이 한 해의 업무를 마치는 포인트라는 점에서 2013년이 끝이 났다는 것을 실감하게 됩니다.

오늘 소개하는 강연자료는 2009년 3월 외부에서 진행하였던 악성코드와 개인 정보 보호라는 주제의 강연입니다. 해당 강연은 대전 통계청에서 해당 청의 공무원분들을 모시고 진행하였던 강연이라 2008년 보안 위협 동향과 악성코드를 포함한 기본적인 보안 위협들의 정의와 함께 블랙마켓(Black Market)에서 탈취된 개인 정보들을 어떻게 악용되고 거래되는지를 소개하였습니다.
그리고 마지막으로 개인 정보를 보호하기 위해서 어떻게 일반 사용자들이 행동을 해야 되는지에 대한 가이드라인을 소개하였습니다.





2013년 11월 18일 월요일

2008년 12월 보안 위협 동향과 대응 방안

최근에 이런 저런 일들을 챙겨야 하는 사항들이 많아 다시 블로그 작성이 조금 게을러 진 것 같네요. 벌써 11월의 중순에 접어 든데다, 오늘은 서울 및 경기도에 첫눈이 내리더군요..

오후에 잠깐 미팅이 있어 커피 한잔 마시러 갔다가, 나오는 길에 눈이 흩뿌려지는 것이 장관이더군요..

2013년도 이제 1달 하고 보름 정도 남았다는 생각을 하니, 올 한해를 어떻게 보는지 다시 곰곰히 생각해보게 되는 계기가 됩니다.

이런 상황에 공교롭게도 우연이라고 하기에는 이상하게, 오늘 공개하는 자료 역시 2008년의 마지막 강연자료 입니다.

자료에는 12월 12일이라고 적혀 있고, 강연대상이 울산시청 공무원분들이었다는 것과 경주에 있던 어떤 대강연장으로 갔었던 기억만 어렴풋이 납니다..

공무원분들이 주된 대상이다 보니, 기술적으로 어려운 설명보다는 비교적 쉽게 설명을 하고자 했었던 자료들 중 하나 입니다.

그래서 목차는 크게 4가지로 안전한 PC 사용과 관리에 초점이 맞추어져 있습니다.

1. 악성코드의 위협

2. 2008년 보안 위협 동향

3. 정보보호에 대한 5가지 개념

4. 보안 위협에 대한 대응 방안



이 자료가 기존과 다른 점은 처음으로 블랙 마켓에 대한 이야기를 언급하며, 온라인 게임에 의한 금전화를 도식화하고, 관련 악성코드 생성기 이미지를 공개 했다는 점입니다.

이 당시에 제가 다른 자료나 연구를 했었던 기억은 잘 나지 않습니다. 하지만, 2009년도 초반 자료 중 하나가 중국 언더그라운드에 대해 비교적 상세하게 다루었던 것으로 미루어 이 당시부터 조금씩 관련 부분들에 대한 연구를 진행 했던 것이 아닌가 생각 됩니다.

2013년 10월 22일 화요일

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

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

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

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



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

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

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



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