web-dev-qa-db-ja.com

なぜNTFSは非表示の実行可能ファイルを許可するのですか?

次のように入力するだけで、別のファイル内のファイルを非表示にできます。

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

隠しファイルを実行するには、次を使用します。

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

しかし、これについてのクレイジーな部分は、ファイルのサイズを大きくしないことです(したがって、完全に非表示になります)。

また、非表示のものが含まれているファイルを削除しても、非表示のものは削除されません。使用するだけ:

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

NTFSでこれが許可されるのはなぜですか?ウイルスを隠す最善の方法のようです。

104
Kredns

この質問には2つの側面があります。最初の理由は、この機能がまったく存在しない理由であり、2番目の理由は、GUI(またはコマンドプロンプト)によって機能の表示と管理が容易にならない理由です。

便利だから存在します。他のいくつかのプラットフォームは、ファイルごとに複数のデータストリームをサポートしています。 Macでは、たとえば forks と呼ばれていました。メインフレームの世界にも同様のものが存在することは確かですが、今日の明確な例に指を置くことはできません。

最近のWindowsでは、ファイルの追加の属性を保持するために使用されます。 Windowsエクスプローラーから利用できる[プロパティ]ボックスに[概要]タブがあり、シンプルビュー(Windows XPを使用しているため、マイレージは他のフレーバーとは異なります)に、タイトル、件名、作成者、など。そのデータは、ファイルから簡単に分離されてしまうすべてのデータを保持するためのサイドカーデータベースを作成するのではなく、代替ストリームに格納されます。

代替ストリームは、ファイルがInternet ExplorerとFirefoxの両方でダウンロードに適用される信頼できないネットワークソースからのものであることを示すマーカーを保持するためにも使用されます。

難しい質問は、ストリームがまったく存在しないことに気づくのに適したユーザーインターフェイスがないこと、そして実行可能なコンテンツをストリームに入れて、後でそれを実行できることです。ここにバグとセキュリティリスクがある場合、これがそれです。

編集:

別の回答へのコメントに触発されて、アンチウイルスおよび/またはアンチマルウェア保護が代替ストリームを認識しているかどうかを確認する1つの方法があります。

EICARテストファイル のコピーを取得します。たまたま有効なx86実行可能ファイルでもあるのは68バイトのASCIIテキストです。完全に無害ですが、本物のウイルスであるかのように検出されることがアンチウイルス業界によって合意されています。オリジネーターは、実際のウイルスでAVソフトウェアをテストすることは、ごみ箱に火をつけて火災警報をテストすることに少し似ていると考えていました。

EICARファイルは次のとおりです。

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

拡張子.COMを付けて保存すると、(AVが注意を払っていない限り)実行され、挨拶が印刷されます。

代替データストリームに保存してスキャンを実行することは有益です...

98
RBerteig

この機能は、Windows Serverのクロスプラットフォーム機能であるMac用サービスに必要です。

これにより、NTFSで実行されているWindowsサーバーがAFPを介してMacに共有できるようになります。この機能が動作するためには、NTFSファイルシステムがフォークをサポートする必要があり、それは最初からあります。

そして、あなたが尋ねる前に、この機能はまだ使用されていますか?はい、サポートしているクライアントのサーバーで毎日実行および使用しています。

主なセキュリティ問題は、人やアプリケーションがそこにあることを忘れるか、または気づかないときに発生します。

フォークを合計ファイルサイズに含めるか、Windowsエクスプローラーに表示するオプションがあるはずです。

15
Bruce McLeod

以下は、潜在的な セキュリティの脆弱性Alternate Data Streams によって提示された良い記事です。

5
JP Alioto

主な用途の1つ(おそらく意図された用途でさえ)は、あらゆる種類のメタデータをファイルに透過的に追加できるようにすることだと思います。ファイルサイズが変更されない理由は、このシナリオでは、元のアプリケーションがファイルの外観の何らかの側面に依存しないように、ファイルの外観や動作を変えたくないためです。

たとえば、IDEで興味深い使用法を想像できます。たとえば、複数のファイルが1つのユニット(コードファイル/フォームファイルなど)を形成するために含まれ、誤って分離されないように、この方法で元のファイルに添付できます。

また、特定のディレクトリツリーでこのような「添付ファイル」をすべて見つけるコマンドがあるため、実際には完全に隠されているわけではありません。また、より優れたウイルススキャナーがこれを認識せず、これらの「隠された」領域を確認した場合、私は驚かれるでしょう。

5
jerryjvl

良い質問です。私は昨年までADSを正しく認識していなかったので、長年Windows開発者でした。私はこれについて私だけではないことを保証することができます。

ファイルの代替データをチェックできることに関して、Frank Heyneソフトウェアから入手できる Lads という便利な小さなツールを見つけました。暗号化されたファイル(およびサブディレクトリ内)であっても、特定のディレクトリ内のすべてのファイルのADSを一覧表示できます。

4
Ash