본문 바로가기

디지털포렌식(Digital forensic)

대체 데이터 스트림(ADS) 검출과 삭제방법 - 디지털포렌식

반응형

 

Microsoft의 NTFS(New Technology File System)는 Windows NT 3.1에서 HDD의 데이터를 효과적으로

관리하기 위해 1993년에 도입됐다.
Apple의 리소스 포크와 데이터 포크 기능을 모방한 방식으로 만들어진 것이

ADS(Alternate Data Stream)이고, 한국 말로하면 대체 데이터 스트림이라 한다.

Microsoft 버전인 ADS는 파일 내용을 분리하지 않고 원본 파일에 직접 연결되지만
최종 사용자에게는 보이지 않는 별도의 파일/스트림을 생성하는 기능이다.

FAT방식은 '속성+데이터'만 갖지만 NTFS 방식은 '속성+메인스트림+대체스트림들'로 구성된다.

 

 

NTFS가 아닌 FAT에 ADS가 포함된 파일을 복사하면? 
지원되지 않기때문에 모두 사라진다.

 

 

 

대체 데이터 스트림(ads)는 filename.ext::alternateName 구문을 갖는다.

 


 

프로세싱을 진행해보자.

 

cmd를 열고 test.txt 파일안에 echo 명령으로 데이터를 추가한다.

 

만들어진 파일은 탐색기로 볼 수 있고, 메모장으로 열 수 있다.

 

 

위의 프로세스에서 생성한 파일은 메인 데이터 스트림(main data stream)이다.


 

이제 ADS에 쓰기를 시도한다.

앞에서 시도했단 MDS에 이어서 ADS를 붙여 진행했다.

 

hide라는 이름의 ads를  test.txt 파일에 만들었지만

여전히 test.txt의 MDS는 존재한다. 

test.txt라는 테스트용 파일의 확인은 dir /r 명령으로 할 수 있다.

일반적인 dir 명령으로는 ads를 확인하지는 못하며 mds만 확인할 수 있다.

MDS만 볼 수 있는 명령

 

MDS와 ADS를 볼 수 있는 명령

 

 

AlternateStreamView로 폴더를 스캔(Scan)하면 ADS 파일을 모두 스캔해서 볼 수 있다.

 

ADS 파일 이름 뒤의 $DATA는 MDS에 대한 참조다.

 


 

파일에서 ads만 삭제하고자 할 때에는

아래 링크 사이트에서 streams를 다운받은 후 예제와 같이 사용하면 ads만 삭제된다.

 

https://learn.microsoft.com/en-us/sysinternals/downloads/streams

 

Streams - Sysinternals

Reveal NTFS alternate streams.

learn.microsoft.com

 

 

위 화면에서 Agree 버튼을 눌러주면 파일에서 ads만 삭제한다.

삭제 후 결과를 확인하면 ads가 보이지 않는다.

 

 

어떻게 응용할 수 있을까?

 

 

ImageNo1.jpg:Original, ImageNo2:SmallVersion과 같이 이미지 파일을 버전별로 만들 수 있다.

앱을 만들었다면 앱에 사용한 폰트, 툴, 연동되는 DB등 다양한 정보를 함께 담을 수 있다.

 


 

일반적인 그림 파일이나 성경 파일로 위장하여 '비밀 정보'를 추가할 수 있다.

물론, 포렌식 전문 소프트웨어로 쉽게 검출할 수 있다.

 

NTFS의 ADS로 위험한 행위를 할 수 있기에  해당 부분에 대한 설명은 생략한다.

 

728x90