Forensic/Forensic 이론

슬랙 공간 영역(Slack Space Area)

Ron Weasley 2022. 7. 10. 19:55

이번 시간에 공부를 할 개념은 슬랙 공간입니다.

 

슬랙 공간(Slack Space)

슬랙 공간은 물리적인 크기와 논리적인 크기 차이로 인해 낭비가 되는 공간으로써, 물리적으로는 할당된 공간이지만 논리적으로는 사용할 수 없는 공간을 의미합니다.

 

이 부분에 대해서는 실제 포렌식 문제를 가지고 와서 설명을 드리겠습니다. (램 슬랙 참고!!)

 

디스크는 데이터를 섹터 단위로 읽고 쓰기 작업이 이루어지며 디스크 입출력 속도를 향상시키기 위해서 여러 개의 섹터를 묶어서 한 번에 처리하게 끔 클러스터라는 개념을 사용합니다.

* 클러스터 : 여러 개의 섹터(512Byte)를 묶은 개념, 운영체제에서 사용하는 데이터 저장의 최소 단위로 사용

 

디스크는 섹터, 클러스터 단위로 입출력을 처리하지만 파일은 가변적이기 때문에 파일의 크기와 섹터, 클러스터의 크기 차이로 인해서 슬랙 공간을 발생시킵니다. 슬랙 공간의 종류에는 램 슬랙, 파일 시스템 슬랙, 볼륨 슬랙, 파일 슬랙, 드라이브 슬랙이 존재합니다.

 

그림으로 먼저 램 슬랙, 드라이브 슬랙, 파일 슬랙에 대해서 보겠습니다.

1. 램 슬랙 (RAM Slack)

램 슬랙은 램에 저장된 데이터가 저장매체에 기록될 때 나타나는 특성에 붙혀진 이름입니다. 클러스터나 블록이라는 논리적인 섹터의 모음을 통해 데이터를 할당한다고 하더라도 물리적으로는 섹터(512Byte) 단위로 데이터가 기록됩니다. 그 이유는 위에서 말했듯이 디스크는 데이터를 섹터 단위로 읽기/쓰기 작업을 하는 저장매체의 특성 때문입니다.

 

예시를 보겠습니다.

 

만약 클러스터의 크기가 2KB(2048Byte)인 시스템에서 712Byte 크기의 파일을 기록한다고 가정을 해보겠습니다.

이때, 해당 파일의 물리적인 크기는 클러스터 크기 만큼 2KB가 할당되지만, 실제로는 섹터 3개의 크기만큼만 데이터가 기록이 됩니다. 이때, 첫번째 섹터는 512 만큼 꽉 차고, 두번째 섹터는 200만큼 차고, 세번째 섹터, 네번째 섹터는 빈 공간으로 0이 채워집니다.

 

이때, 0으로 채워지는 특징을 램 슬랙이라 합니다.

위 그림에서 보시다시피 712만큼만 데이터가 채워져있고 나머지는 램 슬랙 공간으로 나타나있는 것을 볼 수 있습니다.

 

2. 드라이브 슬랙 (Drive Slack)

드라이브 슬랙은 클러스터의 사용으로 인해 낭비되는 공간을 나타내는 용어입니다. 위 그림을 보시면 두 개의 섹터만 사용하여 파일의 크기를 담을 수 있지만, 2KB의 클러스터를 사용하기 때문에  섹터 3, 섹터 4가 추가로 사용된 것을 확인할 수 있습니다.

 

이 경우 실제 저장매체에서는 712Byte 기록을 위해 두 개의 섹터만 기록을 하고 2개의 섹터에는 아무런 작업도 수행하지 않습니다. 그 이유는 드라이브 슬랙은 실제 파일 데이터에 아무런 영향도 미치지 않기 때문에 그렇습니다. 실제로 드라이브 슬랙에서 초기화 작업을 한다면 또 다른 문제가 생기겠죠??

 

그래서 이 드라이브 슬랙에 백도어같이 악의적인 행동을 수행하는 악성코드들을 많이 숨겨둡니다.

 

정리를 하자면, 클러스터 단위로 기록되는 데이터가 파일의 크기만큼 할당이 되고, 남은 비할당 영역을 말합니다. 위 그림에서는 712 만큼 할당을 하고 남은 2048 - 1024= 1024Byte만큼 드라이브 슬랙 공간이 되는 것 입니다!!

 

3. 파일 슬랙 (File Slack)

파일 슬랙은 램 슬랙과 드라이브 슬랙을 합친 것을 의미하고, 파일을 할당하고 남은 영역 모두를 파일 슬랙이라고 생각을 하시면 될 것 같습니다.

 

4. 파일시스템 슬랙 (File System Slack)

저장매체의 물리적인 공간을 사용하기 위해서는 파일 시스템을 할당해야 됩니다.

파일시스템의 크기는 클러스터의 크기에 따라 결정이 되는데 파일시스템 슬랙은 파일 시스템의 할당 크기와 파티션의 크기 차이로 인해 낭비되는 공간입니다. 마찬가지로 악의적인 행동을 수행하는 악성코드들이 숨겨져 있을 수 있습니다.

5. 볼륨 슬랙 (Volume Slack)

볼륨 슬랙은 전체 볼륨 크기와 할당된 파티션 크기의 차이로 발생하는 낭비 공간입니다. 파티션의 크기는 임의로 변경이 가능하기 때문에 다른 슬랙과 다르게 볼륨 슬랙의 공간은 임의로 변경이 가능합니다.

즉, 저장매체를 논리적 단위인 파티션 단위로 할당한 후 남는 공간을 의미합니다.

 

이렇게 5가지의 슬랙 공간에 대해서 배워봤는데, 정리를 하자면 슬랙 공간은 주어진 역할이 없고, 낭비되고 있는 공간이기 때문에 악의적인 공격을 하는 악성코드가 심어져 있거나 걸려서는 안되는 데이터들을 은닉시키는 공간으로 사용되고 있기 때문에 음...712바이트 만큼 크기를 가지고 있네? 그러면 1,2 섹터만 봐야지가 아니라 혹시나 숨겨져 있는 데이터들이 있나? 하고 의심을 한번 해보시는 것이 좋을 것 같습니다!!!

 

언제나 피드백 해주시면 감사하겠습니다!!!

'Forensic > Forensic 이론' 카테고리의 다른 글

웹 브라우저 포렌식  (3) 2022.07.03
반도체를 이용한 저장매체  (0) 2022.03.31
파일 카빙(Carving)  (0) 2022.01.27
해쉬 함수 (Hash Function)  (0) 2022.01.20
데이터 인코딩(Data Encoding)  (0) 2022.01.18