알라딘

헤더배너
상품평점 help

분류

이름:이명수

최근작
2019년 6월 <메모리 덤프로 윈도우 악성코드 분석하기 - 고급 2판>

메모리 덤프로 윈도우 악성코드 분석하기 - 고급 2판

헝가리의 수학자인 폰 노이만은 제어 장치, 산술 논리 장치, 메모리, 입출력 장치로 구성된 컴퓨터 구조를 확립했으며, 이후 현대의 대부분 컴퓨터는 폰 노이만의 설계 구조를 따르고 있다. 따라서 컴퓨터에서 데이터를 처리하려면 우선 데이터가 메모리에 로딩돼야 한다. 예컨대 파일을 실행하기 위해서는 실행 코드가 메모리에 로딩돼야 하고, 파일을 암호화하거나 복호화하기 위해서도 메모리에 데이터가 로딩돼야 한다. 즉, 모든 데이터는 메모리라는 작업 공간에서 처리된다. 메모리에 저장된 데이터를 확보하고 해석할 수 있다면 이론적으로는 컴퓨터의 거의 모든 동작을 파악할 수 있게 되는 셈이다. 2004년부터는 메모리 포렌식 분야가 태동하기 시작했다. 메모리는 RAM을 사용하므로 휘발성이 매우 높은 매체다. 전원이 인가되지 않은 경우 메모리에 저장된 데이터는 모두 사라진다. 이를 극복하고자 다양한 방법으로 활성 시스템의 메모리 데이터를 확보하기 위한 연구가 진행돼 왔다. 또한 메모리 덤프에서 정보를 얻는 방법도 초기에는 strings를 이용한 검색 수준이었지만, 현재는 OS 내부 구조체, 메모리 관리 방식 등에 대해 많은 연구가 진행돼 윈도우, 리눅스, 맥OS X등의 운영체제에서 메모리 덤프만으로도 OS의 내부 상태, 애플리케이션의 프로세스, 악성코드 탐지, 루트킷 탐지 등 많은 정보를 추출할 수 있게 됐다. 예를 들어 volatility 같은 도구를 이용하면 분석가가 메모리의 구조나 동작 방식을 잘 모르더라도 한두 줄의 명령어를 입력하는 것만으로도 메모리에서 프로세스 목록을 추출하거나, 악성코드를 찾는 등 수백 가지의 플러그인을 활용해 메모리 덤프에서 다양한 정보를 추출해 낼 수 있다. 단순히 volatility 도구를 사용하는 것 이상의 정보를 얻기 위해 메모리를 직접 분석하기를 희망하는 엔지니어나 보안 분석가들은 이 책에서 소개하는 방법들을 이용해 윈도우 시스템의 메모리를 추적하거나 분석해볼 수 있을 것이다. 이 책은 악성코드 감염 여부를 식별하기 위해 마이크로소프트 사에서 무료로 제공하는 WinDbg 디버거를 이용해 프로세스 메모리 덤프나 컴플릿 메모리를 직접 분석하는 방법을 설명하며, 저자의 경험이 녹아있는 다양한 탐지 패턴을 소개하고 이를 실습할 수 있도록 구성돼 있다. 시스템 크래시, 행, CPU 튐, 메모리 누수와 같은 비정상인 증상이 발생된 시스템에서 증상의 원인을 파악하거나, 사전 대응 관점에서 메모리를 분석하고, 소프트웨어 흔적이나 로그에 대한 보완적 아티팩트로 활용하는 데 도움이 될 것이다. 메모리 분석 경험이 있는 독자라면 제공되는 메모리 덤프 파일을 먼저 분석한 후 저자의 분석 기법을 살펴보는 것도 좋은 접근 방식일 것이다. 이 책은 엔지니어를 지원하기 위한 교육 과정의 교재로 써진 책이다. 아쉽게도 아직까지 국내에 많이 소개되지는 않았지만, 저자인 드미트리 보스토코프는 이 분야에서 20년 이상의 경험이 있고, 30권 이상의 책을 저술한 전문가다. 이 책은 그중 일부에 불과하다 이 책 이외에도 많은 교육 과정과 저서에 대해서는 http://patterndiagnostics.com을 참고하길 바란다. 마지막으로 포렌식 분야를 시작하면서 항상 마음에 새기고 있는 문구를 소개하며 마친다. “As you can see as much as you know(아는 만큼 보인다).”

Windows 환경에서 침해 시스템 분석하기

대부분의 보안 분야가 그렇듯 디지털 포렌식은 이미 존재하는 소프트웨어나 하드웨어의 기술을 후행한다. 즉, 기존 기술에 의존적인 분야다. 디스크, 메모리, 네트워크, 운영체제, 파일 시스템, 애플리케이션 등에 따라 각각의 포렌식 기술이 존재하며, 새로운 제품이나 기술이 등장하면 그에 따른 새로운 분석 기술이 필요하다. 따라서 포렌식 분석 기술은 매우 다양하며, 계속해서 그 수와 범위가 늘어난다. 윈도우 시스템과 관련된 포렌식 기술만 하더라도 수십, 수백 가지다. 그렇다면 포렌식 분석할 때 어떤 기술을 언제 어떻게 사용해야 할까? 포렌식 분야 서적을 통해 배운 A부터 Z까지의 분석 기술을 순서대로 적용하면 될까? 실제로 그런 식으로 분석을 진행한다면 몇 년간 분석해도 끝나지 않을 수도 있다. 대부분의 포렌식 분석은 제한된 시간 내에 제한된 리소스를 가지고 수행해야 하기 때문에 분석가는 분석 대상 시스템, 아티팩트, 분석 기법 등을 선별(triage)해야 한다. 이를 위해서는 분석 목표를 뚜렷하게 세워야 한다. 그리고 분석 목표에 맞는 분석 계획을 세우고, 최대한 계획에 따라 분석을 진행해야 한다. 그렇지 않으면 분석 중에 길을 잃기 십상이다. 분석 계획이 있더라도 프로그램 개발하듯이 순서대로 진행하기 쉽지 않은데, 분석 계획도 없이 무턱대고 분석을 시작하면 본문에 언급된 것처럼 바로 토끼굴 행이다. 포렌식 분석을 실제 해본 사람은 이와 같은 경험이 있을 것이다. 그래서 포렌식 분야는 기술적 지식도 중요하지만 체득된 경험이 중요한 분야인 것 같다. 이 책에서는 악성코드 찾기, 해킹 행위 분석하기, 데이터 유출 분석하기, 사용자 행위 분석하기, 침해 웹 서버 분석하기 등 주요 침해 유형을 고루 다루고 있다. 분석 테크닉 외에도 왜 그 타이밍에 그 아티팩트를 분석했는지와 같은 분석 흐름에 집중하면, 특히 글로 포렌식을 배운 경험이 부족한 초보 분석가에게 도움이 될 것이다. 이 책에 녹아있는 저자의 생각과 분석 경험은 나 역시 평소에 포렌식 분석 업무를 수행하면서 고민해왔던 주제였기 때문에 자식을 낳아 길러봐야 부모의 마음을 조금이나마 헤아릴 수 있다는 말처럼, 이 책을 번역하는 도중 여러 번 무릎을 치며 저자의 말에 공감할 수 있었다. 포렌식 공부를 시작한 2006년경 국내에는 국내 서적뿐만 아니라 번역서조차 없었다. 그래서 영어 원서나 인터넷을 통해 포렌식 기술을 접할 수밖에 없었는데, 당시에 윈도우 포렌식을 공부하기 위해 열심히 읽었던 책이 바로 『Windows Forensic Analysis DVD Toolkit』(Syngress, 2007)이었다. 그리고 그 책의 저자는 할랜 카비였다. 할랜 카비의 서적을 번역하게 돼 마치 스승님의 책을 번역하는 듯한 신기한 감정이 든다. 이 책을 통해 많은 분석가가 분석하면서 토끼굴로 내려가지 않고 분석의 방향을 잃지 않게 되기를 바란다. 포렌식 분야를 시작하면서 항상 마음에 새기고 있는 문구를 소개하며 마친다. "As you can see as much as you know(아는 만큼 보인다)"

가나다별 l l l l l l l l l l l l l l 기타
국내문학상수상자
국내어린이문학상수상자
해외문학상수상자
해외어린이문학상수상자