Alternate Data Streams (ADS) no Windows 11: o que são e como encontrar

Ilustração explicando Alternate Data Streams (ADS) no NTFS do Windows 11, mostrando fluxo principal, Zone.Identifier e streams adicionais de um arquivo.
Um arquivo armazenado em NTFS pode possuir, além do conteúdo principal, Alternate Data Streams como o Zone.Identifier, que normalmente não aparecem como arquivos separados no Explorador.
27 / 100 Pontuação de SEO

Você olha para um arquivo no Explorador de Arquivos do Windows 11 e aparentemente existe apenas uma coisa ali: o próprio arquivo.

Um documento pode aparecer como:

relatorio.txt

Uma imagem:

foto.jpg

Um programa:

programa.exe

Normalmente imaginamos que cada arquivo possui somente seu conteúdo principal.

Porém, quando o arquivo está armazenado em uma unidade formatada com NTFS, a estrutura pode ser mais interessante.

O NTFS permite que um arquivo tenha fluxos de dados adicionais associados a ele.

Eles são conhecidos como:

Alternate Data Streams

ou simplesmente:

ADS.

Em português, podemos chamar de fluxos de dados alternativos.

E existe uma característica que torna esse assunto particularmente interessante:

esses dados adicionais não aparecem como arquivos separados na visualização comum do Explorador de Arquivos.

Isso não significa que o Windows esteja “escondendo arquivos secretamente”.

Trata-se de uma funcionalidade do próprio sistema de arquivos NTFS.

Entender como ela funciona ajuda a compreender recursos de segurança do Windows, arquivos baixados da Internet, metadados e até algumas técnicas utilizadas em análises forenses e de malware.


Antes de entender ADS, precisamos entender o NTFS

NTFS significa:

New Technology File System.

É um sistema de arquivos utilizado pelo Windows para organizar dados em unidades de armazenamento.

Quando você salva:

documento.docx

o Windows precisa registrar muito mais do que simplesmente os bytes do documento.

O sistema de arquivos mantém informações relacionadas a elementos como:

  • nome;
  • tamanho;
  • localização lógica;
  • datas;
  • atributos;
  • permissões;
  • informações de segurança;
  • conteúdo.

O NTFS possui uma arquitetura bastante mais sofisticada do que aquela apresentada visualmente pelo Explorador de Arquivos.

O Explorador mostra uma representação conveniente para o usuário.

Por baixo dessa interface existe uma estrutura de metadados e registros que permite ao Windows administrar os arquivos.

É nesse contexto que entram os fluxos de dados.


O que é um fluxo de dados?

Vamos começar pelo arquivo convencional.

Imagine:

exemplo.txt

Dentro dele existe:

Olá, mundo.

Quando abrimos o arquivo normalmente, vemos esse conteúdo.

Esse é o fluxo de dados principal associado ao arquivo.

No NTFS, entretanto, pode existir também outro fluxo associado ao mesmo arquivo.

Conceitualmente:

exemplo.txt

pode possuir:

fluxo principal

e:

fluxo alternativo

Podemos representar assim:

exemplo.txt → conteúdo principal

e:

exemplo.txt:informacao → conteúdo alternativo

O segundo conteúdo continua associado ao arquivo exemplo.txt.

Mas não aparece como outro arquivo tradicional ao lado dele no Explorador.


A sintaxe com dois-pontos

Ao trabalhar com ADS, você poderá encontrar uma sintaxe semelhante a:

arquivo.txt:fluxo

Os dois-pontos separam o nome do arquivo do nome do fluxo alternativo.

Por exemplo:

teste.txt:notas

Nesse caso:

teste.txt

é o arquivo.

E:

notas

representa um fluxo alternativo associado a ele.

Esse detalhe é fundamental para compreender os exemplos que veremos mais adiante.


Isso significa que existem dois arquivos?

Não exatamente.

É melhor pensar em:

um arquivo NTFS com diferentes fluxos de dados associados.

O Explorador de Arquivos normalmente apresenta o arquivo de uma forma que privilegia seu fluxo principal.

Por isso, você pode olhar uma pasta e enxergar:

teste.txt

sem perceber pela interface comum que existem informações adicionais associadas a esse arquivo.


O ADS ocupa espaço no SSD?

Sim.

Dados precisam ser armazenados em algum lugar.

Se um fluxo alternativo possui conteúdo, esse conteúdo representa dados que precisam ser registrados pelo sistema de arquivos.

Portanto, não devemos interpretar ADS como:

dados mágicos que não ocupam espaço.

Eles podem não aparecer como arquivos independentes no Explorador, mas continuam fazendo parte das informações armazenadas na unidade.


Por que o NTFS possui Alternate Data Streams?

Essa funcionalidade não surgiu simplesmente para esconder informações.

Os fluxos alternativos possuem raízes históricas relacionadas à necessidade de compatibilidade e representação de diferentes tipos de informações associadas a arquivos.

Com o passar do tempo, o Windows também passou a utilizar recursos desse tipo para determinados metadados.

Um dos exemplos mais conhecidos atualmente está relacionado a arquivos obtidos da Internet.

É aqui que encontramos algo que muitos usuários já viram sem saber que ADS estava envolvido.


“Este arquivo veio de outro computador e pode estar bloqueado”

Você baixa determinado arquivo da Internet.

Depois abre:

Propriedades

e encontra uma mensagem informando, dependendo da versão e do contexto do Windows, que o arquivo veio de outro computador ou que pode estar bloqueado para ajudar a proteger o computador.

Também pode aparecer uma opção:

Desbloquear

De onde o Windows tirou essa informação?

O nome do arquivo não diz que ele veio da Internet.

O conteúdo principal também não precisa conter essa informação.

Uma das peças envolvidas nesse mecanismo é justamente um fluxo alternativo.


Zone.Identifier

Um dos ADS mais conhecidos do Windows recebe o nome:

Zone.Identifier

Você poderá encontrá-lo representado conceitualmente assim:

arquivo.exe:Zone.Identifier

ou:

documento.docx:Zone.Identifier

Esse fluxo pode armazenar informações utilizadas pelo Windows para identificar a origem ou zona relacionada ao arquivo.

Esse mecanismo está associado ao conceito conhecido como Mark of the Web, frequentemente abreviado como:

MotW.


O que é Mark of the Web?

Mark of the Web é um mecanismo utilizado pelo Windows e por aplicativos compatíveis para indicar que determinado conteúdo possui origem potencialmente externa, como a Internet.

Essa informação pode influenciar decisões de segurança.

Por exemplo, dependendo do tipo de arquivo e do aplicativo utilizado para abri-lo, o Windows ou o programa pode:

  • apresentar um aviso;
  • aplicar restrições;
  • solicitar confirmação;
  • abrir conteúdo em modo mais protegido;
  • tratar o arquivo com maior cautela.

Portanto, aquele pequeno fluxo que você nem vê no Explorador pode participar de decisões importantes de segurança.


Um exemplo conceitual

Imagine que você tenha:

manual.pdf

Visualmente, o Explorador mostra apenas:

manual.pdf

Mas conceitualmente podemos ter:

Fluxo principal

manual.pdf

contendo o documento PDF.

E um fluxo adicional:

manual.pdf:Zone.Identifier

contendo informações relacionadas à origem do arquivo.

O usuário continua enxergando um único manual.pdf.

O sistema de arquivos, entretanto, pode manter informações adicionais associadas a ele.


ADS é a mesma coisa que arquivo oculto?

Não.

Essa diferença é fundamental.

Um arquivo oculto continua sendo um arquivo convencional que possui determinado atributo.

Por exemplo:

arquivo.txt

pode receber o atributo:

Oculto

O Explorador pode então deixar de exibi-lo dependendo das configurações.

Mas ele continua sendo uma entrada própria dentro do diretório.

Um ADS funciona de outra maneira.

Ele está associado a um arquivo NTFS.

Portanto:

arquivo oculto ≠ Alternate Data Stream

São mecanismos diferentes.


Mostrar arquivos ocultos revela ADS?

Não necessariamente.

Ativar:

Mostrar arquivos ocultos

no Explorador de Arquivos não transforma fluxos alternativos em arquivos comuns visíveis na pasta.

Essa opção foi criada para lidar principalmente com arquivos e pastas que possuem atributos de ocultação.

ADS pertence à estrutura de streams do NTFS.

Por isso precisamos utilizar métodos específicos para identificá-los.


Como saber se um arquivo possui ADS?

O Windows possui ferramentas nativas capazes de mostrar informações sobre fluxos.

Uma das maneiras mais simples utiliza o comando:

dir

Mas precisamos acrescentar um parâmetro importante:

/R

Por exemplo:

dir /R

Em uma unidade NTFS, esse comando pode revelar fluxos alternativos associados aos arquivos daquela pasta.


Exemplo com dir /R

Imagine uma pasta contendo:

arquivo.txt

Ao executar:

dir /R

podemos encontrar uma informação adicional indicando um fluxo associado ao arquivo.

Quando existe um Zone.Identifier, por exemplo, a saída pode indicar algo relacionado a:

arquivo.txt:Zone.Identifier:$DATA

Essa linha revela informações importantes.

Temos:

arquivo.txt

o arquivo.

Depois:

Zone.Identifier

o nome do fluxo.

E:

$DATA

indicando o tipo de atributo de dados dentro da estrutura NTFS.


O que significa $DATA?

Aqui começamos a entrar um pouco mais profundamente no NTFS.

Dentro do NTFS, informações associadas aos arquivos são representadas por diferentes tipos de atributos.

$DATA está relacionado aos dados do arquivo.

O fluxo principal também está associado a dados.

Quando existe um fluxo alternativo nomeado, podemos encontrar uma representação como:

arquivo.txt:fluxo:$DATA

Não precisamos dominar toda a estrutura interna do NTFS para utilizar ADS, mas compreender essa nomenclatura ajuda bastante quando começamos a analisar ferramentas técnicas.


PowerShell também consegue encontrar streams

O PowerShell oferece uma forma bastante conveniente de trabalhar com fluxos.

Podemos utilizar:

Get-Item

com o parâmetro:

-Stream

Por exemplo:

Get-Item .\arquivo.txt -Stream *

Esse comando solicita informações sobre os streams associados ao arquivo.

Dependendo do arquivo, poderemos encontrar o fluxo principal e streams adicionais.


Consultando especificamente Zone.Identifier

Se quisermos verificar:

Zone.Identifier

podemos utilizar:

Get-Item .\arquivo.txt -Stream Zone.Identifier

Se esse fluxo existir, o PowerShell poderá apresentar informações relacionadas a ele.

Também podemos trabalhar com:

Get-Content

para ler o conteúdo de determinados streams quando apropriado.

Por exemplo:

Get-Content .\arquivo.txt -Stream Zone.Identifier

Isso permite observar informações armazenadas naquele fluxo.


Nem todo arquivo possui Zone.Identifier

É importante deixar isso claro.

Encontrar um arquivo em NTFS não significa automaticamente que ele terá:

Zone.Identifier

Esse stream pode existir quando algum aplicativo ou mecanismo compatível registra informações de origem.

O comportamento também depende de como o arquivo chegou ao computador e de qual aplicativo realizou a operação.

Por isso dois arquivos aparentemente semelhantes podem apresentar resultados diferentes.


Copiar um arquivo preserva o ADS?

A resposta depende do destino e do método utilizado para copiar o arquivo.

Essa é uma das características mais interessantes dos Alternate Data Streams.

Se copiamos um arquivo entre locais que suportam os recursos necessários do NTFS, determinados streams podem ser preservados.

Mas o que acontece quando o destino utiliza um sistema de arquivos que não oferece o mesmo recurso?

A situação muda.


O que acontece ao copiar para FAT32?

Imagine um arquivo NTFS contendo:

fluxo principal

fluxo alternativo

Agora copiamos esse arquivo para um pendrive formatado em:

FAT32.

O FAT32 não oferece a mesma estrutura de Alternate Data Streams do NTFS.

Isso significa que os metadados armazenados dessa maneira podem não acompanhar o arquivo da mesma forma.

O Windows pode inclusive apresentar avisos em determinadas operações quando informações adicionais não puderem ser preservadas.

Essa diferença entre sistemas de arquivos explica alguns comportamentos aparentemente estranhos durante cópias.


E o exFAT?

Também não devemos presumir que todos os recursos do NTFS existem em exFAT.

NTFS, FAT32 e exFAT possuem arquiteturas e capacidades diferentes.

Por isso, quando um arquivo muda de sistema de arquivos, não devemos pensar apenas no conteúdo principal.

Podem existir:

  • permissões;
  • atributos;
  • metadados;
  • streams;

que não possuem representação equivalente no destino.


ADS não é automaticamente perigoso

Depois de descobrir que existem informações “invisíveis” associadas aos arquivos, algumas pessoas chegam rapidamente à conclusão:

ADS = malware

Isso está errado.

Alternate Data Streams são um recurso legítimo do NTFS.

O próprio Windows utiliza mecanismos relacionados a streams para funções úteis.

O Zone.Identifier é um excelente exemplo.

O fato de uma tecnologia poder ser utilizada de forma indevida não torna a tecnologia maliciosa.


Mas malware pode utilizar ADS?

Historicamente, ADS também despertou interesse na área de segurança justamente porque dados podem ser associados a arquivos sem aparecer como arquivos independentes na visualização convencional.

Isso pode ser explorado para tentar reduzir a visibilidade de determinados dados.

Porém, sistemas modernos de segurança não dependem simplesmente da lista visual apresentada pelo Explorador de Arquivos.

Ferramentas de segurança, análise forense e administração podem inspecionar estruturas NTFS e streams.

Portanto, dizer que ADS torna algo “completamente invisível” seria incorreto.

É mais preciso dizer:

o conteúdo não aparece como um arquivo separado na visualização convencional do Explorador.


Por que esse assunto é importante para usuários comuns?

Você pode nunca criar manualmente um Alternate Data Stream e ainda assim encontrar seus efeitos.

Por exemplo:

arquivo baixado apresenta aviso de segurança

pode existir informação de origem associada.

arquivo copiado para outro sistema de arquivos perde determinadas informações

o destino pode não suportar o mesmo mecanismo.

Windows oferece a opção Desbloquear

pode existir informação associada ao Mark of the Web.

Portanto, ADS não é apenas uma curiosidade de laboratório.

Ele participa de situações reais do Windows.


Por que esse assunto é importante para técnicos?

Para quem trabalha com manutenção e diagnóstico, ADS ajuda a entender problemas que parecem contraditórios.

Por exemplo:

“Os dois arquivos são iguais, mas um recebe aviso e o outro não.”

Ou:

“Copiei o arquivo para outro dispositivo e o comportamento mudou.”

Ou ainda:

“Por que o Windows sabe que esse arquivo foi baixado?”

Entender streams oferece uma camada adicional de diagnóstico.


Não remova Zone.Identifier indiscriminadamente

Ao descobrir que determinados avisos estão relacionados a informações de origem, pode surgir a tentação de remover tudo automaticamente.

Isso não é uma boa prática.

Esses mecanismos existem para ajudar aplicativos e o Windows a tomar decisões de segurança.

Se você confia em um arquivo específico e entende sua origem, pode existir uma razão legítima para desbloqueá-lo.

Mas remover informações de origem de milhares de arquivos apenas para evitar avisos pode reduzir uma camada útil de contexto de segurança.


O botão “Desbloquear” deve ser usado com cuidado

Se o Windows apresenta:

Desbloquear

não interprete isso como:

“clique aqui para fazer o programa funcionar.”

Primeiro pergunte:

De onde veio o arquivo?

Eu esperava receber esse arquivo?

Confio na fonte?

A assinatura digital é válida, quando aplicável?

O arquivo realmente precisa ser executado?

Segurança não deve ser tratada apenas como uma barreira inconveniente a ser removida.


Nosso mapa até aqui

Agora já podemos representar um arquivo NTFS de uma forma mais completa.

Em vez de imaginar apenas:

arquivo.exe

podemos pensar conceitualmente:

Arquivo NTFS

→ fluxo principal

→ possíveis fluxos alternativos

→ metadados

→ atributos

→ informações de segurança

Isso mostra como aquilo que aparece no Explorador é apenas uma representação simplificada da estrutura que o Windows administra.


Na Parte 2 — Vamos criar e analisar ADS na prática

Agora que entendemos o conceito, podemos partir para um laboratório controlado.

Na próxima parte veremos como utilizar:

dir /R

Get-Item -Stream

Get-Content -Stream

Set-Content -Stream

e outras ferramentas para entender os fluxos na prática.

Vamos criar um arquivo de teste e associar um fluxo contendo apenas texto inofensivo, observar por que ele não aparece como arquivo separado no Explorador e depois encontrá-lo novamente pelo Prompt e PowerShell.

Também vamos analisar em detalhes:

Zone.Identifier

Mark of the Web

arquivos ZIP

cópias entre NTFS e FAT32/exFAT

por que determinados metadados desaparecem

e:

como descobrir ADS existentes sem confundir um recurso legítimo do Windows com comportamento malicioso.

Como visualizar e testar Alternate Data Streams no Windows 11

Na Parte 1 entendemos que um arquivo armazenado em NTFS pode possuir mais de um fluxo de dados.

O Explorador de Arquivos normalmente apresenta o arquivo de maneira simplificada, privilegiando seu conteúdo principal. Porém, ferramentas do próprio Windows conseguem consultar streams adicionais.

Agora vamos demonstrar isso utilizando somente texto inofensivo.

O objetivo não é esconder programas ou contornar mecanismos de segurança. Queremos apenas entender como o NTFS organiza essas informações.


Primeiro confirme que a unidade utiliza NTFS

Antes do teste, precisamos lembrar de uma condição essencial:

Alternate Data Streams são uma característica associada ao NTFS.

Uma maneira simples de verificar o sistema de arquivos é abrir:

Explorador de Arquivos → Este Computador

Clique com o botão direito na unidade desejada e abra:

Propriedades

Observe:

Sistema de arquivos

Em uma instalação convencional do Windows 11, a unidade principal normalmente utiliza NTFS.

Para nosso laboratório, vamos trabalhar em uma pasta comum dentro de uma unidade NTFS.


Criando uma pasta para o teste

Crie uma pasta chamada:

Teste-ADS

Entre nela.

Agora crie um arquivo de texto chamado:

exemplo.txt

Dentro dele escreva:

Este é o conteúdo principal do arquivo.

Salve.

Se abrirmos:

exemplo.txt

no Bloco de Notas, veremos exatamente essa frase.

Até aqui não existe nada diferente de um arquivo convencional.


Criando um fluxo alternativo somente com texto

Abra o PowerShell dentro da pasta de teste.

Podemos adicionar um stream de texto utilizando:

Set-Content -Path .\exemplo.txt -Stream Notas -Value "Informação armazenada no fluxo alternativo."

Vamos separar as partes desse comando.

Set-Content

grava conteúdo.

-Path .\exemplo.txt

indica o arquivo.

-Stream Notas

indica o stream chamado:

Notas

E:

-Value

define o texto que será armazenado.

Agora nosso arquivo possui conceitualmente:

fluxo principal

Este é o conteúdo principal do arquivo.

e:

stream Notas

Informação armazenada no fluxo alternativo.


O que aparece no Explorador de Arquivos?

Volte para a pasta.

Você continuará vendo:

exemplo.txt

Não aparecerá ao lado dele:

Notas.txt

Isso acontece porque Notas não é outro arquivo tradicional daquela pasta.

Ele é um stream associado ao arquivo exemplo.txt.

Essa pequena experiência demonstra exatamente o conceito apresentado na primeira parte.


Abrindo normalmente o arquivo

Clique duas vezes em:

exemplo.txt

O Bloco de Notas continuará mostrando:

Este é o conteúdo principal do arquivo.

O aplicativo está trabalhando com o conteúdo principal.

Nosso texto:

Informação armazenada no fluxo alternativo.

continua associado ao arquivo, mas não aparece nessa abertura convencional.


Encontrando o stream com PowerShell

Agora execute:

Get-Item .\exemplo.txt -Stream *

O PowerShell consulta os streams associados ao arquivo.

Você poderá encontrar uma entrada referente ao fluxo principal e outra correspondente a:

Notas

Dependendo da saída e versão do PowerShell, informações como tamanho também podem aparecer.

Agora comprovamos que o stream existe.


Lendo o conteúdo do stream

Execute:

Get-Content -Path .\exemplo.txt -Stream Notas

O PowerShell deverá retornar:

Informação armazenada no fluxo alternativo.

Observe algo interessante.

Se simplesmente executarmos:

Get-Content .\exemplo.txt

receberemos o conteúdo principal.

Quando especificamos:

-Stream Notas

pedimos explicitamente o conteúdo do fluxo alternativo.


O mesmo arquivo possui conteúdos diferentes?

Podemos dizer que o arquivo possui diferentes fluxos de dados associados.

Isso é mais preciso do que imaginar vários arquivos escondidos uns dentro dos outros.

Conceitualmente:

exemplo.txt

possui:

fluxo principal

e:

stream nomeado Notas.

Essa distinção será importante quando entrarmos na estrutura interna do NTFS.


Encontrando ADS com dir /R

O Prompt de Comando também possui uma maneira bastante simples de revelar streams.

Abra o Prompt dentro da pasta e execute:

dir /R

A opção /R faz com que informações relacionadas a fluxos alternativos sejam mostradas.

Você poderá encontrar uma representação semelhante a:

exemplo.txt:Notas:$DATA

Isso nos mostra novamente:

arquivo

exemplo.txt

stream

Notas

tipo de dados NTFS

$DATA


Por que aparece :$DATA?

O NTFS representa diferentes informações de um arquivo através de atributos.

$DATA corresponde ao atributo de dados.

Quando um fluxo possui um nome, ferramentas podem representá-lo desta maneira:

arquivo:stream:$DATA

Por isso:

exemplo.txt:Notas:$DATA

não representa três arquivos.

Representa uma forma de identificar um stream de dados associado ao arquivo.


Quanto espaço esse stream ocupa?

O stream possui dados reais.

Portanto, ele possui tamanho.

O comando:

Get-Item .\exemplo.txt -Stream *

pode ajudar a observar informações relacionadas aos streams e seus comprimentos.

Isso reforça um conceito importante:

ADS não significa armazenamento sem ocupar espaço.

Os dados continuam precisando ser registrados pelo sistema de arquivos.


Removendo somente nosso stream de teste

Como criamos um stream chamado Notas apenas para este laboratório, podemos removê-lo sem apagar o arquivo principal.

No PowerShell:

Remove-Item -Path .\exemplo.txt -Stream Notas

Depois execute novamente:

Get-Item .\exemplo.txt -Stream *

O stream de teste não deverá mais aparecer.

O conteúdo principal de:

exemplo.txt

continua existindo.

Essa experiência mostra que o fluxo principal e um stream nomeado podem ser manipulados separadamente.


Agora vamos encontrar um ADS que o próprio Windows pode utilizar

O exemplo anterior foi criado manualmente.

Mas existe um stream muito mais interessante para usuários do Windows:

Zone.Identifier

Como vimos anteriormente, ele pode participar do mecanismo conhecido como:

Mark of the Web.

Para observá-lo, precisamos de um arquivo no qual essa informação realmente tenha sido registrada.


Como verificar se Zone.Identifier existe

Suponha que tenhamos um arquivo chamado:

arquivo-baixado.pdf

Podemos executar:

Get-Item .\arquivo-baixado.pdf -Stream *

Se existir um:

Zone.Identifier

ele poderá aparecer na lista.

Também podemos consultar diretamente:

Get-Item .\arquivo-baixado.pdf -Stream Zone.Identifier

Se o stream não existir, o PowerShell informará que não conseguiu encontrá-lo.

Isso não significa que exista problema com o arquivo.

Significa apenas que aquele stream específico não está presente.


Lendo Zone.Identifier

Quando o stream existir, podemos consultar seu conteúdo com:

Get-Content -Path .\arquivo-baixado.pdf -Stream Zone.Identifier

Dependendo de como o arquivo foi obtido e de qual aplicativo registrou as informações, o conteúdo pode variar.

Podemos encontrar informações estruturadas utilizadas para representar a zona ou origem associada ao arquivo.

Não devemos assumir que todos os arquivos terão exatamente os mesmos campos.


O que significa ZoneId?

Dentro desse contexto, podemos encontrar uma informação chamada:

ZoneId

Ela ajuda a representar a zona de segurança associada à origem do conteúdo.

O Windows historicamente trabalha com conceitos de zonas para classificar origens.

Para nosso objetivo, o ponto principal é simples:

essa informação fornece contexto de origem que pode ser utilizado durante decisões de segurança.


Por que isso interessa ao Windows Defender e aos aplicativos?

Imagine dois arquivos aparentemente idênticos.

Um foi criado localmente.

Outro chegou da Internet.

O conteúdo pode até ser igual.

Porém, o contexto de origem não é necessariamente igual.

Aplicativos e componentes de segurança podem utilizar esse contexto para decidir se precisam apresentar avisos ou aplicar proteções adicionais.

Esse é um dos motivos pelos quais remover indiscriminadamente informações de origem não é uma boa ideia.


O Explorador pode mostrar a opção Desbloquear

Em determinadas situações, ao clicar com o botão direito em um arquivo e abrir:

Propriedades

podemos encontrar uma indicação de segurança e a opção:

Desbloquear.

Esse recurso permite que o usuário remova determinada marcação de origem quando realmente confia no arquivo.

Mas isso deve ser uma decisão consciente.

Não utilize “Desbloquear” simplesmente porque um programa se recusou a abrir alguma coisa.

Primeiro confirme a procedência.


PowerShell e Unblock-File

O PowerShell também possui:

Unblock-File

Esse comando está relacionado à remoção da marca de bloqueio de arquivos.

Por exemplo, para um arquivo específico que você já verificou e no qual confia, existe a possibilidade de trabalhar com Unblock-File.

Entretanto, não recomendamos utilizar comandos em massa para desbloquear pastas inteiras sem entender a procedência dos arquivos.

O Mark of the Web existe justamente para preservar contexto de segurança.


O que acontece com um ZIP baixado?

Aqui temos uma situação particularmente interessante.

Imagine que você baixe:

arquivos.zip

da Internet.

O ZIP pode receber informações de origem.

Depois você extrai seu conteúdo.

A preservação e propagação dessas informações pode depender do Windows, do aplicativo utilizado para criar ou extrair o arquivo e do contexto da operação.

Por isso, não devemos criar uma regra absoluta como:

“Todo arquivo extraído de ZIP sempre terá Zone.Identifier.”

O comportamento pode variar.


Por que dois descompactadores podem produzir resultados diferentes?

Programas diferentes podem tratar metadados de maneira diferente.

Imagine:

Programa A

preserva determinado contexto de origem durante a extração.

Enquanto:

Programa B

trata essa informação de outra maneira.

O resultado pode ser:

arquivos visualmente idênticos apresentando comportamento de segurança diferente posteriormente.

Esse é um excelente exemplo de como ADS pode explicar um comportamento que, para o usuário, parece completamente aleatório.


Copiando nosso arquivo de teste dentro do NTFS

Vamos voltar ao:

exemplo.txt

Crie novamente um stream de teste:

Set-Content -Path .\exemplo.txt -Stream Notas -Value "Teste ADS VMIA"

Agora copie o arquivo para outra pasta localizada na mesma unidade NTFS ou para outra unidade NTFS.

Depois execute no destino:

Get-Item .\exemplo.txt -Stream *

Dependendo do mecanismo de cópia utilizado, podemos verificar se o stream foi preservado.

Essa experiência ajuda a entender que a movimentação de arquivos envolve mais do que apenas aquilo que o Explorador mostra.


E se copiarmos para FAT32?

Agora imagine um pendrive formatado em FAT32.

FAT32 não possui suporte equivalente aos streams nomeados do NTFS.

Consequentemente, informações associadas dessa maneira não podem simplesmente ser representadas de forma idêntica no destino.

Em determinadas operações, o Windows pode informar que certas propriedades do arquivo não poderão ser copiadas.

Isso não significa necessariamente que o conteúdo principal esteja corrompido.

Pode significar que o destino não consegue representar algum metadado ou recurso existente no arquivo de origem.


Aquela mensagem “Tem certeza de que deseja copiar este arquivo sem suas propriedades?”

Alguns usuários já encontraram mensagens desse tipo ao copiar arquivos.

Uma possível razão é justamente a diferença de recursos entre os sistemas de arquivos.

O arquivo de origem pode possuir informações que o sistema de arquivos de destino não consegue preservar da mesma maneira.

Por isso, quando vemos esse aviso, precisamos considerar:

origem

destino

sistema de arquivos

metadados

em vez de concluir imediatamente que existe um defeito no pendrive.


ADS e backup

Aqui existe outra questão importante.

Um software de backup precisa compreender corretamente os recursos do sistema de arquivos se o objetivo for realizar uma preservação completa.

Imagine que um arquivo possua:

conteúdo principal

streams adicionais

Se o método de backup copiar apenas o conteúdo convencional e ignorar streams, determinadas informações podem não ser preservadas.

Isso pode ser importante em:

  • migrações;
  • restaurações;
  • análise forense;
  • preservação de metadados;
  • ambientes corporativos.

Portanto, “copiar o arquivo” e “preservar todas as características NTFS do arquivo” não são necessariamente conceitos idênticos.


ADS e armazenamento em nuvem

O mesmo raciocínio vale para serviços de armazenamento e sincronização.

Um arquivo sai de:

NTFS local

e passa por:

aplicativo de sincronização

serviço remoto

outro dispositivo

Não podemos presumir automaticamente que todos os recursos específicos do NTFS serão preservados exatamente como estavam.

Isso depende do software, protocolo e sistema de arquivos envolvidos.


ADS e rede

Também devemos considerar compartilhamentos de rede.

Quando um arquivo passa de um sistema para outro, o comportamento pode depender de:

  • protocolo;
  • servidor;
  • sistema de arquivos do servidor;
  • cliente;
  • software envolvido.

Portanto, ADS não deve ser analisado somente como uma característica do computador local.

A preservação desses dados depende de todo o caminho percorrido pelo arquivo.


Como procurar streams em vários arquivos?

Para fins administrativos e de diagnóstico, podemos utilizar o PowerShell para consultar arquivos de maneira organizada.

Por exemplo, dentro de uma pasta de laboratório, podemos examinar os streams dos arquivos individualmente.

Entretanto, devemos ter cuidado ao criar varreduras gigantescas no disco inteiro sem necessidade.

Primeiro determine:

qual pasta estamos investigando?

qual comportamento queremos explicar?

qual arquivo apresenta diferença?

Uma investigação direcionada produz resultados mais úteis.


ADS é invisível para antivírus?

Não devemos assumir isso.

Ferramentas modernas de segurança podem analisar muito mais do que aquilo que aparece visualmente no Explorador de Arquivos.

A ideia de que:

“se está em ADS, antivírus não encontra”

é uma generalização incorreta.

ADS pode reduzir a visibilidade para um usuário que observa apenas a pasta, mas isso não significa invisibilidade para ferramentas de segurança ou análise.


ADS também aparece em análise forense

Em análise forense digital, streams podem representar uma fonte importante de informação.

Um investigador pode querer saber:

  • quais streams existem;
  • tamanho;
  • conteúdo;
  • origem;
  • datas e contexto;
  • relação com determinado arquivo.

Isso demonstra por que compreender ADS vai muito além de uma curiosidade do Prompt de Comando.


Por que o Windows não mostra tudo isso no Explorador?

Imagine se, para cada arquivo, o Explorador mostrasse:

  • fluxo principal;
  • streams;
  • atributos;
  • permissões;
  • registros internos;
  • informações de segurança;
  • todos os metadados NTFS.

A interface ficaria extremamente complicada para o usuário comum.

O Explorador apresenta uma abstração.

Ele mostra principalmente aquilo que precisamos para trabalhar diariamente.

Ferramentas administrativas mostram camadas mais profundas quando necessário.


Uma boa analogia para ADS

Imagine um livro.

O conteúdo principal são as páginas.

Mas o sistema da biblioteca pode manter informações adicionais associadas ao livro:

  • classificação;
  • origem;
  • observações;
  • histórico;
  • identificação.

Quando você abre o livro, essas informações não aparecem necessariamente impressas no texto principal.

Mesmo assim, continuam associadas ao item.

ADS segue uma ideia semelhante: dados adicionais podem estar associados ao arquivo sem fazer parte do conteúdo principal que normalmente abrimos.


O que aprendemos neste laboratório?

Criamos:

exemplo.txt

Depois adicionamos:

Notas

como stream alternativo.

O Explorador continuou mostrando apenas:

exemplo.txt

Mas:

dir /R

e:

Get-Item -Stream *

revelaram a existência do stream.

Com:

Get-Content -Stream

conseguimos ler seu conteúdo.

E com:

Remove-Item -Stream

removemos somente o stream criado para o laboratório.

Depois relacionamos esse conceito ao:

Zone.Identifier

e ao:

Mark of the Web.

Agora já conseguimos entender por que um arquivo pode possuir informações que não aparecem como outro arquivo na pasta.

MFT, $DATA, Streams da Sysinternals e diagnóstico avançado de ADS

Nas duas primeiras partes deste guia construímos o conceito de Alternate Data Streams gradualmente.

Primeiro entendemos que um arquivo armazenado em NTFS pode possuir fluxos adicionais.

Depois criamos um laboratório simples:

exemplo.txt

com um stream chamado:

Notas

E conseguimos encontrá-lo utilizando:

dir /R

e:

Get-Item -Stream *

Agora surge uma pergunta inevitável:

onde o NTFS registra todas essas informações?

Para responder, precisamos conhecer uma das estruturas mais importantes do sistema de arquivos NTFS:

MFT.


O que é a MFT?

MFT significa:

Master File Table.

Em português, podemos entender como uma tabela principal utilizada pelo NTFS para manter registros relacionados aos arquivos e diretórios existentes no volume.

A MFT é uma das estruturas fundamentais do NTFS.

Quando pensamos em um arquivo como:

foto.jpg

normalmente imaginamos apenas:

nome + conteúdo

Para o sistema de arquivos, entretanto, existe muito mais informação envolvida.

O NTFS precisa conhecer características relacionadas ao objeto.

Isso pode envolver:

  • nome;
  • atributos;
  • informações de segurança;
  • dados;
  • referências;
  • informações necessárias para localizar o conteúdo.

Essas informações são representadas através da arquitetura de atributos do NTFS.


No NTFS, um arquivo é formado por atributos

Esse conceito é extremamente importante.

Dentro da arquitetura NTFS, muitas características de um arquivo são representadas como atributos.

Isso não significa simplesmente os atributos que o usuário vê ao executar:

attrib

Estamos falando da estrutura interna do sistema de arquivos.

Existem diferentes tipos de atributos NTFS utilizados para representar diferentes informações.

Um deles é:

$DATA

E é justamente aqui que nossa discussão sobre streams se conecta com a estrutura interna do NTFS.


O que é $DATA?

$DATA é o tipo de atributo relacionado aos dados de um arquivo.

Quando abrimos:

documento.txt

normalmente acessamos seu fluxo de dados padrão.

Porém, o NTFS também permite atributos $DATA nomeados.

Esses são justamente a base dos chamados:

Alternate Data Streams.

Podemos imaginar:

$DATA sem nome

→ conteúdo principal do arquivo.

E:

$DATA com nome

→ fluxo alternativo.

Essa é uma simplificação útil para entender o mecanismo.


Por que dir /R mostra :$DATA?

Agora aquela saída que vimos anteriormente começa a fazer sentido.

Quando executamos:

dir /R

podemos encontrar algo semelhante a:

exemplo.txt:Notas:$DATA

A leitura conceitual seria:

Arquivo

exemplo.txt

Stream nomeado

Notas

Tipo de atributo

$DATA

Portanto, $DATA não é a extensão do arquivo e não é outro arquivo.

É uma referência ao tipo de atributo NTFS utilizado para armazenar os dados daquele stream.


E o conteúdo principal do arquivo?

O conteúdo convencional também está relacionado a $DATA.

A diferença é que estamos acostumados a trabalhar com o fluxo padrão sem precisar especificar seu nome.

Quando executamos:

Get-Content .\exemplo.txt

o PowerShell lê o conteúdo convencional.

Quando executamos:

Get-Content .\exemplo.txt -Stream Notas

solicitamos explicitamente outro stream.

Essa distinção é a essência dos ADS.


Dados residentes e não residentes

Agora podemos avançar mais um nível.

No NTFS, determinados atributos pequenos podem ser armazenados diretamente dentro do registro correspondente na MFT.

Esse tipo de situação é conhecido como:

resident attribute

ou atributo residente.

Quando os dados são grandes demais para permanecer ali, o NTFS precisa armazená-los em outras áreas do volume e manter as referências necessárias.

Nesse caso, falamos em:

non-resident attribute

ou atributo não residente.


Isso significa que arquivos pequenos ficam “dentro da MFT”?

Em determinadas circunstâncias, dados suficientemente pequenos podem ser residentes.

Porém, não devemos transformar isso em uma regra simplificada como:

“Todo arquivo pequeno fica dentro da MFT.”

Existem diferentes atributos e condições envolvidas.

O conceito importante para nosso artigo é:

o NTFS possui mecanismos diferentes para representar dados pequenos e dados que precisam ocupar clusters externos ao registro da MFT.

Isso também ajuda a entender por que a estrutura interna de um arquivo é muito mais sofisticada do que simplesmente:

nome → setores do SSD.


O ADS também pode ser residente?

Streams são atributos $DATA.

Dependendo do tamanho e das condições do registro, dados pequenos podem ser tratados como residentes.

Streams maiores precisarão utilizar armazenamento não residente.

Novamente:

ADS não significa armazenamento gratuito ou invisível fisicamente.

Se existe conteúdo, o NTFS precisa representá-lo e armazená-lo.


O Explorador de Arquivos mostra o tamanho dos ADS?

Aqui surge uma questão interessante.

Quando observamos o tamanho convencional de um arquivo no Explorador, a maneira como informações relacionadas aos streams são apresentadas pode não corresponder intuitivamente à soma de tudo que está associado ao arquivo.

É justamente por isso que ferramentas específicas para NTFS podem revelar informações que a interface convencional não destaca.

Se estamos investigando uso de armazenamento com precisão, precisamos considerar que:

aquilo que o Explorador apresenta não necessariamente descreve todos os detalhes internos do objeto NTFS.


Tamanho e tamanho em disco são conceitos diferentes

Essa discussão também se conecta a outro assunto importante do NTFS:

Tamanho

e:

Tamanho em disco

não representam exatamente a mesma coisa.

O armazenamento físico utiliza unidades de alocação.

Além disso, o NTFS possui metadados e estruturas próprias.

Quando adicionamos streams, arquivos esparsos, compressão e outros recursos, a relação entre:

tamanho lógico

e:

espaço efetivamente utilizado

pode ficar ainda mais interessante.

Esse assunto merece um artigo próprio.


Como encontrar ADS sem PowerShell?

Além do:

dir /R

existem ferramentas especializadas.

Uma delas faz parte da suíte:

Microsoft Sysinternals.

A ferramenta se chama:

Streams.

Ela foi criada justamente para examinar Alternate Data Streams em volumes NTFS.


O que é Sysinternals?

Sysinternals é um conjunto de ferramentas avançadas mantidas pela Microsoft para administração, diagnóstico e análise do Windows.

Entre as ferramentas conhecidas da suíte estão:

  • Process Explorer;
  • Process Monitor;
  • Autoruns;
  • TCPView;
  • Handle;
  • Sigcheck;
  • Streams.

Cada uma atende a um tipo diferente de diagnóstico.

Para nosso assunto, a ferramenta relevante é:

Streams.


Para que serve Streams?

A ferramenta Streams permite enumerar fluxos alternativos encontrados em arquivos e diretórios NTFS.

Ela pode ser útil quando queremos verificar:

quais arquivos possuem ADS?

e:

quais streams estão associados a eles?

Isso é especialmente interessante em:

  • administração;
  • troubleshooting;
  • análise de segurança;
  • investigação forense;
  • estudo da estrutura NTFS.

PowerShell ou Streams?

Não precisamos escolher uma única ferramenta.

O PowerShell é excelente para:

  • consultar um arquivo;
  • automatizar tarefas administrativas;
  • examinar streams;
  • trabalhar com conteúdo.

Streams é uma ferramenta especializada para enumeração de ADS.

Já:

dir /R

é excelente para uma verificação rápida sem instalar ferramentas adicionais.

Podemos pensar assim:

dir /R

→ diagnóstico rápido.

PowerShell

→ consulta e administração.

Streams

→ análise especializada de ADS.


Não remova todos os ADS encontrados

Essa é uma recomendação importante.

Encontrar um stream não significa encontrar algo indesejado.

Como vimos, o próprio Windows utiliza:

Zone.Identifier

em mecanismos relacionados ao contexto de origem de arquivos.

Portanto, uma ferramenta mostrar:

arquivo.exe:Zone.Identifier

não significa:

“encontrei malware escondido.”

Pode simplesmente significar:

“esse arquivo possui informações relacionadas à sua origem.”


Como avaliar se um ADS merece investigação?

Podemos criar uma metodologia.

Primeiro: qual é o arquivo principal?

Um stream está associado a algum objeto.

Pergunte:

Que arquivo é esse?

Por exemplo:

programa.exe

documento.docx

foto.jpg

arquivo.zip

O contexto muda completamente a análise.


Segundo: qual é o nome do stream?

Encontramos:

Zone.Identifier

Isso possui uma explicação conhecida dentro do Windows.

Agora imagine encontrar um stream com um nome incomum.

Isso não significa automaticamente malware.

Mas pode justificar uma investigação adicional.

O nome é apenas uma pista.


Terceiro: qual é o tamanho?

Um stream com poucas dezenas ou centenas de bytes pode representar algum pequeno metadado.

Um stream muito maior merece uma análise diferente.

Novamente, tamanho sozinho não determina legitimidade.

Mas ajuda a construir contexto.


Quarto: qual é o conteúdo?

Quando estivermos trabalhando com streams de texto que possam ser examinados com segurança, podemos consultar seu conteúdo.

No PowerShell:

Get-Content -Path .\arquivo.txt -Stream NomeDoStream

Mas nem todo stream precisa conter texto legível.

Se a saída parecer binária ou incompreensível, não significa automaticamente corrupção ou malware.

Pode simplesmente não ser texto.


Quinto: de onde veio o arquivo?

Contexto de origem é fundamental.

Pergunte:

  • foi criado localmente?
  • veio de outro computador?
  • foi baixado?
  • chegou por e-mail?
  • veio de um ZIP?
  • foi copiado de outro sistema de arquivos?
  • veio de compartilhamento de rede?

Essas informações ajudam a explicar a presença de determinados metadados.


Sexto: o arquivo principal é confiável?

Se estivermos analisando um executável ou outro arquivo sensível, podemos verificar elementos como:

  • origem;
  • assinatura digital;
  • fabricante;
  • caminho;
  • comportamento;
  • análise por ferramentas de segurança.

Não tome decisões de segurança olhando apenas para ADS.


ADS pode conter qualquer tipo de dado?

Tecnicamente, streams $DATA podem armazenar dados.

Isso torna o mecanismo flexível.

Mas, para fins de administração e aprendizado, não existe motivo para utilizar ADS para ocultar executáveis ou tentar fazer programas rodarem de maneira menos visível.

Neste artigo estamos utilizando apenas streams de texto para demonstrar o funcionamento do sistema de arquivos.

O objetivo é compreender e diagnosticar.


Por que ADS ficou conhecido na área de segurança?

A resposta está justamente na diferença de visibilidade.

Imagine um usuário abrindo uma pasta.

Ele vê:

documento.txt

Mas existem informações associadas ao arquivo que não aparecem como uma segunda entrada convencional.

Historicamente, isso despertou interesse porque dados poderiam ficar menos óbvios para quem utilizava apenas ferramentas básicas.

Entretanto, ferramentas modernas conseguem enumerar streams.

Por isso, ADS não deve ser tratado como algum tipo de “cofre invisível”.


ADS não oferece criptografia

Esse ponto também precisa ficar claro.

Um stream alternativo não é automaticamente:

  • criptografado;
  • protegido por senha;
  • seguro;
  • inacessível;
  • secreto.

ADS é uma característica de armazenamento do NTFS.

Se você precisa proteger informações sensíveis, utilize mecanismos adequados de segurança e criptografia.

Não confunda:

menos visível no Explorador

com:

protegido.


ADS não substitui criptografia

Imagine armazenar uma informação confidencial em:

arquivo.txt:segredo

Ela pode não aparecer como outro arquivo no Explorador.

Mas isso não significa que esteja criptografada.

Ferramentas apropriadas podem descobrir o stream.

Portanto, ADS não deve ser utilizado como método de proteção de informações confidenciais.


ADS e EFS são coisas diferentes

O NTFS também possui outros recursos, entre eles mecanismos relacionados à criptografia como EFS em edições e configurações compatíveis.

Não confunda:

Alternate Data Streams

com:

Encrypting File System.

São recursos diferentes.

Um stream pode fazer parte de um arquivo, enquanto criptografia envolve proteção do conteúdo através de mecanismos criptográficos.


ADS e permissões NTFS

Streams estão associados ao arquivo.

Isso significa que o contexto de segurança do arquivo principal é importante.

Não devemos imaginar cada ADS como um arquivo independente com uma presença totalmente separada dentro do diretório.

Essa relação com o objeto principal é uma das características fundamentais do recurso.


O que acontece quando o arquivo principal é apagado?

Como o stream está associado ao arquivo, remover o arquivo remove também seus streams associados.

Não devemos pensar que, depois de apagar:

exemplo.txt

o stream:

exemplo.txt:Notas

continuará existindo normalmente como um arquivo independente na pasta.

Ele fazia parte da estrutura daquele objeto.


Renomear o arquivo remove o ADS?

Em uma simples operação de renomeação dentro do mesmo contexto NTFS, os streams continuam associados ao arquivo.

Imagine:

exemplo.txt

com:

Notas

Renomeamos para:

relatorio.txt

O stream não é um arquivo separado que precisa ser renomeado manualmente.

Ele está associado ao objeto.

Porém, operações de cópia, transferência e conversão entre sistemas de arquivos precisam ser analisadas separadamente.


Copiar e mover não são necessariamente iguais

Esse detalhe é importante.

Uma operação de:

mover dentro do mesmo volume

pode ser muito diferente internamente de:

copiar para outro volume.

Quando mudamos de volume, especialmente para outro sistema de arquivos, dados precisam ser recriados no destino conforme as capacidades existentes.

É nesse momento que recursos específicos do NTFS podem não ser preservados.


ADS e FAT32

FAT32 não possui a mesma estrutura de streams nomeados do NTFS.

Portanto, ao transferir arquivos:

NTFS → FAT32

determinadas informações específicas do NTFS podem ser perdidas.

Isso ajuda a explicar mensagens do Windows informando que algumas propriedades não podem ser copiadas.


ADS e exFAT

Também não devemos tratar exFAT como se fosse simplesmente “NTFS para pendrive”.

São sistemas de arquivos diferentes.

O exFAT possui vantagens importantes para dispositivos removíveis e arquivos grandes, mas não implementa todos os recursos específicos do NTFS da mesma maneira.

Assim, transferências podem alterar os metadados preservados.


ADS e ZIP

Compactar um arquivo cria outra camada.

Temos:

arquivo NTFS

programa compactador

formato ZIP

programa descompactador

sistema de arquivos de destino

Cada etapa pode influenciar quais informações são preservadas.

Por isso não existe uma regra simples de que todo ADS acompanhará um arquivo dentro de qualquer ZIP.


ADS e backup: faça uma pergunta importante

Quando uma empresa precisa preservar integralmente características NTFS, vale perguntar:

O software de backup preserva Alternate Data Streams?

Isso pode ser relevante em ambientes nos quais metadados precisam ser mantidos.

Um backup que preserva apenas o conteúdo principal pode ser suficiente para determinado uso doméstico.

Mas pode não ser suficiente para uma preservação técnica completa.

Tudo depende do objetivo.


ADS e análise forense

Na perícia digital, ignorar streams pode significar ignorar dados potencialmente relevantes.

Um investigador pode analisar:

arquivo

streams

metadados

sistema de arquivos

contexto

O ADS, portanto, representa apenas uma das várias camadas que podem existir em uma investigação.


O Explorador é uma abstração, não a estrutura inteira

Esse talvez seja o conceito mais importante desta parte.

Quando você abre uma pasta e vê:

foto.jpg

documento.docx

programa.exe

está vendo uma representação amigável dos objetos existentes.

O NTFS precisa manter muito mais informações para fazer o sistema funcionar.

A MFT, atributos, permissões, streams e outros metadados fazem parte dessa camada que normalmente permanece fora da visão do usuário.

Isso não significa que exista algo errado.

Significa apenas que sistemas de arquivos modernos são muito mais complexos do que uma lista de nomes e pastas.


Checklist VMIA para investigar um ADS

Encontrou um stream desconhecido?

Não apague imediatamente.

Siga uma sequência.

1. Identifique o arquivo principal.

2. Confira o nome do stream.

3. Observe seu tamanho.

4. Determine a origem do arquivo.

5. Verifique se o stream possui uma função conhecida.

6. Analise o arquivo principal quando houver suspeita.

7. Consulte assinatura digital quando aplicável.

8. Utilize ferramentas de segurança confiáveis se existirem indícios reais.

9. Preserve evidências se estiver realizando análise forense.

10. Só remova algo depois de entender sua função.

Esse método evita confundir um recurso legítimo do NTFS com uma ameaça.


A relação completa

Agora conseguimos montar uma representação mais técnica:

Arquivo NTFS

registro relacionado na MFT

atributos

$DATA

fluxo principal

possíveis streams nomeados

Um deles pode ser, por exemplo:

Zone.Identifier

Isso explica por que o Windows consegue associar informações adicionais a um arquivo sem criar outro arquivo convencional ao lado dele no Explorador.

ADS é perigoso? Zone.Identifier, NTFS x FAT32 x exFAT, FAQ e conclusão

Depois de entender como os Alternate Data Streams funcionam, é natural surgir uma preocupação:

Se existem dados associados a um arquivo que normalmente não aparecem no Explorador, isso representa um risco de segurança?

A resposta exige contexto.

O ADS é uma funcionalidade legítima do NTFS. O simples fato de um arquivo possuir um stream alternativo não significa que exista malware, corrupção ou qualquer outro problema.

O próprio Windows utiliza streams para determinadas finalidades.

O exemplo mais importante que estudamos neste guia foi:

Zone.Identifier

Por outro lado, qualquer mecanismo capaz de armazenar dados também pode aparecer em investigações de segurança.

A regra correta, portanto, não é:

ADS é seguro.

Nem:

ADS é malware.

A regra correta é:

descubra qual stream existe, a qual arquivo ele pertence e por que está ali.


ADS é vírus?

Não.

Alternate Data Streams são uma característica do sistema de arquivos NTFS.

Essa tecnologia não é um vírus e não representa automaticamente comportamento malicioso.

Um exemplo legítimo é:

Zone.Identifier

que pode estar relacionado às informações utilizadas pelo Windows para registrar contexto sobre a origem de determinado arquivo.

Entretanto, o fato de ADS ser legítimo não significa que devemos ignorar qualquer conteúdo encontrado.

A mesma lógica vale para inúmeros recursos do Windows.

PowerShell é legítimo.

Prompt de Comando é legítimo.

Agendador de Tarefas é legítimo.

Serviços são legítimos.

Isso não impede que algum software malicioso tente abusar desses recursos.

Por isso analisamos comportamento e contexto.


Zone.Identifier é vírus?

Não.

Zone.Identifier é um stream conhecido associado a mecanismos utilizados pelo Windows para registrar informações de zona ou origem.

Ele pode aparecer em arquivos obtidos de fontes externas.

Por exemplo:

programa.exe:Zone.Identifier

Isso não significa que exista um segundo programa escondido dentro de programa.exe.

O stream pode conter informações relacionadas à origem do arquivo.


Então por que o Windows mantém essa informação?

Imagine duas situações.

Arquivo A

Você mesmo criou no computador.

Arquivo B

Você baixou da Internet.

Os dois podem possuir o mesmo tipo de extensão.

Porém, o contexto de segurança não é necessariamente igual.

Saber que determinado conteúdo veio de uma origem externa permite que o Windows e aplicativos compatíveis adotem uma postura mais cautelosa.

É justamente aí que o conceito de:

Mark of the Web

se torna importante.


Mark of the Web não é um antivírus

Essa distinção também precisa ficar clara.

O Mark of the Web não significa:

“esse arquivo contém vírus.”

Ele fornece contexto sobre a origem do conteúdo.

Esse contexto pode ajudar outros componentes a decidir:

  • se apresentam um aviso;
  • se aplicam restrições;
  • se utilizam um modo protegido;
  • se solicitam confirmação adicional.

Portanto:

arquivo marcado ≠ arquivo infectado

Da mesma forma:

arquivo sem marca ≠ arquivo garantidamente seguro.


Um arquivo sem Zone.Identifier é seguro?

Não necessariamente.

A ausência do stream não comprova segurança.

Existem várias maneiras pelas quais um arquivo pode chegar ao computador sem preservar determinadas informações de origem.

Além disso, malware criado localmente ou transferido por mecanismos diferentes não precisa possuir aquela marca.

Segurança precisa considerar várias evidências.


Posso remover Zone.Identifier?

Tecnicamente, existem mecanismos para desbloquear arquivos confiáveis.

O próprio Windows pode apresentar a opção:

Desbloquear

nas propriedades de determinados arquivos.

O PowerShell também possui:

Unblock-File

Porém, a pergunta mais importante não é:

“Como removo?”

É:

“Por que quero remover?”

Se você verificou a procedência do arquivo e existe uma razão legítima para desbloqueá-lo, isso pode fazer sentido.

Se está removendo apenas porque o Windows apresentou um alerta, primeiro descubra por que o alerta apareceu.


Evite desbloquear uma pasta inteira sem necessidade

Imagine uma pasta:

Downloads

contendo:

  • instaladores;
  • documentos;
  • arquivos ZIP;
  • scripts;
  • executáveis;
  • anexos.

Remover informações de origem em massa elimina contexto que poderia ser útil para decisões de segurança.

Não transforme:

Unblock-File

em uma suposta ferramenta de otimização.

Ela não existe para acelerar o Windows.


ADS ocupa espaço?

Sim.

Se existe conteúdo armazenado em um stream, esse conteúdo precisa ser representado pelo sistema de arquivos.

Streams pequenos podem possuir impacto insignificante.

Streams maiores naturalmente representam mais dados.

Portanto:

não aparecer como arquivo independente

não significa:

não ocupar armazenamento.


Por que o tamanho mostrado pelo Explorador pode confundir?

O Explorador de Arquivos oferece uma visão simplificada.

O NTFS possui uma estrutura muito mais complexa envolvendo:

  • atributos;
  • clusters;
  • metadados;
  • streams;
  • compressão;
  • informações de segurança.

Por isso, em investigações de armazenamento, não devemos utilizar apenas uma única propriedade visual como representação completa de tudo que existe internamente.

Ferramentas específicas podem revelar detalhes adicionais.


Como descobrir rapidamente se um arquivo possui ADS?

Uma opção nativa simples é:

dir /R

No PowerShell:

Get-Item .\arquivo.ext -Stream *

Esses métodos ajudam a verificar streams associados ao arquivo.

Para análises especializadas também existe a ferramenta:

Streams

da Microsoft Sysinternals.


Posso ver ADS ativando “Itens ocultos”?

Não.

Um Alternate Data Stream não é simplesmente um arquivo com atributo:

Oculto.

Portanto, marcar:

Exibir → Mostrar → Itens ocultos

no Explorador não transforma streams em arquivos independentes visíveis.

São mecanismos diferentes.


E mostrar arquivos protegidos do sistema?

Também não é a mesma coisa.

O Explorador possui opções para controlar a apresentação de determinados arquivos e pastas.

ADS pertence a outra camada: os streams associados aos objetos NTFS.

Por isso precisamos utilizar ferramentas que entendam essa estrutura.


O que acontece se eu apagar o arquivo principal?

Os streams associados fazem parte daquele objeto.

Se o arquivo principal for removido, seus streams associados também deixam de existir com ele.

Não devemos imaginar:

arquivo.txt:Notas

como um arquivo completamente independente que continuará normalmente na pasta depois que arquivo.txt for apagado.


Renomear um arquivo apaga os ADS?

Uma simples renomeação dentro do mesmo contexto NTFS não equivale a criar um novo arquivo em outro sistema de arquivos.

Os streams continuam associados ao objeto.

Porém, operações envolvendo cópia, exportação, compactação ou transferência para outro sistema precisam ser analisadas conforme o método utilizado.


Mover e copiar são operações diferentes

Imagine:

Mover dentro da mesma unidade NTFS

e:

Copiar para um pendrive FAT32

Essas operações podem ter comportamentos internos muito diferentes.

Na primeira, o sistema pode trabalhar dentro da mesma estrutura NTFS.

Na segunda, precisamos representar o arquivo em outro sistema de arquivos.

É aí que determinados recursos podem não ser preservados.


NTFS x FAT32 x exFAT em relação aos ADS

Podemos resumir conceitualmente:

NTFS

Oferece suporte aos Alternate Data Streams que estudamos neste artigo.

FAT32

Não possui suporte equivalente aos streams nomeados do NTFS.

exFAT

Também não deve ser tratado como se possuísse todos os recursos específicos do NTFS.

Isso significa que mover informações entre esses sistemas pode provocar perda de metadados ou propriedades que não possuem representação equivalente.


“O arquivo tem propriedades que não podem ser copiadas”

Agora aquela mensagem que alguns usuários encontram começa a fazer mais sentido.

Imagine:

origem NTFS

arquivo possui recursos específicos do NTFS

destino FAT32/exFAT

O destino pode não conseguir preservar determinadas informações.

O Windows pode avisar sobre essa diferença.

Isso não significa necessariamente que o conteúdo principal do documento, foto ou vídeo esteja com defeito.


Converter uma unidade para exFAT é uma maneira de “limpar ADS”?

Não trate mudança de sistema de arquivos como ferramenta de segurança.

Ao migrar arquivos entre sistemas diferentes, determinadas características podem não ser preservadas.

Mas utilizar isso como método para “limpar” arquivos é uma estratégia ruim.

Você também pode perder informações que gostaria de preservar.

Além disso, ausência de ADS não comprova ausência de malware.


Copiar um arquivo para FAT32 torna o arquivo seguro?

Não.

Esse é um ponto extremamente importante.

Mesmo que determinados streams não possam ser preservados, o conteúdo principal continua existindo.

Se o próprio arquivo principal for malicioso, remover um stream não o transforma automaticamente em arquivo seguro.

Portanto:

perder ADS ≠ remover malware.


Antivírus consegue analisar ADS?

Ferramentas modernas de segurança não precisam depender apenas daquilo que o Explorador apresenta visualmente.

Por isso, não devemos assumir que colocar dados em um stream os torna automaticamente invisíveis para mecanismos de segurança.

O comportamento depende da ferramenta e do tipo de análise realizada.


ADS pode esconder arquivos do usuário comum?

É mais correto dizer:

dados em streams nomeados não aparecem como arquivos independentes na visualização convencional do Explorador.

A palavra “esconder” pode gerar uma impressão errada de invisibilidade absoluta.

Ferramentas como:

dir /R

PowerShell

e utilitários especializados

podem revelar a existência dos streams.


ADS é uma boa forma de guardar informações privadas?

Não.

ADS não é mecanismo de criptografia.

Se você precisa proteger dados confidenciais, utilize tecnologias apropriadas.

Não confie na ausência de visibilidade no Explorador como proteção.

Um técnico ou ferramenta que procure streams pode encontrá-los.


Posso guardar senha em ADS?

Não é uma boa prática.

Uma senha armazenada como texto dentro de um stream continua sendo informação que pode ser recuperada por ferramentas adequadas.

Segurança por falta de visibilidade não substitui criptografia e gerenciamento adequado de credenciais.


ADS pode ser utilizado em documentos?

Streams podem estar associados a diferentes tipos de arquivos armazenados em NTFS.

O recurso pertence ao sistema de arquivos, e não exclusivamente a uma extensão específica.

Portanto, podemos encontrar streams associados a diferentes objetos.

O significado desses streams dependerá do contexto.


Por que um arquivo baixado perde o aviso depois de ser copiado?

Uma das possíveis explicações é a perda ou alteração de metadados durante o caminho percorrido pelo arquivo.

Imagine:

Internet

aplicativo

NTFS

ZIP

outro aplicativo

pendrive exFAT

outro computador

Cada etapa pode tratar informações adicionais de maneira diferente.

Por isso, dois arquivos com conteúdo aparentemente igual podem apresentar comportamento diferente.


Por que o Windows não guarda a origem dentro do próprio conteúdo?

Porque alterar o conteúdo principal de um arquivo seria problemático.

Imagine modificar internamente:

  • um executável;
  • uma imagem;
  • um documento;
  • um arquivo compactado;

apenas para adicionar informação sobre origem.

Isso poderia alterar o próprio arquivo.

Manter metadados separados do conteúdo principal permite preservar informações adicionais sem necessariamente modificar aquilo que o aplicativo considera o conteúdo convencional do arquivo.


ADS altera o hash do conteúdo principal?

Essa pergunta é muito interessante.

Quando calculamos um hash sobre o conteúdo convencional de um arquivo, normalmente estamos processando os bytes daquele fluxo principal.

Um stream adicional é uma estrutura separada.

Consequentemente, duas cópias podem apresentar o mesmo conteúdo principal enquanto diferem em determinados metadados ou streams.

Essa é uma razão pela qual análise forense não deve depender exclusivamente de uma única propriedade.


Dois arquivos podem parecer iguais, mas possuir ADS diferentes?

Sim.

Imagine:

programa.exe

em dois computadores.

O conteúdo principal pode ser igual.

Mas um deles pode possuir:

Zone.Identifier

e o outro não.

Para o usuário, os arquivos parecem iguais.

Para o sistema de arquivos, existem diferenças adicionais associadas a eles.


Isso explica por que um arquivo pode apresentar aviso e outro não?

Pode explicar determinados casos.

Se um arquivo possui contexto de origem preservado e outro não, aplicações compatíveis podem tratá-los de maneira diferente.

Porém, não devemos assumir que todo aviso do Windows é causado exclusivamente por ADS.

O diagnóstico precisa observar o caso concreto.


ADS pode causar lentidão no Windows?

A simples existência de pequenos streams legítimos não deve ser tratada como causa genérica de lentidão.

Encontrar Zone.Identifier em arquivos não significa que você encontrou a razão para um computador estar lento.

Evite ferramentas ou tutoriais que prometem:

“apague ADS e deixe o Windows mais rápido.”

Isso não representa uma estratégia séria de otimização.


Preciso limpar ADS periodicamente?

Não.

ADS não é lixo simplesmente por existir.

Alguns streams possuem funções legítimas.

Uma limpeza indiscriminada pode remover informações úteis.

A melhor abordagem é investigar somente quando existe uma razão concreta.


Quando devo investigar ADS?

Existem situações nas quais a análise pode ser útil:

  • comportamento diferente entre arquivos aparentemente iguais;
  • aviso de segurança inesperado;
  • análise de origem;
  • diagnóstico de cópia entre sistemas de arquivos;
  • investigação técnica;
  • perícia digital;
  • análise de arquivo suspeito;
  • verificação de metadados.

Nesses casos, streams podem fornecer informações adicionais.


Procedimento rápido de diagnóstico

Imagine um arquivo:

programa.exe

apresentando um comportamento inesperado.

Passo 1

Confirme a origem do arquivo.

Passo 2

Verifique os streams:

Get-Item .\programa.exe -Stream *

Passo 3

Se existir:

Zone.Identifier

entenda que isso pode representar contexto de origem.

Passo 4

Não remova a informação imediatamente.

Passo 5

Verifique assinatura digital quando aplicável.

Passo 6

Utilize ferramentas de segurança confiáveis se houver suspeita.

Passo 7

Compare com uma cópia legítima obtida de fonte oficial quando necessário.

Agora temos um procedimento baseado em evidências.


FAQ — Perguntas frequentes sobre Alternate Data Streams

O que significa ADS no Windows?

ADS significa Alternate Data Streams.

É um recurso do NTFS que permite associar fluxos adicionais de dados a um arquivo.


ADS existe no Windows 11?

Sim. O Windows 11 continua utilizando NTFS e seus recursos, incluindo suporte a streams de dados.


Todo arquivo NTFS possui ADS?

Não devemos interpretar todo arquivo como possuindo obrigatoriamente streams alternativos nomeados.

O fluxo principal faz parte da representação dos dados, mas streams adicionais aparecem conforme o uso e contexto.


Como descobrir ADS pelo Prompt de Comando?

Dentro de uma unidade NTFS, uma maneira simples é:

dir /R

O comando pode mostrar streams associados aos arquivos listados.


Como descobrir ADS pelo PowerShell?

Podemos utilizar:

Get-Item .\arquivo.ext -Stream *

Isso permite listar streams associados ao arquivo.


Como ler um ADS de texto?

Quando o stream contém texto apropriado para leitura, podemos utilizar:

Get-Content -Path .\arquivo.ext -Stream NomeDoStream


O que é Zone.Identifier?

É um stream conhecido que pode armazenar informações relacionadas à zona ou origem de um arquivo e participar do mecanismo conhecido como Mark of the Web.


Zone.Identifier significa que o arquivo está infectado?

Não.

Sua existência não comprova malware.

Pode simplesmente indicar informações relacionadas à origem do arquivo.


O que significa Mark of the Web?

É um mecanismo utilizado para fornecer contexto de origem a conteúdos, permitindo que Windows e aplicativos compatíveis adotem medidas de segurança apropriadas.


Por que aparece “Desbloquear” nas propriedades?

Em determinados arquivos, o Windows identifica informações relacionadas à origem externa e oferece a possibilidade de desbloqueá-los.

Utilize essa opção somente quando confiar na procedência.


O comando Unblock-File é perigoso?

O comando possui uma finalidade legítima.

O risco está em utilizá-lo indiscriminadamente em arquivos cuja origem você não verificou.


ADS ocupa espaço?

Sim. Dados armazenados precisam ser representados pelo sistema de arquivos.


ADS é criptografado?

Não por simplesmente ser ADS.

Não utilize streams como substituto para criptografia.


Arquivos ocultos são ADS?

Não.

Arquivo oculto e Alternate Data Stream são conceitos diferentes.


Mostrar itens ocultos revela ADS?

Não como arquivos independentes convencionais.

Utilize ferramentas que reconheçam streams.


FAT32 suporta ADS do NTFS?

Não possui suporte equivalente aos streams nomeados do NTFS.

Ao copiar arquivos, determinados metadados podem não ser preservados.


exFAT suporta todos os recursos do NTFS?

Não.

São sistemas de arquivos diferentes e não devemos presumir equivalência de recursos.


Copiar um arquivo para FAT32 remove vírus?

Não.

Mesmo que determinados metadados NTFS não sejam preservados, o conteúdo principal do arquivo continua existindo.


Antivírus consegue detectar conteúdo em ADS?

Ferramentas modernas de segurança podem analisar estruturas além da visualização convencional do Explorador. Não considere ADS um mecanismo de invisibilidade.


Posso apagar todos os ADS do computador?

Não é recomendado realizar remoção indiscriminada.

Alguns streams podem possuir funções legítimas.


Renomear um arquivo remove seus streams?

Uma simples renomeação no mesmo contexto NTFS normalmente mantém os streams associados ao objeto.


Apagar o arquivo principal remove seus streams?

Sim. Os streams estão associados ao arquivo.


ADS é exclusivo de arquivos executáveis?

Não.

O recurso pertence ao NTFS e pode estar associado a diferentes tipos de objetos.


Existe ferramenta da Microsoft para encontrar ADS?

Sim. A suíte Microsoft Sysinternals possui a ferramenta Streams, especializada na enumeração de Alternate Data Streams.


Conclusão — um arquivo pode ser muito mais do que aquilo que o Explorador mostra

Quando abrimos o Explorador de Arquivos, enxergamos uma representação simplificada do sistema de arquivos.

Vemos:

nome

extensão

tamanho

data

pasta

Mas o NTFS trabalha com uma estrutura muito mais sofisticada.

A MFT mantém registros relacionados aos objetos.

O NTFS utiliza atributos para representar diferentes informações.

Entre eles existe:

$DATA

E o NTFS permite que um arquivo possua streams de dados nomeados adicionais.

São os:

Alternate Data Streams.

Isso explica por que podemos ter conceitualmente:

arquivo.txt

e:

arquivo.txt:Notas

sem encontrar um segundo arquivo chamado Notas no Explorador.

Também explica parte do funcionamento de:

Zone.Identifier

e sua relação com mecanismos de contexto de origem, como o Mark of the Web.

O principal aprendizado, entretanto, não é simplesmente descobrir que “existem dados escondidos”.

Essa descrição seria incompleta.

O ponto correto é:

o Explorador de Arquivos não apresenta toda a estrutura interna do NTFS.

Streams são apenas uma dessas estruturas.

Quando precisamos investigar mais profundamente, podemos utilizar:

dir /R

PowerShell,

Microsoft Sysinternals Streams

e outras ferramentas apropriadas.

E devemos sempre lembrar:

encontrar um ADS não significa encontrar malware.

Primeiro identificamos.

Depois entendemos sua função.

Somente então decidimos se existe alguma ação necessária.

Essa metodologia vale não apenas para ADS, mas para praticamente todo diagnóstico técnico no Windows.


Precisa entender um comportamento estranho de arquivos no Windows?

Arquivos bloqueados, avisos de segurança, problemas de permissões, diferenças depois de copiar dados para outro dispositivo e comportamentos inesperados no Windows podem ter explicações que não aparecem diretamente no Explorador de Arquivos.

Antes de formatar o computador, excluir arquivos ou modificar configurações de segurança, vale descobrir exatamente o que está acontecendo.

A VMIA – Manutenção e Configuração realiza diagnóstico e configuração de computadores Windows, incluindo problemas de arquivos, armazenamento, segurança, desempenho, programas e configurações do sistema.

O atendimento pode ser realizado por acesso remoto ou por visita técnica agendada, dependendo do problema.

VMIA – Manutenção e Configuração

Rua Prof. Sud Menucci, 291 – Vila Mariana – São Paulo – SP – 04017-080

Telefone e WhatsApp: (11) 99779-7772

Site: https://vmia.site

Blog: https://vmia.com.br

WhatsApp: https://whats.vmia.com.br

Nem tudo que existe dentro de um arquivo aparece no Explorador. Um bom diagnóstico começa entendendo o que o Windows e o NTFS realmente estão armazenando.

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será publicado.


*