2020-12-06 07:50 (일)
[김진국의 디지털포렌식-9] 안티포렌식과 안티안티포렌식
상태바
[김진국의 디지털포렌식-9] 안티포렌식과 안티안티포렌식
  • 길민권
  • 승인 2012.12.26 19:17
이 기사를 공유합니다

“안티포렌식 기법에 대응할 수 있는 전문성 갖추자!”
디지털포렌식 기술이 발전하고 디지털 증거물의 법적 효력이 중요해지면서 더불어 안티포렌식(Anti-Forensics)도 발전하고 있다. 안티포렌식은 디지털포렌식 기술에 대응하여 자신에게 불리하게 작용할 가능성이 있는 증거물을 훼손하거나 차단하는 일련의 행위를 말한다. 최근에는 안티포렌식을 자동화해주는 안티포렌식 전문 도구도 속속히 등장하고 있다. 안티포렌식의 목적은 일반적으로 다음과 같다.
 
-탐지를 회피하거나 정보 수집을 방해한다.
-조사관의 분석 시간을 증가시킨다.
-디지털포렌식 도구가 동작하지 못하도록 하거나 오류를 발생시킨다.
-범죄자의 사용 흔적이나 도구 실행 흔적을 발견하지 못하도록 로깅을 차단/우회하거나 삭제한다.
-법정 보고서나 증언으로서 가치가 없도록 증거를 훼손시킨다.
 
◇안티포렌식 기법
안티포렌식을 위해 사용되는 기법의 대부분은 조사관 입장에서 보면 조사를 방해할 수 있는 기법이지만, 사용자 입장에서 보면 중요 데이터 혹은 개인의 프라이버시를 보호하기 위한 합법적인 기법이다. 안티포렌식 기법을 분류해보면 데이터 파괴, 데이터 암호화, 데이터 은닉, 데이터 조작, 풋프린트 최소화, 분석 시간 증가로 나눌 수 있다.
 
1. 데이터 파괴 (Destruction)
데이터 파괴는 간단히 Delete 키를 눌러 파일을 삭제하는 기법부터 전문 도구를 사용하기까지 사용 흔적을 없앨 수 있는 모든 기법을 의미한다. 널리 알려진 데이터 파괴 기법은 다음과 같다.
-데이터 삭제 (Delete 키 혹은 Shift + Delete 키)
-소프트웨어 기반 데이터 완전삭제 (Wiping)
-하드웨어 기반 데이터 완전삭제 (Wiping)
-사용 흔적 자동 삭제 도구
 
Delete 키를 이용한 데이터 삭제는 데이터의 참조 정보만 삭제하기 때문에 실제 데이터가 덮어써지지만 않았다면 복구해낼 수 있다. 그리고 Shift 키를 조합하지 않았을 경우에는 휴지통 흔적에서도 삭제된 파일 정보를 얻어낼 수 있다.
 
반면, 소프트웨어/하드웨어 완전삭제(Wiping) 기법은 데이터를 복구하기 어렵다. 이 경우에는 완전삭제 도구가 사용되었는지 여부나 시점을 가지고 용의자의 증거 인멸 행위를 고려해 볼 수 있다. 소프트웨어 완전삭제 기법은 데이터를 복구하기 어렵도록 데이터를 덮어쓰는 기법이다.
 
관련 도구로는 무료로 간단히 사용할 수 있는 Eraser, SDelete, CyberShredder 등을 비롯해 전문 제품인 아크로니스(Acronis)의 Drive Cleanser, 파이널데이터(FinalData)의 Final Eraser, 에스엠에스(SMS)의 BlackMagic 등이 있다. 하드웨어 완전 삭제는 저장매체의 재사용이 목적이 아니라 저장매체 폐기가 목적이다. 주로 사용하는 방법은 강력한 자기장을 통해 자기장 방식의 저장매체 데이터를 지우는 디가우저(Degausser)가 있다. 이외에도 하드웨어를 사용하지 못하도록 물리적으로 천공을 하거나 파쇄하기도 한다.
 
사용 흔적 자동 삭제 도구는 분석을 어렵게 할 목적으로 흔적이 저장되는 웹 브라우저 흔적, 로그 파일, 프리패치, 최근 열린 파일, 검색 정보등을 자동으로 삭제시켜주는 도구이다. 대표적인 도구로는 CCleaner, Evidence Eliminator, Windows Washer가 있고 최근에는 백신과 같은 보안 프로그램에서도 용량 확보 목적으로 일부 사용 흔적을 삭제하는 기능을 지원한다.
 
2. 데이터 암호화 (Encryption)
데이터 암호화는 데이터를 외부 유출로부터 보호하기 위한 기법으로 중요 데이터를 보호하는데 사용될 수 있다. 암호화 방법으로는 운영체제 자체에서 지원하는 암호화 기능을 이용하거나 별도의 암호화 전용 도구를 사용할 수 있다. 또한, 응용프로그램 자체적으로 암호화 기능을 지원하기도 한다.
 
운영체제 자체적으로 지원하는 암호화 기능은 대표적으로 EFS(Encrypting File System), BitLocker가 있고, 암호화 전용 도구로는 TrueCrypt, Disk Utility, GNU Privacy Guard, AxCrypt가 있다. 그리고 자체적으로 암호화 기능을 지원하는 응용프로그램으로는 아래아한글, 마이크로소프트 오피스 제품군, 어도비 PDF 등이 있다. 그 밖에 DRM이나 개인정보보호 솔루션에서도 암호화 기능을 지원한다. 또한, 넓은 의미에서 네트워크 프로토콜을 암호화하는 SSL, SSH, SFTP, TOR 등도 포함된다.
 
암호화 기능을 무력화시키는 방법으로는 제품의 암호화 방식을 역공학(Reverse Engineering)하여 암/복호화 기능의 취약성을 이용하거나 사전 공격(Dictionary Attack), 무차별 대입법(Brute-Force Attack), TMTO(Time-Memory Trade-Off) 기법 등을 이용한다. 대표적인 도구로는 엘콤소프트(ElcomSoft), 패스웨어(Passware)에서 개발한 도구가 있다.
 
3. 데이터 은닉 (Hiding)
데이터 은닉은 데이터를 쉽게 탐지할 수 없도록 숨기는 기법이다. 대표적인 기법으로 디지털 매체에 메시지를 은닉하여 전달하는 스테가노그래피(심층암호; Steganography)가 있다. 스테가노그래피의 대상은 다양한 매체가 될 수 있는데 주로 JPEG, BMP, GIF, WAV, MP3, SWF 등과 같은 멀티미디어 파일이나 HWP, DOC, XLS, PPT, PDF 등과 같은 문서 파일을 이용한다. 스테가노그래피 기법을 적용한 대상은 보통 인간의 인지 능력으로는 원본과 구별 불가능하다. 원본이 존재한다면 원본과의 바이트 비교를 통해 스테가노그래피가 적용된 것을 유추할 수 있으며, 다양한 기법을 적용하여 은닉된 데이터를 추출해볼 수 있다. 하지만, 원본이 주어지지 않았을 경우에는 발견해내는 것이 쉽지 않다. 대표적인 스테가노그래피 도구로는 OpenStego, S-Tools, StegHide, Merge Streams 등이 있다.
 
또 다른 기법으로 파일시스템 구조에서 낭비되는 영역에 데이터를 숨기는 것이다. 어떤 영역을 이용하느냐에 따라 다양한 용어로 불리는데 일반적으로 다음과 같은 방법이 사용된다.
 
-Slacker: 슬랙 공간(Slack Space)에 데이터를 숨긴다.
-FragFS: NTFS MFT(Master File Table)에 데이터를 숨긴다.
-RuneFS: 배드 블록(Bad Block)에 데이터를 숨긴다.
-Waffen FS: ext3 저널 파일에 데이터를 숨긴다.
-KY FS: 디렉터리 파일에 데이터를 숨긴다.
-Data Mule FS: inode 예약된 공간에 데이터를 숨긴다.
-Host Protected Area & Device Configuration Overay: HPA, DCO 영역에 데이터를 숨긴다.
이 밖에도 구조적인 변경이나 취약점을 통해 데이터를 은닉하는 루트킷(Rootkit) 기법도 포함된다.
 
4. 데이터 조작 (Manipulation)
흔적을 삭제하거나 은닉하여 자신의 행위를 감출 수 있지만, 조작을 통해서도 감출 수 있다. 가장 널리 사용되는 조작 기법은 파일시스템의 시간 정보를 조작하는 것이다. 자신의 존재를 들키지 않고 시스템에 오래 남아있어야 하는 악성코드는 보통 시간 정보를 조작하여 정상 파일처럼 위장한다. 또한, 로그를 조작하여 자신의 행위가 정상적인 행위로 보이도록 위장하기도 한다.
데이터 조작의 대표적인 도구로는 윈도우 시스템에서 사용할 수 있는 Timestomp, XTST(eXpress TimeStamp Toucher)가 있고, *nix 시스템에서는 touch 명령으로 조작이 가능하다.
 
5. 풋프린트 최소화 (Minimizing the Footprint)
데이터를 삭제하거나 암호화, 은닉, 조작하는 행위는 경험 많은 분석가에게 비교적 쉽게 탐지될 수 있다. 그리하여 최근에는 시스템에 흔적을 거의 남기지 않는 방법을 사용하곤 한다.
 
첫째로, 포터블(Potable) 프로그램을 이용하는 것이다. 포터블 프로그램은 설치과정 없이 실행할 수 있는 프로그램으로 가상의 파일시스템과 레지스트리를 사용하고 종료 시에는 해당 흔적을 삭제한다. 설치할 필요 없이 간단히 사용할 수 있다는 장점 때문에 최근 많은 응용프로그램이 포터블 버전을 지원한다. 범죄자들은 자신의 흔적을 최소화하기 위해 이런 프로그램이나 별도 제작된 포터블 프로그램을 사용한다. 반면, 디지털포렌식 조사관도 데이터 수집 시 시스템에 영향을 최소화하기 위해 포터블 프로그램을 이용하기도 한다.
 
둘째로, 라이브 CD나 부팅 가능한(Bootable) USB를 이용하는 방법이다. 라이브 CD나 부팅 가능한 USB는 모두 메모리 상에서 실행되기 때문에 파일시스템에 흔적을 남기지 않는다. 이 때문에 다양한 공격용 응용프로그램을 포함하여 제작한 후, 이를 악용하기도 한다.
 
셋째로, 가상 머신(Virtual Machine)을 이용하는 방법이다. 가상 머신은 호스트 운영체제 상에 별도의 운영체제를 운용할 수 있는 기술이다. 가상 머신에서 악의적인 행위를 하면 해당 흔적은 가상 머신 이미지 파일에만 남기 때문에 호스트 시스템 흔적을 분석해서는 발견할 수 없다. 범죄자들은 자신의 흔적을 감추기 위한 목적으로 최근 가상 머신을 많이 이용하는 추세이고, 분석하기 어렵도록 종종 이미지 파일을 암호화하기도 한다. 또한, 사용 후에는 이미지 파일을 완전삭제(Wiping)하여 흔적을 완벽하게 제거하기도 한다.
 
이 밖에도 메모리 인젝션(Memory Injection), 원격 코드 실행(Remote Execution) 등의 방법을 이용해 시스템의 디스크 흔적을 최소화할 수 있다. 또한, 최근 공개된 웹 상의 무료 스토리지는 API도 지원하기 때문에 이를 통해 코드를 실행하거나 중요 데이터를 유출할 수도 있다.
 
6. 분석 시간 증가 (Reducing analyzability)
자신의 흔적을 없애는 것도 방법이지만, 분석하기 어렵게 만드는 것도 한 방법이 될 수 있다. 분석 시간을 증가시키는 대표적인 방법으로는 코드 난독화(Code Obfuscation), 실행 압축(Packing), 래핑(Wrapping)이 있다. 분석을 어렵게 할 목적으로 해당 기법을 반복적으로 적용하거나 서로 조합하여 적용하기도 하며, 공개된 방식 이외에 자신만의 매뉴얼한 방식도 자주 사용한다. 해당 기법을 사용하면 보안 솔루션을 우회하는 목적을 달성할 수도 있다.
 
◇안티포렌식 대응 기법, 안티안티포렌식
안티포렌식 기법이 증가하자 이를 대응하기 위한 안티안티포렌식(Anti-Anti-Forensics) 기법에 대한 연구도 최근에 활발히 진행되고 있다. 대표적인 안티안티포렌식 기법으로는 데이터 복구, 패스워드 크랙, 은닉 데이터 탐지, 휘발성 메모리 분석이 있다.
 
데이터 복구는 물리적인 복구와 논리적인 복구로 나눌 수 있는데, 저장매체를 완전삭제하거나 파쇄하지 않는다면 복구 기법을 통해 복구가 가능하다. 다만, 복구율은 저장매체의 상태와 사용 패턴에 따라 많은 차이를 보인다.
 
패스워드 크랙은 암호 알고리즘에 사용된 키를 찾는 기법이다. 관용 암호 알고리즘을 이용해 권고 수준 이상의 키(Key) 크기와 IV(Initial Vector)를 사용하고 안전하게 보관한다면 키를 알아내는 것이 현실적으로 불가능하다. 하지만, 많은 이유로 권고가 지켜지지 않는다. 이 경우 사회공학(Social-Engineering) 공격, 사전(Dictionary) 공격(Attack), 무차별 대입(Brute-Force) 공격 등으로 패스워드를 알아낼 수 있다. 또한, 역공학(Reverse-Engineering)을 통해 암호 알고리즘이 제대로 적용되지 않았는지를 살펴보거나 취약성을 찾아내 패스워드를 무력화할 수도 있다. 최근에는 고속 연산이 가능한 GPU(Graphic Processing Unit)를 패스워드 크랙에 이용함에 따라 암호 알고리즘의 수명이 단축되고 있다.
 
은닉 데이터 탐지는 용어 그대로 은닉된 데이터를 탐지하는 기법으로 영상, 색상, 통계, 포맷 분석을 이용해 스테가노그래피가 적용된 데이터를 탐지해내거나 은닉에 사용될 수 있는 영역을 검사해보는 것이다. 휘발성 메모리 분석은 저장매체를 이용하지 않고 메모리 영역에서만 실행되는 기법과 흔적을 탐지하기 위한 방법으로 공격 기법이 발전하는 만큼 분석 기법도 다양하게 연구되고 있다.
 
이 밖에도 통합 타임라인 분석을 수행해보면 시간 정보가 조작된 데이터를 발견해낼 수 있고, 프리패치, 시스템 복원지점, 레지스트리 등의 시스템 아티팩트를 종합해보면 안티포렌식 도구의 사용 여부나 흔적을 발견해낼 수 있다.
 
분석 대상 시스템에서 모든 안티안티포렌식 기법을 적용해보려면 너무도 많은 시간이 필요하다. 따라서, 먼저 어떤 안티포렌식 기법이 사용되었는지를 파악해야 한다. 이를 위해서는 먼저 용의자의 사전 정보 수집하거나 인터뷰를 통해 목적이 무엇이고 안티포렌식 기법을 사용할만한 수준인지를 파악해봐야 한다. 이후에는 사건의 성격에 따라 적용 가능한 안티포렌식 기법을 우선순위별로 살펴봐야 한다.
 
하지만, 시스템에 기본적인 포렌식 준비도가 마련되어 있지 않아 안티포렌식 기법의 사용 여부를 판별하기 어려운 경우가 많다. 대부분 의심은 가지만 확증이 없는 경우이다. 게다가, 안티포렌식 기법이 사용했다는 사실을 발견하더라도 대응이 늦고 삭제나 조작된 로그를 검증하거나 대체할만한 방안이 마련되어 있지 않아 사건을 재구성하기가 매우 어렵다. 따라서, 접근 제어나 사용 권한을 강화하는 등의 안티포렌식 기법에 대응할 수 있는 다양한 정책을 마련하고 이를 주기적으로 모니터링하여 수정/보완하는 노력이 필요하다.
 
더 나아가 현재 법률적으로 증거 인멸에 제재는 형법 제 155조 1항에서 비교적 무겁게 규정하고 있다.
 
[제155조(증거인멸등과 친족간의 특례) ① 타인의 형사사건 또는 징계사건에 관한 증거를 인멸, 은닉, 위조 또는 변조하거나 위조 또는 변조한 증거를 사용한 자는 5년 이하의 징역 또는 700만원 이하의 벌금에 처한다. -개정 1995.12.29-]
 
하지만 최근의 일련의 사건을 두고 보면 해당 법률의 처벌보다 더 큰 영향을 미치는 사안에 대해서는 죄책감 없이 증거 인멸을 택하곤 한다. 증거 인멸은 법치를 거부하는 부도덕한 행위이므로 사안에 따라 처벌을 강화할 수 있는 대안이 마련될 필요가 있다.
 
<김진국 선임연구원 소개>


강원대학교와 고려대학교 정보보호대학원을 졸업하고 현재 안랩 A-FIRST 팀에서 침해사고 포렌식 분석 업무를 담당하고 있다. 국내에 디지털 포렌식과 관련한 올바른 정보 공유를 위해 개인 블로그(FORENSIC-PROOF)와 포렌식 인사이트 커뮤니티를 운영하고 있다.

관련기사