windows

Windows 8のファイル内にある拡張属性(EA)とは?

Windows 8 Consumer Preview のボリュームで CheckDisk を実行すると、次のようなメッセージが表示されます。

> chkdsk /v S:
The type of the file system is NTFS.
Volume label is Windows 8.

WARNING!  F parameter not specified.
Running CHKDSK in read-only mode.

CHKDSK is verifying files (stage 1 of 3)...
  91392 file records processed.
File verification completed.
  28 large file records processed.
  0 bad file records processed.
  20224 EA records processed.                 <------------------ huh??

なんで出来高に拡張属性が多いんだ?もう誰もEAなんて使ってないんじゃないの...?


Edit:

例として、ファイル \Windows\CSC\v2.0.6 には、文字列を含む拡張属性があります。

Ԡ 1X C8A05BC0-3FA8-49E9-8148-61EE14A67687.CSC.DATABASE P X Չ: Չ: ˌΦ]cᑡPcďŠ 4 C8A05BC0-3FA8-49E9-8148-61EE14A67687.CSC.DATABASEEX1 P X _, N0t 08 C8A05BC0-3FA8-49E9-8148-61EE14A67687.CSC.EPOCHEA 8 ͌Φ]cᑡPcďŠ }

というのは、(以下の回答のおかげで)オフラインファイルのクライアント側キャッシュに関連しているようです。

しかし、他のほとんどのEAは違うようです --例えば、ファイル

\Program Files\WindowsApps  
    \Microsoft.BingFinance_1.0.1022.0_x64__8wekyb3d8bbwe\pages\ETF\js\ETF.js

他のほとんどのファイルには (ほとんどの場合) $KERNEL.PURGE.APPXFICACHE という文字列が含まれていますが、これは関連していないようです。これは何のためでしょうか?

EA 名「CSC.DATABASE」に基づいて、クライアント側のキャッシュに関連していると推測できます。キャッシュされた各ファイルには、サーバーでそれらを識別するためにおそらくそれらが含まれているため、これにより、それらが非常に多く存在する理由も説明できます。

また、EAが特にめったに使われないということは全くないと思います。例えば、IEがファイルを「ウェブからダウンロードされたもの」と識別するために使われていることは確かです(これにより、Windows Explorerはファイルを実行する前に問い合わせをしたりするのです)。




拡張属性は、カーネルを含むWindowsで使用されており、様々なセキュリティ制限を追跡し、それを強制するために使用されます。

See https://docs.microsoft.com/en-us/windows-hardware/drivers/ifs/kernel-extended-attributes

注目すべきは、NTFSのUSNジャーナルは、ファイルに加えられた変更を安全に追跡できるため、ファイルシステムのスナップショットや、予期しない残酷なシャットダウン(停電、過熱、BSOD、再起動が原因)後のファイルシステムの回復が確実であることです。これらは、小さなEAストリームで追加される短いセキュリティで保護されたレコードです(一般的に、MFTレコードがすべてのストリームに適合するには小さすぎる場合を除き、追加の範囲を割り当てずにMFTレコード内にそれ自体を格納し、その場合、それらは一般的に小さく約1KBである固定サイズのMFTレコードに適合しない「非レジデント」属性用に割り当てられた別のNTFSエクステントに挿入されます。基本属性、および通常のファイル コンテンツ用のデフォルトの「$DATA」ストリームやディレクトリ用のインデックスなど、容量を超えるストリーム用に割り当てられたエクステントのマップを含む特別な属性など、一部のファイル属性は常にフィットしますが、MFT レコードにはフィットしません。MFTレコードに収まるストリームは、MFTボリュームのフォーマット時に調整される場合がありますが、一般的には1KBです。 エクステント用のスペースを割り当てるために使用されるレギュラーの「クラスタ」よりも小さいサイズです)。

カーネルが管理する拡張属性には、次のようなものがあります。

  • "$KERNEL.PURGE.ESBCACHE": どうやらこれは "Branch Cache" によって使用され、リモートで管理されているホストでの展開とシステムの更新を容易にし、ドメインが独自のポリシーを適用できるようにします (デフォルトのローカル ポリシーまたはデフォルトで定義されているポリシーではなく)。 Microsoft in Windows)。

  • "$KERNEL.PURGE.SEC.FILEHASH": ファイル コンテンツの強力なファイル ハッシュ (および使用されるハッシュ アルゴリズム) が含まれています。これにより、ファイル システムの回復でコンテンツの破損を検出できます。

  • "$KERNEL.PURGE.SEC.CODEINTEGRITY": この小さな EA にはコード整合性ポリシー フラグが含まれています

  • "$KERNEL.SMARTLOCKER.ORIGINCLAIM": ファイルを作成したアプリケーションを安全に追跡します (つまり、参照署名を含むインストーラーまたは MSI パッケージのパス)

  • "$CI.CATALOGHINT": これには、そのファイルのソースを含むパッケージの Windows カタログ内のセキュアな *.cat ファイルの名前が含まれます。「SFC /SCANNOW」や「DISM /Online Cleanup-Image ScanHealth」などのツールはそれらを検査でき、以前の EA の助けを借りて、インストール元のファイルを含む元のパッケージを安全に識別することができます (必要に応じて、Windows Update はこれらのパッケージのコピーを検索、ダウンロード、および再インストールできます)。

  • 最後の2つのEAを、IE(またはWindows用の他のウェブブラウザ)がウェブからダウンロードしたファイルに付加する「Zone.Identifier」と混同しないようにしてください。 IE(またはWindowsの他のウェブブラウザ)がウェブからダウンロードしたファイルに付加する「ゾーン識別子」、またはダウンロードしたZIPまたはキャビネットファイル(または他のアーカイブフォーマット)から抽出したファイルに付加する「ゾーン識別子」を、アーカイブ/キャビネットファイル自体からコピーして、アナーキバで使用するものです。これらはEAではなく、「代替データストリーム」(ADS)として保存され、「$DATA」型の属性です(ファイルの通常のコンテンツと同様ですが、この$DATAには空でない名前があり、ファイルの通常のコンテンツには空の名前があります)。また、これらのADSはNTFSまたは互換ファイルシステムに保存されている場合にのみ存在し、カーネルでは確認されず、ユーザーインターフェース(主にファイルエクスプローラ)により確認されますが、どこかにコピーしても必ずしも保存されません(e.このようなタグ付けされたファイルをZIPファイルに移動する場合など)。これらのADSは非常に弱く、EAや他の署名システム(外部のセキュアカタログ、実行ファイル内のAuthenticode署名、またはファイルの通常のコンテンツ内で同様の署名を許可するいくつかのメディアフォーマットなど)ほど強くありません。システムを保護するために、カーネルはこれらのレガシーADSを必要とせず使用しますが、それ以外の場合はAuthenticodeや、ドライバーデータベースやWinSxSなどのWindowsカタログで、セキュアカタログを使用します)。代替データストリームは非推奨ですが、その目的のためだけに、ユーザーのためのヒントとして、まだウェブブラウザで使用されています。しかし、エクスプローラが表示する警告を回避するなど、ユーザーがまだ行うことができる基本操作に抵抗はありません(ただし、保存されないことが多いので、常にというわけではありません)。同様に、ウェブブラウザは、ダウンロー ドされたファイルがより強力な署名機構を使用するか、バックグラウンドで特別なサービス(安全 に署名されたカタログを使用するWindowsアップデート自体など)によってダウンロードされる場合、 これらの「Zone.identifier」ADSを必ずしも追加しないかもしれません。

使用するツールやOSの機能、またはドライバーによっては、他のEAが定義されている場合があります。多くのセキュリティツールやアンチマルウェアは、さまざまなファイルやディレクトリに独自のEAを追加します(これらのツールは、変更をより効率的にスキャンするためにも役立ちます)。

Microsoft StoreまたはWindows上のAppXデプロイツールを使用する場合、それらが実行される仮想環境を設定するための追加のEAも存在する(例:マシンごとのグローバル設定、ドメインごと、ユーザーごと、または使用するリモートサービスや通信するサードパーティに依存するオンラインの「ID」ごとの設定、コピーオンライトまたは完全な複製、遅延された書き込みなど)。マシンごとのグローバル設定、ドメインごとの設定、ユーザーごとの設定、使用するリモートサービスや通信するサードパーティに依存するオンラインの「アイデンティティ」ごとの設定、コピーオンライトまたは完全複製、遅延書き込みまたは同期書き込み、共有オプションまたはポリシー、許諾されたライセンスと使用権、オンラインサービスの購読/支払いオプションのトラッカーなどです。一部のアプリは、ウェブページのトラッキングクッキーのようにこれらを使用し、一部のファイルコンテンツやアプリに固有の個人識別子またはプリファレンスを保存し、オンラインの個人プロファイルと同期することができるため、少なくとも一定期間、これらのアプリをオフラインで使用することができるようになります。 ..).

クラウドサービス(マイクロソフト社のものに限らない)を利用している場合、ローカルで最も使用するファイルのローカルコピーを同期し、ファイルをオンラインにアーカイブしたり、他のデバイスに同期したりすることも可能です。)

一般的にEAは非常に小さいものです(ほとんどが約100バイト程度)。NTFS/ReFS (およびサポートされている他のファイルシステム)のどのファイルにも、さまざまなアプリケーションのために多くの EA が付属しています。これらのEAが個々にエンコードされる方法は、アプリケーションに依存します。EA は、人間が読むことを意図していないことを除けば、独自の名前を持っています(可視ディレクトリ内の通常のファイルや ADS ストリームのようなものです)。EAの名前のプレフィックスは、Windowsのファイルシステム上でMicrosoftによって予約されているものがあります。

これらのEAが(NTFSまたはReFSファイルシステムの)MFTに常駐するかしないかは、特定のファイルにいくつ存在するかによって決まります。MFTレコードに収まらない場合、NTFSはボリューム上の別の場所にそれらを配置するためにいくつかのエクステントを割り当てます。ファイルに対して定義された EA のリストは、標準属性、セキュリティ属性 (ACL)、通常のコンテンツ、または追加のストリーム (ファイルがネットからダウンロードされたことを追跡するストリームなど、安全でない可能性があり、その Web ドメインまたは元の IP、およびそのドメインが HTTPS などの安全なプロトコルでアクセスされたかどうかを追跡するストリーム)と同様に、そのストリームの 1 つになります。これは、Windowsがユーザーの認証ポップアップを表示したり、ユーザーの昇格許可を求めたりすることを可能にします。ZIP/CABファイルには、ウェブブラウザや安全なダウンローダーによって追加された、このようなストリームがあります。ZIP/CABファイルには、ウェブブラウザやセーフダウンレーダによって追加されるストリームがあり、ZIP解凍ツールは、HTMLファイル、フォント、Javascripts、メディアファイル、オフィス文書などの実行可能ファイルや副作用のあるファイルであれば、解凍した各ファイルにそのストリームを伝播させ、それらを使うアプリケーションによってセーフモードでデフォルトで開き、スクリプトやフォントなどの一部の組み込みコンポーネントが安全ではないことをユーザに警告します)確かにいくつかのEA(これらのEAだけは非推奨です)はOS/2やMacOSとの互換性を実現するために作られましたが、他のシステムには、それらを使用して追加されてもいます。また、新しいセキュリティシステム(Windows自体のカーネルやサービス・機能を含む)は、常に新しいものを追加しています。

EAは、NTFS(およびReFS)の重要な機能です。また、Windows 以外のファイルシステム(Linux の Ext4 など)にも存在します。ネイティブサポートを持たないファイルシステムでは、別のサブディレクトリや特別な名前を持つファイルに格納されることがあります。EA は通常、ディレクトリの内容には表示されず(それを実装しているファイルシステムの場合)、通常のファイルサイズにカウントされないため、通常の内容を変更せずに簡単に追加/削除できます。また、異なるアプリケーション、サービス、OS が同じファイルに対して安全に独自のメタデータを関連付けて相互運用できるようにするものです。つまり、既存のファイルシステムの安全な拡張である(ほとんどの場合、アプリケーションはメタデータを気にする必要はなく、OSやそのサービスがセキュリティ上の理由や検査のために管理する)。

EAは決して非推奨ではありません。実際、現在ではより頻繁に使用されており、開発された多くのセキュリティソリューションによって多くのバリエーションが作られている(Windows 11を見れば、より多くのEAが使用されていることがわかる。Azureサービスを使用している場合、またはADドメインに参加している場合、追加のEAがあります。Microsoftのものだけでなく、様々なセキュリティツールを使用している場合、独自のものが追加されます。いくつかのアプリは、購入したメディアのDRM権利追跡と、必要に応じて復号化キー、さらにそれらが承認されたデバイスの安全な署名カウンターを保存するために使用されています。EAは、セキュリティのためだけでなく、処理のヒントやトレース、特定の用途に特化した統計情報を含むことによってパフォーマンスを最適化するために、多くの可能な用途を持っています。また、バックアップやレプリケーション/ミラーリングを追跡するためにも使用でき、従来の単一の「ARCHIVE」ビットよりも優れています。EAには独自の独特の名前があり、一種の「並列」ファイルシステムを作成しています(ただし一般的にはオプションで、それらを必要とするファイルまたはディレクトリだけがEAを取得します)。EAをNTFS/ReFSのコア構造に配置することの利点は、ボリューム上の別の場所に別のストアを使用するよりも、その配置が理想的であることです(これは、特にネットワークファイルシステム、ハードディスク、ディスクアレイを扱う場合、アクセス時間のために遅くなるでしょう。EAは基本的なファイル属性が読み込まれるのと同時に非常に高速に取得することができ、動的に追加/削除することも容易である)