Backdoor

Origem: Wikipédia, a enciclopédia livre.

Backdoor é um recurso utilizado por diversos malwares para garantir acesso remoto ao sistema ou à rede infectada, explorando falhas críticas não documentadas existentes em programas instalados, softwares desatualizados e do firewall para abrir portas do roteador. Alguns backdoors podem ser explorados por sites maliciosos, através de vulnerabilidades existentes nos navegadores, para garantir acesso completo ou parcial ao sistema por um cracker, para instalação de outros malwares ou para o roubo de dados.[1]

Em geral, referindo-se a um Backdoor, trata-se de um Backdoor que possa ser explorado através da Internet, mas o termo pode ser usado de forma mais ampla para designar formas furtivas de se obter informações privilegiadas em sistemas de todo tipo. Por exemplo: o Clipper Chip, dispositivo de criptografia do Governo Estados Unidos, possui um Backdoor embutido pelo próprio Governo que permite recuperar as informações codificadas anteriormente com o dispositivo.

Existem casos em que, teoricamente, o programa de computador pode conter um Backdoor implementado no momento em que ele foi compilado. Geralmente esse recurso é interessante quando um software deve realizar operações de atualização ou validação, mas essa é uma técnica já defasada, pois os programadores preferem utilizar protocolos de rede do sistema operacional(como o SSH ou o Telnet, embora eles também utilizem os tradicionais protocolos TCP/IP, UDP ou ainda o FTP). Em sistemas de computação (sistema de criptografia ou algoritmo) é um método de contornar meios de autenticação, garantindo o acesso remoto não autorizado a um computador, obtendo-se o acesso ao ‘’texto simples’’, e assim por diante, ao tentar passar despercebido. O backdoor pode assumir a forma de um programa instalado (por exemplo, Bank Office), ou podem subverter o sistema através de um rootkit. Senhas padrão podem funcionar como backdoors, se não forem alteradas pelo usuário. Algumas depurações de recursos podem também atuar como backdoors, se não forem removidos na versão.

Visão geral

A ameaça de backdoors contra multiusuário e sistemas operacionais em rede tornou-se amplamente adotada. Petersen e Turn discutiram em um artigo publicado no processo da Conferência de 1967 AFIPS. [3] Eles observaram uma classe de ataques de infiltração ativos que utilizam o chamado "alçapão" como pontos de entrada no sistema para ignorar as instalações de segurança e permitir o acesso direto aos dados. O uso da palavra alçapão aqui claramente coincide com as definições mais recentes de uma porta. De modo geral, essas falhas de segurança foram discutidas em profundidade em uma Corporação RAND com relatório da força tarefa publicado sob ARPA patrocínado por JP Anderson e DJ Edwards em 1970. [4] Um backdoor em um sistema de login pode assumir a forma de um código com difícil combinação de usuário e senha que dá acesso ao sistema.

Embora o número de backdoors nos sistemas que utilizam software proprietário (software cujo código fonte não está disponível ao público) não é amplamente creditado, eles são, no entanto, frequentemente expostos. Os programadores têm mesmo conseguido discretamente instalar grandes quantidades de código benignos como Easter eggs em programas, embora tais casos pudesse envolver a tolerância oficial, se não a permissão real.

Exemplos

Muitos worms de computador, tais como Sobig e Mydoom, instalam um backdoor no computador afetado (em geral, um computador com banda larga e com execução do sistema operacional Microsoft Windows, além do uso do Microsoft Outlook). Tais backdoors parecem estar instalados para que os spammers possam enviar e-mails das máquinas infectadas.

A sofisticada tentativa de plantar uma backdoor no kernel do Linux, exposta em novembro de 2003, acrescentou uma pequena e sutil alteração de código de subverter o sistema de controle de revisão. Neste caso, a mudança de duas linhas apareceu para verificar o acesso root, permissões de uma chamada para a função sys_wait4, mas porque usou atribuição em vez de igualdade verificando , ele realmente tinha permissões concedidas ao sistema. Esta diferença é facilmente esquecida, e até poderia ser interpretado como um erro de digitação acidental, ao invés de um ataque intencional.

Em janeiro de 2014, um backdoor foi descoberto em determinados dispositivos móveis como o Galaxy, ao qual mantém o sistema operacional Samsung Android, permitindo o acesso remoto aos dados armazenados no dispositivo. Em particular, o software Samsung Android que está encarregado de lidar com as comunicações com o modem, utilizando o protocolo Samsung IPC, implementa uma classe de pedidos conhecidos como servidores de arquivos remotos (RFS) comandos, que permite ao operador backdoor para executar via modem remoto I / O, operações no disco rígido ou outro dispositivo de armazenamento. Como o modem está sobre responsabilidade da Samsung, assim como o software Android, é provável que ele ofereça over-the-air, controle remoto que pode ser usado para emitir os comandos RFS e, portanto, para acessar o sistema de arquivos no dispositivo.

Utilização de Backdoors por Cavalos de Tróia

Os cavalos de tróia batizados como Backdoors (por usar portas para entrar em computadores alheios) são muito comuns na Internet. Normalmente eles utilizam as portas 666, 888, 3333, entre outras, para que seu usuário tenha acesso ao computador da vítima. O atacante procura garantir uma forma de retornar a um computador comprometido, sem precisar recorrer aos métodos utilizados na invasão, assim o atacante pode retornar ao computador comprometido sem ser notado. Os cavalos de tróia do tipo backdoor ainda são divididos por suas funções:

Função de espião: esse tipo de backdoor faz uma troca de informações através da porta que ele abre para seu usuário poder visualizar arquivos da vítima, ver imagens pela webcam (ativando-a sem o conhecimento da vítima), ligar o microfone, abrir e fechar o drive de CD/DVD-ROM, blu-ray, podendo corromper o Windows de forma irrecuperável, etc.

São conhecidos como RAT da sigla inglesa (Remote Administrator Tool). Que por sua vez em português significa Ferramenta de administração remota.

Backdoors - código de objetos

Mais difíceis de detectar, backdoors envolvem a modificação de código-objeto, ao invés de código-fonte - código objeto é muito mais difícil de fiscalizar. Estes backdoors podem ser inseridos diretamente no código objeto do disco rígido, ou inserido em algum momento durante a compilação, ligando a montagem, ou de carga - neste último caso, a porta dos fundos nunca aparece no disco, apenas na memória. Backdoors código objeto são difíceis de detectar por inspeção do código objeto, mas são facilmente detectados pela simples verificação de alterações (diferenças), nomeadamente no comprimento ou na soma de verificação, e em alguns casos podem ser detectados ou analisados ​​por desmontar o código objeto. Além disso, objetos backdoors referentes ao código podem ser removidos, basta recompilar a partir da fonte.

Para evitar a detecção, todas as cópias existentes de um binário devem ser subvertidas, e quaisquer somas de verificação de validação também devem ser comprometidas e a fonte deve estar disponível, para evitar a recompilação. Alternativamente, essas outras ferramentas (cheques comprimento, diff, checksum, disassemblers) pode-se estar comprometido para esconder o backdoor, por exemplo, detectar que o binário está sendo subvertido ao checksummed e retornando o valor esperado, e não o valor real. Para esconder essas novas subversões, as ferramentas também devem esconder as mudanças em si - por exemplo, um checksummer subvertido também deve detectar se ele é em si checksum (ou outras ferramentas subverteram) e retornam valores falsos. Isto leva a grandes mudanças no sistema e ferramentas sendo necessário para esconder uma única mudança.

O código objeto pode ser regenerado, recompilando do código-fonte original, fazendo uma persistência ao código objeto backdoor (sem modificar o código-fonte), ao qual é necessário subverter o compilador em si - para que, quando ele detecte quando está sendo realizado o compilador do programa sobre ataque, inserindo o backdoor - ou, alternativamente, o assembler, linker, ou carregador.

Como isso exige subverter o compilador, este por sua vez, pode ser corrigido por recompilar o compilador, removendo o código de inserção backdoor. Essa defesa pode por sua vez ser subvertida, colocando uma fonte de meta-backdoor no compilador, para que, quando ele detecta que está compilando somente a si, inserindo em seguida, insere este um gerador de meta-backdoor, em conjunto com o gerador de backdoor original para o programa original sobre ataque. Depois que isso for feito, a fonte de meta-backdoor pode ser removido, e o compilador recompilado da fonte original com o executável do compilador comprometido.

 Backdoors assimétricas

Um backdoor assimétrica só pode ser usado pelo atacante que plantá-lo, mesmo que a plena implementação do backdoor se torna público (por exemplo, por meio de publicação, sendo descoberta e divulgada pela engenharia reversa, etc.). Além disso, é computacionalmente intratável para detectar a presença de um backdoor assimétrico sob consultas de caixa preta. Esta classe de ataques foi denominada como kleptography; eles podem ser realizados em software, hardware (por exemplo, cartões inteligentes), ou uma combinação dos dois. A teoria de backdoors assimétricas é parte de um campo maior agora chamado cryptovirology.

 

Lista de backdoors conhecidos em normas

O hash MD5 mostrou ter várias deficiências em 1996 por Hans Dobbertin. Estas debilidades permitem ao invasor substituir o seu próprio artigo por um original assinado-MD5. O código malicioso é assim introduzido em um sistema. Turner e Chen em RFC6149 escreveu que "MD2 não deve ser utilizado para assinaturas digitais", pois poderia ser falsificada. Escreveu também RFC 6150 que MD4, "não devem ser usadas para criptografar a chave de criptografia de 80 bits ou mais." e ataques MD4 são praticáveis. SHA-0 (aka FIPS-180) foi retirado após CRYPTO '98. SHA-1 (aka FIPS 180-1-) mostrou ser atacável em 2005 por Eli Biham e co-autores, bem como Vincent Rijmen e Elisabeth Oswald.

O Dual_EC_DRBG gerador de números pseudo-aleatórios criptograficamente seguro foi revelado em 2013 para, eventualmente, ter um (assimétrico) backdoor kleptographic inserido deliberadamente pelo NSA, que também tinha a chave privada para o backdoor.     

 

Compiler backdoors

Uma forma sofisticada de caixa preta é um backdoor compilador, onde não é só um compilador subvertido (para inserir um backdoor em algum outro programa, como um programa de login), é modificado para detectar quando for compilar a si mesmo e, em seguida, inserir tanto o código de inserção backdoor (visando o outro programa) e modificar o código de auto-compilação. Isto pode ser feito através da modificação do código-fonte, e o compilador comprometido (código objeto) resultante pode compilar o código original.

Este ataque foi originalmente apresentado em Karger & Schell (1974, p 52, seção 3.4.5:. "Trap Door Inserção"), que foi uma análise do Multics, onde eles descreveram como um ataque a um PL de segurança United States Air Force / compiler, e chamá-lo de "alçapão compilador"; eles também mencionam uma variante em que o código de inicialização do sistema é modificada para inserir um backdoor durante a inicialização, como este é complexo e mal compreendido, e chamá-lo de um "alçapão de inicialização", este que é agora conhecido como um vírus do setor de inicialização.

Este ataque foi então efetivamente implementado e popularizado por Ken Thompson em Thompson (1984), em seu discurso de aceitação do Prêmio Turing em 1983 (publicado em 1984), "Reflexões sobre a Confiança Trust", onde aponta que a confiança é relativa, o único software que se pode realmente confiar é um código onde cada passo do bootstrapping seja inspecionado. Este mecanismo backdoor é baseado no fato de as pessoas só o reverem código fonte (human-written), e código de máquina não compilado (código objeto). O programa chamado compilador é utilizado para criar o segundo a partir do primeiro, e o compilador é geralmente confiável para fazer um trabalho honesto.

O trabalho de Thompson descreve uma versão modificada do compilador C Unix que faria: colocar um backdoor invisível no comando de login do Unix quando se notou que o programa de login está sendo compilado, e como uma torção.  Também pode adicionar esse recurso indetectável para versões futuras do compilador em cima de sua compilação também. Por o próprio compilador ser um programa compilado, seria extremamente improvável que os usuários notassem as instruções de código de máquina que realizaram essas tarefas. O pior, na prova da execução, conceito de Thompson, o compilador subvertido também subverteu o programa de análise (o desmontador), de modo que qualquer um que examinou os binários na forma habitual, não seria realmente ver o código real que estava correndo, mas sim outra coisa em seu lugar.

Uma análise atualizada do original exploit foi dado em Karger & Schell (2002, item 3.2.4: Portas Compiler armadilha), e um panorama histórico e pesquisa da literatura foi dado em Wheeler (2009, Seção 2: Fundo e trabalhos relacionados).

Ocorrências

A versão de Thompson oficialmente, nunca foi apresentada. Acredita-se, porém, que a versão foi distribuída a BBN e pelo menos um uso do backdoor foi gravado. Não houve relatos de tais backdoors nos anos subsequentes.

Este ataque foi recentemente (em agosto de 2009) descoberto por laboratórios Sophos: A / Induc-A do vírus W32 infectando o compilador do programa para Delphi, uma linguagem de programação do Windows. O vírus introduziu o seu próprio código para a elaboração de novos programas Delphi, permitindo-lhe infectar e propagar para muitos sistemas, sem o conhecimento do programador de software. Um ataque que se propaga através da construção de seu próprio cavalo de Tróia pode ser especialmente difícil de descobrir. Acredita-se que a-Induc (um vírus) tinha sido propagado durante pelo menos um ano antes de ser descoberto.

Contramedidas

Uma vez que um sistema foi comprometido com um backdoor ou cavalo de Tróia, como o compilador Confiando Trust, é muito difícil para o usuário "legítimo" recuperar o controle do sistema - tipicamente deve-se reconstruir um sistema limpo e transferir dados. No entanto, foram sugeridas várias deficiências práticas no esquema Confiando Trust. Por exemplo, um usuário suficientemente motivado poderia meticulosamente rever o código de máquina do compilador não confiável antes de usá-lo. Como mencionado acima, existem várias maneiras de esconder o cavalo de Tróia, como subverter o desmontador, mas existem maneiras de combater essa defesa, também, como escrever o seu próprio desmontador a partir do zero.

Um método genérico para combater os ataques de confiança é chamado Diverse Double-compilação (DDC). O método requer um compilador diferente e o código-fonte do-under-test compilador. Essa fonte, compilada com ambos os compiladores, resulta em duas fases, compiladores diferentes, que, no entanto devem ter o mesmo comportamento. Assim, a mesma fonte compilada com ambos (estágio 1) compiladores devem resultar em seguida, dois idênticos (estagio 2) compiladores. Uma prova formal só é dada quando esta última comparação garanta que o código fonte suposto é executável do-under-test compilador correspondam, em algumas hipóteses. Este método foi aplicado pelo seu autor para verificar se o compilador C da suíte GCC (v. 3.0.4) não continha “trojan” usando ICC (v. 11.0), como o compilador diferente.

Na prática, essas verificações não são feitas por usuários finais, exceto em circunstâncias extremas de detecção e análise de intrusão, devido à raridade de tais ataques sofisticados, pois os programas são normalmente distribuídos em formato binário.

A remoção de backdoors (inclindo compiladores) normalmente é feita para reconstruir um sistema limpo.

No entanto, essas verificações sofisticadas são de interesse de fornecedores de sistemas operacionais, para garantir que eles não estejam distribuindo um sistema comprometido, e em ambientes de alta segurança, onde tais ataques são uma preocupação realista.

Proteção

A proteção mais comum contra Backdoors em computadores pessoais é o uso de firewall e de IDS. De modo geral, Backdoors que atuam através da internet podem ser facilmente detectados pelo sistema IDS ou impedidos de atuar pelo firewall. Para sua prevenção contra o computador e informações pessoais, instale um programa antivírus para prevenir ou remover potenciais slider backdoor a qualquer momento.

Concluindo...

Backdoor é um programa que permite o retorno de um invasor a um computador comprometido, por meio da inclusão de serviços criados ou modificados para este fim.

Pode ser incluído pela ação de outros códigos maliciosos, que tenham previamente infectado o computador, ou por atacantes, que exploram vulnerabilidades existentes nos programas instalados no computador para invadi-lo.

Após incluído, o backdoor é usado para assegurar o acesso futuro ao computador comprometido, permitindo que ele seja acessado remotamente, sem que haja necessidade de recorrer novamente aos métodos utilizados na realização da invasão ou infecção e, na maioria dos casos, sem que seja notado.

A forma usual de inclusão de um backdoor consiste na disponibilização de um novo serviço ou na substituição de um determinado serviço por uma versão alterada, normalmente possuindo recursos que permitem o acesso remoto.Programas de administração remota, como BackOrifice, NetBus, SubSeven, VNC e Radmin, se mal configurados ou utilizados sem o consentimento do usuário, também podem ser classificados como backdoors. Há casos de backdoors incluídos propositalmente por fabricantes de programas, sob alegação de necessidades administrativas. Esses casos constituem uma séria ameaça à segurança de um computador que contenha um destes programas instalados pois, além de comprometerem a privacidade do usuário, também podem ser usados por invasores para acessarem remotamente o computador.

Referências

Ver também