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.
Faça um comentário