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


Você pode esconder qualquer arquivo dentro de outro arquivo apenas digitando:

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

e para rodar o arquivo oculto basta usar:

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

Mas a parte maluca sobre isso é que isso não aumenta o tamanho do arquivo (então está totalmente oculto).

E se você excluir o arquivo com o material oculto dentro, 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.


103


origem


bom, parece que os recursos do mac. - Stefano Borini
pior, quando você inicia o sol.exe assim, o gerenciador de tarefas mostra o nome do processo como container.txt - hasen
Devemos bombardear o google para que "assustador" leve a essa pergunta - hasen
Com o tempo que isso já existia, ainda é espantoso encontrar ocasionalmente desenvolvedores AV / outras pessoas que trabalhem pesado com o sistema de arquivos que AINDA não sabem sobre ele. Eu não espero que o desenvolvedor médio do aplicativo saiba disso, já que não há necessidade, mas se você está pesado com coisas do sistema de arquivos ... :-) - 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, você não pode excluir sua unidade C:, por exemplo, sem reformatar a unidade. Parece um mecanismo para criar um vírus rootkit escondido para mim (?). - HighTechGeek


Respostas:


Há dois lados nessa questão. A primeira é por que esse recurso existe, e o segundo é 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 foram chamados garfos, por exemplo. Estou razoavelmente certo de que coisas semelhantes existiram no mundo do mainframe, mas não posso colocar meus dedos em qualquer exemplo explícito hoje.

No Windows moderno, ele é usado para armazenar atributos extras para um arquivo. Você pode notar que a caixa Propriedades disponível no Windows Explorer tem uma guia Resumo que, na exibição Simples (estou no Windows XP, sua milhagem será diferente em 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 conter tudo o que seria separado do arquivo com muita facilidade.

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

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

Editar: 

Inspirado por um comentário para outra resposta, aqui está uma maneira de descobrir se sua proteção antivírus e / ou antimalware 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 executáveis ​​x86 válidos. 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 AV com um vírus real seria um pouco demais 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 com a extensão .COM e 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 ...


97



Por design, o tamanho do arquivo exibido mostra apenas o tamanho do fluxo principal de $ DATA. Isso também é o que você normalmente quer. Você também 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. Eu não ouvi falar de nenhum malware que tenha se espalhado / escondido com esses mecanismos. - Joey
Você não pode acidentalmente executar um executável armazenado em um ADS de um arquivo de texto. Ele está bem oculto, muito bem oculto para que um usuário comum o execute acidentalmente. Você precisaria ser comprometido primeiro. - R. Martinho Fernandes
@ashh: Martinho faz a unha - a obscuridade que dificulta a localização de um executável em tal fluxo também dificulta a execução sem tentar ativamente. Compare isso com, digamos, todo o fiasco "extensões de arquivos ocultos", no qual arquivos executáveis ​​podem parecer, digamos, arquivos de texto na GUI ... e ainda serem executados com muita facilidade. - Shog9♦
Supondo que você tenha um AV que esteja, pelo menos, prestando atenção em tempo real ao arquivo .COM, você não conseguirá anexá-lo como ADS, pois o antivírus o impediria de acessar o arquivo .COM (anexar como ADS exigiria um para acessar o arquivo .COM). Arquivo). Você deve, no entanto, ser capaz de anexar um arquivo de texto com a string EICAR e nomeá-lo com um extensão .COM dentro do ADS. ou seja, digite EICAR.txt> test.txt: EICAR.COM - KTC
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 ainda provavelmente demorar um pouco). - Kredns


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

Isso permite que um servidor Windows em execução no compartilhamento NTFS para macs via AFP. Para que esse recurso funcione, o sistema de arquivos NTFS deve oferecer suporte a garfos e desde o primeiro dia.

E antes de perguntar, esse recurso ainda é usado? Sim, estou executando 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 ele está lá.

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


15



Se você está indo para baixo para votar, por favor deixe um comentário sobre o porquê. - Bruce McLeod
Isso soa como uma razão completamente plausível para o recurso existir em primeiro lugar. - RBerteig
adicionar esse recurso simplesmente para permitir o compartilhamento de arquivos para macs não parece ser uma razão plausível. O compartilhamento pela rede não exige que o arquivo seja armazenado intacto no lado do servidor. Já vi vários servidores de compartilhamento de maçã * nix que dividem o arquivo em informações de dados e recursos. Isso é transparente para o cliente. Alterar o formato real da unidade apenas para permitir que o AFP não pareça realista. Pode ser um bom benefício, mas não como a REASON para esse recurso. - Simurr
Sim, eu estou pensando [citação necessária] se você vai afirmar que o SfM é o razão principal que o MS implementou ADSes no NTFS. - afrazier
Citation found: ... Recursos de ADS onde originalmente concebido para permitir compatibilidade com o sistema de arquivos hierárquicos Macintosh, HFS; onde as informações do arquivo são, às vezes, bifurcadas em recursos separados. Os fluxos de dados alternativos passaram a ser usados ​​legitimamente por vários programas, incluindo o sistema operacional nativo do Windows, para armazenar informações de arquivos, como atributos e armazenamento temporário. fonte: windowsecurity.com/articles/Alternate_Data_Streams.html - JamesBarnett


Eu imagino que um dos principais usos (talvez até o uso pretendido) seria permitir de forma transparente a adição de qualquer tipo de meta-dados a um arquivo. A razão pela qual o tamanho do arquivo não é alterado é neste cenário que você não deseja que o arquivo tenha aparência ou se comporte de maneira diferente, para que o aplicativo de origem não dependa de algum aspecto da aparência do arquivo.

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

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


5



Você poderia por favor postar um link para tal executável para que eu possa tentar? ;) - R. Martinho Fernandes
Sugiro que você execute o AVG em sua máquina e, em seguida, pegue um dos executáveis ​​da pasta de quarentena para tentar;) - jerryjvl
@martinho, você quer o arquivo de teste EICAR: X5O! P% @ AP [4 \ PZX54 (P ^) 7CC) 7} $ EICAR-STANDARD-ANTIVIRUS-TEST-FILE! $ H + H * Apenas cole esse texto (exatamente 68 bytes de texto ASCII, veja eicar.org/anti_virus_test_file.htm para toda a história) em um arquivo chamado com a extensão .COM. Ele irá executar e imprimir uma mensagem. A menos que seu antivírus esteja funcionando, é claro. Solte-o em um fluxo de dados alternativo e verifique-o também. - RBerteig
@RBerteig: Oi legal ... não sabia que existia tal coisa. - jerryjvl
@jerryjvl, como eles dizem, é melhor testar o alarme de incêndio acendendo a lixeira em chamas ... - RBerteig


Aqui está um bom artigo sobre o potencial vulnerabilidade de segurança representada pelo Fluxos de Dados Alternativos.


5



<nitpick> É uma vulnerabilidade, não uma ameaça </ nitpick>. E não é tão grande quanto parece. Você precisa já ter credenciais para usá-lo. - romandas
Corrigido, obrigado! :) - JP Alioto
Não prob. Btw, verifique sua ortografia. E lembre-se sempre: as ameaças exploram vulnerabilidades. Ameaças são pessoas, geralmente, mas desastres naturais e feitos também contam. - romandas
@romandas, que credenciais você já precisa ter? Em casa, a maioria dos usuários do Windows (em particular o XP) está executando com privilégios de Administrador, então por que isso não é tão importante quanto parece? - Ash
@ashh, "com um método de se esconder ... em um sistema violado". O sistema já deve estar comprometido, em primeiro lugar, para ocultar qualquer coisa e, da mesma forma, executar algo oculto como este. - KTC


Boa pergunta, eu não estava ciente da ADS até o ano passado e sou um desenvolvedor do Windows há muitos anos. Eu posso garantir que não estou sozinho nisso.

Quanto a poder verificar dados alternativos em arquivos, encontrei a pequena ferramenta útil chamada Rapazes disponível a partir do software Frank Heyne. Ele pode listar o ADS em todos os arquivos em um determinado diretório, mesmo em arquivos criptografados (e também em subdiretórios).


5