Questão de bom senso parte II
Leia na continuação do artigo sobre segurança, uma entrevista exclusiva com Rodrigo Campus, especialista de segurança em provedores
Na primeira parte do artigo, publicada na edição anterior da
RdL, mostrou-se como o bom senso e alguma preparação podem ajudar no procedimento durante e imediatamente após
a detecção de um comprometimento na segurança. Nesta edição serão fornecidos mais detalhes sobre o procedimento pós-evento. Um profissional da área mostrará como fazer para obter apoio do provedor através do qual o cracker penetrou no sistema, e a que outros órgãos recorrer.
Como complemento, também são mostrados alguns itens básicos de qualquer política de segurança que freqüentemente são relegados a segundo plano - por parecerem óbvios demais - mas que devem ser tratados com atenção, pois são os alicerces da segurança.
Reportando a invasão
Uma parte importante do processo de prevenção dos abusos na Internet
é sempre reportar os fatos, e tomar providências adequadas para que eles não se repitam. Existem procedimentos estabelecidos (e com um razoável grau de sucesso) entre os provedores de maior porte, muitas vezes ignorados pelos administradores de redes menores conectadas à Internet. Para auxiliar neste assunto, contamos com a experiência de Rodrigo Albani Campos (camposr@matrix.com.br), responsável técnico pela segurança de
um dos maiores provedores de acesso do Brasil e também grande advogado do uso de software livre (embora
seja da facção FreeBSD). Veja entrevista na página 39.
Quadro - identificando o responsável por uma rede
Usuários de sistemas Unix em geral (incluindo o Linux) têm à sua disposição o comando whois, que fornece esse tipo de informação de maneira simples. Veja um exemplo:
~$ whois exemplo.com.br
% Copyright registro.br
(...)
domain: EXEMPLO.COM.BR
owner: EXEMPLO INFORMATICA LTDA
address: Rua Foo, 65536, Estreito
address: 88075-999 - Florianopolis - SC
(...)
nic-hdl-br: FF3
person: Fred Flintstone
e-mail: fredf@EXEMPLO.COM.BR
phone: (048) 555-XXXX []
nic-hdl-br: BR2
person: Barney Rubble
e-mail: barneyr@EXEMPLO.COM.BR
phone: (048) 555-XXXX []
A sintaxe do comando whois pode diferir entre sistemas, a leitura do manual (man whois) poderá sanar eventuais dúvidas.
No exemplo acima, os contatos do domínio exemplo.com.br são Fred Flintstone e Barney Rubble, o e-mail de cada um é listado juntamente com o nome e telefone.
Nota: se o seu sistema não tem o comando whois, existe uma interface web para o mesmo em www.networksolutions.com/cgi-bin/whois/whois
Preparando a segurança
Já vimos o que fazer quando se detecta uma invasão no sistema. Entretanto, trabalho, dor de cabeça e cabelos brancos podem ser poupados se você preparar sua segurança adequadamente, antes mesmo de expor seu sistema ao acesso de usuários. Existem alguns pequenos truques e técnicas (ok, alguns nem tão pequenos assim) que podem facilitar sua tarefa de manter os intrusos do lado de fora, e até mesmo de voltar ao ar rapidamente após sofrer um ataque bem-sucedido.
Faça backups regularmente
Políticas de backup são complexas o suficiente a ponto de não as abordarmos neste documento (quem sabe em um próximo?), mas convém registrar algumas idéias sobre o assunto.
Se você tem 650 MB, ou menos, de dados para armazenar, que tal começar a gravar regularmente em CD-ROM? Eles são portáveis, relativamente resistentes (se bem acondicionados), confiáveis e não-regraváveis. Caso você realmente precise gravar grandes volumes de dados em fitas, lembre-se de protegê-las contra gravação antes de guardá-las, e de sempre verificar se estão corretamente gravadas, ainda que por amostragem. Lembre-se também de armazenar seus backups em local seguro, com cópias fora do seu laboratório.
Uma estratégia comum de backup utiliza 6 fitas - 4 para os dias da semana, uma para as sextas-feiras pares, e uma para as sextas-feiras ímpares. Execute um backup incremental todos os dias, e um completo nas sextas-feiras.
Dê segurança aos diagnósticos
do sistema
O syslog é uma ferramenta importantíssima para acompanhar o que se passa em qualquer sistema UNIX, e você deve fazer o máximo para garantir que os dados armazenados por ele sejam confiáveis. Um primeiro passo é fazer com que os seus arquivos (geralmente em /var/log) possam ser lidos e escritos apenas por usuários privilegiados; mas você pode avançar mais. Uma possibilidade é anexar uma impressora local de baixo custo ao seu sistema e configurar o syslog para imprimir nela uma segunda cópia das mensagens relacionadas à segurança. Nenhuma invasão via rede conseguirá apagar este registro... Outra possibilidade é utilizar o serviço de syslog via rede, gravando uma cópia dos seus logs em um servidor considerado como seguro (um servidor que não esteja diretamente exposto à Internet). Não é difícil configurar este serviço; leia o manual do syslog.conf para mais detalhes.
Além de gravar os logs, lembre-se de lê-los com atenção - e regularmente. A inspeção dos logs deve fazer parte da sua rotina, ou através de ferramentas de filtragem automática, bem configuradas. Dê especial atenção ao auth - Múltiplas falhas de login costumam estar associadas a tentativas de invasão.
Alterar os logs da máquina faz parte dos procedimentos-padrão de invasão. Portanto, se você notar que alguns dados gravados no log impresso, ou no syslog remoto, não constam no seu log local, fique alerta: é quase certo que você está com o seu acesso de superusuário comprometido. Se você não tem os logs impressos ou armazenados em um servidor remoto, pode ser mais difícil notar que eles estão sendo alterados. Em todo caso, comparar seus logs com os que estão gravados em sua fita de backup pode ajudar. E lembre-se: simplesmente não há desculpas para não ter um esquema regular de backups.
Aplique todas as atualizações
de segurança
A grande maioria dos usuários de Linux instalam o sistema a partir de um CD-ROM. Os CD-ROMs não são caros e não é difícil obter novas cópias a cada mês, e manter o sistema sempre atualizado. Entretanto, isto está longe de ser o suficiente. Sempre que é descoberta uma nova falha de segurança, os programas e técnicas para tirar proveito desta falha (os chamados exploits) multiplicam-se a uma velocidade alucinante através da Internet.
De modo geral (embora não em 100% dos casos), a solução para o problema é divulgada quase que simultaneamente com o surgimento do respectivo exploit. A diferença básica aqui é: os possíveis invasores, incluindo tanto os garotos de 15 anos que acham divertido invadir e danificar sistemas quanto os profissionais que irão tentar obter cópias dos seus valiosos bancos de dados sem deixar nenhum vestígio, estão atentos ao surgimento de novos exploits, e provavelmente os testarão no seu sistema (de fato, eles utilizam
parsers que testam rapidamente uma longa série de redes e domínios, mesmo que estes não sejam conhecidos ou divulgados). E você? Quanto tempo faz desde que você não lê todas as mensagens da Bugtraq, deixou de ir mais de uma vez ao dia no Security Focus e esqueceu de inscrever sua nova conta de e-mail na lista de anúncios de atualizações do seu fornecedor de sistema operacional?
Outras técnicas
Naturalmente, fazer backups, manter logs e estar bem informado e atualizado não são fatores suficientes para garantir a segurança do sistema. Eles foram citados aqui apenas porque são os alicerces sobre os quais se constrói um sistema seguro. Além daqui, você precisará seguir com outros guias, que lhe ensinarão as técnicas necessárias: construção de firewalls, segurança de servidores de artigos, criptografia, configuração de filesystem, configuração de usuários e senhas, e muito mais. Algumas sugestões de leitura são:
- Livros: UNIX System Administration Handbook (ed. Prentice Hall), Practical UNIX & Internet Security (ed. OReilly), Maximum Security: A Hackers Guide to Protecting Your Internet Site and Network (SAMS). Existem vários outros livros sobre o assunto, alguns até mesmo em Português.
- HowTos: os seguintes HOWTOs estão disponíveis em linuxdoc.org: IPCHAINS-HOWTO, NET-3-4-HOWTO, Security-HOWTO, Firewall-HOWTO e vários outros. Grande parte das informações básicas sobre a configuração de segurança pode ser encontrada nestes textos. E todos os seus invasores potenciais já os leram...
- Outros sites: securityfocus.com, insecure.org, tripwire.org, www.nic.br, freshmeat.net/appindex/console/firewall%20and%20security.html, www.cerias.purdue.edu/coast/ids (este último contém links para softwares de detecção de invasões), www.linuxcare.com/viewpoints/view/04-04-00.epl (um plano de 12 passos para a segurança efetiva).
Entrevista com Rodrigo Albani Campos
Revista do Linux - Digamos que eu seja o responsável por uma rede particular, por exemplo, de um escritório de advocacia, conectada à Internet através de um provedor comercial, e detectei - e bloqueei - uma invasão. A quem devo contatar?
Rodrigo - Bem, nesta situação em que você já sabe quem é o invasor e bloqueou o acesso do mesmo e/ou corrigiu a falha de segurança, os próximos passos são os seguintes:
- Identificar o contato técnico responsável pelo domínio ou, na falta de DNS reverso para o IP do invasor, o contato técnico responsável por aquela rede. Isso pode ser feito de diversas maneiras - veja quadro.
- Após a identificação, deve ser elaborado um e-mail com as seguintes informações:
- Natureza do ataque
- Impacto do ataque
- Os logs da invasão, que demonstram a origem da mesma
- O TIMEZONE onde você se encontra (isso é essencial e é geralmente esquecido!), pois sem essa informação o contato de segurança do provedor não terá como confrontar os logs do ataque com os seus registros de acesso, de forma a identificar quem estava utilizando o
serviço naquele momento.
Não esqueça de que este e-mail estará sendo enviado para pessoas que geralmente não têm culpa alguma do ataque, portanto, procure manter um tom cordial.
RdL - Quem deverá receber esse
e-mail?
Rodrigo - Isso é descrito na RFC 2142 (ftp.isi.edu/in-notes/rfc2142.txt), que sugere os endereços de e-mail comuns para serviços, funções e cargos.
O destino do mail deverá ser abuse@provedor.do.invasor.com.br, com cópias para os contatos previamente identificados no passo 1.
Uma cópia adicional deve ser enviada para o endereço abuse@seu.provedor.com.br.
RdL - É necessário contatar algum órgão oficial de segurança?
Rodrigo - Inicialmente, não. Isso deve ser feito apenas nessas situações:
- Descaso dos contatos do provedor de acesso do invasor;
- Não existência da conta abuse no provedor de acesso do invasor;
- Reincidência da invasão ou da tentativa de invasão.
Nesse caso, seu mail deve ser enviado para o "Security Officer" do Brasil, através do endereço nbso@nic.br. Mais detalhes podem ser encontrados na URL www.nic.br/nbso.html.
RdL - Imaginando uma situação análoga à de nossa primeira pergunta, mas onde o responsável pela rede não seja capaz de bloquear ou impedir a invasão sozinho, a quem ele deve contatar?
Rodrigo - Em primeiro lugar, ele deve analisar o impacto da invasão no seu ambiente, e considerar a possibilidade de desconectar a máquina da rede imediatamente. Um backup das informações também deve ser feito após a identificação da invasão, em uma mídia diferente daquela em que o backup é feito regularmente.
Após tomar as cautelas acima, aí sim, deve-se notificar o contato de segurança de seu provedor, pelo
e-mail abuse@seu.provedor.com.br, ou com o responsável técnico pelo seu servidor (a pessoa que o instalou para você, por exemplo), solicitando que seja feita uma análise de segurança em seu sistema, visto que você não foi capaz de identificar a origem da invasão ou a falha de segurança que permitiu a mesma.
Adicionalmente, pode ser uma
boa idéia verificar em listas de mail especializadas se ataques similares têm acontecido nas ultimas semanas em outras empresas. Infelizmente, no Brasil os sites e listas que oferecem informações sérias sobre isso são exceções. No mundo dos BSD Unix, eu posso recomendar a bsd-l@br-unix.org.
RdL - Que responsabilidade cabe ao provedor do qual estão partindo os ataques ou probes? E até que ponto ele é obrigado a apurar os fatos?
Rodrigo - Isso ainda não é muito claro, visto que a legislação ainda não trata dos crimes digitais especificamente, tendo de encaixar esse tipo de atividade em outras leis.
De qualquer maneira, existe uma prática comum em todos os provedores sérios de tomar atitudes.
Como já expliquei, caso haja descaso do provedor, o ideal é que se envie mail para o "security officer" para que ele tome uma atitude efetiva.
RdL - Que tipo de informação ele é obrigado a me fornecer, e como o administrador da rede invadida pode convencê-lo?
Rodrigo - O provedor de fato não tem nenhuma obrigação de lhe oferecer informações sobre o invasor, mesmo porque isso geralmente fere regras contratuais entre o provedor e seus clientes. No entanto ele tem a obrigação de tomar alguma atitude com o mesmo, desde uma simples notificação até o cancelamento de
sua conta de acesso.
Existem algumas "dicas" para convencer o provedor de tomar alguma atitude; note que isso só deve ser feito se houver um descaso do provedor:
- Mande mail novamente para o contato de segurança do provedor com cópia para o "security officer", e deixe claro no texto do seu mail que ele está indo com cópia para o nbso.
- Faça "barulho", mande mail para todos no provedor, como webmaster, abuse, security, adm, etc.
- Aja como um profissional; usar termos que façam você parecer um moleque só vai piorar as coisas.
- Forneça informações realmente relevantes, atenha-se ao incidente.
RdL - Na sua experiência, quais os ataques mais comuns no Brasil?
Rodrigo - Os ataques mais comuns, sem dúvida nenhuma, são os causados por ferramentas amplamente disponíveis na rede, como NetBus, DeepThroat, BackOrifice, etc. Esse tipo de incidente representa até 70% dos e-mails que chegam à caixa postal abuse@matrix.com.br, e geralmente apenas uma simples notificação basta para que o "cracker" deixe de utilizar essas ferramentas.
Em segundo lugar vêm os port-scans, que aparecem com certa freqüência, os alvos preferidos são instituições; educacionais e sites conhecidos como os da NASA.
Em terceiro lugar aparecem os incidentes mais sérios, que são invasões efetivas dos sistemas.
Esses dois últimos são tomados por mim com mais atenção, e em alguns casos a conta do usuário é cancelada. Isso depende de um julgamento pessoal quanto à seriedade do caso.
RdL - Para finalizar, se você
pudesse indicar um website único
e uma única lista para o administrador de redes que quer ficar bem
informado sobre falhas e atualizações, quais seriam? E quais os livros que você considera como leitura obrigatória?
Rodrigo - A lista e o site que eu recomendaria são ambos da Security Focus (também conhecida como bugtraq) - www.securityfocus.com.
Os livros que eu considero essenciais na biblioteca do administrador de sistemas - preocupado com a segurança de sua rede - são o Practical Unix and Internet Security (ed. OReilly) e o Firewalls and Internet Security: Repelling the Wily Hacker (ed. Addison-Wesley).
Ambos são livros conceituais, com regras que se aplicam a qualquer sistema. Não importa que sua rede tenha 10 máquinas ou 1000 máquinas, as informações contidas nesses livros são muito úteis.
|