-
데이터 은폐Computer/DIGITAL FORENSICS 2014. 7. 25. 17:34데이터 은폐
데이터 은폐 Data Hiding
은폐 기술은 간단한 것부터 복잡한 것까지 다양하다. 파일 이름과 확장자 변조, 관계없는 디렉터리에 파일 숨기기, 파일 속에 파일 숨기기, 암호화 등이 있다.
암호화
합법적인 용도로 암호화를 적용하여 일생활 속에서 사용하는 많은 인터넷 서비스가 가능하게 되었다. 전자상거래에서 암호화는 쇼핑을 하거나 스케줄을 작성할 수도 있다. 암호화는 적합한 용도로 사용하면 사업과 국가의 안전을 지켜준다. 암호화 기술은 양날의 검이다. 범죄자, 테러범, 악의적인 국가, 비도덕적인 CEO 등이 사용하게 되면 매우 심각한 파급효과가 뒤따른다.
조지 테넷(George Tenet)
CIA 국장이었던 조지 테넷(George Tenet)은 지난 3월에 무국 상원 외교 위원회(Senate Foreign Relations Committee)에 보내는 문서에 "헤즈볼라, 하마스 그리고 빈 라덴의 알카에다를 포함하여 더 많은 테러 단체들이 그들의 작전에 컴퓨터 파일, 이메일, 암호 기술을 사용하는 것이 증가하는 추세다."라고 적었다. 1993년 세계무역센터 폭발범이었던 람지 유세프(Ramzi Yousef)는 암호화를 사용하였던 테러범 중에 한 명이다. 유세프는 미국 항공기를 폭파하려는 세부 계획을 노트북에 암호화하여 저장했다(Dick, 2001).
http://www.fbi.gov/news/testimony/issue-of-intrusions-into-government-computer-networks
암호화란?암호화 또는 엔크립션(encryption)은 특별한 지식을 소유한 사람들을 제외하고는 읽어볼 수 없도록 전달하는 과정이다. 암호화는 평문에서 시작한다. 평문은 원본 텍스트로 암호화되지 않은 메세지이며 모든 사람들이 읽을 수 있다. 이 평문에 암호화 알고리즘을 적용하여 암호문을 생성한다. 다시 말해 암호문은 평문을 뒤섞어서 쉽게 이해할 수 없는 형태로 변환하는 것이다.
이에 역행하는 과정을 해독 또는 디크립션(decryption)이라고 하며 이로써 암호화된 정보를 다시 읽을 수 있다.
암호화는 군사와 정부의 은밀한 대화를 위하여 오랫동안 이용되어 왔다. 암호화는 수많은 종류의 시민 체계의 정보를 보호하는 데 흔히 쓰이고 있다. 이를테면 CSI(Computer Security Institute)의 2007년 보고에 따르면 71%의 기업이 일부 데이터 전달을 위하여 암호화를 이용하며 53%가 일부 데이터 저장을 위해 암호화를 이용하는 것으로 조사되었다.
알고리즘이란 메시지를 암호화하는 데 사용하는 방법이고, 키(key)는 정보를 암호화하고 복호화하는 데 사용하는 데이터다. 보통 비밀번호화 비밀문구 등을 키로 자주 사용한다.
초창기 암호화
암호화는 컴퓨터 기술로 탄생한 것이 아니다. 최초의 암호이자 가장 잘 알려져 있기도 한 암호는 바로 카이사르 암호(Caesar Cipher) 또는 시저 암호다. 간단한 치환암호의 일종이다. 암호화하고자 하는 내용을 알파벳별로 일정한 거리만큼 밀어서 다른 알파벳으로 치환하는 방식이다. 카이사르는 가족과 비밀 통신을 할 때 각 알파벳순으로 세자씩 뒤로 물려 읽는 방법으로 글을 작성했다.
3글자씩 밀어내는 카이사르 암호의 예
http://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Caesar3.svg/856px-Caesar3.svg.png
3글자씩 밀어내는 카이사르 암호로 'COME TO ROME'을 암호화하면 'FRPH WR URPH'가 된다.
이렇게 간단한 프로세스는 오늘날에도 사용되고 있다. 컴퓨터 코드를 난독화할 때 자주 사용되고 있다. 난독화와 암호화는 모두 특정 데이터나 텍스트를 더욱 이해하기 힘들게 만들기 위해 사용된다. 하지만 난독화는 데이터 자체보다는 컴퓨터 코드를 보호하는 데 사용된다(http://www.zdnet.com/news/encryption-hashing-and-obfuscation/128604). 난독화는 코드를 리버스 엔지니어링(reverse engineering)으로부터 보호한다. 암호화는 이런 방식으로 사용할 수 없다. 그 이유는 컴퓨터가 코드를 이해할 수 없게 만들어 버리기 때문이다. 1
ROT13은 카이사르 암호의 현대 버전으로 난독화를 위해 오늘날에 사용되고 있다. ROT13에서는 문자의 위치가 13자리 옆으로 이동한다. 그러니까 ROT13에서는 "A"가 "N"이 되는 것이다.
알고리즘
알고리즘은 특정 작업을 완료하기 위해 사용되는 "명령들"이다. 예로, 회사 회의 내용을 이메일로 전송하는 데 사용할 수 있는 알고리즘을 다음과 같이 만들 수 있다.
- 사무실에 간다.
- 컴퓨터를 켠다.
- 마이크로소프트의 아웃룩을 연다.
- "메일 작성"을 클릭한다.
- "받는 사람" 정보를 입력한다.
- "제목"에 "회의"라고 입력한다.
- 메시지의 내용을 입력한다.
- "보내기"를 클릭한다.
근본적으로 암호화 알고리즘은 대칭과 비대칭 두 종류가 있다. 대칭 암호화는 하나의 키로 데이터를 암호화하고 복호화한다. 그에 반해 비대칭 암호화는 두 개의 서로 다른 키를 사용한다.오늘날에는 다양한 용도로 많은 암호화 알고리즘이 사용되고 있다.알고리즘: 비밀은 없다Auguste Kerckhoffs
http://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Kerkhoffs.jpg/220px-Kerkhoffs.jpg
알고리즘 자체는 공개되어있을 뿐만 아니라 상세하게 내용이 작성되어있기까지 하다. 왜 이러한 정보를 공개해 놓았을까? 그 이유는 바로 보안이다. 암호학의 베스트 프랙티스는 알고리즘의 보안이 비밀이어서는 안 된다 라고 언급하고 있다.1883년 네덜란드의 언어학자이자 암호학자였던 오고스트 커코프(Auguste Kerckhoffs)는 진정으로 효과적인 암호 시스템에서는 키만이 유일하게 비밀이어야 한다고 언급하였다. 알고리즘 자체의 비밀성에 의존하는 모든 시스템은 보안적으로 안전하지 않다고 하였다 (https://www.schneier.com/)
AccessData에서 암호분석학자로 활동 중인 네피 올레드(Nephi Allred)는 "AccessData"에서 근무하면서 배웠던 가장 큰 것은 '폐쇄성 암호 시스템을 신뢰할 수 없다는 것'이었습니다. 폐쇄성을 유지하면 정말로 보안적으로 안전한지 아닌지 알 수가 없습니다. 업무를 하면서 많은 프로그램을 리버스 엔지니어링했습니다. 좋은 프로그램도 있었고 그렇지 않은 것도 있었습니다. 물론 훌륭한 폐쇄성 프로그램도 있었고 별로 좋지 않은 오픈소스 프로그램(사실 거의 없었음)도 있었지만, 가장 훌륭한 프로그램은 역시 오픈소스 프로그램이었으며 가장 최악의 프로그램은 폐쇄성 프로그램이었습니다. 개인적으로는 폐쇄성 프로그램에 제 데이터를 절대로 맡기지 않습니다."라고 말했다.
키 공간
키 공간(key space)은 특정 암호화 알고리즘의 강도에 대해서 이야기할 때 측정 기준으로 사용되는 것 중에 하나이다. 키 공간 또는 키의 길이는 암호를 크랙하는 데 직접적인 영향을 준다. 키 공간 또는 키의 길이는 암호를 크랙하는 데 직접적인 영향을 준다. 특히 무차별 대입 공격에서는 더더욱 그러하다. 무차별 대입 공격에서는 정확한 키의 조합을 찾을 때까지 모든 가능한 키를 대입하여 비밀번호를 크랙하려고 한다. 2
모든 가능한 키와 비밀번호를 "추측"하기 위해 얼마나 걸리는지 알아보면 암호화가 왜 문제가 되는지 알 수 있을 것이다. 128비트 키를 사용하는 암호화 알고리즘은 대략 340,282,366,920,938,000,000,000,000,000,000,000,000개의 키 조합이 가능하다. 컴퓨터가 이런 키를 계산하려면 초당 500,000개의 비밀번호를 추측할 수 있는 컴퓨터를 한 대 사용하면 약 21,580,566,141,612,000,000,000,000,000년이 걸린다. 그러면 컴퓨터 수를 1000대로 하면 좀 더 빨리 계산이 가능하다. 약 21,580,566,141,612,000,000,000,000년이 걸린다. 실제로는 암호화 알고리즘에 따라 이 숫자가 더욱 커질 수도 있다. Pretty Good Privacy(PGP)같은 복잡한 암호화 알고리즘은 초당 계산할 수 있는 비밀번호의 수를 몇 백 개로 감소시킬 수도 있다.
암호화의 예
사생활 보호가 중요한 문제가 되었기에 윈도우 7이나 OS X같은 최신 버전 OS에는 암호화 툴이 설치되어 있다. 윈도우에서는 비트락커(BitLocker)를 사용하고 애플에서는 파일볼트(FileVault)가 설치되어 있다. 이러한 암호화 프로그램은 파일이나 폴더를 암호화하는 데 사용할 수도 있고 드라이브 전체를 암호화하는 데 사용할 수도 있다. 드라이브 전체를 암호화하는 것은 전체 디스크 암호화(full disk encryption 또는 whole disk encryption)라고 부른다.
전체 디스크 암호화에는 매우 중요한 이점이 하나 있다. 운영체제는 드라이브 여기저기에 데이터의 흔적을 남긴다. 스웝 공간을 예로 들어서 민감한 파일을 저장하고 있는 폴더 전체를 암호화한다고 하더라도 파일의 일부 또는 전체가 스웝 공간에 남아있을 수도 있다. 전체 디스크 암호화는 이렇게 데이터가 "누출"되는 것을 방지한다. 하지만 전체 디스크 암호화는 실제로 디스크 전체를 암호화하는 것이 아니다. 비트락커를 실행하기 위해서는 하드 드라이브에 파티션이 두 개 있어야 한다. 하나는 "운영 체제 드라이브", 다른 하나는 컴퓨터 부팅 파일, 시스템 툴 등을 포함하고 있는 볼륨이다. 운영체제 볼륨에 대부분의 데이터가 저장되어 있다.
전체 디스크 암호화에도 단점은 있다. 데이터를 암호화하고 다시 복호화해야 하기 때문에 성능을 저하시킨다. 암호화와 복호화의 과정은 "실시간"으로 진행된다. 즉 데이터가 저장되기 바로 직전과 RAM에 로드되기 바로 직전에 암호화 복호화 과정을 거친다는 의미이다. 데이터를 불러오기 위해서는 인증 과정을 거쳐야 하는데, 만약에 키를 분실하였거나 비밀번호를 잊어버렸다면 데이터를 두 번 다시 불러오지 못할 수도 있다.
암호화 파일 시스템
암호화 파일 시스템(Encrypting File System, EFS)은 파일과 폴더를 암호화하는 데 사용된다. 암호화 파일 시스템은 사용하기 매우 쉽다. 간단히 파일의 속성에서 체크박스 하나만 클릭하면 된다. 암호화 파일 시스템은 윈도우의 사용자 이름과 비밀번호를 암호화 알고리즘의 일부로 사용한다. 암호화 파일 시스템은 윈도우 운영체제의 기능이 아닌 New Technology File System(NTFS)의 기능이다.
BitLocker
암호화 파일 시스템과는 다르게 비트락커는 전체 하드 드라이브를 암호화하는 데 사용할 수 있으며, 비트락커 투 고(BitLocker To Go)의 경우에는 USB 드라이브 같은 이동식 매체를 암호화하는 데 사용할 수 있다. 비트락커는 보통 TPM(Trusted Platform Module, 신뢰 플랫폼 모듈)이라는 하드웨어와 함꼐 작동한다. TPM은 노트북이나 PC의 마더보드에 있는 마이크로칩으로 암호화 기능을 제공한다. TPM은 TPM으로만 복호화가 가능한 키를 생성하고 암호화 한다. TPM 없이 작동을 시키기 원한다면 키를 USB에 저장한다.
BitLocker
비트락커의 암호화는 매우 견고하여 키 없이는 복호화가 거의 불가능하다.
비트락커가 설치되어는 있지만 컴퓨터가 실행 중이라면 비트락커를 공격하지 않고도 데이터를 복원할 수 있다. 비트락커로 보호되어 있는 하드 드라이브에 저장되어 있는 파일은 시스템에서 해당 파일을 요청하면 파일을 복호화 한다. 될 수 있으면 최대한 암호화를 피해야 한다.
실제 실행 중인 컴퓨터가 눈 앞에 있다면 비트락커를 사용하고 있는지 그렇지 않은지 확인하는 것이 수사에 큰 도움을 준다. 비트락커가 설치되어 있는 컴퓨터가 실행 중이라면 아마 그 시간이 컴퓨터에서 증거를 복원할 수 있는 유일한 기회가 될 수도 있다.
Apple FileVault
FileVault 2는 128비트 AES 암호화 알고리즘을 사용하며 드라이브 전체를 암호화할 수 있다. 애플은 자사에 고객이 복원 키를 저장할 수 있게 한다. 애플에 저장되어 있는 키는 합법적인 검색 기관이 적법한 절차를 거쳐 압수할 수 있다.
트루크립트
트루크립트(TrueCrypt)는 무료 오픈소스 소프트웨어로 실시간 암호화 기능을 제공한다. 데이터가 열리면 자동으로 복호화되고 데이터가 저장되면 자동으로 암호화된다. 이 모든 암호화 복호화 과정이 자동으로 진행된다. 트루크립트에는 전체 디스크 암호화 기능도 있다. 전체 디스크 암호화를 하면 모든 파일의 내용을 암호화할 수 있으며 시스템이 자체적으로 생성하는 민감한 데이터를 저장하고 있는 파일도 암호화할 수 있다. 민감한 파일로는 로그 파일, 스웝 파일, 레지스트리 항목 등이 있다. 복호화를 위해서는 정확한 비밀번호와 키 파일이 필요하다. 트루크립트는 윈도우, 맥, 리눅스에서 실행할 수 있다. 트루크립트에서는 다양한 종류의 암호화 알고리즘을 사용할 수 있는데 여기에는 AES, Serpent, Twofish 그리고 이 세 가지를 조합한 것 등이 있다. 키 공간은 256 비트이다.
비밀번호 크랙
비밀번호 크랙은 어렵거나 아예 불가능할 수도 있다. 성공할 확률은 최대한 높이기 위해 사용할 수 있는 모든 방법을 동원해야 한다. 비밀번호를 크랙하는 방법에는 무차별 대입 공격, 딕셔너리 공격, 비밀번호 재설정 등이 있다.
너무 많은 사람들이 단순한 비밀번호를 사용한다. 예로는 "password", "123", "abcd"등이 있다. 또한 생일, 애완동물 이름, 좋아하는 스포츠 팀 등도 비밀번호로 자주 사용된다. 대부분의 사람들이 길고 복잡한 비밀번호를 외우기도 쉽지 않고 불편해한다. 강력한 비밀번호를 사용한다고 해도 모니터 옆에 붙여두곤 한다. 이처럼 암호키가 아무 곳에 방치되어 있어서 쉽게 획득하는 경우가 있다.
사람들은 비밀번호의 일부 또는 전부를 재사용한다. 이점을 활용할 수 있다. 비밀번호 하나만 획득하면 다른 모든 비밀번호를 획득할 수 있다. 미국의 비밀 검찰국 요원인 스튜어트 밴 뷰렌(Stuart Van Buren)은 "특정 사람이 사용하는 비밀번호 두세 개르 찾게 되면 그 사람이 사용하는 모든 비밀번호를 알 수 있게 된다."라고 말했다.
http://www.homelandsecuritynewswire.com/feds-forced-get-creative-bypass-encryption
마이크로소프트에 의하면 강력한 비밀번호는 문자, 숫자, 특수문자 등의 조합을 14개 이상 사용한 것이다.
조사관들은 운이 좋아서 하드 드라이브의 스웝 공간에서 비밀번호를 찾을 수도 있다. 실행 중인 컴퓨터에서 RAM을 캡쳐하는 것도 비밀번호를 크랙하는 데 도움이 된다. 웹사이트에서 비밀번호를 입력하면 화면에 "*"로 처리가 되는데 이는 모두 RAM에 기록이 된다.
간단한 비밀번호는 툴로 몇 초 안에 크랙이 가능하다. 이러한 툴 중에서 대표적인 것은 AccessData의 Password Recover Toolkit(이하 PRTK)이다. 다른 툴로는 John the Ripper와 Cain and Abel 등이 있다.
출처
-
이제 시작이야 디지털 포렌식
-
위키백과 < http://wikipedia.org/ >
'Computer > DIGITAL FORENSICS' 카테고리의 다른 글
스테가노그래피 (0) 2014.07.27 크랙 방법 (0) 2014.07.25 안티 포렌식 (0) 2014.07.25 프리 패치, 링크 파일 (0) 2014.07.25 복원 지점과 쉐도우 복사 (0) 2014.07.25