Por que diabos o NTFS permite executáveis ​​invisíveis?


105

Você pode ocultar qualquer arquivo dentro de outro arquivo digitando:

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

e para executar o arquivo oculto, use:

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

Mas a parte louca disso é que não aumenta o tamanho do arquivo (por isso está totalmente oculto).

E se você excluir o arquivo com o material oculto, o material oculto não será excluído. Apenas use:

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

Por que o NTFS permite isso? Parece ser a melhor maneira de esconder um vírus.


1
bom, parece mac resourceforks.
24511 Stefano Borini

15
pior, quando você começar a sol.exe assim, o gerenciador de tarefas mostra o nome do processo como container.txt
Hasen

16
Deveríamos bombardear o google para que "assustador" leve a essa pergunta
24/07/2009

4
Desde que isso ocorra, ainda é surpreendente, ocasionalmente, ser executado por desenvolvedores de antivírus / outras pessoas que trabalham intensamente com o sistema de arquivos que AINDA ainda não conhecem. Eu não espero que o desenvolvedor médio aplicativo para saber sobre ele já que não há necessidade, mas se você é pesado em material filesystem ... :-)
Brian Knoblauch

Supostamente, você também pode anexar um ADS a uma pasta. Você pode excluir o ADS excluindo a pasta, mas quando a pasta é a raiz da sua unidade, não é possível excluir a unidade C:, por exemplo, sem reformatar a unidade. Parece um mecanismo para criar um vírus rootkit oculto para mim (?).
HighTechGeek

Respostas:


98

Existem dois lados dessa questão. A primeira é por que esse recurso existe, e a segunda é por que a GUI (ou o prompt de comando) não facilita a visualização e o gerenciamento do recurso.

Existe porque é útil. Várias outras plataformas suportam vários fluxos de dados por arquivo. No Mac, eles eram chamados de garfos , por exemplo. Estou razoavelmente certo de que coisas semelhantes existiam no mundo do mainframe, mas não consigo identificar exemplos explícitos hoje.

No Windows moderno, é usado para armazenar atributos extras para um arquivo. Você pode perceber que a caixa Propriedades disponível no Windows Explorer possui uma guia Resumo que, no modo de exibição Simples (no Windows XP, sua milhagem será diferente nos outros tipos), inclui vários campos úteis, como título, assunto, autor e assim por diante. Esses dados são armazenados em um fluxo alternativo, em vez de criar algum tipo de banco de dados de carro lateral para armazenar tudo o que seria separado do arquivo com muita facilidade.

Um fluxo alternativo também é usado para conter o marcador que diz que o arquivo veio de uma fonte de rede não confiável aplicada pelo Internet Explorer e Firefox em downloads.

A pergunta difícil é por que não existe uma interface de usuário melhor para perceber que os fluxos existem e por que é possível colocar conteúdo executável neles e, pior ainda, executá-lo mais tarde. Se houver um bug e um risco de segurança aqui, é isso.

Editar:

Inspirado em um comentário para outra resposta, eis uma maneira de descobrir se sua proteção antivírus e / ou anti-malware está ciente de fluxos alternativos.

Obtenha uma cópia do arquivo de teste EICAR . São 68 bytes de texto ASCII que também são um executável x86 válido. Embora completamente inofensivo, o setor de antivírus concordou em ser detectado como se fosse um vírus real. Os criadores pensaram que testar o software antivírus com um vírus real seria como testar o alarme de incêndio, acendendo a lixeira em chamas ...

O arquivo EICAR é:

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

Salve-o com a extensão .COMe ele será executado (a menos que seu AV esteja prestando atenção) e imprima uma saudação.

Seria informativo salvá-lo em um fluxo de dados alternativo e executar uma verificação ...


11
Por design, o tamanho do arquivo exibido mostra apenas o tamanho do fluxo principal $ DATA. Isso também é o que você normalmente deseja. Você não inclui o tamanho do nome do arquivo (que é um tipo de metadado) no tamanho do arquivo. Quanto a ser um risco de segurança. ADS não são mais um risco do que qualquer arquivo individual. Não ouvi nenhum malware que se espalhou / escondeu com sucesso com esses mecanismos.
Joey

4
Você não pode executar acidentalmente um executável armazenado em um ADS de um arquivo de texto. Está bem oculto, muito oculto para um usuário comum executá-lo acidentalmente. Você precisaria ser comprometido primeiro.
R. Martinho Fernandes

7
@ashh: Martinho repara - a obscuridade que torna difícil encontrar um executável em um fluxo como esse também dificulta a execução de um sem tentar ativamente. Compare isso com, digamos, todo o fiasco das "extensões de arquivos ocultos", onde os arquivos executáveis ​​podem parecer, digamos, arquivos de texto na GUI ... e ainda executam com muita facilidade.
Shog9

3
Supondo que você tenha um AV que esteja prestando atenção pelo menos em tempo real ao arquivo .COM, não será possível anexá-lo como ADS, pois o AV impediria o acesso ao arquivo .COM (é necessário anexar como ADS para acessar o arquivo. Arquivo). No entanto, você deve conseguir anexar um arquivo de texto com a sequência EICAR e nomeá-lo com uma extensão .COM dentro do ADS. ou seja, digite EICAR.txt> test.txt: EICAR.COM
KTC

2
Fato interessante sobre o arquivo EICAR.COM: Ele não será executado em nenhuma versão de 64 bits do Windows, então acho que esse truque não funcionará mais quando todos estiverem em máquinas de 64 bits (o que provavelmente ainda levará um tempo).
Kredns

15

Esse recurso é necessário para um recurso de plataforma cruzada do Windows Server: serviços para mac.

Isso permite que um servidor Windows executando no compartilhamento NTFS para macs via AFP. Para que esse recurso funcione, o sistema de arquivos NTFS precisa oferecer suporte a garfos, e possui desde o primeiro dia.

E antes que você pergunte, esse recurso ainda é usado? Sim, eu o tenho em execução e em uso diariamente em um servidor em um cliente que eu suporte.

O principal problema de segurança ocorre quando pessoas e aplicativos esquecem ou não percebem que está lá.

Provavelmente deve haver uma opção para incluir os garfos no tamanho total do arquivo ou mostrá-los no Windows Explorer.


2
Se você está indo para votar, por favor, deixe um comentário sobre o porquê.
23711 Bruce McLeod

2
Isso parece uma razão completamente plausível para o recurso existir em primeiro lugar.
RBerteig

3
adicionar esse recurso simplesmente para permitir o compartilhamento de arquivos para macs não parece uma razão plausível. O compartilhamento pela rede não exige que o arquivo seja armazenado intacto no lado do servidor. Eu já vi vários servidores de compartilhamento de maçã * nix que dividem o arquivo em dados e informações de recursos. Isso é transparente para o cliente. Alterar o formato real da unidade apenas para permitir o AFP não parece realista. Pode ser um benefício interessante, mas não o motivo para esse recurso.
Simurr 27/08/09

2
Sim, estou pensando [citação necessário] se você pretende afirmar que o SfM é o principal motivo pelo qual a MS implementou ADSes no NTFS.
afrazier 23/07/10

3
Citação encontrada: ... Os recursos do ADS foram originalmente concebidos para permitir compatibilidade com o Sistema de Arquivos Hierárquicos do Macintosh, HFS ; onde as informações do arquivo são às vezes bifurcadas em recursos separados. Fluxos de dados alternativos passaram a ser usados ​​legitimamente por uma variedade de programas, incluindo o sistema operacional Windows nativo para armazenar informações de arquivos, como atributos e armazenamento temporário. fonte: windowsecurity.com/articles/Alternate_Data_Streams.html
JamesBarnett

5

Eu imagino que um dos principais usos (talvez até o uso pretendido) seria permitir de forma transparente a adição de qualquer tipo de metadados a um arquivo. O motivo pelo qual o tamanho do arquivo não é alterado é que, nesse cenário, você não deseja que o arquivo tenha aparência ou se comporte de maneira diferente, a menos que o aplicativo de origem se baseie em algum aspecto da aparência do arquivo.

Eu poderia imaginar usos interessantes nos IDEs, por exemplo, onde às vezes vários arquivos estão envolvidos para formar uma única unidade (arquivo de código / arquivo de formulário, etc.), que pode ser anexada ao arquivo original dessa maneira para que eles não possam se separar acidentalmente.

Eu também acredito que existe um comando para encontrar todos esses 'anexos' em uma determinada árvore de diretórios, para que eles não sejam completamente ocultos. Também me surpreenderia se os melhores antivírus não estivessem cientes disso e verificassem essas áreas 'ocultas', mas você pode verificar isso anexando propositadamente um executável infectado a um arquivo de texto e ver se ele é detectado.


Você poderia postar um link para um executável para que eu possa tentar? ;)
R. Fernandes Martinho

Eu sugiro que você executar o AVG no seu computador, e em seguida, pegue um dos executáveis a partir da pasta de quarentena para tentar;)
jerryjvl

2
@martinho, você deseja o arquivo de teste EICAR: X5O! P% @ AP [4 \ PZX54 (P ^) 7CC) 7} $ EICAR-PADRÃO-ANTIVIRUS-ARQUIVO DE TESTE! $ H + H * Basta colar esse texto (exatamente 68 bytes de texto ASCII, consulte eicar.org/anti_virus_test_file.htm em toda a história) em um arquivo nomeado com a extensão .COM. Ele será executado e imprimirá uma mensagem. A menos que seu AV esteja funcionando, é claro. Coloque-o em um fluxo de dados alternativo e verifique lá também.
RBerteig

@RBerteig: Ei, legal ... não sabia que havia uma coisa dessas.
21139 jerryjvl

@jerryjvl, como dizem, ele bate testar o alarme de incêndio por acender o cesto de lixo em chamas ...
RBerteig

5

Aqui está um bom artigo sobre a potencial vulnerabilidade de segurança apresentada pelo Alternate Data Streams .


6
<nitpick> É uma vulnerabilidade, não uma ameaça </nitpick>. E não é tão grande quanto parece. Você já precisa ter credenciais para usá-lo.
Romandas

Sem problemas. Btw, verifique sua ortografia. E lembre-se sempre: as ameaças exploram vulnerabilidades. Ameaças são pessoas, geralmente, mas desastres naturais e feitos contam também.
Romandas

@romandas, que credenciais você já precisa ter? Em casa, a maioria dos usuários do Windows (XP em particular) está executando com privilégios de administrador. Por que isso não é tão importante quanto parece?
247/09 Ash

@ashh ", com um método de ocultar ... em um sistema violado". O sistema já deve estar comprometido em primeiro lugar para ocultar qualquer coisa e, da mesma forma, para executar qualquer coisa oculta como essa.
KTC

5

Boa pergunta, eu não tinha conhecimento adequado de ADS até o ano passado e sou desenvolvedor de Windows há muitos anos. Eu posso garantir que não estou sozinho nisso.

A respeito de poder verificar dados alternativos nos arquivos, encontrei a pequena ferramenta útil chamada Lads disponível no software Frank Heyne. Ele pode listar ADS em todos os arquivos em um determinado diretório, mesmo em arquivos criptografados (e também dentro de subdiretórios).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.