Alternate Data Stream 이란?

대부분 사람들은 ADS 라고 줄임말로 이야기 하며, NTFS 구조에서 다중 데이터 스트림을 지원 하는데, 데이터 스트림이 여러개 라는 것은 파일 하나에 하나이상의 데이터를 담을 수 있다는 것을 의미 합니다.

이를 이용해서 데이터를 파일 안에 숨길 수 있습니다.

FAT 와 NTFS의 스트림을 한번 확인 해보면 아래와 같은 구조를 가지고 있습니다.

https://blog.kakaocdn.net/dn/cRaTdo/btqDbEeTYdA/O6leucDsNPulu5E6p7RcZK/img.png

FAT 파일 시스템에서는 Data Stream 만 존재 하는데, NTFS 파일 시스템에서는 Main Stream도 있고, 하위에 Alternate Stream이 존재 합니다.

Alternate Data Stream을 이용해서 데이터를 파일 내부에 숨기에 되면 이를 은닉이라고도 이야기를 할 수 있습니다.

데이터 은닉은 대부분 제 3자에게 데이터 은닉 사실을 숨기기 위해서 사용합니다.

실제로 ADS를 이용해서 데이터를 숨기게 되면(은닉) 파일 크기나 겉으로 보이는 파일은 은닉하기 전과 정확히 동일 합니다.

한번 예제 파일을 확인해 보겠습니다.

C:\Users\{USER_NAME}\Desktop\ADS 폴더 하위에 text.txt 파일을 하나 만들어서 파일을 작성해 보겠습니다.

https://blog.kakaocdn.net/dn/beVdAh/btqC9Nqkhll/m0irBPx2q7aM3jWURUmSU0/img.png

text.txt 파일의 크기는 19바이트 입니다. 파일의 내용을 확인해 보겠습니다.

https://blog.kakaocdn.net/dn/Vk32N/btqDc5CQt1D/kYMPUOUIRtHf7kgdpKwwVK/img.png

데이터가 잘 들어가 있습니다. 이번에는 text.txt 파일의 ADS에 데이터를 은닉 해보겠습니다.

https://blog.kakaocdn.net/dn/TW11w/btqDaUWMS8o/CNQVlGH3uFmCNKSzW0qR2k/img.png

text.txt 파일의 ADS에 ads_data 라는 이름으로 This is ADS Data 라는 문자열을 은닉 했습니다. 다시 해당 파일을 확인 해 보면 아래와 같습니다.

https://blog.kakaocdn.net/dn/DfySB/btqDcdH9Bhx/mjkVkpkqtKXrkCVhjdT7H0/img.png

text.txt 파일의 크기는 그대로 19바이트 이며 겉으로 은닉되어 있는지 알수 없습니다.

dir /r 명령어를 이용해서 한번 ADS 폴더를 확인해 보면 조금 다른 결과를 보여줍니다.