it-swarm-pt.tech

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

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

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

e para executar o arquivo oculto basta usar:

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

Mas a parte maluca disso é que não aumenta o tamanho do arquivo (fica 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 a melhor maneira de esconder um vírus.

104
Kredns

Esta questão tem dois lados. A primeira é por que esse recurso existe, e a segunda é por que a GUI (ou o prompt de comando) não torna mais fácil ver e gerenciar o 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. Tenho quase certeza de que coisas semelhantes existiam no mundo do mainframe, mas não posso colocar meus dedos em nenhum exemplo explícito hoje.

No Windows moderno, ele é usado para manter atributos extras para um arquivo. Você pode notar que a caixa Propriedades disponível no Windows Explorer tem uma guia Resumo que na visualização Simples (estou no Windows XP, sua milhagem será diferente nos outros sabores) inclui um monte de 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 side-car para armazenar 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 que é aplicada pelo Internet Explorer e pelo Firefox em downloads.

A pergunta 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 a outra resposta, aqui está uma maneira de descobrir se sua proteção antivírus e/ou antimalware reconhece fluxos alternativos.

Obtenha uma cópia do arquivo de teste EICAR . Tem 68 bytes de ASCII texto que por acaso também é um executável x86 válido. Embora totalmente inofensivo, a indústria 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 como testar o alarme de incêndio, colocando fogo no cesto de lixo ...

O arquivo EICAR é:

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

Salve-o com a extensão .COM e será executado (a menos que seu antivírus esteja prestando atenção) e imprimirá uma saudação.

Seria informativo salvá-lo em um fluxo de dados alternativo e executar uma varredura ...

98
RBerteig

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

Isso permite que um servidor Windows rodando em NTFS compartilhe para macs via AFP. Para que esse recurso funcione, o sistema de arquivos NTFS deve oferecer suporte a garfos, 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 de um cliente que suporte.

O principal problema de segurança surge quando as pessoas e os 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
Bruce McLeod

Aqui está um bom artigo sobre o potencial vulnerabilidade de segurança apresentado por Fluxos de dados alternativos .

5
JP Alioto

Eu imagino que um dos principais usos (talvez até o uso pretendido) seria permitir a adição transparente de qualquer tipo de metadados a um arquivo. O motivo pelo qual o tamanho do arquivo não muda é, neste cenário, que você não deseja que o arquivo tenha uma aparência ou se comporte de maneira diferente, a fim de 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 estão envolvidos para formar uma única unidade (arquivo de código/arquivo de formulário, etc.), que poderia ser anexado ao arquivo original desta forma para que eles não possam ser separados acidentalmente.

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

5
jerryjvl

Boa pergunta, eu não conhecia bem o ADS até o ano passado e sou desenvolvedor do Windows há muitos anos. Posso garantir que não estou sozinho nisso.

Quanto à possibilidade de verificar se há dados alternativos em arquivos, encontrei uma 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).

4
Ash