사이버 CSI 수사대 ‘컴퓨터 포렌식’

일반입력 :2003/02/10 00:00

지디넷코리아

얼마전 TV에서 ‘CSI 과학수사대’라는 이름의 프로그램이 인기리에 방영되면서 모두들 외국의 감식 수사 수준에 감탄했던 기억이 있을 것이다. 프로그램은 감식수사팀이 현장에서 수집한 증거를 토대로 범인을 찾아내거나 범인이 꼼짝 못하도록 명백한 증거를 제시하는 내용이 주를 이뤘다. 이 TV 프로그램의 내용처럼 외국에서는 ‘보안’에 있어 공격 차단 등 적극적인 예방 또는 방어 측면 못지않게 발생한 사건에 대해 객관적인 증거를 확보하고 이를 토대로 원인을 분석하여 대응 방안을 강구하는 것을 매우 중시하는 경향이 있다.

이런 추세에 맞추어 미국의 경우 컴퓨터 분야에서도 ‘컴퓨터 포렌식(computer forensic)’이라는 분야가 수사기관 등 공공분야 뿐만 아니라 민간분야까지 폭넓은 범위에서 활용됨으로서 수많은 컴퓨터를 통한 범죄를 해결하는 데 기여하고 있다. 이번 기사에서는 우리에게 다소 생소한 컴퓨터 포렌식이 어떠한 의미를 지니고 있으며 현재 알려진 기술 수준과 발전 방향에 대해 논의해 보고자 한다.

‘순진한’ 학생들

몇 년 전 국내 두(K대학, P대학) 대학간 해킹 시비가 있던 도중 한 학교의 학생이 실력 과시를 위해 제 3 학교의 전산시스템을 공격해 중요 데이터를 송두리째 날려버린 일이 있었다. 또한 S대 해커 특례 입학전형에 떨어진 학생이 자신을 떨어뜨린 학교의 서버를 모두 해킹한 사건도 있었다. 이때 담당 수사관의 말을 들어보면, 상당히 긴 시간과 노력을 들여 지워진 서버의 로그 일부에서 단서와 관련된 일부 내용을 찾아 해커 추적에 성공, 결국 기소 또는 입건시켰다고 한다. 그때 이들은 자신이 생각지 못한 곳에 로그가 남겨진 것을 보고 놀라면서 경찰이 제시한 해킹된 서버에 남겨진 로그 내용을 보고 순순히 처벌을 받았다고 한다.

물론 잘못을 저질렀으니 처벌받아 마땅하겠지만, 만약 그 학생들이 법률적인 지식이 조금 더 있었거나 뻔뻔하게도(?) 끝까지 자백을 하지 않았다면 아마 오히려 무죄로 판결되었을지도 모른다. 왜냐하면 엄밀하게 법을 적용한다면 이들이 현장 검거되지 않았거나 대가를 받은 기록이나 범행에 사용된 서버, PC 등에도 동일한 범죄 기록이 남아 있지 않은 상태라면 피해 시스템 일부 로그에 그들이 접속했던 IP 내역과 일부 기록들을 추후에 아무리 제시했더라도 이들은 모두 증거로 채택되지 않을 수 있기 때문이다.

그림1 이미지 추출 과정 그림

다시 말하면 수사기관이 컴퓨터에서 증거를 찾는 과정 중 실제 수사나 법적 대응절차에서 반드시 선행돼야 할 증거 보존(사건현장이나 결정적인 증거에 대한 무결성 보장) 문제가 전혀 고려되지 않았다면, 전자매체의 특성상 누구라도 쉽게 ‘변조 가능한’ 피해 시스템의 로그를 일방적으로 제시한 것은 명백한 증거로 채택될 수 없기 때문에 용의자가 자백하는 것 외에는 어떠한 명백한 증거도 없는 꼴이 되는 것이다. 이는 그동안의 수사과정 속에서 증거 보존이라는 기본을 무시해 발생한 매우 치명적인 문제로서 이러한 문제는 외국뿐만 아니라 이미 국내에서도 실제 사례(판례)로도 점차 가시화되고 있다.

◆ 국내사례 : Y대 학생운동 사건에서 결정적 증거 파일(hwp)을 경찰이 법적 자료로 제출하기 위해 일부 정리했다가 파일 수정 시각 표기와 작성자가 변경되어 기각됨

◆ 국외사례 : 인케이스(Encase) 및 수사용으로 선정된 일부 이미지 덤핑 소프트웨어로 원본을 보전한 자료에 한해 법원에서 바로 증거로 채택함

즉 예전처럼 사후에 피해 시스템에서 임의로 시스템의 로그 일부를 복사한 것이나 신빙성 없는 사설 방화벽 및 IDS의 기록만을 증거로 제시해 법적 처리를 할 수 있는 시대는 이미 끝났다고 할 수 있다. 따라서 이러한 문제를 해결하기 위해 많은 선진국에서 이미 정착된 컴퓨터 포렌식 시스템은 한마디로 컴퓨터의 모든 입출력 및 저장 장치에 남겨진 관련 기록들을 훼손없이 그대로 보존시키고 그 후에 수사관이 원하는 증거 수집 및 분석 기능을 수행하는 시스템이라 정의할 수 있다(컴퓨터 증거 수집->보존->분석->문서화->법정 제출).

해킹 ≠ 포렌식

먼저 컴퓨터 포렌식은 그동안 우리에게 친숙했던 해킹 등 침해사고 대응을 목적으로 하는 것이 아님을 미리 주지할 필요가 있다. 특히 해킹을 막는 기능이라든지 ESM 및 로그 분석기처럼 해킹 등으로 침해된 시스템에서 특정 로그를 분석하기 위한 도구는 포렌식 애플리케이션이 반드시 갖춰야 할 것이 아니라는 점도 알아둬야 한다. 컴퓨터 포렌식은 주로 해킹이나 시스템 침투에 대한 방어 기능이 아니라 PC 단위의 회계부정을 저지른 범인의 컴퓨터를 압수해 지워진 디스크로부터 증거를 추출하는 것이나 내부 기밀을 빼돌린 직원의 PC로부터 관련된 기록을 찾는 일, 또는 해킹 혐의 용의자의 시스템에서 증거를 찾는 일 모두에 대해 적용 가능한 기능을 중심으로 구성된, 모든 수사활동에 있어 가장 선행돼야 할 증거 보존과 수집 및 기초 분석 기능을 제공하는 데 그 초점이 맞춰져 있다.

그림2 Fast Bloc을 이용한 원본 디스크로부터 이미지를 복제하는 모습

하루가 다르게 심각해지는 컴퓨터 범죄를 막는 도구도 아니면서 대체 이런 도구가 무슨 소용이 있을까? 하지만 앞서 말한대로 아무리 부정행위에 대한 단서를 찾아냈다 하더라도 어떠한 경우라도 증거 보존에 대한 검증된 절차 또는 수단을 이용하지 않았다면 증거로 채택되지 않으며 수사기관 등이 정해진 분석도구를 이용했을 경우에 대해서만 법원에서도 이를 증거 채택해 주는 판례가 많기 때문이다. 이는 어찌 보면 절차상의 까다로운 불편함을 야기하는 것으로 오인될 수도 있지만 오히려 정해진 절차나 수단을 이용하면 전자매체에 남겨진, 즉 온라인 기록도 법적인 효력을 가진 증거로 채택될 수 있도록 해준 것으로 볼 수 있다.

화면1 디스크 서명도구 'diskdig' 실행모습

이는 역으로 국내 사이버 범죄 수사 사례를 살펴보면 쉽게 알 수 있다. 대부분 처벌까지 가는 범죄의 경우, 법률상으로 명확치 않은 사이버 상의 증거만으로 기소하는 대신 계좌추적이나 기타 오프라인의 증거를 통해서만 기소하는 형태가 주를 이룬다는 점이 그 좋은 예가 될 것이다. 따라서 앞으로는 컴퓨터 포렌식 절차를 수행하지 않은 것에 대해서는 아예 증거로 채택되지 않는 시대가 올 것이다.

포렌식 소프트웨어의 임무

증거 보존 기능

앞서 말한 대로 포렌식 시스템은 모든 분석 과정을 수행하기 전에 피해를 입은 시스템 및 용의자로 지목된 자가 사용한 시스템의 모든 저장장치에 남겨진 기록들을 원본의 손상없이 그대로 유지할 수 있도록 하기 위한 수단을 제공해야 한다. 실제로 이를 위해서는 하드웨어 또는 소프트웨어 방식으로 원본 디스크에 대한 접근시 쓰기 금지를 한 후 그 위에서 분석한다거나 해당 디스크의 이미지를 뜬 후 다른 디스크로 안전하게 옮긴 후 복제된 디스크를 사용해 분석 업무를 수행하는 방식이 많이 이용된다.

이렇게 원본을 유지하려고 노력하는 이유는 전자매체의 특성상 이중 원본 디스크에 바로 분석을 수행하면 쉽게 훼손될 우려가 있기 때문이다. 그리고 쓰기 금지 상태에서 원본 디스크 분석에 한계가 있어, 대부분의 포렌식 소프트웨어는 쓰기 금지 상태에서 비트스트림 방식으로 디스크에 물리적으로 기록된 이미지를 그대로 복제하는 기능을 가지고 있다.

이러한 복제 작업은 민간에서 주로 쓰이는 고스트나 기타 백업도구 등을 이용하는 것은 아니고 인케이스 및 세이프백(safeback) 등 법률상 인정된 복제 소프트웨어나 법률 강화 스위트(Law Enforcement suite)로 지정된 일련의 유틸리티를 사용한다. 먼저 원본 디스크를 최초 수집시 디지털 서명을 하여 원본 진위 여부와 사후에 분석을 위해 복제하여 사용한 사본 디스크의 내용과도 동일함을 법정에서 증명할 수 있는 MD5 체크섬 도구와 시간기록을 저장한다.

증거 수집 및 분석 기능

이제 남겨진 기록들을 고스라니 보존하였으니 실제로 여기에서 원하는 증거를 분석하는 기능에 대해 살펴보면, 크게 삭제된 내용에 대한 복구 기능과 내용에 대한 검색/비교 등 분석 기능으로 구분할 수 있다. 특히 분석과 관련해 포렌식 툴은 현재 피해 시스템(또는 피해 시스템 이미지)에 남겨진 데이터 중 관련 정보가 담겨 있는 로그나 파일 내용을 가공해 침입 흔적 또는 해커의 자원 오남용 현황을 파악할 수 있는 정보를 제공하며 또한 시스템에 남아 있는 정보 중 필요한 정보(파일)를 내용까지 분석해 찾아낼 수 있는 기능이 있어야 한다. 앞서 언급한 사본 디스크 또는 이미지 마련 등 증거 보존 작업이 충분히 되었다면 포렌식 도구 외에도 수사관의 수작업이나 여타 상용 분석 도구를 통해 분석 작업을 용이하게 하는 것도 가능하다.

문자열 검색 기능

포렌식 도구의 증거 분석 기능 중 공공과 민간을 통틀어 가장 널리 사용되는 분야는 바로 ‘문자열 검색 및 비교 기능’이다. 이 기능은 수사관 또는 내부 감시자가 특정한 검색어를 넣으면 컴퓨터 전체에서 이 단어가 속한 내역을 출력하는 것으로, 주로 정보유출 또는 불순한 내용의 메일 또는 파일 기록을 찾아내거나 내부 감사 중 전산 감사시 부정사용 내역을 찾아내는데 활용된다. 이러한 도구들은 특히 현재 파일시스템 내에 남아 있는 기록뿐만 아니라 할당되지 않은 영역과 지워진 클러스터 내에서도 검색 기능을 수행한다. 현재 접할 수 있는 포렌식 도구들은 주로 미국에서 개발된 경우가 대부분이라 ASCII 코드와 2바이트 문자에 대한 문자열 검색만 가능한 것이 한글을 쓰는 우리에겐 아쉬운 점이라고 할 수 있다.

화면 2 인케이스의 문자 검색 기능 화면

포렌식 도구의 대명사, 인케이스

이상적인 컴퓨터 포렌식을 선두에서 구현한 도구 중 가장 유명한 솔루션으로는 가이던스 소프트웨어의 ‘인케이스(Encase)’ 제품을 들 수 있다. 1980년대부터 개발·발표된 인케이스는 포렌식 소프트웨어가 갖춰야 할 증거 보존 및 분석 기능을 모두 갖고 있으며, 미국 법원에서도 인케이스를 통해 얻은 내용을 증거로 채택한 판례가 있어 더욱 유명해진 도구다(민간에서도 쉽게 구할 수 있지만 하드웨어 락 기능을 통해 패러럴 락 장치 또는 USB 도글없이는 대부분의 기능을 쓸 수 없다).

주요 기능으로는 윈도우 기반 환경의 통합된 증거 확보 도구로, 증거 인멸 등을 위해 임의로 삭제된 디렉토리 및 파일을 복구하거나 내용을 키워드 검색과 제공되는 사전 등을 통해 손쉽게 확인해 볼 수 있다. NTFS, FAT 12/16/32를 모두 지원하며 리눅스(ext2) 및 유닉스(UFS), dvd, 매킨토시 파일시스템까지 분석 가능하다. 자료수집 후 강력한 리포팅 기능도 제공된다. 또한 FastBloc 및 각종 I/O 자원을 통한 이미지 추출·자료 분석 기능이 매우 뛰어나고, 이미지에서 바로 분석 기능을 수행할 수 있으며, 타임라인 분석 기능을 통해 하드 디스크에 남겨진 흔적을 통해 특정 파일에 대해 시간대 별로 어떤 작업이 수행되었는지까지 추적할 수 있다.

화면 2 인케이스 타임라인 분석 화면

미국의 숨겨진 포렌식 도구, NTI 포렌식 툴킷

또한 인케이스와 더불어 ‘세이프백’이라는 이미지 추출 도구로 유명한 사이덱스(Sydex)를 인수함으로서 이 분야에 단연선두로 자리잡은 NTI(New Technologies Inc.)의 포렌식 툴킷이 있는데 이는 공개용, 기업용, 미국 정부용으로 제품이 구분되어 있고 핵심적인 내용들은 그 이름조차 공개되지 않아 상당수 베일에 쌓여 있는 게 특징이다(물론 주기적으로 열리는 포렌식 훈련 코스에 참여할 경우에 일부 솔루션을 제공하기도 하는데 대부분 공개도구이다).

2001년에 정부용으로 제공된 툴킷은 크게 Incident Response Suite, Law Enforcement Suite, Analyze Disk, CopyQM, NTFS 스위트, 세이프백으로 구분되어 있으며, 이 중 가장 널리 쓰인 도구는 세이프백과 NTA(Network Threat Analyzer)라는 도구다. 세이프백은 앞서 말한 증거 보존 및 수집을 위해 원본 대상 디스크의 이미지를 추출하는 도구로서 상대방 컴퓨터에 복제용 디스크를 추가하거나 병렬 포트를 이용해 원격으로 비트스트림 방식의 이미지를 추출하는 기능을 제공하는데 수사관들 사이에서 아주 오랫동안 사용된 유명한 도구로서 미국 정부의 특수 조달 품목에도 등록되어 있다.

또한 NTA라는 앞서 소개한 포렌식 도구와는 약간 다른 개념의 툴도 선보였는데, 이는 90년대 말 인터넷에 유포되는 아동 포르노를 막기 위해 주로 쓰였던 ‘IPFilter’의 후속판으로서 인터넷을 사용하는 PC에 대해 남아 있는 캐시 파일 및 swap 등을 조사해 인터넷 사용 기록 및 남은 파일에서 수사관이 지정한 특정 문자열을 찾아내는 도구다.

DOS 환경으로 개발된 NTA(대개 포렌식 도구는 피해 시스템 운영체제 대신 자체 부트디스크 환경을 이용하기 위해 도스 환경으로 개발된 것이 대부분이다)는 분석 기능 뿐만 아니라, 해당 도구를 사용하는 사용자에 대한 로깅과 간단한 신원확인 절차를 가지고 있어 기술적 도구의 남용 문제를 법·제도의 절차적인 방식으로 제어하려는 시도가 엿보인다. 필자는 2001년 버전을 입수해 윈도우 98 환경만 분석을 했으나, 이미 후속 버전이 출시된 것으로 파악되고 있다.

그 외 Filter_I나 문자열 검색 플러스 등 주로 분석 대상 컴퓨터에서 수사관 또는 내부 감시자가 지정한 특정 단어를 찾아내는 도구가 많이 포함되어 있으며, 이들 문자열 검색/비교 도구는 포렌식 툴 중 가장 많이 쓰이는 도구다.

아직 가야 할 길 멀지만

지금까지 두서없이 국외에서 이미 상용화 또는 정부에서 사용하는 일부 포렌식 도구에 대해 살펴보았는데, 이제 컴퓨터 포렌식에 대한 우리의 현실에 대해 살펴보기로 하자. 아쉽게도 국내에서 포렌식 도구로 쓸만한 상용 도구는 나와 있지 않으며, (설상가상인지 오히려 다행인지 모르겠지만) 컴퓨터 범죄수사에 있어 컴퓨터 포렌식에 관한 의무 규정 등 법률적·제도적 장치 역시 거의 마련되어 있지 않다. 그나마 수사기관이 일부 필요에 의해 실제 수사에 관련된 증거 보존 관련 지침을 응용하는 경우가 많았는데 이 또한 그동안 전산자료에 대한 증거라는 인식조차 결여되어 있거나 역시 법률적 뒷받침이 없는 관계로 국가기관의 경우에도 압수한 디스크를 그대로 분석한다거나 디스크를 전문가에 맡겨 지워진 내역을 찾는 일도 비일비재했다. 특히 KISA나 민간업체 등에서 해킹 등 침해사고를 분석하는 팀 또는 배포하는 대응 지침에서조차 아직도 주로 피해 시스템에 남겨진 로그와 변조된 파일을 백업하는 정도에 그치는 경우가 많은데, 이 경우 MAC Time 등이 변경되어 버리므로 모두 엄밀히 말하면 증거를 훼손하는 행위로서 추출된 자료 자체만으로는 법적 증거로 인정될 수 없다는 점은 명백할 것이다.

화면 8 NAT 화면

이로 인해 지금은 주로 오프라인의 증거를 찾기 위한 보조 자료 수준으로 이용되고 있지만 최근 들어 국내에서도 이러한 문제점을 자각하여 국내 일부 법 집행 기관을 중심으로 컴퓨터 포렌식에 대한 관심이 높아지고 있다. 얼마 전부터는 경찰청 사이버테러 대응센터 등에서 외국의 주요 포렌식 도구를 공식·비공식으로 도입하여 수사 현장에서 점차 확대 활용하고 있고, 개발 프로젝트를 통해 증거 수집 및 보존 기능을 중심으로 포렌식 시스템의 초기 모델을 개발해 운용하는 등 기술 축적을 통해 서서히 향후를 대비하는 움직임을 보이고 있는 점은 좋은 움직임이라 할 수 있다.

남아 있는 과제

국내에서 컴퓨터 포렌식 분야가 자리잡기 위해서는 무엇보다도 크게 세 가지 분야에의 극적인 발전이 필요하다. 세 가지 모두 기술적인 내용보다는 법률 및 제도적인 측면에서의 보완 방안인데, 첫 번째 내용은 컴퓨터 범죄 분석 과정 중 전산자료에 대한 증거 보존 절차에 대해 법제화하고 그 절차를 강제화해야 한다는 것이다. 수사기관에서부터 증거 자료를 분석 과정 이전에 사전 보존하는 노력만 감수한다면 그동안 사실상 무시되어 왔던 사이버 상의 일부 기록도 법원에서 인정할 만한 증거로 여겨지게 될 것이며, 컴퓨터 포렌식 분야가 보안의 한 분야로 홀로서기를 할 수 있는 계기가 될 것이다.

둘째는 K4 등과 같은 행정부 인증 수준을 넘어 사법부가 인정하는 컴퓨터 포렌식 애플리케이션의 인증 제도 및 표준안의 제정이 그것이다. 앞서 말한 내용과 연계하여 국내 기술 표준 또는 인증 체계가 없는 상태로 포렌식 툴 사용이 의무화될 경우 외산 솔루션 일색이거나 검증되지 않는 도구의 난무로 법률적인 측면에서 더 큰 문제를 야기할 우려가 있기 때문이다. 따라서 전자매체가 실제 증거로 제시되는 제도가 생기기 전에 반드시 선행돼야 할 것이다.

세 번째로는 민간에서 시행하는 내/외부 감사 업무 중 전산 감사 업무의 전문화 및 활성화가 그것이다. 이미 상장기업들을 중심으로 많은 기업들이 내부 감사 업무를 담당하는 팀을 운영하는 것으로 알고 있지만 이들의 대상 업무가 거의 대부분 전표나 장부를 통한 오프라인의 회계 감사에 대해서만 국한되고 있는 게 사실이다. 외국의 경우 외부 회계 감사 기관뿐만 아니라 내부 감사를 담당하는 인력들에게도 이러한 전산 감사 능력이 요구되는 경우가 많으며, 이에 대해서는 CIA(Certified Internal Auditor) 자격 과정이 요구된다. 국내에서는 그동안 외부의 위협에 대해 방어할 수 있는 능력을 검증하는 CERT라고 불리우는 정보보호팀을 운영하는 경우는 점차 많아지고 있으나, 아직까지 내부 감사에서 포렌식 기법이나 도구를 이용해 분석하는 사례에 대해서는 들은 바가 없다.

기술적인 이슈들

이와 더불어 현재까지 알려져 있는 수준만을 대상으로 삼을 때 실제 포렌식 시스템을 구축·운영시 아쉬운 부분에 대해서 잠시 소개하려 한다(필자 역시 이러한 포렌식 시스템 구축 프로젝트에 참여하면서 기술적 난해함이나 실력 부족으로 인해 겪었던 어려움이 있어 몇 가지만 언급하려 한다).

먼저 무엇보다도 In-Memory 상에 올려져 있는 프로세스 등에 대한 정보 수집 기능을 구현하는 문제다. 특히 원하는 프로세스가 메모리에만 올려져 있거나 디스크에 저장된 파일 등이 변조된 경우, 이에 대한 정보 수집은 사실상 거의 불가능하다. 예를 들어 /proc 디렉토리를 뒤져서 수행 중 프로세스의 내용에 접근한다든지 또는 해당 프로세스를 코어 덤프시켜 얻은 결과를 분석하는 방법을 통해 접근해야 한다고 생각하지만 과연 이들이 원하는 정보를 지니고 있는지는 알 수 없는 일이었다.

또한 디스크 또는 이미지에서 MAC 시간의 변형없이 특정 파일 정보를 파일시스템 레벨로 올리지 않고서도 이미 자체에서 바로 분석(MAC 시간별 정렬 및 타임라인 분석 기능 등)하게 하는 기능이 해당한다(일반 독자라면 ‘버추얼시디’ 또는 ‘CDSpace’ 등을 떠올리면 이해하기 쉬울 것이다). 이러한 기능이 구현된다면 실제 대상 디스크로부터 이미지 추출시 항상 풀어보지 않고도 곧바로 분석이 가능함은 물론, 인케이스처럼 매우 다양한 원본 파일시스템을 공통 포맷으로 추출해 분석 시스템의 운영체제에 구애받지 않고서도 분석할 수 있다.

끝으로 증거 수집 기능의 일부로서 다양한 유닉스 파일 시스템에서 지워진 파일에 대한 복구 기능을 개발할 때 특정 시스템만을 대상으로 하거나 이미 잘 알려진 TCT 소스 등을 이용하지 않고서도 범용적으로 복구가 용이한 시스템을 개발하는 일이다.

이와 같은 점을 보완하여 각종 유닉스(또는 일부만이라도) 대상으로 로그 분석 기능과 연계해 포렌식 시스템을 개발할 수 있다면 사실상 독보적인 존재가 될 것이므로 이를 필요로 하는 대상에게는 매우 유용하게 쓰일 것이라고 기대한다.

‘사이버’ CSI 수사대를 꿈꾸며

그동안 국내에서 보안 시스템이라고 하면 해킹 등 공격을 차단하거나 바이러스 등을 치료하는 방향의 적극적인 대응 기능 위주로 개발된 것들이 대부분이었다. 따라서 이번에 소개한 컴퓨터 포렌식에 대한 개념이 조금은 생소할 수도 있으며, ‘도대체 경찰에서나 쓸법한 도구들에 대해 내가 알 필요가 뭐가 있나?’ 라고 반문하는 독자들도 있을 것이다. 하지만 이제는 방어자 입장에서도 사이버 상에서 피해를 입은 후 최소한 법적 대응까지는 아니더라도 상대방에게 적극적으로 피력하기 위해서는 자신에게 남겨진 각종 기록 및 내용을 객관적인 방법을 통해 보존하려는 노력이 필요하다. 객관적인 증거 제시를 통해 능동적으로 보안사고에 대응하는 것은 이제 당연한 일이 될 날이 곧 올 것이다.@