데이터의 안전한 보호 및 삭제

최종 검토일 : 2019.05.15
18대 대선이 진행 중이던 지난 2012년 12월 11일, 민주통합당 당원들은 역삼동의 한 오피스텔을 쳐들어 갔다. 그 오피스텔에서 국정원 직원이 인터넷 댓글 등의 조작을 통해 선거에 개입했다는 제보를 입수했기 때문이다. 국정원 직원은 문을 잠그고 40여 시간 동안 진입을 저지했다. 이후, 12월 13일 해당 요원은 경찰청에 임의 제출 형식으로 컴퓨터 등을 제출했지만, 그 40여 시간 동안 관련된 자료를 이미 완전하게 삭제한 뒤였다. 검찰 발표에 따르면, 당시 국정원 직원은 자신의 노트북에서 파일 187개를 복구 불가능한 방식으로 삭제했다고 한다. (어떠한 프로그램을 사용했는지는 나와 있지 않다.) 다만, 삭제된 텍스트 파일 한 개를 복원할 수 있었는데, 검찰은 “이 파일은 김하영이 수신한 이메일의 첨부파일로, 임시파일 형태로 생성된 후에 자동으로 삭제됐던 것이기 때문에 김하영이 복구가 불가능하도록 삭제한 파일에는 포함되지 않았다, 그 때문에 인케이스 프로그램(수사용 파일 복구 프로그램)에 의해서 복구가 가능했다”고 설명했다. 이 텍스트 파일을 통해, 국정원이 여러 개의 아이디를 만들어 댓글 등을 통한 인터넷 여론 조작을 한 정황이 일부 드러날 수 있었다.
이 사건의 증거물 분석을 담당했던 서울지방경찰청 역시 사건을 축소, 은폐하기 위해 증거자료의 삭제를 시도했다. 검찰은 2013년 5월 20일, 서울지방경찰청에 대한 압수수색 과정에서, 사이버범죄수사대 증거분석팀이 관련 자료를 삭제한 것을 발견했다. 이들은 ‘MooO(무오) 데이터 회복방지기’라는 프로그램을 사용했다고 한다.
국가 기관도 자신들의 범죄를 은폐하기 위해 데이터의 영구적인 삭제 방법을 이용하고 있다. 이 방법은 국가의 감시로부터 자신의 보안과 프라이버시를 보호하기 위해서도 사용될 수 있다.

노동, 인권 단체의 사무실이 수사 기관에 의해 압수수색을 당하는 일은 드물지 않게 발생한다. 활동가의 사무실 컴퓨터나 집에 있는 컴퓨터 역시 마찬가지다. 하드디스크 데이터에 대한 압수수색은 당사자의 참관 하에 수색 대상이 되는 데이터를 복제해가는 방식으로 이루어지기도 하지만, 때로는 하드디스크 자체를 압수해가기도 한다. 스마트폰 역시 움직이는 컴퓨터라고 할 수 있는데, 집회 시위 과정에서 연행당한 사람들의 스마트폰이 종종 압수된다. 수사 기관은 압수된 하드디스크나 스마트폰을 ‘포렌식’ 기술을 사용하여 그 안에 있는 내용을 분석하게 된다. 디지털 포렌식이란 전자적 증거물 등을 사법 기관에 제출하기 위해 데이터를 수집, 분석, 보고서를 작성하는 일련의 작업을 의미한다.

데이터 암호화

수사 기관의 포렌식으로부터 (물론 수사 기관뿐만 아니라, 해커 등 다른 공격자로부터의 보호를 포함한다.) 내 데이터를 안전하게 보호할 수 있는 방법은 무엇일까? 우선 데이터가 압수수색의 대상이 되지 않도록 비밀리에 보관하거나, 데이터를 읽을 수 없도록 암호화하는 방법이 있다. 이에 대한 자세한 설명은 <데이터를 안전하게 보관하기>와 <윈도 기기 암호화 – DiskCrytor 사용법>을 참고하라. 스마트폰의 경우에는 <기본적인 안드로이드 보안 설정> 및 <아이폰을 암호화하는 방법>을 참고하면 된다. 데이터 자체의 존재를 숨기는 것이 아니라, 특정한 데이터를 암호화하는 경우 그 데이터의 존재 자체는 알려질 수 있다. 또한 암호화를 하는 것 자체가 그 데이터가 무언가 민감한 데이터임을 암시할 수도 있다. 물리적인 혹은 법적인 협박이나 강압을 통해 암호화를 풀 수 있는 비밀번호를 알려주어야 할 수도 있다.

하드디스크 데이터의 완전한 삭제

주의 : 하드디스크의 데이터를 완전하게 삭제하거나 파기하면, 본인 역시 삭제된 데이터를 복구할 수 없다. 따라서, 자신에게 꼭 필요한 데이터라면, 안전한 곳에 백업을 해 두어야 한다.

우리는 보통 파일을 휴지통에 넣고 휴지통을 비우면 파일이 삭제되었다고 생각한다. 사실 파일을 삭제한다고 그것이 완전히 지워지는 것은 아니다. 파일을 삭제하면, 컴퓨터는 일단 그 파일을 이용자에게 보이지 않게 만들고, 그 파일이 저장되어 있던 디스크 부분에 “이용 가능”이라고 표시한다. 즉, 운영체제가 그 파일 위에 새로운 데이터를 쓸 수 있다는 것이다. 따라서, 그 파일이 새 데이터에 의해 덮어 쓰여질 때까지는 몇 주, 몇 달, 혹은 몇 년이 걸릴 수도 있다. 이때까지, “삭제된” 파일은 여전히 디스크 안에 있다. 다만, 보이지 않을 뿐이다.

그리고 “삭제 복원” 소프트웨어나 포렌식 방법과 같이 올바른 도구를 갖고 조금만 작업을 하면, “삭제된” 파일을 복구할 수 있다. 핵심은 컴퓨터는 보통 파일을 “삭제하지” 않으며, 다만 이후 언젠가 그 파일이 있던 공간이 다른 것에 의해 덮어 쓰여질 수 있도록 할 뿐이다.

포렌식을 하더라도 하드디스크의 데이터를 읽을 수 없도록 안전하게 삭제 혹은 폐기하는 몇 가지 방법이 있다.

  • 덮어쓰기(override) : 삭제된 데이터 공간을 소프트웨어를 통해 난수로 덮어씀으로써 기존 데이터를 복원하지 못하도록 하는 기법
  • 로레벨 포맷(low level format) : 하드디스크를 물리적으로 포맷한다. 알고리즘 자체는 덮어쓰기 기법과 비슷하다.
  • 자기적 삭제(magnetic erasing) : 커다란 자기장을 이용하여 하드웨어를 물리적으로 손상시키는 기법.
  • 물리적인 파괴, 분쇄

‘빠른 포맷’은 데이터의 인덱스라고 할 수 있는 파일 시스템(FAT)만삭제하는 것이기 때문에, 빠른 포맷으로는 데이터를 안전하게 삭제할 수 없으며, 빠른 포맷 이후에도 데이터를 복구할 수 있다. (물론 민감한 데이터가 없다면, 일상적인 이용에서는 빠른 포맷이 효율적일 수 있다.)

그러나 로레벨 포맷을 하더라도 데이터가 완전히 삭제되는 것은 아니며 포렌식을 통해 일부 데이터가 복구될 수도 있다고 한다. 그래서 로레벨 포맷을 통해 데이터를 완전하게 삭제하기 위해서는 7번 정도 로레벨 포맷을 반복해주어야 한다.

파일을 영구적으로 지우는 가장 좋은 방법은 즉시 다른 것으로 덮어 써서 복원하기 힘들도록 만드는 것이다. 삭제된 데이터 공간을 난수로 덮어쓰는 방식으로 삭제된 데이터를 복구할 수 없도록 지원하는 프로그램도 많이 나와 있다. 18대 대선 과정에서 인터넷 여론 조작에 관여했던 국정원 직원도, 그리고 이와 관련된 증거자료를 은폐하려고 했던 서울지방경찰청 역시 자신의 범죄를 은폐하기 위해 데이터 삭제 프로그램을 이용한 바 있다. 윈도용 안전 삭제 프로그램으로는 ‘BleachBit’가 있다. <데이터 안전 삭제 프로그램 – BleachBit>을 참고하라.

자기적인 방식의 삭제는 ‘디가우징’이라고 하는데, 국무총리실의 민간인 사찰 조사 과정에서 일반인에게 널리 알려진 바 있다. 지난 2010년 국무총리실 산하 공직윤리지원관실의 민간인 사찰 조사 과정에서, 관련 자료를 은폐하기 위해 ‘디가우저’를 이용하여 데이터를 완전 삭제한 것이 드러난 것이다. 디가우징은 강력한 자기장을 이용해 하드디스크의 데이터를 삭제한다. 중요 데이터를 보관하고 있는 오래된 하드디스크를 폐기할 때 흔히 사용하는 방법이다.

그 외에 하드디스크를 작은 크기로 분쇄하거나, 용광로 등을 통해 소각 하는, 즉 물리적인 파괴를 통해 데이터를 복구 불가능한 방식으로 파기할 수도 있다.

안전한 삭제 도구의 한계

18대 대선 과정에서 인터넷 여론 조작에 관여했던 국정원 직원의 노트북에서 TXT 파일이 발견된 것과 같이, 파일 자체를 완전하게 삭제한다고 하더라도, 운영체제나 연관 프로그램 등을 통해 파일의 제목과 같은 흔적이 남아있을 수 있다.

데이터 안전 삭제 프로그램을 통해 특정한 파일을 삭제했다고 하더라도, 이는 단지 당신이 사용하는 컴퓨터 디스크의 파일을 삭제할 뿐이다. 또 다른 하드디스크나 USB 드라이브에 옮겨둔 백업이나 이메일 서버 혹은 클라우드의 “타임머신”(백업)을 삭제하는 것은 아니다. 안전하게 파일을 삭제하려면, 그 파일의 모든 복제본을, 그것이 어디에 저장되어 있든 삭제해야만 한다. 또한, (드롭박스나 또 다른 파일 공유 서비스를 통해) 파일이 한번 클라우드에 저장이 되면, 그것이 완전히 삭제될 것이라고 보장할 수 없다.

불행하게도, 안전한 삭제 도구의 또 다른 한계가 있다. 모든 파일의 복제본을 삭제했다고 하더라도, 삭제된 파일의 흔적이 컴퓨터에 남아있을 가능성이 있다. 이는 파일 자체가 제대로 지워지지 않았기 때문이 아니라, 운영체제 혹은 어떤 다른 프로그램의 일정 부분이 그것들을 의도적으로 저장하고 있기 때문이다.

많은 경우에 이렇게 될 수 있지만, 두 가지 사례만 들어보자. 윈도나 맥 OS에서, MS 오피스는 “최근 문서(Recent Documents)”에 최근에 작업한 파일 이름을 가지고 있는데, 이는 그 파일을 삭제하더라도 지워지지 않는다. (때로 오피스는 심지어 파일의 내용을 포함한 임시 파일을 가지고 있다.) 리눅스나 다른 유닉스 기반 시스템에서 사용하는 오픈 오피스는 MS 오피스와 같은 정도의 기록들을 보유하고 있으며, 이용자의 쉘 기록 파일은, 어떤 파일이 안전하게 삭제되어도, 그 파일의 이름을 포함한 명령어를 보관하고 있다. 실제로 수많은 프로그램이 이와 같이 작동한다.

이러한 문제에 대처하는 방법을 아는 것은 어렵다. 파일이 안전하게 삭제되어도, 그 파일의 이름은 일정 기간 동안 컴퓨터에 계속 남아 있다고 전제하는 것이 안전하다. 전체 디스크를 덮어 쓰는 것이 이름까지 삭제하는 100% 확실한 방법이다. “어떤 데이터의 복제본이 어디 있는지 찾기 위해 디스크를 검색할 수 있을까?”를 궁금해 하는 사람이 있을 것이다. 답은 그렇기도 하고, 아니기도 하다. 그 데이터가 평문으로 되어 있다면 디스크 검색(예컨데, 리눅스에서는 grep -ab /dev/ 와 같은 명령으로 수행)으로 찾을 수 있다. 그러나 어떤 프로그램이 그것을 압축하거나 혹은 암호화했다면 찾기 힘들 것이다. 그리고 검색 자체는 기록을 남기지 않는다는 점을 유의하라! 파일의 내용이 계속 남아있을 가능성은 낮지만, 불가능한 것은 아니다. 전체 디스크를 덮어 쓰고, 새로운 운영 체제를 설치하는 것이 파일 기록을 완전히 삭제하는 확실한 방법이다.

오래된 하드웨어를 버릴 때 안전하게 삭제하기

하드웨어를 버리거나 다른 사람에게 팔 때, 누군가 기존 데이터에 접근하지 않도록 해야 한다. 연구에 따르면 컴퓨터 소유자들이 이렇게 하지 않는 경우가 많은데, 매우 민감한 정보들로 가득 찬 하드 드라이브가 종종 팔리고 있다. 또한, 컴퓨터를 바로 처분하지 않더라도, 그 수명이 다해 사용하지 않을 거라면, 그것을 한쪽 구석에 넣어두기 전에 깨끗하게 지우는 것이 안전하다. Darik’s Boot and Nuke는 이를 위한 소프트웨어이며, 그 사용법은 인터넷에 많이 있다. (이곳을 참고하라)

디스크 전체를 암호화하는 일부 소프트웨어는 마스터 키를 삭제하여, 하드 드라이브의 암호화된 콘텐츠를 영구적으로 접근할 수 없게 만드는 기능이 있다. 키는 매우 작은 데이터이고 거의 순식간에 삭제될 수 있기 때문에, 큰 드라이브의 경우에는 꽤 많은 시간이 소요되는 Darik’s Boot and Nuke 같은 소프트웨어로 덮어 쓰는 것보다 빠른 대안이 될 수 있다. 그러나 이 방식은 하드 드라이브가 항상 암호화되어 있는 경우에만 가능하다. 사전에 전체 디스크 암호화를 하지 않았다면, 그것을 버리기 전에 전체 드라이브를 덮어 써야만 한다.

CD-ROMS의 폐기

CD-ROM은 종이와 같은 방식으로 폐기해야 한다. CD-ROM을 폐기하는 싼 파쇄기가 있다. 민감한 데이터가 있다면 CD-ROM을 쓰레기통에 던져버려서는 안 된다.

SSD, USB 플래시 드라이브, SD 카드 정보 안전하게 삭제하기

SSD 드라이브, USB 플래시 드라이브, 그리고 SD 카드에서 데이터를 안전하게 삭제하는 것은 매우 힘들다는 것을 주의하라! 왜냐하면, 이러한 형태의 드라이브들은 웨어 레벨링(wear leveling)이라는 기술을 채택하고 있기 때문이다. (이것이 왜 안전한 삭제에 문제가 되는지는 여기를 참고하라).

SSD(Solid State Disks), USB 플래시 드라이브, SD 카드가 작동하는 방식 때문에, 그 안의 개별 파일이나 빈 공간을 안전하게 삭제하는 것은 매우 어렵다. 따라서 가장 좋은 방법은 암호화하여, 그 안에 파일이 있더라도 누군가 그것을 풀 수 없도록 해야 한다. 현재로서는 SSD의 데이터를 완전히 제거하는 좋은 방법을 제시하기는 힘들다. 왜 그러한지는 아래와 같다.

SSD와 USB 플래시 드라이브는 웨어 레벨링(wear leveling)이라는 기술을 사용한다. 웨어 레벨링은 다음과 같이 작동한다. 모든 디스크의 공간은 책의 페이지와 같은 블록 단위로 나눠진다. 파일이 디스크에 쓰여질 때, 특정한 블록이나 블록 묶음에 할당된다. 파일을 덮어 쓰고 싶을 때 해야 할 일은 디스크가 이 블록들을 덮어쓰도록 해야 한다. 그러나 SSD나 USB 드라이브에서, 같은 블록을 지우거나 다시 쓰는 것은 그것을 마모시키게 된다. 각 블록은 제한된 수만큼만 지워지거나 덮어 쓰여질 수 있으며, 그 이후에는 더 이상 사용할 수 없다. 이에 대응하여, SSD나 USB 드라이브는 각 블록이 지워지거나 덮어 쓰는 횟수가 같게 함으로써, 가능한 오랫동안 드라이브를 사용할 수 있도록 하였다. (wear leveling 이라는 용어가 이에 유래한다.) 그 부작용의 하나로, 파일이 원래 저장되어 있던 블록을 지우거나 다시 쓰는 대신, 드라이브는 그 블록을 ‘인식불가능’으로 표시하여 놔두고, 다른 블록에 수정된 파일을 쓰게 된다. 말하자면, 책의 어떤 페이지를 그냥 놔두고 다른 페이지에 수정된 파일을 쓰는 것과 같다. 그리고 책의 목차를 새로운 페이지를 가리키도록 수정하는 것이다. 이 모든 것은 디스크 전자기학의 매우 하위 계층에서 일어나기 때문에, 운영체제는 그것이 발생한다는 것조차 인식하지 못한다. 즉, 파일을 덮어 쓰려고 해도, 실제로 덮어 썼는지 보장하지 못한다는 것이다. 그것이 SSD에서 안전한 삭제가 훨씬 어려운 이유이다.

휴대전화 데이터의 안전한 삭제

휴대전화의 저장 매체는 SSD를 주로 사용한다. 앞서 얘기했듯이, 일반적인 하드디스크보다 안전한 삭제가 어렵다. 그럼에도 불구하고, 최대한 데이터의 안전한 삭제를 위해 노력할 필요가 있다. 이에 대해서는 <휴대전화 데이터의 안전한 삭제>를 참고하라.

이 글은 EFF의 How to: Delete Your Data Securely on Windows(2018년 8월 24일 마지막 업데이트)를 기초로 한 것입니다.