| 윈도우 시스템 침해사고 분석의 포렌직기법 적용 연구 | 2008.06.10 |
디지털 자료의 속성과 침해사고의 특성 때문에 이를 조사하는 사람은 전문적인 분석기술에 대해 숙지하고 이를 활용해야 할 것이다. 이러한 기술을 사이버 포렌직(Cyber Forensic)이라 한다. 사이버 포렌직은 침입경로 에 대하여 분석하는 네트워크 포렌직과 침해당한 시스템에 대하여 분석하는 컴퓨터 포렌직으로 나뉠 수 있다. 본고는 침해사고를 분석함에 있어 기존의 분석방법과 사이버 포렌직기법을 적용한 분석방법을 비교하여 사이버 포렌직 분석방법의 효율성을 연구하고자 한다. 본고에서는 이러한 침해사고가 발생했을 시, 기존의 일반적인 방법에 의한 침해사고 분석과 컴퓨터 포렌직(Computer Forensic) 기법을 사용한 침해사고 분석을 비교해 효율성, 정확성, 그리고 분석시간 단축 등을 비교, 연구하고자 한다. 또한 Unix, LINUX, AIX, Windows 등 여러 운영체제에 대해 침해사고가 발생할 수 있지만 이 중 GUI 환경 중심으로 관리되고 있으며 여러 공격자에 의한 많은 침해사고 이슈가 발생되고 있는 윈도우 시스템에 대한 침해사고 분석을 그 범위로 하고자 한다. 윈도우 시스템 침해사고의 유형
1. 피해유형에 따른 침해사고 분류 침해사고에 대해 공격을 당하는 입장에서 입는 피해는 어떤 종류들이 있는지 피해유형에 대한 침해사고 유형을 살펴보기로 한다.
■ 계정침탈 보통 시스템의 종류에 따라 다르겠지만 일반적으로는 시스템을 관리하는 관리자 계정, 일반 사용자 계정, 그리고 서비스를 동작시키는데 필요한 서비스 계정 등이 존재한다. 이러한 계정에 대한 관리를 소홀히 하여 인가되지 않은 외부의 다른 사람이 계정에 접근할 수 있다면 심각한 문제가 발생할 수 있다. 공격자가 일반 사용자 계정이나 서비스 계정으로 접근한다면 제한된 조건에서 제한된 실행권한만을 갖게 되겠지만, 만약 관리자 계정으로 접근이 가능하다면 해당 시스템에 대한 모든 권한으로의 접근이 가능할 것이다. 그렇기 때문에 공격자는 모든 권한 을 갖고 있는 관리자 권한을 얻기 위하여 여러 가지 공격을 시도한다. 보통 해킹을 시도하는 공격자들의 최후의 목표는 계정침탈을 통한 시스템의 장악일 것이다. 공격자들이 계정침탈을 위하여 공격을 시도할 때에는 해당 시스템에 존재하는 응용프로그램의 취약점, 운영제체 자체의 취약점등에 대하여 취약점 존재여부를 확인할 것이며, 만약 취약점이 존재한다면 그에 대한 공격코드를 이용하여 권한을 획득하려 할 것이다. 하지만 공격자들은 관리자 계정을 빼앗기 힘들다면 일반 계정이라도 접근하려 노력할 것이다. 이는 일반 계정을 통하여 관리자 권한으로 상승할 수 있는 방법을 모색하기 위함도 있고, 또 해당 일반계정을 통해 다른 시스템을 공격할 때 사용하기 위함, 그리고 시스템의 계정권한에 대한 관리자의 실수로 일반 계정에서 얻을 수 있는 정보나 관리자 계정 에서 얻을 수 있는 정보가 별반 차이가 없을 경우 일반 계정으로 접근하여 원하는 목표를 달성할 수 있기 때문이다. 이러한 시스템의 계정에 대한 탈취 외에 최근 많은 이슈가 되고 있는 DB(Database)내의 사용자 정보 탈취를 통한 사용자 계정 침탈도 있을 수 있다.
■ 데이터 삭제 공격자가 시스템에 접근한 뒤 행할 수 있는 여러 가지 행위 중 관리자 가 느끼기에 직접적으로 피해가 크며 당황하게 하는 유형이다. 현재 서 비스 되고 있는 파일이 삭제된다면 서비스 운영에 막대한 지장을 초래할 것이며, 중요한 내용을 저장한 데이터가 삭제되었다면 그 피해도 매우 클 것이다. 데이터 삭제는 보통 공격자가 자신의 공격행위를 위장하기 위해서 행해지며 주로 자신이 사용하였던 프로그램이나 접근로그 등을 삭제한다. 그밖에 특정 조직에 악의를 갖고 있는 공격자들이 해당 조직에 대하여 위해를 가할 목적으로 데이터를 삭제하기도 한다. 이때에는 시스템 파괴나 데이터 파괴가 주목적이기 때문에 차후 데이터 복구기술로 복구가 어렵도록 특수한 프로그램을 통하여 데이터를 삭제하거나 서비스 에 문제가 생기도록 운영체제의 파일을 삭제하기도 한다.
■ 스니핑(Sniffing) 보통 네트워크 상에서 떠도는 정보를 도청하는 것을 말하기도 하지만, 본고에서 스니핑은 시스템 상에서 사용자가 입력하는 정보를 엿보는 것으로 이야기하기로 한다. 보통 키보드나 마우스 등을 사용하여 정보를 입력하거나 사이트를 접속하거나 하는 정보들을 공격자가 Backdoor등의 프로그램을 사용하여 원격에서 모니터링 하고, 그 중 사용자 계정이나 패스워드 등 원하는 정 보만을 취득하여 또 다른 범행에 사용하기도 한다. 이러한 행위 자체만으로는 심각한 위험성은 없지만, 이를 이용한 또 다른 범죄행위는 그 피해가 크다.
■ Defacement Defacement공격은 홈페이지에 대한 공격으로 홈페이지의 메인페이지, 혹은 전체 홈페이지를 공격자가 바꾸는 공격을 말한다. 이 공격을 하기 위해서는 간단히 웹 서버에서 가동 중인 ‘WebDev’등과 같은 서비스에 대한 취약점을 이용, 공격자가 미리 만들어 놓은 페이지를 전송하여 바꾸는 방법, 그리고 실제 웹 서버 시스템에 접근해 직접 페이지를 수정하는 방법 등이 있다.
그림 1. 2001년 Winamp홈페이지 Defacement 공격화면
이런 공격행위는 공격자가 자신의 주장을 다른 사람들에게 알리기 위해 많은 사람들이 방문하는 홈페이지의 화면을 자신의 주장을 표현하는 화면으로 바꾸어 알리기 위한 목적으로 많이 쓰인다. 이러한 주장에는 국가 간의 쟁점이 되는 정치, 외교적 이슈나 종교적인 내용들, 또는 개인 적인 주장 또는 불만 등이 있다. Defacement공격은 표면적으로 가장 쉽게 드러나기 때문에 언론매체에서 해킹사건이라 언급하는 내용 중 다수가 이 공격에 의한 침해사고를 말하며, 몇몇 해커나 단체들은 별다른 이슈 없이 자신들의 명성과 실력을 과시하기 위해 Defacement공격을 하고 이에 대한 성공 횟수를 계산하여 자신들끼리 순위를 정하기도 한다. 2. 기존의 침해사고 분석방법
■ 기존의 침해사고 분석방법 시스템을 관리하는 사람은 자신의 시스템이 침해당했다는 사실을 인지하고 난 뒤에는 어떻게 처리해야 하는지 당황하는 경우가 많다. 보통 컴퓨터 포렌직기법을 사용하지 않는 관리자라면 해당 시스템이 공격당한 부분에 대하여 초점을 두고 피해여부에 대한 파악을 할 것이다. 가령 중요한 데이터를 보관중인 서버에 경쟁사에 고용된 공격자가 침투하여 중요 데이터를 탈취한 뒤 업무에 중요한 영향을 미치는 데이터를 삭제시키고 나갔다고 가정을 해보자. 서버의 관리자가 이러한 사실에 대하여 알지 못하는 상태라면 그 피해는 매우 클 것이며, 공격자가 침투한 사실에 대해서 알고 있다하더라도 컴퓨터 포렌직기법에 대해 알지 못한다면 이 상황에서 당황할 수밖에 없을 것이다. 평소에 데이터에 대한 자산관리가 이루어지고 있었다면 삭제된 데이터가 어떠한 내용의 데이터인지 파악이 가능할 것이며, BCP(Business Continuity Planning)나 DRP(Disaster Recovery Plan)가 제대로 수립되어 운영되고 있는 조직이라면 기존의 백업정책을 통해 주기적으로 백업되고 있는 데이터를 통해 어느 정도 피해를 줄일 수 있을 것이다. 하지만 이렇게 백업된 데이터를 통하여 복구를 한다 하더라도 백업되는 시간과 사건이 일어난 시간 사이에 저장된 데이터에 대해서는 복구할 방법이 없기 때문에 해당 데이터에 대하여 다시 생성하는 작업을 거쳐야 할 것이며, 새로 생성이 불가능한 데이터라면 그 피해는 고스란히 감수해야 할 것이다. 하지만 어느 정도 경험이 있는 관리자라면 데이터 복구 프로그램을 사용해 데이터를 복구하는 방법을 생각해 낼 것이다. 데이터 복구 프로그램을 통하여 데이터를 복구하였다면, 남은 것은 정상적인 서비스 운영일 것이다. 삭제된 데이터로 인해 비정상적으로 가동되었던 서비스에 대해서 정상적으로 가동되도록 설정하여 정상적인 서비스가 가동되면, 관리자는 침해사고에 대한 분석을 시도할 것이다. 또한, 똑같은 방법으로 공격당하지 않기 위해서 관리자는 원격접속이나 FTP, Telnet 등 공격자가 접근할 수 있었던 여러 가지 경로를 추적할 것 이며, 그에 따른 취약점들을 파악할 것이다. 문제가 되는 접근경로가 파악되고 난 뒤에는 그러한 취약점을 수정하고 막는 것으로 공격자의 2차 공격을 대비할 것이다. 또 공격자가 시스템에 접근하여 행하였던 행위들을 분석하기 위해 여러 가지 시스템 로그를 살펴볼 것이다. 이 과정에서 최초 서비스 정상화 과정에서 미처 발견하지 못하였던 다른 침해요소들을 파악하여 수정할 수도 있을 것이며, 기타 공격자가 설치해 놓은 백도어를 발견할 수도 있을 것이다.
■ 기존의 침해사고 분석방법의 비효율성 조직의 입장에서 볼 때 침해사고를 당하고 난 뒤 서비스의 정상화가 우선일 것이다. 서비스가 중지되어 있는 동안 발생되는 손실은 조직이 추구하는 목표에 반하기 때문에 비영리조직인 경우를 제외하고는 손실 최소화를 위한 서비스 정상화를 우선적으로 강요할 것이다. 그리고 그러한 조직에 속해있는 관리자는 조직의 요구에 따라 서비스 정상화를 우선적으로 수행할 수밖에 없을 것이다. 그러나 관리자의 입장에서 침해사고를 당한 시스템을 그냥 방치할 수 는 없기에 나름대로 분석을 수행할 것이며 그로 인해 시스템의 취약점이나 공격자의 행위 등을 파악하여 시스템을 보강하도록 노력할 것이다. 하지만 관리자의 이러한 분석과정을 통하여 공격자를 찾아낸다면 어떻게 될지 생각해보도록 하겠다. 조직의 입장에서는 자신의 조직에 피해를 입힌 공격자에게 그에 상응 하는 처벌을 하기를 원할 것이며, 공격자에 대한 법적처벌을 위하여 법정에서 내세울 증거자료를 찾아야 할 것이다. 그러나 서비스를 정상화시키는 위의 과정에서 이미 많은 데이터들은 최종으로 액세스한 날짜나 수정한 날짜 등이 변경되어 버렸을 것이고 이러한 데이터들을 법정에서 증거자료로 제시할 수도 없을 것이다. 공격자에 대한 법적인 처벌은 증거자료의 부적절함, 무결성 결여, 객관성 결여 등의 이유로 유효하지 못할 것이며, 침해사고로 인한 피해는 고스란히 조직이 떠맡게 될 것이다. 또한 시스템의 여러 가지 로그들은 관리자가 조작하고 실행한 내용과 공격자가 실행한 내용들이 뒤섞이게 되어 시스템에서 행하여진 행위들에 대한 명확한 분류가 어려워질 것이다. 그리고 복구 프로그램을 통하여 복구한 파일이 비정상적으로 복구되었다면, 서비스의 재가동에도 영향을 미치게 될 것이다. 결국 관리자는 서비스를 정상화시키기 위해 노력한 시간과 시스템의 문제점을 파악하기 위해 분석한 시간에 대해 적절한 보상을 받지 못하게 될 것이고 공격자는 자신의 행위에 대하여 처벌받지 않을 것이며 서비스는 불안정하게 운영될 것이다. 컴퓨터 포렌직 조사방법
1. 컴퓨터 포렌직 개요
■ 컴퓨터 포렌직의 정의 컴퓨터 포렌직에 대한 학문적인 의미를 살펴보면, 이는 1991년 미국 Oregon Portland에서 개최된 IACS에서 처음 사용되었으며, ‘컴퓨터를 매개로 이루어지는 범죄행위에 대한 법적 증거자료 확보를 위하여 컴퓨터 저장매체 등의 컴퓨터 시스템과 네트워크로부터 자료(정보)를 수집, 분석 및 보존절차를 통하여 법정 증거물로써 제출할 수 있도록 하는 일련의 행위’라고 정의되었다. 보통 사이버 공간상에서 이루어지는 행위에 대하여 이루어지는 포렌직을 사이버 포렌직이라 칭하고, 그에 대한 분류를 침투경로와 침해시스템으로 나누어 침투경로에 대해 분석해 공격자가 어떠한 경로를 통해 어떤 공격방법을 통해 침해행위를 하였는지 분석을 행하는 사이버 포렌직을 네트워크 포렌직이라고 한다. 또 침해당한 시스템에 대한 분석을 통하여 데이터에 가해진 침해행위를 분석하는 것을 컴퓨터 포렌직이라 한다.
■ 컴퓨터 포렌직의 중요성 일반적으로 디지털 자료는 복사가 쉬울뿐더러 복사가 이루어졌을 때 원본과 복사본의 구분이 모호하며, 조작, 생성, 삭제, 배포가 쉽기 때문에 디지털 데이터에 대하여 범죄 행위가 발생했을 시 법적인 조치가 까다롭다. 그렇기 때문에 디지털 자료에 대한 범죄행위가 발생했을 시에는 이에 대하여 전문적인 지식을 갖고, 법정자료로서 활용이 가능하도록 무결성, 객관성, 그리고 명확하게 분석이 가능한 사이버 포렌직기법을 사용하여 분석해야 한다.
■ 컴퓨터 포렌직의 절차 일반적으로 컴퓨터 포렌직의 절차는 3~7단계로 다양하게 구분할 수 있지만 가장 많이 분류되고 있는 다섯 단계로 살펴보기로 한다.
이러한 절차는 입수된 증거가 적법한 절차를 거쳐 얻어져야하는 정당성의 원칙, 피해당시와 같은 조건에서 동일한 결과가 나와야 하는 재현의 원칙, 시스템의 휘발성 정보에 대한 신속한 조치를 취해야 하는 신속성의 원칙, 증거물 획득/이송/분석/보관/법정제출의 각 단계에서 담당자와 책임자를 명확하게 해야 하는 연계보관성의 원칙, 수집된 증거가 위·변조되지 않았음을 증명할 수 있어야 하는 무결성의 원칙 등 기본 5대 원칙을 준수하여 진행되어야 하며 각 단계는 상황이나 조직의 요구조건에 맞게 더 많은 단계, 혹은 간소한 단계로 이루어진다.
■ 컴퓨터 포렌직 분석방법 ▶ 휘발성 정보수집 시스템을 종료하거나 시간이 지나면 자동으로 종료되는 프로세스등과 같이 휘발성 데이터에 대해서는 신속하게 정보를 수집해야 한다. 현재 상태에서 프로세스, 메모리, 서비스 등에 대해 정보를 수집하며 현재 열려있는 모든 파일에 대해서는 저장을 하도록 한다. ▶ 하드 디스크 이미징 법정에서 증거자료로써 인정받기 위해 현재의 디스크에 대해 무결성을 유지하도록 한다. 데이터 분석을 위해 현재의 디스크에 쓰기 방지 장치를 장착한 뒤 동일한 조건의 새로운 디스크에 이미징 작업을 한다. ▶ 무결성 검사 역시 법정에서 무결성을 증명하기 위해 원본 디스크에 대한 해시값을 얻는다. 또한 원본 디스크의 데이터와 동일함을 입증하기 위해 이미징 작업을 한 디스크에 대해서도 해시값을 얻어 비교한다. 이는 차후 원본과 동일한 데이터를 분석했음을 입증하는 자료가 된다. ▶ 증거 보관 이미징 디스크에 대한 분석이 이루어질 동안 원본 디스크는 안전한 보관 장소에 보관하도록 한다. 이때 운반자 및 인계자, 보관자 등의 담당자에 대해서는 담당자 유지가 되도록 목록으로 관리해야 하며 원본 디스크가 보관되는 장소는 전자기적인 차폐와 외부인의 엄격한 통제 등의 시스템이 갖추어져야 한다. ▶ 증거자료 분석 이미징 디스크에 대하여 포렌직 프로그램을 사용, 정밀한 분석을 한다. 만약 분석하고자하는 데이터의 양이 방대할 경우에는 많은 시간이 소요되므로 분석의 순서와 중요도를 선정하여 필요한 데이터에 대해서만 분석을 하도록 한다. 자동화된 프로그램을 사용하여 데이터의 위·변조, 삭제, 은폐 등에 대해 조사하고 시스템의 여러 가지 로그들을 Timeline에 따라 종합하여 분석한다. ▶ 보고서 작성 컴퓨터 포렌직의 마지막 단계로 증거수집, 운송, 보관, 분석의 모든 내용에 대해 문서화 하고 법정에 제출하도록 한다. 보고서를 작성 할 때는 전문가가 아닌 사람이 보아도 이해하기 쉽도록 작성해야 하며, 전문적인 내용에 대해서는 상세한 내용을 별도로 첨부하도록 한다.
■ 컴퓨터 포렌직 도구 컴퓨터 포렌직 도구는 컴퓨터에서 일반적으로 사용되는 소프트웨어와는 달리, 법정에서 증거자료로 쓰일 수 있도록 증거확보를 위한 특별한 기능을 포함하고 있어야 한다. ▶ 하드 디스크 복사도구 원본의 변경이나 손상됨이 없이 동일한 구조로 복사한다. 포렌직의 모든 과정에서 분석에 이용되는 데이터는 복사된 데이터를 사용하여 분석해야하며 법정에서의 증거자료로 제출되기 위해서는 원본 데이터의 무결성이 증명되어야하기 때문에 각별히 신경을 써야하는 단계다. 보통 원본 하드디스크의 쓰기방지를 위해 ‘FastBlock’이라는 장비를 사용하며, 디스크의 이미징 작업을 위해서는 ‘SafeBack’, ‘Encase’, ‘DD’ 등의 프로그램을 사용한다. ▶ 자료 검사도구 파일이 수정되거나 실행, 생성된 날짜 등에 대해 파일 카탈로그를 생성하는 프로그램이다. ▶ 무결성 도구 분석하는 파일들에 대해 원본 디스크, 복사본 디스크에 대하여 해시알고리즘을 이용하여 값을 출력한다. 해시함수는 원본 데이터에 대하여 1bit라도 수정이 되면 그 값이 틀려지기 때문에 차후 원본 데이터가 변조되지 않았음을 증명하는 중요한 단서가 된다. ▶ 시스템 분석도구 복사된 이미지를 이용하여 본격적인 분석을 시작할 때 사용하는 도구다. 보통 포렌직 툴이라고 불리는 이 도구들은 파일의 헤더에 있는 Signature를 토대로 공격자가 은닉을 목적으로 확장자를 변경했을 때 원본 파일을 추출해 낼 수 있는 기능을 가졌거나, 시스템의 로그 등을 손쉽게 분석해주는 기능 등을 갖고 있다. 또한 삭제된 파일이나 깨진 파일들을 복구해 주는 기능도 갖추고 있다. ‘EnCase’, ‘F.I.R.E’ 등이 이런 종류의 프로그램들이다. ▶ 암호 도구 공격자가 데이터를 은닉할 목적으로 파일을 암호화 하였을 때 이런 파일에 대해서는 복호화를 통해 분석을 진행해야 할 것이다. 가장 많은 유형이 워드프로세서나 압축프로그램 등에 있는 패스워드 설정기능 등이며, 이러한 패스워드를 전문적으로 풀어주는 프로그램 등 이 있다. 또한 파일자체를 암호화 시키는 경우도 있는데 이럴 경우에는 복호화하는 프로그램이나 방법 등에 대해서 자체적으로 프로그램을 제작하여 복호화하기도 한다.
윈도우 시스템 침해사고에 대한 컴퓨터 포렌직 분석방법 적용
1. 윈도우 시스템 침해사고에 대한 컴퓨터 포렌직 분석
■ 분석 절차 컴퓨터 포렌직의 모든 분석절차는 앞에서 설명한 정당성의 원칙, 재현의 원칙, 신속성의 원칙, 연계보관성의 원칙, 무결성의 원칙, 이렇게 5가지 기본 원칙을 바탕으로 이루어 져야 한다. 우선 증거물을 획득함에 앞서 휘발성 데이터에 대한 증거를 확보해야 한다. 현재 윈도우 시스템 화면에서 동작하고 있는 상태 등은 사진으로 찍어 보관하고 현재 시스템의 상태, 시간, 구조, 네트워크 구성, 네트워크 상태 등을 상세하게 기술하여 차후 수사에 도움이 되도록 준비한다. 그리고 ‘작업관리자’를 통하여 CPU의 사용량, 메모리의 사용량, 현재 동작하고 있는 프로세스, 네트워크 사용량 등을 사진이나 화면 캡처를 통해 저장한다. 물론 화면 캡처된 내용은 USB메모리나 플로피디스크 등을 통하여 저장하여 원본 디스크에는 아무런 액세스가 없도록 하여야 한다. 이때 ‘작업관리자’보다 더욱 자세하고 알기 쉽게 정보를 알려주는 ‘ProcessExplorer’, ‘TCP View’, ‘ICE Sword’와 같은 프로그램을 활용하여 정보를 저장해도 좋다.
그림 2. IceSword 실행화면 이와 같이 휘발성 데이터를 확보한 뒤에는 원본 데이터의 무결성을 유지하기 위해 ‘A-Card’, ‘FastBlock’, ‘NoWrite’ 등과 같은 쓰기방지장치를 하고 디스크 이미징 작업을 한다. 이미징 작업을 할 때는 단지 파일을 복사하는 것이 아닌 디스크 구조 자체를 그대로 백업해야하며 ‘SafeBack’, ‘SnapBack’, ‘Mares imaging tool’과 같은 윈도우 시스템용 전문 이미징 툴을 사용하여 작업한다. 이미징 작업을 통하여 사본 디스크를 만든 뒤에는 원본 디스크의 보존 을 위하여 안전한 곳에 보관한다. 실질적인 분석 작업은 앞서 만들어진 사본 디스크를 통하여 이루어지며, 이 과정에 앞서 원본 디스크에 있는 데이터와 사본 디스크에 있는 데이터의 해시값을 저장하여 별도로 보관한다. 이 과정은 원본 디스크 의 데이터가 임의로 조작되지 않았음을 증명하는 것이며 이 무결성 과정이 결여된다면 법정에서 증거자료로써의 효력이 없어지게 된다. 일단 공격자가 시스템에 침투하여 인터넷 익스플로어를 사용, 웹사이트를 접속했을 경우를 가정하여 그에 대한 History정보를 확인한다. 이 정보는 ‘Temporary Internet Files’에 있으며 일반 Text로는 확인이 불가능하므로 ‘History Reader’와 같은 전문 프로그램을 사용한다. 또한 해당 디렉터리에 캐시정보와 쿠키정보도 같이 저장되므로 그 내용도 조사하도록 한다.
그림 3. History Reader 실행화면
만약 다수의 시스템이 도메인 컨트롤러로 연결되어 있을 시에는 ‘Event Comb MT’도구를 사용하여 동시에 분석할 수 있다. 물론 이렇게 시스템의 이벤트 로그를 분석하기 위해서는 사전에 시스템 설정을 통해 로그를 남기도록 설정되어 있어야만 한다. 다음으로 공격자가 시스템에서 행할만한 일들에 대하여 조사를 실시한다. 이때에는 앞서 채취한 휘발성 자료들에 대한 연계. 분석 작업이 이루어져야 한다. 현재 실행되고 있는 프로세스에 대하여, 비정상적으로 동작하고 있거나, 관리자가 알지 못하는 프로세스에 대하여 확인한다. 최근 악성코드를 통해 일반 사용자 컴퓨터에 있는 계정 정보들을 획득하여 이를 악용하는 사례가 많은데, 이때 일반 사용자 앞단에 존재하는 악성코드 배포 시스템은 평범한 웹 서비스를 운영하는 웹 서버들이 많다. 취약점이 존재하는 웹 서버를 공격자들은 최종 코드 배포지로 선택하여 활용하는 것인데, 만약 자신이 운영하는 시스템이 이러한 용도로 침해를 당했다면 IIS Log를 살펴봐야 할 것이다. IIS Log는 윈도우 시스템 폴더 안의 ‘System32\LogFiles’에 위치한다. 또는 관리자가 모르는 FTP프로세스가 동작하고 있다면 해당 프로그램이 실행 중인 폴더에 접근하여 파일 생성시기, 프로세스 동작시간, 실행 권한 등을 살펴본다. 그밖에 System폴더 등을 중심으로 비정상적으로 생성된 폴더나 파일 이 존재하는지 살펴본다. 컴퓨터에 대하여 전문적인 지식이 없는 사람들은 System 폴더 안의 내용에 대해 잘 알지 못하기 때문에 공격자들은 이런 곳에 악성코드나 자동실행 파일, 스크립트 등을 숨겨놓는다. 또 삭제된 파일이 있을 때는 파일 복구프로그램을 사용하여 복구한다.
■ 여러 유형의 침해사고에 따른 윈도우 시스템의 컴퓨터 포렌직기법 최근 들어 여러 서비스를 운영하는 시스템이 윈도우 기반의 서버로 많이 사용되고 있다. 이는 설치 및 운영이 GUI 환경으로 간편하고 보안에 대한 부분도 마이크로소프트사의 꾸준한 보안패치로 인해 많이 보완되었기 때문이다. 윈도우 시스템이 많이 사용될수록 공격자들의 공격 대상으로 많은 표적이 되고 있는데, 그로 인한 침해사고도 다른 운영체제의 시스템보다 많이 이루어지고 있다. 또한 발생되고 있는 침해사고 유형과 공격 방법 도 매우 다양하다. ▶ 계정침탈 윈도우 시스템에서 관리자 권한을 침탈당하였을 시, 그 피해는 매우 크다. 조사에 앞서 어떠한 경로로 시스템에 접근하여 관리자의 계정을 접근했는지를 유추하여야 한다. 일반적으로 시스템에서 운영되는 서비스에 영향을 미칠까 우려하여 보안패치를 하지 않고 서비스를 운영하는 경우가 많은데, 이때 가장 기본적인 보안패치부터 누락되었다면 접근경로 유추는 매우 힘들다. 그만큼 공격자가 침투할 수 있는 경로가 다양해지기 때문이다. 물론 시스템의 이벤트 로그를 살펴보고 그 밖의 로깅 시스템의 도움을 얻는다면 조금의 실마리를 잡을 수는 있을 것 이다. 일단 시스템의 관리도구의 ‘로컬 사용자 및 그룹’ 항목을 검토하여 의심되는 계정이 있는지 확인한다. 의심되는 계정이 존재한다면 해당 계정을 삭제, 또는 정지시키고 해당 계정으로 실행되는 프로세스에 대하여 확인한다. 또 해당 계정으로 생성된 폴더나 파일들에 대해서 검색하여 피해 규모를 확인한다. 그리고 레지스트리를 검사하여 비정상적인 경로나 알 수 없는 ID값을 갖고 있는 항목에 대해서는 정확한 용도나 해당 프로세스를 확인해야한다. 공격자가 시스템을 접근하기 위해 사용했던 프로그램들의 정보가 레지스트리에 기록될 수도 있고, 공격자가 만들어 놓은 백도어가 관리자 모르게 계속 실행되도록 하기 위해 ‘시작 프로그램’으로 등록시킬 때도 눈에 잘 띄지 않는 레지스트리를 이용하기 때문이다. ▶ 데이터 삭제 데이터 삭제에 대한 조사를 하기 위해서는 우선적으로 현재 디스크에 있는 파일 현황에 대해서 알고 있어야 한다. 보통 중요한 폴더 등에 대 해서는 어떠한 형식의 파일들이 존재하며, 몇 개가 있는지, 그리고 더 자세하게 각각의 파일에 대하여 해시값을 저장해놓고 있다면 더 효율적이 고 용이한 조사를 할 수 있다.
그림 4. 디스크 복구 프로그램 R-Studio 실행화면 우선 삭제된 대상을 검색하여 찾고 난 뒤에는 해당 파일에 대하여 복 구를 시도한다. 복구할 때에는 ‘Final data’, ‘Easy Recovery’, ‘R-Studio’ 등과 같은 신뢰성 있는 전문 복구 프로그램을 사용하도록 한다. ▶ Sniffing 여기서의 스니핑은 네트워크 환경에서의 스니핑이 아닌 시스템에서 사용자의 키보드나 마우스의 입력정보 등 사용자의 모든 정보를 도청하는 것을 말한다. 보통 공격자가 시스템에 백도어를 설치하여 원격에서 사용자의 행동을 모니터링 한 뒤 그 중 원하는 정보만을 습득해 가는 방법이다. 이러한 스니핑 행위는 실질적인 위협행위는 아니지만 또 다른 침해사고로 이어질 수 있기 때문에 주의해야 한다. 스니핑 행위가 이루어지기 위해서는 공격자가 특정 시스템을 취득한 뒤 이루어지기 때문에 이 침해유형에 대한 처리는 계정침탈에 대한 포렌직이 대부분 적용된다. 아울러 이를 탐지 및 처리하기 위해서는 ‘Rootkit Unhooker’, ‘GMER’, ‘Process Stoker’ 등과 같은 루트킷 전문 탐지·제거 프로그램을 사용하도록 한다. ▶ Defacement 침해시스템이 웹 서비스를 하고 있을 때 발생되며 이때 공격자의 침투 경로는 크게 두 가지 경우로 나눌 수 있다. 하나는 시스템에 대하여 계정을 취득한 뒤 시스템에서 직접 웹 페이지를 수정하는 경우, 다른 하나는 원격지에서 특정 서비스를 이용하여 웹 페이지를 변경하는 경우이다. 시스템의 계정을 탈취한 뒤 공격하는 경우는 계정침탈에 대한 Forensic을 적용하면 될 것이다. 원격지에서 ‘WebDev’등의 특정 서비스의 취약점을 이용하여 접근, 웹 페이지를 변경한 경우에는 해당 서비스를 제거함으로써 차후 공격에 대 비할 수 있으며 공격자에 대한 접근정보는 IIS Log를 통하여 확인할 수 있다. 다만 웹 페이지가 1초에도 다수의 사람이 접근할 수 있는 특성이 있으므로 공격자의 실제 접근 IP를 찾아내기 위해서는 공격자만의 패턴 을 찾아내는 것이 중요하다. IIS Log나 보안장비의 로그 등을 토대로 실제 서비스하지 않는 페이지에 대하여 몇 차례 시도를 한다거나 어느 한 페이지에서 여러 가지 접근방법을 시도한다거나 하는 의심스러운 행동을 한 IP에 대하여 선별작업을 해야 하며, 이 과정에서 방화벽이나 IDS등 의 보안장비 Log를 이용하여 상관분석 한다면 보다 정확하고 빠른 결과 값을 도출해낼 수 있을 것이다. 2. 윈도우 시스템 침해사고의 포렌직 분석방법 적용 후의 변화
■ 윈도우 시스템 침해사고에 대한 포렌직 분석시간 단축 침해행위에 대해 컴퓨터 포렌직기법을 사용한 방법과 기존의 방법과 비교하였을 때 시간상의 커다란 차이는 발견할 수 없었다. 이는 침해사고의 종류나 분석자의 기술적 관점, 그리고 조직에서의 대처 방법 등이 상이하게 다르고 이러한 차이에 대해서 수치적으로 표현할 수 없기 때문이다. 시스템 분석을 수년간 해온 관리자보다 전문 포렌직도구를 능숙하게 사용할 줄 아는 분석가가 더 빠른 결과를 얻어낼 수도 있고, 반대로 관리자만의 노하우를 토대로 포렌직 도구보다 더 빠른 결과를 도출해 낼 수도 있다. 하지만 아무리 기술적인 부분이 우세하다 해도 법정에서, 또는 제 3 자가 판단하기에 객관적이고 정확한 결과를 얻어냄에 있어서는 컴퓨터 포렌직 방법이 더 효율적이고 바람직한 방법일 것이다.
■ 윈도우 시스템 침해사고에 대한 포렌직 분석결과의 정확성 컴퓨터 포렌직 절차의 모든 과정들은 차후에 법정에서 증거 자료로써의 활용을 목적으로 분석된다. 따라서 포렌직 분석을 통해 얻어지는 자료들은 동일한 조건에서 재현하여도 같은 결과 값을 도출해 낼 수 있어야하며 하나의 데이터에 대하여 두 가지 이상의 포렌직 도구를 사용하여 분석해도 각각의 결과 값이 같아야 하기 때문에 그 결과 값은 누가 분석해도 항상 일치하며 정확하다. 기존의 분석방법은 단지 사건의 현상에 대한 조사와 분석에 초점을 맞췄기 때문에 이 과정에서 무결성과 재현성 등은 보장되지 않는다. 악성코드 감염에 의한 부분을 처리하다보면 방대한 양의 디지털 데이터를 사람이 일일이 처리할 수 없는 한계성 때문에 악성코드로 인해 발생된 데이터 유출에 대한 내용은 미처 파악하지 못하고 넘어갈 수 있는 것이 다. 또한 관리자의 주관적인 판단이 개입될 가능성이 크기 때문에 포렌직 도구를 사용함과 비교할 때 정확성은 떨어진다고 본다. 결론 지금까지의 내용을 종합해 보면 침해사고에 대한 기존의 분석방법과 컴퓨터 포렌직분석방법에서의 장단점 등은 각각 존재한다. 경우에 따라서는 시스템 관리자의 오랜 노하우를 바탕으로 한 기존의 방법으로 분석하는 것이 빠른 시간 내에 결과를 도출해 낼 수 있기도 하지만, 경험이 미숙한 관리자는 오히려 성급하고 불분명한 판단을 내리게 된다. 이러한 판단은 잘못된 사건분석 방향을 야기하므로 매우 위험하다. 하지만 사건조사의 핵심을 파악하고 침해사고에 대한 적당한 분석수준 을 정하여 미리 정해진 조직의 침해사고 대응 절차를 따른다면 컴퓨터 포렌직기법을 적용하여 분석하는 것이 더욱 효율적인 것으로 나타났다. 또한 분석 이후 공격자에 대한 법적인 처벌까지 고려한다면 무결성, 재현성 등을 갖춘 컴퓨터 포렌직기법을 사용하여 분석함이 당연하다. 또한 침해사고에 대한 바람직한 대처를 위해서는 조직의 특성에 맞게 여러 상황을 가정한 침해사고 시나리오를 작성해놓고 침해사고에 대응하는 훈련을 해야 할 것이다. 이 시나리오에는 침해사고의 규모에 따른 여러 가지 경우도 가정해야 할 것이며 사고 성격에 따른 여러 대처방법도 가정해야 할 것이다. 그리고 이러한 상황에 적합한 포렌직 방법을 숙지하여 훈련해야 할 것이며 시스템 관리자 나름대로의 분석 기술방법을 포렌직 분석방법에 접목시키는 것도 바람직한 방법일 것이다. <글:방현배 KL-Net 시스템 운영팀(ds2oof@nate.com)> [김태형 기자(boan2@boannews.com)] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|