왜 NTFS가 보이지 않는 실행 파일을 허용합니까?


105

다음을 입력하여 다른 파일 안에있는 파일을 숨길 수 있습니다.

type sol.exe > container.txt:sol.exe

파일 숨김 파일을 실행하려면 다음을 사용하십시오.

start c:\hide\container.txt:sol.exe

그러나 이것에 대한 미친 부분은 파일의 크기를 늘리지 않는다는 것입니다 (그래서 완전히 숨겨져 있습니다).

숨겨진 항목이있는 파일을 삭제하면 숨겨진 항목은 삭제되지 않습니다. 그냥 사용하십시오 :

more <  container.txt:sol.exe > sol.exe

NTFS가 왜 이것을 허용합니까? 바이러스를 숨기는 가장 좋은 방법 인 것 같습니다.


1
좋아, 맥 리소스 포크처럼 보인다.
Stefano Borini

15
당신이 그런 sol.exe를 시작할 때 더 나쁜, 작업 관리자는 container.txt로 프로세스 이름을 보여줍니다
하센

16
이 질문에 이르게 "무서운"그래서 우리는 구글 폭탄한다
하센

4
이 문제가 해결되지 않는 한 아직도 아직도 모르는 파일 시스템을 사용하는 AV 개발자 / 다른 사람들을 대상으로하는 것은 여전히 ​​놀랍습니다. 필자는 필요가 없기 때문에 일반적인 앱 개발자가 그것에 대해 알 것으로 기대하지 않지만 파일 시스템에 무겁다면 ... :-)
Brian Knoblauch

ADS를 폴더에 첨부 할 수도 있습니다. 폴더를 삭제하여 ADS를 삭제할 수 있지만 폴더가 드라이브의 루트 인 경우 예를 들어 드라이브를 다시 포맷하지 않고 C : 드라이브를 삭제할 수 없습니다. 나에게 숨겨진 루트킷 바이러스를 만드는 메커니즘처럼 보입니다 (?).
HighTechGeek

답변:


98

이 질문에는 두 가지 측면이 있습니다. 첫 번째는이 기능이 전혀 존재하지 않는 이유이고 두 번째는 GUI (또는 명령 프롬프트)가 기능을보다 쉽게보고 관리 할 수없는 이유입니다.

유용하기 때문에 존재합니다. 다른 여러 플랫폼은 파일 당 여러 데이터 스트림을 지원합니다. 예를 들어 Mac에서는 포크 라고 불렀습니다 . 나는 메인 프레임 세계에 비슷한 것들이 존재한다고 확신하지만 오늘날에는 명백한 예에 손가락을 넣을 수는 없습니다.

최신 Windows에서는 파일의 추가 속성을 보유하는 데 사용됩니다. Windows 탐색기에서 사용할 수있는 속성 상자에는 간단한보기 (Windows XP에서는 마일리지가 다른 특징에 따라 다름)에 요약 탭이 있으며 제목, 제목, 작성자 및 등등. 해당 데이터는 파일과 너무 쉽게 분리되는 모든 것을 보유하기 위해 일종의 사이드카 데이터베이스를 작성하는 대신 대체 스트림에 저장됩니다.

대체 스트림은 파일을 다운로드 할 때 Internet Explorer와 Firefox가 모두 적용하는 신뢰할 수없는 네트워크 소스에서 온 것임을 나타내는 마커를 유지하는 데에도 사용됩니다.

어려운 질문은 스트림이 존재한다는 사실을 알기위한 더 나은 사용자 인터페이스가없는 이유와 실행 가능한 컨텐츠를 스트림에 넣고 나중에 실행할 수있는 이유입니다. 여기에 버그 및 보안 위험이있는 경우에 해당됩니다.

편집하다:

다른 답변에 대한 의견에서 영감을 얻은 안티 바이러스 및 / 또는 안티 멀웨어 보호가 대체 스트림을 인식하는지 확인하는 방법은 다음과 같습니다.

EICAR 테스트 파일 의 사본을 확보 하십시오 . 유효한 x86 실행 파일이되는 68 바이트의 ASCII 텍스트입니다. 완전히 무해하지만, 안티 바이러스 업계는 실제 바이러스 인 것처럼 탐지되도록 동의했습니다. 발신자들은 실제 바이러스로 AV 소프트웨어를 테스트하는 것은 쓰레기통에 불을 붙임으로써 화재 경보를 테스트하는 것과는 너무 비슷하다고 생각했습니다 ...

EICAR 파일은 다음과 같습니다.

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

확장명으로 저장하면 .COM(AV가주의를 기울이지 않는 한) 실행되고 인사말을 인쇄합니다.

대체 데이터 스트림에 저장하고 스캔을 실행하는 것이 유익합니다 ...


11
표시되는 파일 크기는 기본 $ DATA 스트림의 크기 만 표시합니다. 이것은 또한 일반적으로 원하는 것입니다. 파일 이름의 길이 (한 종류의 메타 데이터)도 파일 크기에 포함하지 않습니다. 보안 위험에 관해서. ADS는 개별 파일보다 위험하지 않습니다. 이러한 메커니즘으로 성공적으로 확산 / 숨겨진 맬웨어에 대해서는 들어 본 적이 없습니다.
Joey

4
텍스트 파일의 ADS에 저장된 실행 파일을 실수로 실행할 수 없습니다. 일반 사용자가 실수로 실행하기에는 잘 숨겨져 있습니다. 먼저 타협해야합니다.
R. Martinho Fernandes

7
@ashh : Martinho는 그것을 이해합니다-그러한 스트림에서 실행 파일을 찾기 어렵게 만드는 모호한 점은 적극적으로 시도하지 않고 실행하기가 어렵습니다. 예를 들어, 실행 파일이 GUI의 텍스트 파일처럼 보일 수 있고 여전히 매우 쉽게 실행될 수있는 전체 "숨겨진 파일 확장자"FIASCO와 이것을 대조하십시오.
Shog9

3
.COM 파일에 최소한 실시간으로주의를 기울이고있는 AV가 있다고 가정하면 AV가 .COM 파일에 액세스하지 못하게하므로 ADS로 첨부 할 수 없습니다 (ADS에 액세스하려면 파일). 그러나 EICAR 문자열로 텍스트 파일을 첨부하고 ADS 내에서 .COM 확장자로 이름을 지정할 수 있어야합니다. 예 : EICAR.txt> test.txt : EICAR.COM
KTC

2
EICAR.COM 파일에 대한 차가운 사실 : Windows의 모든 64 비트 버전에서 실행되지 않습니다 그래서 모든 사람이 (할 64 비트 시스템에 한 번이 트릭은 더 이상 작동하지 않습니다 추측 여전히 아마 잠시 일).
Kredns

15

이 기능은 Windows Server의 크로스 플랫폼 기능인 mac 용 서비스에 필요합니다.

이렇게하면 NTFS에서 실행되는 Windows 서버가 AFP를 통해 Mac과 공유됩니다. 이 기능이 작동하려면 NTFS 파일 시스템이 포크를 지원해야하며 처음부터 시작해야합니다.

묻기 전에이 기능이 계속 사용됩니까? 예, 지원하는 클라이언트의 서버에서 매일 실행 중입니다.

주요 보안 문제는 사람과 응용 프로그램이 있다는 것을 잊거나 알지 못할 때 발생합니다.

총 파일 크기에 포크를 포함 시키거나 Windows 탐색기에 표시하는 옵션이있을 수 있습니다.


2
다운 투표를하려는 경우 이유에 대한 의견을 남겨주십시오.
Bruce McLeod

2
이것은 기능이 처음에 존재하는 완전히 그럴듯한 이유처럼 들립니다.
RBerteig

3
Mac에서 파일 공유를 허용하기 위해이 기능을 추가하는 것은 그럴듯한 이유처럼 들리지 않습니다. 네트워크를 통한 공유는 파일을 서버 측에 그대로 저장하지 않아도됩니다. 파일을 데이터 및 리소스 정보로 분할하는 여러 * nix 애플 공유 서버를 보았습니다. 이것은 클라이언트에게 투명합니다. AFP를 허용하기 위해 실제 드라이브 형식을 변경하는 것은 현실적으로 보이지 않습니다. 이 기능의 이유는 아니지만 좋은 이점 일 수 있습니다.
Simurr

2
네, SfM이 MS가 NTFS로 ADS를 구현 한 주된 이유 라고 주장한다면 [인용 필요]라고 생각 합니다.
afrazier

3
인용 발견 : ... Macintosh Hierarchical File System, HFS와의 호환성을 위해 원래 고안된 ADS 기능 ; 파일 정보가 때때로 별도의 리소스로 분기되는 경우 대체 데이터 스트림은 속성 및 임시 스토리지와 같은 파일 정보를 저장하는 기본 Windows 운영 체제를 포함한 다양한 프로그램에서 합법적으로 사용되었습니다. 출처 : windowsecurity.com/articles/Alternate_Data_Streams.html
JamesBarnett

5

주요 용도 중 하나 (아마도 의도 한 용도조차도)는 파일에 모든 종류의 메타 데이터를 투명하게 추가 할 수 있다고 생각합니다. 파일 크기가 변경되지 않는 이유는이 시나리오에서 원래 응용 프로그램이 파일 모양의 일부 측면에 의존하지 않도록 파일이 다르게 보이거나 다르게 동작하는 것을 원하지 않기 때문입니다.

예를 들어 IDE에서 여러 파일이 단일 단위 (코드 파일 / 양식 파일 등)를 형성하는 데 관여하는 경우가 있습니다.이 방법으로 원본 파일에 실수로 분리되지 않도록 첨부 할 수 있습니다.

또한 주어진 디렉토리 트리에서 이러한 '첨부 파일'을 모두 찾는 명령이 있으므로 실제로 완전히 숨겨져 있지는 않습니다. 또한 더 나은 바이러스 스캐너가이를 인식하지 못하고 이러한 '숨겨진'영역을 확인하면 놀라 울 것입니다. 그러나 감염된 실행 파일을 텍스트 파일에 의도적으로 첨부하고 파일이 선택되었는지 확인하여 확인할 수 있습니다.


시도해 볼 수 있도록 그러한 실행 파일에 대한 링크를 게시 해 주시겠습니까? ;)
R. Martinho Fernandes

컴퓨터에서 AVG를 실행 한 다음 격리 폴더에서 실행 파일 중 하나를 가져
와서

2
@martinho, EICAR 테스트 파일을 원합니다 : X5O! P % @ AP [4 \ PZX54 (P ^) 7CC) 7} $ EICAR-STANDARD-ANTIVIRUS-TEST-FILE! $ H + H * 해당 텍스트를 붙여 넣기 만하면됩니다 (정확하게 68 바이트의 ASCII 텍스트 ( 전체 내용 은 eicar.org/anti_virus_test_file.htm 참조 )를 확장자가 .COM 인 파일로 참조하십시오 . 메시지가 실행되고 인쇄됩니다. 물론 AV가 작동하지 않는 한. 대체 데이터 스트림에 버리고 여기에서도 확인하십시오.
RBerteig

@ RBerteig : 이봐 멋진 ... 그런 일이 있었는지 몰랐다.
jerryjvl

@jerryjvl, 그들이 말했듯이, 그것은 쓰레기통을 불에
비추어

5

다음 은 Alternate Data Streams가 제기 할 수있는 잠재적 보안 취약점 에 대한 좋은 기사입니다 .


6
<nitpick> 위협이 아니라 취약점입니다 </ nitpick>. 그리고 그것이 들리는 것만 큼 큰 문제는 아닙니다. 사용하려면 자격 증명이 있어야합니다.
romandas

가능성 없음. Btw, 철자를 확인하십시오. 그리고 항상 기억하십시오 : 위협은 취약점을 악용합니다. 위협은 일반적으로 사람이지만 자연 재해와 재난 재해도 중요합니다.
romandas

@romandas, 어떤 자격 증명이 필요합니까? 가정에서는 대부분의 Windows 사용자 (특히 XP)가 관리자 권한으로 실행하고 있는데 이것이 왜 그렇게 들리지 않습니까?
Ash

@ashh, "위반 된 시스템에 숨기는 방법으로". 무엇이든 숨기고 이와 같이 숨겨진 것을 실행하려면 시스템이 먼저 손상되어 있어야합니다.
KTC

5

좋은 질문은 작년까지 ADS를 제대로 인식하지 못했으며 수년 동안 Windows 개발자였습니다. 나는 이것에 혼자가 아니라고 보장 할 수 있습니다.

파일에서 대체 데이터를 확인할 수 있다는 점 에서 Frank Heyne 소프트웨어에서 Lads 라는 유용한 도구를 찾을 수있었습니다 . 지정된 디렉토리의 모든 파일, 암호화 된 파일 및 하위 디렉토리에있는 모든 파일의 ADS를 나열 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.