Tutoriais
Prevenção e rastreamento de um ataque
Nesse artigo falarei um pouco sobre a prevenção e rastreamento de um ataque. Como todos nós sabemos, poucas empresas gastam o que deveriam com segurança digital. E quando ocorre uma invasão qual é o maior culpado? O administrador de sistemas? Não, o maior culpado de tudo isto é que esta acima do administrador, que na maioria das vezes prefere não investir em segurança no seu servidor e espera que o administrador faça o resto.
Em grande parte dos casos, o administrador não tem a responsabilidade de manter um sistema seguro, mas sim de mantê-lo funcionando e bem configurado, É claro que um sistema bem configurado é um sistema seguro. Muitas vezes o administrador tem um grande conhecimento em sistemas operacionais, pois sabe configurá-lo e mantê-lo funcionando, mas não tem conhecimento sobre ferramentas de ataques, como exploits, scans e novos bugs, e quando ocorre um ataque de qualquer tipo, o primeiro a ser crucificado é ele próprio.
*/ Os ataques */
Os ataques de 'deface' são e sempre foram modas por serem fáceis de executar, com um grande número de ferramentas se espalhando na internet. Tudo se torna mais fácil para os kids executar o ataque.
Como os ataques deste tipo são muitos usados hoje na internet, vou descrever como rastrear um ataque de um defacer. Eu posso dizer que não é complicado, porque muitas vezes o defacer não tem o conhecimento que um administrador de sistema tem e por isto acaba deixando algumas ' pistas' para trás. Agora vamos para o que interessa! Smile
*/ Prevenção */
Antes de pensar em rastrear um ataque, tente se previnir do mesmo. A prevenção ainda é o melhor remédio. Mas como se previnir de um ataque? Veja abaixo alguns ítens que são obrigatórios em todo o servidor e que devem ser executados pelo administradores:
*Backups diários;
*Um firewall instalado e bem configurado;
*Atualizações de daemons e patchs de segurança;
*Bloqueio de daemons que não estão sendo usados;
*Escolher boas senhas;
*Utilizar scan para encontrar possíveis bugs;
*Utilizar um IDS;
*Utilizar analisadores de tráfegos;
*Manter-se sempre informado sobre novas vulnerabilidades;
*Se o servidor não tiver pessoas aptas a fazer este tipo de
serviço, *contrate uma empresa de segurança. Se tiver
disposto a pagar pelo *serviço, é uma ótima opção.
Você gasta em segurança aquilo que quer *proteger. Tente
modelar o risco e defini-los de forma que você tenha *controle
sobre ele, tendo um indicador.
*/ Tá funcionando? Deixa! */
Este é o pensamento de muitos administradores e donos de servidores na internet. Exatamente por isso, a segurança não existe neste caso. Tente pensar da seguinte maneira, não basta somente ter um produto funcionando se a qualquer momento ele pode parar de funcionar - por mais que o produto seja bom, ele sempre terá um risco que poderá ser minimizado Razz
*/ Patchs de segurança */
Instalar patch significa corrigir ou melhorar um serviço ou programa. Quando detectamos um novo bug em algum programa, a empresa que desenvolveu o mesmo gerará um patch de segurança para ser instalado no sistema, corrigindo o bug. Ficar atento a novas ocorrências e instalar os mais recentes patches é uma ótima prevenção.
No caso do Linux, para kernel 2.4.x, use o patch da GRSECURITY, um
dos melhores. Para baixá-la acesse o link:
http://www.grsecurity.net
Rastreando um ataque
Agora que a bagunça já foi feita e seu servidor já foi atacado, a melhor coisa a fazer é tirar o seu sistema do ar, resumindo, desconectar seu servidor da internet.
Dê um boot no sistema, fazendo com que os intrusos caiam. Tentar rastrear o intruso que esteja com posse no seu sistema como usuário root é arriscado, mas pode ser uma opção. O máximo que o invasor poderá fazer, ao pressentir que está sendo rastreado, é dar um "rm -rf /" em seu sistema - se o mesmo utilizar o Linux é claro Razz
Conheça alguns exemplos de rastreamentos em sistema Linux.
*/ Sistema linux */
No Linux, para encontrar um rastro de uma invasão e chegar, assim, ao invasor, é necessário usar bom censo, pensando como se fosse o invasor. O que você faria se tivesse com o sistema operacional na mão? Óbvio, você faria de tudo para não perder acesso ao sistema, instalaria algum tipo de backdoor ou até mesmo adicionaria um usuário com privilégios máximos.
Mas com tudo isto, você antes de mais nada precisa conhecer o seu sistema. Saiba se ele tem dados de datas execuções de arquivos, quais os serviços que estão rodando, quais são as portas abertas.
Para ver todas as portas abertas no sistema digite o comando abaixo:
# lsof -i
Serão listadas todas as portas que estão sendo usadas. Veja se encontra alguma porta estranha.
Procurar por rastros no /etc/passwd é obrigatório. Adicionar usuário no /etc/passwd é bem a cara de muitos defacers, portanto não perca tempo. Tenha em mente todos os usuários cadastrados no sistema e entre com o comando abaixo:
# grep ":0:0:" /etc/passwd
Serão listados os usuários do sistema. Veja se todos conferem. Se encontrar algo de estranho, examine. Como examinar? Use arquivos de logs do sistema - o primeiro arquivo a ser verificado é o .bash_history, o qual conterá os 1.000 últimos comandos digitados por algum usuário.
Por exemplo, no caso do usuário root, o arquivo .bash_history se encontra no diretório /root. Editando-o com seu editor de texto preferido ou até mesmo executando ele com o cat, você terá uma pequena noção do que foi feito no seu sistema e assim, tentará corrigir. Se mesmo assim o log .bash_history não trouxer informações úteis, utilize o comando:
# ps -aef | grep root
O comando acima irá procurar por processos executados pelo root,
que no caso poderá ser modificado para qualquer outro usuário.
Serão listados os processos executados pelo usuário root;
veja se o mesmo não apresenta algum script estranho executando.
Com certeza, este passo lhe trará algumas informações
importantes.
Após isto você terá que descobrir qual foi a porta de entrada do invasor e qual bug foi usado por ele para explorar seu servidor, pois não adianta tirar o acesso do invasor no sistema se este ainda se encontra bugado.
Este passo é demorado e exigira um pouco de paciência. Comece pelos daemons, que são os softwares mais explorados para ter acesso ao seu sistema, como servidores FTP, IMAP, BIND. Todos são serviços utilizados pelo Linux que poderão ser facilmente explorados remotamente pelo invasor.
Para proteger-se de um ataque desse tipo, mantenha seus serviços e softwares sempre atualizados e bem configurados e sempre que possível, utilize um scanner de segurança. Neste caso, recomendo o Nsat ou o Nessus:
http://sourceforge.net/projects/nsat
http://www.nessus.org
Descobrindo como o invasor entrou no seu sistema
*/ SysLog */
Quase tudo que acontece em seu sistema Linux é gravado no syslog, pois todo e qualquer programa pode gerar um log deste tipo, que será enviado para o syslogd.
O syslogd deve ser configurado de maneira que tudo possa ser gravado em disco. O seu arquivo de configuração se encontra em /etc/syslog.conf. Configure o syslog como descrito abaixo:
*.* /var/log/syslog
Assim o sistema estará configurado para gravar todo tipo de log, até mesmo um log de uma conexão remota a partir de um serviço shell.
*/ Logs no Apache */
/usr/local/apache/logs
Os logs gerados pelo Apache são uma grande arma contra o invasor, por serem preciosos. Um exemplo disso: quando o invasor altera a página, ele sempre entra nela para ver o seu feito. Quando ele entra pra visualizar a página, o Apache grava a hora, data e o IP do mesmo, ficando fácil descobrir quando o arquivo da página principal foi alterado e, logo depois, o acesso foi feito. Com certeza, o primeiro acesso feito é do invasor.
*/ TcpDump */
TcpDump é uma ferramenta de captura de pacotes que, estando ativo no sistema, irá interceptar e avaliar os pacotes recebidos. O comando abaixo pode executar o software em uma operação de interceptação sem filtragem, sendo exibido o resultado no terminal.
# tcpdump
tcpdump: listening on eth0
Onde procurar provas: procure por IPs suspeitos e grave as horas e datas dos pacotes recebidos. Maiores informações sobre tcpdump:
Recuperando arquivos excluídos
É possível recuperar arquivos excluídos pelo comando rm do Linux, mas esta é uma técnica que envolve um grande conhecimento do sistema por quem vai executar.
Todos os arquivos no sistema UNIX são armazenados em locais físicos do disco, denominadas ' inodes '. Lá se encontram todas as informações sobre um arquivo no sistema, como última alteração e execução.
Outro ponto importante dos inodes é que lá constam o tamanho do arquivo e uma lista de blocos de dados. Quando um arquivo é excluído no sistema, o tamanho do arquivo e sua lista de blocos de dados são definidos para zero, mas os dados nos inodes não são excluídos.
Portanto, para recuperar um arquivo excluído, você precisará das informações contidas no inode para reconstruir a estrutura do arquivo. Para encontrar o inode de um arquivo utilize o comando ls:
# ls -i /etc/arquivo
55485 /etc/arquivo
55485 é o inode do arquivo. Para visualizar este arquivo você poderá utilizar um editor simples, como pico ou vi:
# vi /etc/arquivo
Agora é possível visualizar o arquivo pelo seu numero
de inode, mesmo se ele for excluído. Uma ferramenta para executar
esse procedimento é o icat, disponível no pacote TCT:
http://www.porcupine.org/forensics/tct.html
Para executar o icat e visualizar um arquivo pelo inode, utilize o
comando abaixo:
# icat /dev/hda1 55485
Você simplesmente visualizará o arquivo /etc/arquivo, mesmo se ele tiver sido excluído! Smile
Rastreando o provedor do invasor
*/ Prova do crime */
Todos passos descritos no artigo devem ser seguidos à risca para encontrar algum rastro de uma invasão, sendo que ela será sua prova de incriminar o autor, pois não há discussões em cima de provas concretas, geradas pelos logs.
Assim sendo, tendo os logs que provem a invasão e alteração de arquivos, você já pode incriminar o invasor.
*/ Rastreando o provedor do invasor */
Você já tem tudo nas mãos, a prova do crime e IP, mas não sabe como proceder para incriminar o invasor. OK, para facilitar as coisas você poderá descobrir o provedor do IP do invasor que tem em mãos.
Se o IP for fixo, as coisas serão mais fáceis. O comando abaixo fornecerá o host de um ip no Linux e no Windows. Abaixo um exemplo no Linux:
# nslookup xxx.xxx.xxx.xxx
NOTA: xxx.xxx.xxx.xxx se refere ao IP desejado.
Mas antes lembre-se que um endereço de IP pode ser forjado, literalmente copiado, de forma que o rastreamento será muito mais difícil, pois não envolverá só a técnica de rastrear. Portanto, o rastreamento, não depende só de você. Smile
OK, com o endereço do provedor você terá duas
alternativas:
Entrar em contato com o provedor, informando a data e hora, tipo de
ataque e enviando as provas do crime, claro com o IP. Smile
Entrar em contato com as autoridades locais de seu estado. Sim, literalmente,
chame a polícia informando o sobre o caso e orientando - se
sobre como você poderá proceder; Se o invasor for pego,
ele poderá responder a processos.
Para maiores informações de como se procede o processo,
consulte um advogado - e para evitar este tipo de ataque, sempre consulte
um Security Officer.
Quer enviar seu Tutorial?
Envie um e-mail para thorking@gmail.com sem anexos mande no corpo do e-mail.
Obrigado!