이전에 상상실험 비스무리하게 민감한 정보를 다루고 있을때 적·스파이가 들이닥친다면 어떻게 해야할까? (좀 더 직설적으로 표현하자면, 작업중 경찰이 들이닥치면 어떻게 해야할까?) 에 대해 아는 형님하고 이야기 해 본적이 있다. 그 때 이야기가 끝이었지만, 다시금 생각이 나서 추가로 찾아보며 정리해 보려 한다.
윈도우를 버리고 리눅스로 옮겨탄다
매우 중요하다. 윈도우는 생각보다 편리하지만, 또 생각보다 보안에 좋지 못하다. 일반 사용자는 잘 모르겠지만 윈도우는 생각보다 구석구석에 사용 정보를 남기고 있다.
윈도우에는 자체적으로 “이벤트 로그” 라는 프로그램이 있다. 이 프로그램은 시스템 내에 발생한 오류·문제점들을 파악하는데 도움을 준다. 하지만 반대로 포렌식을 하려는 사람들에게는 좋은 먹잇감을 제공한다. 컴퓨터(윈도우)를 언제 사용을 했는지, 무슨 작업을 하였는지, 절전모드에 들어갔는지, 누가 로그온 하였는지 등등 컴퓨터를 어떻게 사용해 왔는지에 대한 큰 그림을 제공한다.
이때까지 사용했던 USB 총 목록을 볼 수도 있다. 이벤트 뷰어로은 안되지만 어쨋든 볼 수는 있다. 이를 이용하면 상대방에게 좋은 먹잇감을 줄 수 있다. 이를 좀 더 보기 좋게 만든 프로그램도 있다. (https://usbdetective.com/) 상황에 따라 마지막으로 언제 사용하였는지 까지도 빼낼 수 있다. 즉 적이 “너 USB 이거말고 쓰는거 있는건 내가 다 알고있어” 를 외칠 수 있다는 것이다.
그 외에도 많은 정보들이 우리도 모르는 사이에 쌓이고 있다. 리눅스에서는 이러한 정보를 추적·관리하기 쉬울 뿐더라 애초에 쌓이는 로그의 양도 이렇게 많진 않다. /var/log 한번 쫙 날리면 그냥 끝이다. (물론 %appdata% 등에 대응하는 무언가가 있을수는 있지만, 번외로 친다)
하드디스크 (파티션) 암호화를 사용한다
적이 들이닥쳤을때는 이미 내 하드디스크가 적에게 넘어간 셈이 된다. 그냥 하드디스크 하나 뜯어서 가져가면 끝이다. 별 달리 방법도 없다. 내가 사용했던 모든 문서·자료가 하드디스크 안에 남아 있을것인데 하드를 뜯어간다면 뭐 어떻게 할 수가 없다.
이때 필요한것이 하드디스크(최소 파티션) 암호화이다. 하드 디스크는 적에게 넘어갔을지 모른다. 하지만 안에 있는 파일은 볼 수 없다. 비밀번호가 없다면 말이다. 윈도우에서는 BitLocker가 있고 리눅스 계열에서는 Luks등의 방법이 있다. 나는 리눅스를 이용하는 편이 더 안전할 것이라 생각하긴 하지만, BitLocker 또한 괜찮은 방법이라고 생각한다.
가상 메모리 사용을 끈다. (Swap을 사용하지 않는다)
Swap·가상메모리는 OS의 동작에 있어서 중요한 역할을 하는것은 사실이다. 그러나 메모리에 PC 내의 활동중인 모든 정보가 저장된다는 점과 Swap(가상메모리)은 하드디스크(SSD)를 메모리 처럼 사용하는 것이라는 특징이 어울려서 생각지도 못한 결과를 만들어 낼 수 있다. 시크릿탭으로 페이지를 열어 봤는데 그게 하드디스크에 남을수도 있다는 것.
하드디스크와 SSD 모두 비 휘발성 매체이기 때문에 PC를 꺼도 남아 있을수 있다. 특정 상황 하에서는 (예: SSD에서는 Trim이 정상 작동 안하고 있다던가, HDD에서는 하드디스크 복구 장치를 이용해서 데이터 복구 작업을 한다던가) 꽤 오래전에 한 작업들 까지 들춰낼 수 있다.
sdmem과 sswap 프로그램을 알아둔다 (리눅스)
아마 잘 들어보지 못한 프로그램일 것이다. sdmem은 메모리 내부에 있는 자료를 안전하게 지우는 기능을 수행한다. sswap은 위에서 말한 Swap 영역을 안전하게 지우는 기능을 수행한다. sswap은 왜 쓰는지 알겠는데 sdmem은 왜 쓰는지 이해 못할 수 있다. 그냥 컴퓨터만 끄면 되는것 아닌가?
나도 이걸 조사하면서 알았지만 PC 전원을 꺼도 메모리에는 데이터가 남을수 있다. (https://ro.ecu.edu.au/cgi/viewcontent.cgi?article=1162&context=adf, Memory forensic data recovery utilising RAM cooling methods, Edith Cowan University, Kedar Gupta, Alastair Nisbet, 2016) 컴퓨터에 전원이 내려갔다고 메모리의 내용이 한순간에 삭제되는게 아니다. 컴퓨터를 꺼도 빠르게 메모리를 덤프(내용을 다 뽑아내는것) 하면 데이터를 뽑아 낼 수 있다는 것이다.
해당 논문을 요약해 보면, 상온에서는 10분 정도 있으면 대부분의 데이터가 다 손실된다. 그러나 얼음이나 냉각 스프레이, 또는 액체 질소등을 이용해 메모리를 차갑게 유지하면 10분이 경과해도 메모리 내의 데이터가 96% 이상 손상없이 복구 가능했음을 보여준다. 당신이 급하게 컴퓨터를 꺼도, 들이닥친 적이 준비해둔 컴퓨터에 꽂고 메모리 내용을 추출한다면 메모리 내용을 그대로 적이 볼 수 있다는 것이다.
평상시에는 이런 프로그램들을 알 필요는 없을것이다. 그러나 컴퓨터를 끌 때나 갑자기 적이 들이닥쳤을때 이 프로그램들을 사용하면 적에게서 부터 정보를 지킬수 있는 방법 하나를 제공해 줄 것이다.
srm을 사용하자
그냥 파일을 삭제하는것은 적으로 부터 파일을 보호하는데 별 영향을 주지 못한다. 파일을 삭제해도 실제 데이터는 그대로 하드디스크에 남아있수 있기 때문이다. 그렇기에 민감한 파일을 삭제하기 위해서는 srm과 같이 파일을 안전하게 지워줄 수 있는 프로그램을 사용해야 한다.
srm 등의 프로그램을 안쓰면 하드디스크 덤프를 이용하면 최근에 삭제한 파일에 대해선 왠만큼 복구가 가능하다. 시중에는 파일 복구 소프트웨어도 많다. 적의 규모가 커지면 아예 하드디스크 전문 복구 장치도 있다. 이러한 적들을 물리치기 위해서는 민감한 파일일수록 그냥 삭제하는 것이 아닌, 전문적으로 안전하게 파일을 삭제해 주는 프로그램을 이용해야 한다.
usbkill을 사용하자
갑자기 적이 당신을 급습하였다. 또는 적이 등 뒤에서 당신에게 데이터를 옮기라고 명령한 채 지켜보고 있다. 컴퓨터를 사용중에 급습을 당했기에 하드디스크 암호화도 풀려있을 것이다. 필요한 경우 적이 당신의 PC를 건들려고 할 것이다. 이런 상황에서는 PC를 꺼야한다. 하지만 생각해 보자. 적은 당신이 PC를 끄도록 그저 내버려두지 않는다. 정상적인 방법으로 컴퓨터를 끄는 과정은 적이 뻔히 알 수 있다. 전원버튼을 누르는것도 몇 초 이상 꾸욱 눌려야 작동한다.
이 때 사용가능한 것이 usbkill (https://github.com/hephaest0s/usbkill)이다. 이 프로그램은 별도의 과정 없이 꽂혀있던 USB를 빼거나, 새로운 USB를 꽂으면 컴퓨터를 종료한다. 설정에 따라서 강제 종료시 srm으로 설정한 폴더나 파일을 지우게 할 수도 있다. sswap이나 sdrem을 실행하도록 설정할 수 도 있다.
적이 들이닥칠때 언제 전원버튼을 꾹 누르고 있을것인가? 언제 시작->시스템 종료를 누르고 있을것인가? 그러다가 “윈도우를 강제 종료하겠습니까?” 라는 창이 뜨면 어떻게 할 것인가? usbkill을 이용해서 USB만 뽑으면 설정에 따라서 PC를 정리한 후 종료하게 하자. usbkill에는 허용된 USB외 다른 장치가 꽂혀도 강제 종료할 수 있는 기능이 있다. 적이 PC를 빼앗고 자신의 USB에 파일을 훔처담을려는 순간 컴퓨터가 강제 초기화 되는 것이다.
시크릿 탭을 사용하자
남은 기록을 정리하는것도 중요하지만, 기록이 애초에 안남게 하는것이 더 좋다. 최소한 브라우저로 인터넷을 한 기록만은 PC에 안남길수 있다. 연장선에서 램 디스크를 만들어서 그 안에 임시폴더를 집어넣는것이 좋다. 램 디스크 특성상 PC를 종료하면 남아있던 파일이 모두 사라지게 된다.
VM (VirtualBox·VMWork등)을 사용하자
PC가 충분한 사양을 받혀줄 때 VM을 쓰는것은 꽤 괜찮은 선택이 될 것이다. 실제 PC 내에서 또 다시 가상의 PC가 있는것이기 때문에 한 층의 벽을 제공한다. 특히 상황에 따라서 가상 PC의 가상 하드디스크에도 비밀번호로 암호화 할 수 있다. PC에는 접근할 수 있더라도 실제 알맹이는 접근할 수 없다. 또, 가상화 프로그램만 빠르게 끄면 가상 컴퓨터를 끈 것과 똑같은 효과를 볼 수 있기에 상황 대처에서도 유용할 것이다.
그 외…
화장실등 자리를 비울때 노트북을 들고 가거나 PC를 정리하자. 주인 없는 PC는 좋은 먹잇감이 될 수 있다. 인터넷을 써야한다면 VPN과 Tor 네트워크를 쓰는것도 좋을것이다. 필요없는 프로그램은 설치하면 안된다. 특히 보안 취약점이 될 수 있는 프로그램들은 다 꺼야 한다. 해커가 취약점을 이용해서 원격으로 해킹을 시도하면 답도 없기 때문이다.
답글 남기기