windows

Quais são estes Atributos Alargados (EAs)nos ficheiros do Windows 8

Quando corro o CheckDisk num volume de visualização prévia do consumidor do Windows 8,recebo:

> 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??

Porque é que existem tantos atributos alargados no volume? Pensei que já ninguém usava EAs...


Edit:

Como exemplo, o arquivo \Windows\CSC\v2.0.6 possui um atributo estendido que contém a string

Ԡ 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ďŠ }

que (graças a uma resposta abaixo)parece estar relacionada com o cache de ficheiros offline do lado do cliente.

No entanto,parece que a maioria dos outros EAs são diferentes --por exemplo,o ficheiro

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

e a maioria dos outros arquivos contém (principalmente) a string $KERNEL.PURGE.APPXFICACHE , que não parece estar relacionada. Para que isso pode ser?

Com base no nome do EA "CSC.DATABASE", pode-se supor que esteja relacionado ao cache do lado do cliente . Isso também explicaria por que existem tantos deles, já que cada arquivo em cache provavelmente os possui para identificá-los com o servidor.

Além disso,penso que os EAs não são particularmente raramente utilizados.Sei com certeza que são utilizados,por exemplo,pelo IE para identificar um ficheiro como tendo sido "descarregado da web" (o que faz o Windows Explorer perguntar antes de executar o ficheiro e tais coisas).




Atributos alargados ARE utilizados no Windows,inclusive pelo kernel,que os utiliza para seguir várias restrições de segurança e aplicá-las.

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

Nomeadamente a revista USN do NTFS será capaz de rastrear com segurança as alterações feitas aos ficheiros,de modo a que os instantâneos do sistema de ficheiros ou a recuperação do sistema de ficheiros após uma paragem brutal inesperada (causada por perda de energia,sobreaquecimento,ou BSOD e reinicialização)sejam fiáveis.Estes são registos curtos e seguros adicionados em pequenos fluxos EA (geralmente armazenados eles próprios dentro do registo MFT sem atribuir qualquer extensão adicional,a menos que o registo MFT seja demasiado pequeno para caber em todos os fluxos,caso em que serão inseridos em extensões NTFS separadas atribuídas a atributos "não residentes" que não cabem no registo MFT de tamanho fixo que é geralmente pequeno e cerca de 1KB,mas onde alguns atributos de ficheiro SEMPRE serão ajustados,incluindo atributos básicos,e o atributo especial contendo o mapa de extensões atribuídas para fluxos que excedem a capacidade,tais como o fluxo padrão "$DATA" para conteúdos de ficheiro regulares,ou índices para directórios;qual o fluxo que caberá no registo MFT depende do tamanho do registo MFT,que pode ser afinado ao formatar o volume MFT,mas que é geralmente de 1KB,i.e.menor do que os "clusters" reguladores utilizados para atribuir espaço para extensões)

Alguns dos atributos alargados geridos pelo núcleo são:

  • "$KERNEL.PURGE.ESBCACHE": aparentemente isso é usado pelo "Branch Cache" para facilitar a implantação e atualizações do sistema em hosts gerenciados remotamente, permitindo que os domínios imponham suas próprias políticas (em vez das políticas locais padrão ou políticas definidas por padrão por Microsoft no Windows).

  • "$KERNEL.PURGE.SEC.FILEHASH": contém um hash de arquivo forte (e o algoritmo de hash usado) do conteúdo do arquivo: isso permite a recuperação do sistema de arquivos para detectar corrupção de conteúdo.

  • "$KERNEL.PURGE.SEC.CODEINTEGRITY": este pequeno EA contém os sinalizadores da política de integridade do código

  • "$KERNEL.SMARTLOCKER.ORIGINCLAIM": rastreia com segurança o aplicativo que criou o arquivo (ou seja, o caminho de seu instalador ou pacote MSI contendo assinaturas de referência)

  • "$CI.CATALOGHINT": contém o nome de um arquivo *.cat seguro nos catálogos do Windows para o pacote que contém uma fonte para esse arquivo. Ferramentas como "SFC /SCANNOW" ou "DISM /Online Cleanup-Image ScanHealth" podem inspecioná-los e, com a ajuda dos EAs anteriores, poderá identificar com segurança o pacote original que contém o arquivo do qual foi instalado ( se necessário, o Windows Update poderá localizar, baixar e reinstalar uma cópia desses pacotes).

  • NÃO CONFUME os dois últimos EAs,com a "Zona".Identificador" que o IE (ou outros navegadores web para Windows)estão a adicionar aos ficheiros que descarrega da web,ou que os desarquivadores estão a adicionar aos ficheiros que extrai de um ficheiro ZIP ou de gabinete (ou outros formatos de arquivo),copiando-o do "Zone-Identifier" do próprio ficheiro de arquivo/cabinet:estes não são EAs,são armazenados como "Alternate Data Streams" (ADS's)que são atributos do tipo "$DATA" (como o conteúdo regular do ficheiro,excepto que este $DATA tem um nome não vazio,onde como o conteúdo regular do ficheiro tem um nome vazio);além disso,estes ADS só existem se forem armazenados em NTFS ou em sistemas de ficheiros compatíveis,e NÃO são verificados pelo kernel,mas pela interface do utilizador (principalmente no Explorador de ficheiros)e nem sempre são preservados quando copiados noutro local (e.g.ao mover tais ficheiros etiquetados para um ficheiro ZIP).Estes ADS's são muito fracos,não são tão fortes como os EAs ou outros sistemas de assinaturas (como catálogos seguros externos,ou assinaturas Authenticode dentro de ficheiros executáveis,ou alguns formatos de media que permitem assinaturas semelhantes dentro do conteúdo regular do ficheiro;para proteger o sistema,o kernel não precisa e utiliza estes ADS's legados,utiliza Authenticode,e catálogos seguros de outra forma,por exemplo,na base de dados de Drivers ou em catálogos Windows como WinSxS).Os fluxos de dados alternativos são depreciados,mas ainda assim utilizados em navegadores web apenas para esse fim,tal como uma dica para os utilizadores,mas não resistem a operações básicas que os utilizadores ainda possam fazer,incluindo contornar o alerta que o Explorer lhes mostraria (mas nem sempre,pois frequentemente não são preservados).Além disso,os navegadores Web podem não anexar necessariamente estes ADS "Zone.identifier",se os ficheiros descodificados utilizarem um mecanismo de assinatura mais forte,ou se forem descarregados por um serviço especializado em segundo plano (como o próprio Windows Update que utiliza catálogos assinados de forma segura).

Dependendo das ferramentas e características do SO que utiliza,ou com alguns condutores,poderá ter outros EAs definidos.Muitas ferramentas de segurança e antimalware adicionam os seus próprios EAs a vários ficheiros ou directórios (ajudando também estas ferramentas a analisar as alterações de forma mais eficiente).

Se utilizar o Microsoft Store,ou as ferramentas de implementação AppX no Windows,haverá também EAs adicionais para definir o ambiente virtual em que serão executados (por exemplo configurações globais por máquina,ou por domínio ou por utilizador ou por "identidade" online dependendo do serviço remoto que irá utilizar ou com que terceiro irá comunicar,cópia-em-escrita ou duplicação completa,escritas atrasadas ou escritas sincronizadas,opções ou políticas de partilha,licenças concedidas e direitos de utilização,rastreadores para opções de subscrição/pagamento em serviços online;algumas aplicações também as utilizam,tal como os cookies de rastreio em páginas web,e armazenarão identificadores pessoais ou preferências específicas para alguns conteúdos de ficheiros ou aplicações,e serão capazes de as sincronizar com perfis pessoais online,para que possa utilizar estas aplicações offline,pelo menos durante um determinado período de tempo...).

Se utilizar alguns serviços em nuvem (e não os da Microsoft),eles também podem sincronizar uma cópia local para ficheiros que utiliza mais localmente,ao mesmo tempo que permitem que os ficheiros sejam arquivados online ou sincronizados com outros dispositivos).

Geralmente os EAs são muito pequenos (cerca de 100 bytes para a maioria deles).Qualquer ficheiro em NTFS/ReFS (e outros sistemas de ficheiros suportados)pode ter muitos EAs ligados a eles para muitas aplicações diferentes.A forma como estes EAs são codificados individualmente é dependente da aplicação.As EAs têm os seus próprios nomes (como ficheiros regulares em directórios visíveis,e como fluxos ADS),excepto que estes nomes não se destinam a ser lidos por humanos;por isso,estes nomes são "técnicos" e não utilizam Unicode.Alguns prefixos de nomes EA são reservados pela Microsoft em sistemas de ficheiros Windows.

Se estes EAs forem residentes fora do MFT (de sistemas de ficheiros NTFS ou ReFS)dependerão de quantos estão presentes para um dado ficheiro.Se não caberem no registo MFT,NTFS atribuirá alguns extensões para os localizar noutro local no volume.A lista de EAs definida para um ficheiro é um dos seus fluxos,tal como os atributos padrão,ou atributos de segurança (ACLs)ou o conteúdo regular,ou fluxos adicionais (tais como o fluxo que rastreia que um ficheiro foi descarregado da rede e pode não ser seguro,pode rastrear o seu domínio web ou IP de origem,e se esse domínio foi acedido com um protocolo seguro como HTTPS:isto permite ao Windows exibir popups de autorização para o Utilizador,ou pedir permissão de elevação do utilizador;os ficheiros ZIP/CAB têm esse fluxo,adicionados por navegadores web e downladers seguros;e ferramentas de extracção de zip também propagarão esse stram em cada ficheiro extraído se este puder ser executável ou ter efeitos secundários,incluindo ficheiros HTML,fontes,Javascript,ficheiros multimédia,ou documentos de escritório,que serão abertos por defeito em modo seguro por aplicações que os utilizem e que alertarão o utilizador de que alguns componentes incorporados como scripts ou fontes podem não ser seguros)É verdade que alguns EAs foram concebidos para fornecer compatibilidade com OS/2 ou MacOS (apenas estes EAs são depreciados),mas ainda há outros sistemas adicionados e que os utilizam.E novos sistemas de segurança (incluindo no próprio Windows no seu kernel ou nos seus serviços e características)adicionam constantemente novos sistemas.

As EAs são uma característica chave das NTFS (e ReFS).Existem também noutros sistemas de ficheiros não Windows (incluindo Ext4 no Linux);para alguns sistemas de ficheiros que não têm suporte nativo,podem ser armazenados num subdirectório separado ou em ficheiros com nomes especiais.Os EAs não são normalmente apresentados no conteúdo de directórios (para os sistemas de ficheiros que os implementam)e não contam nos ficheiros normais,pelo que podem ser adicionados/removidos facilmente sem alterar o conteúdo normal;também permitem que diferentes aplicações,serviços ou SOs interoperem com os mesmos ficheiros,associando com segurança os seus próprios metadados.Portanto,são extensões seguras dos sistemas de ficheiros existentes (na maioria das vezes as aplicações não têm de se preocupar com eles,o SO ou os seus serviços irão geri-los,na maioria das vezes para eras de segurança e inspecção)

As EAs não são definitivamente depreciadas.De facto,são muito mais frequentemente utilizados hoje em dia,e têm muitas variantes criadas pelas muitas soluções de segurança desenvolvidas (se olharmos para o Windows 11,ele utiliza mais delas;se estiver a utilizar serviços Azure,ou se aderir a um domínio AD,haverá EAs adicionais,se utilizar várias ferramentas de segurança,e não apenas as da Microsoft,eles adicionarão as suas próprias,algumas aplicações também as utilizam para armazenar os rastreadores correctos de DRM nos seus meios de comunicação adquiridos,juntamente com as chaves de descodificação,se necessário,mais os contadores assinados com segurança dos dispositivos em que foram autorizados,é necessário aceder aos serviços para actualizar estas assinaturas ou remover um dispositivo e as suas autorizações;As AA têm muitos usos possíveis,não só para segurança,mas também para optimizar o desempenho,incluindo o processamento de dicas e traços ou estatísticas específicas para um determinado uso;também podem ser usadas para rastrear cópias de segurança e replicações/espelhamentos,melhor do que o único legado "ARQUIVO";as AA têm os seus próprios nomes distintivos e estão a criar uma espécie de sistema de ficheiros "paralelos",excepto que são geralmente opcionais e,independentemente do ficheiro ou directores que os necessitem,obterão essas AA).O interesse de colocar EAs na estrutura central NTFS/ReFS é que a sua colocação é ideal em vez de utilizar uma loja separada noutro local em volumes (isto seria mais lento,especialmente quando se trabalha com sistemas de ficheiros de rede ou discos rígidos e matrizes de discos,devido ao tempo de acesso:Os EAs podem ser recuperados muito rapidamente ao mesmo tempo que são carregados os atributos básicos do ficheiro;e são mais fáceis de adicionar/remover dinamicamente)