TESTES DE INTRUSÃO – Sua empresa precisa de um? NETCOM 2011 Ricardo Andrian Capozzi Professor e consultor de Segurança da Informação
SÃO PAULO – SP – BRAZIL
Resumo Teste de Invasão, Testes de Intrusão, Penetration Test ou simplesmente PenTest, são nomes dado ao processo metodológico estruturado de busca e identificação de vulnerabilidades por simulações de tentativas de acesso não autorizado da indisposição à infra-estrutura de T.I., compostas por redes, sistemas e aplicações. No decorrer deste processo, é feita uma análise ativa das vulnerabilidades e deficiências da atual infra-estrutura que suporta o negócio da empresa, compondo uma matriz dos recursos analisados com as potencias ameaças e pontos de acessos ao perímetro de autenticação da empresa, enfatizando o possível comprometimento da disponibilidade, integridade e confidencialidade das informações.
2
1-Introdução. Diariamente são descobertas novas vulnerabilidades que ao serem exploradas podem abalar os pilares da Segurança da Informação, acarretando prejuízos e danos à imagem da empresa. Para um projeto computacional, alocam-se vários fornecedores de T.I., por vezes com acessos privilegiados e que, por questões de prazos e orçamentos lançam mão dos testes de segurança em seus códigos ou na etapa de implantação de suas infra-estruturas. Apontar e corrigir falhas após o sistema estar em produção é somente uma parte paliativa do trabalho do Gestor de Segurança da Informação. Preparar-se para o inesperado é outra. É uma questão de tempo para um sistema ser comprometido ou fraudado. Logo, é melhor que seja executado monitoradamente por quem se confia, pois há um largo abismo entre um ataque simulado planejado e controlado contra um ataque real não esperado. Igualmente, faz-se necessário criar uma forma de abordagem proativa para identificar tais falhas, alertando as áreas relacionadas da empresa em busca de soluções que mitiguem o risco inerente a T.I. da empresa. Estas abordagens são denominadas por Testes de Penetração ou Testes de Intrusão. 2-Objetivo. Este artigo propõe descrever as principais características (técnico-gerencial) e etapas de um Teste de Intrusão, sua facilidade de execução, principais expectativas e alguns dos seus riscos seguindo um modelo estruturado com etapas bem definidas, alinhados com o Plano Diretor de Informática e Segurança da empresa. 3-Motivação. O problema em relação à Segurança da Informação governamental e corporativa ganha atenção da mídia e dos especialistas em Segurança e T.I. somente após ações dos invasoresCrackers, que por suas tentativas logrando ou não êxito abalam os alicerces da Segurança da Informação comprometendo as atividades e a imagens da empresa e dos sistemas que suportam o negócio, gerando sanções legais a seus administradores. Os ataques cibernéticos chegaram a um nível inédito depois do lançamento do verme Stuxnet entre outras pragas virtuais e das novas abordagens que tem a Engenharia Social como base para seus ataques e invasões. Em de 2010, usuários domésticos e empresas lutaram para se manter ativas enquanto eram submetidas a uma infinidade de malwares, como vírus, trojans, spammers, e botnets. As novas tecnologias de virtualização vêm carregadas de oportunidades e ameaças digitais. Esta realidade fomenta a pressão sobre os profissionais de Segurança da Informação, e ocupou os fabricantes de softwares de segurança na busca e desenvolvimento por soluções, exigindo novas estratégias para antever as vulnerabilidades e manter a operacionabilidade de seus sistemas. 4-Avaliações de Segurança. Destarte, há duas formas diretas de se agir na Segurança da Informação. 1ª Reativamente: Ação executada sempre após uma invasão ou pelo conhecimento de uma tentativa de invasão conhecida como ataque, entendendo seu Modus Operandi e criando um plano para mitigar as vulnerabilidades que não foram previstas e/ou monitoradas pela Análise de Risco. Esta abordagem atua em todas as camadas da empresa, e deve envolver 3
todas as áreas de risco do incidente. A vantagem, se é que há uma, é que se corrige uma falha que foi descoberta e explorada por um terceiro – nem sempre com boas intenções. Neste artigo o atacante é denominado Invasor ou Cracker. 2ª Proativamente: Neste caso a Análise e Avaliação dos Riscos dos ativos envolvidos em T.I. são fundamentais, para não dizer essenciais. Há vários métodos e metodologias, bem como uma ampla gama de ferramental disponível para se elaborar e prever a ponto de poder mitigar os problemas com segurança em que se pode aceitar e gerenciar os riscos inerentes ao negócio. É nesta abordagem que se enquadram os Testes de Intrusão, executadas pelos especialistas em Segurança da Informação. Neste artigo, o especialista em T.I. é denominado Certified Ethical Hacker - CEH. Ambas as abordagens despendem recursos para serem elaboradas, aplicadas e mantidas, entretanto, por sua natureza preventiva, a segunda é indiscutivelmente a que não afeta a imagem da empresa, por vezes incomensurável e irretratável. Algumas vezes faz-se necessário dividir a empresa em partes, ou melhor, sistemas, e estes, por módulos, que devem ser testados a exaustão antes de entrarem em ambientes de produção. Alguns o chamam de Pilotagem ou UAT – User Accept Test. Entretanto, trata-se de abordagens diferentes, pois neste caso o que se busca são falhas de segurança – vulnerabilidades, e não falhas funcionais que afetem a sua operação. Ao se planejar um projeto de segurança, deve-se avaliar e analisar o cenário de T.I. existente relativos às questões físicas (acessos a perímetros, redes, workstation, serves) e lógicas (acesso à banco de dados, domínios, aplicativos). Estas avaliações têm objetivos diferentes e está dividida em categorias de ações: 4.1-Avaliações Operacionais: Resultam de uma investigação minuciosa das diretrizes, políticas e procedimentos, ajudando a identificar o estado atual dos controles de segurança implementados. 4.2-Avaliações de Vulnerabilidades: Define todos os pontos de entrada possíveis ao perímetro organizacional. Seu foco é mais abrangente do que os Testes de Intrusão, todavia não explora potenciais falhas e tende a gerar relatórios com altos de registros de falsos positivos e negativos. Os dados utilizados são superficiais, mascarando possíveis vulnerabilidades e dificultando a possibilidade em se mensurar e relacionar o real risco que uma vulnerabilidade explorável pode impactar o recurso testado. 4.2.1-Auditoria e Detecção de Invasões: É mais abrangente e condensa os resultados de outros testes validando quais ferramentas de detecção de invasão como IDS/IDP´s, estão funcionado como pré-visto. 4.2.1.1-Testes de Intrusão: Trata de descobrir e explorar caminhos de como obter acessos não autorizados, ou seja, as rotas de ingresso em potencial aos perímetros de autenticação da empresa. São simulações monitoradas de um ataque a um sistema ou rede, determinando o risco real das vulnerabilidades; e, conseqüentemente priorizar suas devidas correções. Segundo o dicionário Aurélio, teste pode ser: Prova pela qual se colhem amostras de comportamento em situações bem determinadas, de tal forma que os resultados em diferentes indivíduos possam ser objetivamente comparados.
4
2. Exame crítico ou prova das qualidades de uma pessoa ou coisa. 3. Prova, experiência, exame. 4. Ensaio, verificação.
Já intrusão: Ação de se introduzir, sem direito ou por violência. 2. Entrada ilegal, sem convite. 3. Usurpação, posse ilegal.
5-Objetivo da Realização dos Testes de Intrusão. Os Testes de intrusão são vistos com uma subfunção ligada à Auditoria de Sistemas. Visa identificar ameaças e vulnerabilidades através da realização de ações que simulem ataques aos ativos de T.I., tentando acesso aos sistemas que requerem autorização, como banco de dados, sistemas operacionais, servidores, roteadores, dispositivos móveis, entre quaisquer que contenham informação privilegiada e criticas para empresa. Estes acessos não autorizados possibilitam a manipulação (habilitação/desabilitação) de alguns dos seguintes atributos – Read, Write, Execute, ou a possibilidade de elevação de privilegio para a função de Administrador. São simulações controladas de um ataque, objetivando avaliar a segurança. No decorrer do processo, uma análise ativa de vulnerabilidades e deficiências técnicas da infra-estrutura física e lógica é promovida, compondo os objetos em questão (como sistemas e localidades acessíveis interna e externamente), destacando as avaliações que mantenham a disponibilidade, integridade e confidencialidade das informações. Em suma, são ações executadas por uma equipe de especialistas em T.I. (programadores, DBA´s e arquitetos de redes) para que tentem comprometer a operação normal e/ou invadir e acessar (ou penetrar) redes e sistemas da empresa formalmente (sem hostilidade), a fim de descobrir vulnerabilidades (falhas de software, hardware, redes e serviços mal configuradas), que gerem perdas e degradem o negócio. Se um Teste de Intrusão apontar falhas que permitam ou facilitem o acesso não autorizado ou seu comprometimento, em sua essência logrará êxito. Entretanto, se o mesmo não apontar falhas, também não implica em afirmar que elas não existem, e sim apenas que segundo a metodologia usada (ou seja, a mesma conhecida pelo atacante) não se registrou ameaças que possa impactar o negócio. Há um adágio em segurança que afirma: Não existe sistema 100% seguro, e os que existem estão desligados! Como complemento, pode-se criar uma metodologia que envolva apenas testes usando tento a Engenharia Social como forma de abordagem de invasão após esgotarem os testes aos focando os recursos tecnológicos. Por vezes, os gestores de segurança abstraem que este é o elo mais fraco da corrente Infosec renunciando tal abordagem. 6-Equipe Executora. Dado a hetereogenidade e complexidade dos sistemas e das redes que o suportam o negócio, é difícil apontar um único especialista que possa atuar em todas as frentes de T.I. para executar de tais testes. O ideal é que seja feita por uma equipe alheia sempre sob a supervisão de um tutor. Neste ponto pode haver alguma resistência do pessoal interno, pois será posto a prova às qualidades técnicas dos especialistas de T.I. desta empresa, haja vista que lançar mão de uma equipe interna possibilita influenciar os resultados dos testes pela relação de coleguismo. Entretanto sugeri-se a sinergia entre desenvolvedores/T.I. e a equipe de Testes, sem estímulos a concorrência, contendo um NDA - Acordo de Confidencialidade que ira proteger a área testada contra a divulgação não autorizada de quaisquer resultados ou dados identificados; e, eximindo a equipe de Teste a quaisquer responsabilidades excludentes. 5
Semanticamente, seus executores são por conhecidos no ramo por CEH - Certified Ethical Hacker (Hacker Ético Certificado). É um jargão próprio que referencia profissionais tecnicamente especializados em segurança e contra-segurança da informação que acessam recursos não autorizados registrando suas evidências e métodos testando a eficácia da organização em proteger recursos e informações sensíveis. Se ao final do teste a equipe CEH não lograr êxito, é forte indicativo de que a infra ou sistemas da empresa estão bem alinhados com as diretrizes de segurança para as vulnerabilidades descobertas até momento. Entretanto, a idéia de que "deram o melhor que podiam e não obtiveram nenhuma intrusão com êxito" não é real e pode gerar uma falsa sensação de segurança. A infra-estrutura corporativa pode ter vulnerabilidades que a equipe CEH não tenha encontrado ou talvez elas não existam no momento do teste, mas podem vir a existir após alguma mudança na configuração da rede, ou quando alguém a descubra via outros métodos. Naturalmente toda ciência epistemológica tende a refutação de teses. O CEH foi concebido e desenvolvido pela organização EC-Council (Conselho Internacional de e-Commerce) tornando-se proprietária e referencial a uma série de certificações relacionadas como o License Penetration Tester.
Figura 1: Logo do Certificado e Ethical Hacker – EC-Council.
Em relação composição da equipe executora, indica-se que: • • •
Deve ser executada por uma equipe alheia a atual equipe de T.I., que apenas mostre o grau de facilidade e/ou dificuldade a que se está exposto determinado ativo. Quando possível, escolher uma equipe/empresa especializada e que use ferramentas e metodologias certificadas. Não lançar sorte ou expectativas de que a mesma equipe que executa tais testes seja as que os corrija ou que apontem soluções quando necessário. Os gestores analisarão se a falha será corrigida ou se aceitará o risco de conviver com ela
7-Embasamento Legal. Segundo exigência número 11.3 do PCI DSS (Payment Card Industry Data Security Standard), impõe-se a execução de testar regularmente os sistemas e processos de segurança. “As vulnerabilidades são continuamente descobertas ou introduzidas por novos softwares. Os sistemas, processos e softwares devem ser testados freqüentemente para certificar-se de que a segurança está sendo mantida ao longo do tempo e através das mudanças. Execute um teste de penetração na infra-estrutura da rede e aplicativos pelo menos uma vez por ano e após qualquer modificação ou upgrade significativo da infra-estrutura ou aplicativo”.
6
Outros regulamentos como o Sarbanes-Oxley (SOX), California Senate Bill 1386 (SB 1386), HIPAA (Health Insurance Portability and Accountability Act) e Basilleia II exigem que as instituições protejam suas informações. As organizações devem considerar várias alternativas para aumentar a segurança de suas redes corporativas, com a execução de testes que aferem, comprovem e garantem os pilares da Segurança da Informação ou do tratamento de seus riscos. 8-Embasamento Normativo para Testes de Intrusão. Basicamente trata as duas macro-formas de se executar. 8.1-Não estruturado: Executa-se o ataque sem planejamento, aviso prévio ou alvo especifico. E como lançar mão dos varredores de vulnerabilidades por faixa de endereços IP´s. Este tipo de ação se assemelha às práxis dos Scripts Kids, são não benquista dentro de um ambiente profissional. 8.2-Estruturado: Visando maior qualidade e confiabilidade, convém a execução dos testes de alguma forma estruturada. A empresa testadora pode criar e adequar sua própria metodologia ou guiar-se pelas normas e padrões internacionais publicadas, como OSSTMM/ISECOM, NIST 80042, OWASP ou ISSAF-PTF, aliados sempre ao uso de ferramental específico para tal finalidade.
Figura 2: Selo genérico do OSSTMM.
Um roteiro adaptado recomendado pelo “Guideline Network Test Security”, publicado pelo Núcleo de Comércio dos EUA por meio do NIST e que imita a ação de um atacante, estrutura sua abordagem de ataque com os seguintes macro-passos: Planejamento, Observação do Alvo (Footprinting), Enumeração, Exploração, Acesso/Invasão, Elevação de Privilégios, Manutenção e Evasão. 9-Planejamento das Atividades Relacionadas. Utilizar técnicas mais próximas da realidade, simulando dados e situações cotidianas, pois da sua negativa o teste pode se tornar inválido e frustrante. Os realizadores do teste, por definição, não são usuários legítimos. 9.1-Escopo do Teste. Consiste em definir se a sua realização será de forma remota ou presencial, acionados internamente ou externamente; e, anunciada ou não anunciada indicando se a equipe de TI terá ciência da execução dos testes ou não. De acordo com o nível crítico de informações que serão repassados sobre o ambiente, donde a equipe de CEH pode ter acesso a informações privilegiadas, os testes são classificados como: • Caixa Preta ou Blind: Sabe-se apenas detalhes mínimos do ambiente. 7
• • •
Caixa Branca ou Not Blind: Conhece, mas ignora os detalhes do ambiente. Caixa Cinza ou Híbridy: Sabe-se apenas alguns pontos do ambiente. Audit Code: Obtém e analisa apenas o código fonte.
9.2-Preâmbulo • • •
Definir qual será o alvo e horário de execução. Catalogar e registrar todas as variáveis dos ambientes a serem testados, guardando-os com segurança. Quando possível criar uma cópia do ambiente com validação Hash.
9.2.1-Identificar e Valorar e Ativos da Informação. Determinar formas e critérios para se classificar os ativos da informação. Em uma empresa os cenários são diferentes e envolvem várias áreas e riscos, a exemplo de um ERP, que integra as funções operacionais da empresa. Isto porque, ao se ter acesso em um ponto do sistema, este pode ser expandido, alcançando outros perímetros da empresa. Ao escolher destinos-alvo, deve-se quantificar o custo que a empresa teria se os dados do sistema fossem expostos a invasores, concorrentes ou terceiros alheios à corporação. Usa-se o valor de mercado dos ativos para determinar quais sistemas terão prioridades na avaliação e também para dimensionar corretamente os recursos humanos da equipe executora. 9.2.2-Identificar Ameaças Associadas aos Ativos Alvos dos Testes de Intrusão. Há varias formas de ameaças, e cada uma delas representas graus de riscos diferentes aos ativos da empresa. Nesta etapa, se determina qual abordagem será usada para exploração dos ativos. Não existe melhor forma de se proteger virtualmente do que pensar e agir como um Invasor. Os Testes de Intrusão ocorrem depois de se identificar e avaliar os ativos que estão contabilizados no projeto original de segurança. Já a Análise de Risco deve determinar a probabilidade de ocorrência e seus respectivos impactos. 10-Do Ambiente. Dependendo da criticidade dos recursos a serem testados, indica-se a copia fiel do ambiente gerando seu Hash, garantindo sua integridade, ou que os execute em algum tempo que este recurso esteja menos utilizado, como um final de semana. Se o teste é apenas intrusivo e não destrutivo, um BCP & DR não são premissa para tal execução. No entanto, deve-se atentar para o fato de execução em ambiente de produção. Se desejar fazê-lo para exaurir quaisquer dúvidas em relação à eficácia do testes na busca e exploração de vulnerabilidades, faz-se necessário ter disponível e atualizado os Planos de Continuidade de Negócios e Recuperação de Desastres, pois como resultados alguns testes podem ocasionar a comprometimento ou indisponibilidade do recurso analisado. É importante a definição de parâmetros que identificam os pontos onde o teste irá atuar e sua validade. O fluxo abaixo aponta uma breve descrição itenizada das etapas de um Teste de Intrusão. Este modelo de invasão tem aderência com os CEH, da EC-Council.
8
11-Fluxo Macro dos Procedimentos de um Teste de Intrusão
PLANEJAMENTO NOT BLIND
HYBRID
BLIND
AUDIT CODE
OBSERVAÇÃO VARREDURA ENUMERAÇÃO BUSCA POR FALHAS BURLAR PROTEÇÃO ENGANAR USUÁRIO
EXPLORAR FALHAS
EXPLORAR CONFIGURAÇÕES
RECUSAR SERVIÇOS
ENGENHARIA SOCIAL
B.O.F.
FORÇA BRUTA
D.O.S.
MALWARES
INEÇÃO DE CÓDIGO
SNIFFERS
D.D.O.S..
CONTRLE DE ACESSO
C.S.S.
DESABILITAR SERVIÇOS
D.R.D.O.S.
EXPLOITS
R.A.S..
WARCHALKING
MANIPULAÇÃO DE CREDENCIAS
Figura 3: Sugestão de um fluxo para Testes de Invasões com suas subfases e técnicas utilizadas.
12-Alinhamento Metodológico dos Testes. Para garantir sua a eficiência, deve-se incluem métodos simulados e estruturados em árvores de ataque, seqüencialmente de acordo com dados identificados previamente em cada etapa de invasão e em conformidade com os perfis e limitações de cada recurso testado. Esta ordem de ataques seguirá o fluxo de menor resistência a partir de pesos de dificuldade predefinida. Ao final de cada bateria ou no decorrer de sua execução, gera-se um relatório detalhado contendo toda informação criada ou armazenado nos recursos alvo dos testes registrados com data/hora e IP alvo, juntamente como a lista de todas as ferramentas e metodologias utilizadas. Destarte, saber-se-á o tempo para finalização dos testes alinhadamente com o definido no escopo do projeto. 9
Por fim, excuta-se a evasão, ou seja, se houver alguma informação remanescente, esta é removida, de modo a deixar o sistema o mais próximo do estado em que foi apresentado antes do serviço. 13-Descrição das Etapas Metodológicas. 13.1-Planejamento. Elaboração da estratégia e definição do escopo, bem como dos ativos e recursos a serem testados no esquema estruturado. 13.2-Observação - Footprinting. Levanta informações específicas sobre o sistema alvo, como localidade física, ISP, telefones de Administradores, etc. Técnica previa muito usada pela abordagem Engenharia Social. 13.3-Varredura ou Fingerprint - Network Probing e Coleta de Informações. Consiste na varredura em busca por hosts (workstatiosn, servidores, PDA´s ou similares), serviços, portas, protocolos e compartilhamentos ativos, rotas, S.O´s, N.O.S´s, contas sem senhas ou guest, arquivos e configurações padrão, enumeração de NETBIOS e DNS, entre outros serviços. 13.4-Enumeração. Passo que sucede a varredura, envolve a enumeração de recursos para direcionar o rumo da invasão, visando descobrir quais os serviços veiculados as respectivas portas em estado de escuta, além do sistema operacional e versão do alvo. 13.5-Busca por Falhas. Após descobrir quais os serviços existentes executados no ambiente operacional da empresa, busca-se por suas prováveis falhas (vulnerabilidades) publicadas. São serviços rodando em servidores ou sistemas operacionais ativos que imprimem seu sockets (IP + porta + protocolo). O seguinte passo é partir para a exploração disponível de alguma vulnerabilidade descoberta para este serviço/sistema, ou de acordo com a capacidade técnica, entender o código da aplicação e desenvolver suas próprias técnicas de engenharia de exploração – conhecidas como exploits, ou usar algum Framework disponível no mercado. Caso não haja capacidade de analisar o código fonte da aplicação pela busca de falhas de codificação, há vários sítios que publicam informações sobre vulnerabilidades que podem ser exploradas apenas digitando-se o nome serviço ativo e versão. Entretanto, qualquer ferramenta ou metodologia deve prever a busca por vulnerabilidades não corrigidas junto a seus respectivos fabricantes e no banco de dados National Vulnerabilitie Data Base do NIST, conhecido como CVE – Commun Vulnerabilitie Exposures, bem como o CERT Cordination Center, Bug Trap, SANS ou Security Focus. 13.6-Burlar Proteção: Com base nas falhas detectadas esta etapa visa buscar formas para realizar um ataque que rompa as barreiras de proteção como Anti-Malwares, Firewalls, ACL´s e IDS´s. Neste ponto o teste pode tomar diferentes rumos, de acordo com as condições do sistema analisado, que sinalizarão o melhor procedimento para seguir a intrusão. As visões descritas abaixo podem ser usadas de forma isolada, integrada ou colaborativa somando esforços para realização da quebra da segurança dos sistemas testados. 13.6.1-Enganar Usuários: Procura ludibriar o usuário por meio de conversas ou contatos explorando a relação de confiança e boa fé entre outras características dos seres humanos como curiosidade, simpatia, medo, confiança ou culpa, induzindo-o a executar algum procedimento que comprometa a segurança. A abordagem pode ser realizada 10
pessoalmente, via telefone, e-mail, correspondência ou qualquer outro meio de comunicação. 13.6.2-Explorar Falhas: Caso a etapa de busca por falhas tenha apresentado resultados significativos, pode-se focar na sua exploração para tentar obter a invasão do sistema por esta técnica. 13.6.3-Explorar Configurações: Envolvem técnicas que visam obter invasão por meio de ativações fracas de senha e falhas nas configurações dos dispositivos e recursos de rede, como senhas padrão ou previstas em um dicionário. 13.6.4-Recusar Serviços: Esta possibilidade não abrange exatamente o objetivo de penetrar no sistema, mas de provocar a interrupção dos serviços. Dependendo dos objetivos do ataque representa uma poderosa técnica, que pode ser explorada caso as demais opções resultarem em tentativas infrutíferas, quando a motivação do agente agressor é a ganância. Não compromete a integridade nem a confidencialidade dos serviços, apenas a sua disponibilidade. 14-Técnicas Utilizadas Dependendo do tipo de falha encontrada lançam-se inúmeros ataques para corroborar ou refutar o objetivo do Teste. Segue-se uma lista explicativa não exaustiva de algumas abordagens técnicas não enfatizando quaisquer ferramentas ou sistemas para tal execução. 14.1-Engenharia Social: Esta técnica, ou melhor, forma de abordagem com foco no recurso humano deve ser utilizada desde que faça parte do escopo do projeto de Teste de Intrusão ratificando ou não com as ações estritamente de cunho tecnológicos. 14.2-Malwares – Criar e enviar um código malicioso, com um vírus e/ou Trojan e monitorar seu comportamento nas redes, para testar as eficácias dos Anti-virus ou se a política de norma para abertura de e-mails com anexos foi respeitada pelos usuários. Este vírus deve ser do tipo fake, ou ser feito em ambiente mirror (clonado) com maquinas isoladas a rede da empresa evitando sua disseminação. 14.3-Controlar Acesso: Simula ser um usuário com recursos válidos explorando uma relação de confiança, como abordagem técnica Man-In-The-Middle. 14.4-Estouro de Buffer: Buffer Overflow são vulnerabilidades que exploram o uso de mémoria e seus ponteiros, tendo suas váriações conhecidas como Stack Overflow e Heap Overflow. É considerado o calcanhar de Aquiles da segurança computacional, pois ainda é o principal método de exploração pela inserção e execução de código malicioso com a finalidade de se deixar um backdoor como um rootkit ou provocar um Denial of Service. 14.5-Injeção de Código: Busca explorar aplicações que não validam entradas do usuário de forma precisa. Assim, podem-se inserir códigos que serão interpretados pelo servidor. Esta técnica pode ser executada via formulários, URLs, Cookies, passagem de parâmetros e argumentos as funções e variáveis, entre outras. O método mais usado é a injeção de consultas SQL, que visa exposição e/ou alteração de informações contidas nos bancos de dados. 11
14.6-Cross-Site Script (CSS): Ataques de CSS não persistentes surgem quando dados passados são usados sem validação para gerar uma página de resultados. Já em sua forma persistente, os dados passados pelo cliente serão gravados diretamente no servidor, estando publicamente acessíveis, sem as devidas validação ou restrições. 14.7-Exploits: São scripts e programas designados para exploração de vulnerabilidades. É uma ocorrência de um padrão de ataque criado para comprometer uma parte do código do sistema alvo. O ato de executar uma exploração é conhecido como ataque. 14.8-Descoberta de Senhas de Autenticação por Força Bruta: Busca por serviços de autenticação ou controle de acessos vulneráveis a ataques de tentativa e erro de descobrimento de senhas, enumerando os candidatos em potencial. O custo computacional (tempo) é diretamente proporcional ao número de candidatos e inversamente proporcional para os casos de senhas que seguem as Diretrizes de Criação de Senhas sugeridas pela norma ISO/IEC 17799:2005 Seção 11.3.1. Este teste visa analisar a qualidade das políticas e normas de elaboração, manutenção e custódia de chaves secretas. 14.9-Captura Passiva e Análise de Tráfego e Pacotes de Rede – Sniffing: Verifica se é possível identificar e obter informações sensíveis trafegadas sem as devidas proteções (criptografia ou esteganografia) através da captura e manipulação de tráfego de rede visando testar algoritmos e protocolos utilizados. Seu objetivo não é quebrar criptografia. 14.10-Desabilitação de Serviços de Segurança: Possibilidade de desativar componentes e serviços como Proxies, Firewall, Anti-Malwares, sistemas de Alarmes, CFTV, salas cofres, acessos a CPD´s, entre outros que visem garantir e preservar a integridade física e lógica da empresa, previstas na norma ISO/IEC 17799:2005 Seções 9 e 11. Por vezes, para lograr êxito faz-se uso de Engenharia Social complementarmente. 14.11-Conexões Remotas: Busca conexões ativas ou em estado de espera que podem ser estabelecidas via RAS, RADIUS, VPN´s, sem autenticação ou com baixo nível de segurança. 14.12-Warchalking: Varre o espectro de redes Wireless excedendo o perímetro da empresa em busca de conexões abertas ou sem o mínimo de criptografia exigida pela política de segurança. 14.13-Manipulação Insegura de Credenciais: Aferi as credencias enviadas via HTTP, HTTPs mas com o formulário de login enviado via HTTP, armazenadas em Cookies, passadas na URL via Query String ou passadas do servidor para o cliente em clear text, como remember myself. 14.14-Negação de Serviço Forçada: Submete host alvo do teste a uma situação anômala e extrema, obrigando a responder solicitações de acesso ou conexão além de sua capacidade de processamento, degradando seu desempenho ou maturando sua indisponibilidade completa, geralmente através de esgotamento de recursos. Pode ser executada de forma local, remota ou distribuída.
12
15-Metasploit. Dados as vulnerabilidades e vetores de ataque disponíveis, os ataques são disparados visando à obtenção de acesso não autorizado com o maior nível elevação de privilégios possível. Para cada vulnerabilidade identificada, busca-se o seguinte: • • • •
Confirmar ou refutar sua existência. Encontrar ou desenvolver código/ferramenta para Prova de Conceito. Documentar a metodologia usada para tal exploração. Obter acesso e, se possível, escalar privilégios, sem acionar alarmes de IDS/IDP.
Caso se identifique certa vulnerabilidade sem, contudo haver disponível e publicada alguma forma de explorá-la, uma alternativa e atentar para a utilização do Framework Metasploits. Trata-se de uma ferramenta Open Source criado por H.D.Moore contendo um conjunto das melhores plataformas de aprendizagem e investigação concebida especificamente com o objetivo de reforçar e acelerar o desenvolvimento, ensaio e utilização de exploits usada pelos profissionais da Infosec ou CEH. O Metaspolit Framework contém dezenas de exploits, payloads e ferramentas avançadas de análise que permitem testar vulnerabilidades em vários servidores e sistemas operacionais. Seu objetivo é criar um ambiente de pesquisa, desenvolvimento e exploração de vulnerabilidades de software, fornecendo o ferramental necessário para o ciclo completo da pesquisa, divido sucintamente em quatro fases: 1ª Descobrir um erro de programação que pode levar ou não a uma falha de segurança. 2ª Analisar a vulnerabilidade para determinar quais as maneiras pela qual a mesma pode ser explorada. 3ª Desenvolver o expolit após a fase de analise usando técnicas de engenharia reversa, análise e “debugação” do código, etc. 4ª Testar o expolit-fonte em diferentes ambientes e variáveis, service packs, hotfix, patches, e/ou diretamente no serviço ou recurso alvo. O expolit em si não refuta que a vulnerabilidade pode ser explorada, comprometendo o sistema.
Figura 4: Tela ilustrativa do Metasploit.
13
15.1-Exemplo de algumas ferramentas contidas no Metaspolit Framework msfconsole - metasploit em modo console msfcli - interface de automatização de penetração e exploração msflogdump - exibe sessões de arquivos de log msfplayload - usado para gerar payloads customizados msfpescan - utilizado para analisar e descompilar executaveis e DLLs msfencode - um codificador interativo de payload encoder msfupdate - utilizado para verificar e fazer download de atualização do framework msfweb - Interface grafica via browser 16-Resultados. No decorrer do teste, registram-se todas as atividades executadas, sem omissão dos detalhes, como metodologia adotada, escopo, ferramentas utilizadas, datas e horas, lista dos hosts envolvidos, perfil da equipe executora, objetivo da intrusão com todas as vulnerabilidades testadas com ou sem êxito. Como fruto, obtém-se uma lista de recomendações de melhorias e/ou adequação dos serviços tecnológicos que suportam o negócio. Ao termino da análise, faz-se uma relação para determinar se os testes causaram algum dano ao sistema, garantindo que outros intrusos não tenham ganhado acesso ao sistema durante o teste. Reforçando que não é foco da equipe de Testes aplicar um Plano de Ação Corretivo, podendo descaracterizar seu objetivo – que é descobrir e apontar falhas de seguranças, tendendo ao lado comercial, exceto se este for previsto e alinhado previamente no escopo do projeto. 17-Restrições. Algumas normas que sugestionam metodologias de Testes de Intrusão, tais como PCI e OSSTMM consideram o teste de penetração tradicional como pré-requisito para lançamento de um produto comercial. Entretanto, deve-se pensar na relação custo X benefício de como uma solução em longo prazo para os requisitos de controle de segurança. Alocar uma equipe CEH é caro! As empresas que investem em contratar seus próprios profissionais de segurança para manter os custos de longo prazo fazendo Teste de Ataque e Penetração e melhorar a qualidade dos resultados, como os profissionais de segurança, são mais eficazes, pois se familiarizam com os sistemas internos, mas se este não for o nicho de atuação da empresa, ou seja, uma fornecedora de T.I., este recurso logo estará obsoleto em virtude de sua ociosa utilização. Daí a contratação de uma equipe externa periodicamente (a cada mudança significativa de configuração ou implantação de um novo sistema) pode ser uma solução para reduzir custos com um novo projeto de T.I. 18-Recomendações de Leitura. Leitura complementar auxiliar na tomada de decisão e entendimento sobre a possível adoção e modelagem para qualquer cenário. • • • •
ISSAF – Information Systems Security Assessment Framework OWASP – Open Web Application Security Project OSSTMM/ISECOM – Open Source Security Testing Methodology Manual NIST Special Publication 800-42: Guidelines on Network Security Testing 14
•
NIST Special Publication 800-115: Technical Guide to Information Security Testing and Assessment
19-Conclusão. Um programa de Teste de Intrusão é um conjunto de procedimentos que visão identificar as falhas de segurança de um ambiente aproveitando-as para invadi-lo, obtendo acesso indevido a informações e recursos computacionais, e que pode auxiliar a organização a avaliar o grau de exposição dos ativos da informação, tomando as devidas medidas de natureza corretiva. Funciona também como um aditivo à Análise de Riscos, porque identifica suas vulnerabilidades simulando a visão de um agente externo à organização com intenções hostis. Contudo, sua execução é controlada de forma a não causar danos ao ambiente, e sim apenas testar a eficácia dos eventuais controles existentes. Há diversas formas de se tratar à segurança de uma rede, sistema ou aplicação e o teste de invasão é apenas mais uma das tantas disponíveis, porém é a que apresenta resultados mais concretos permeando a realidade da estrutura de T.I. da empresa, com o mínimo de falsos positivos e negativos. Seus resultados devem ser usados para ajudar a apontar, direcionar e determinar quais ações gerenciais e prioridades serão mais adequadas para um melhor tratamento dos riscos inerentes a Segurança da Informação, bem como ajudar a selecionar os controles a serem implementados e direcionar recursos para a proteção, mitigando tais riscos. Por fim, os Testes de Intrusão bem como todos os outros relacionados a segurança devem ser previstos e fazer parte do programa de Segurança da Informação dentro do Plano Diretor de Informática. 20-Referencial Teórico Bibliográfico. Aranha, D. Freitas. Tomando o controle de programas vulneráveis a buffer overflow. Artigo em Internet. ASSUNÇÃO, Marcos. Segredos do Hacker Ético. Visual Books, 2008. Costa, António Cardoso. Segurança de Redes e Sistemas - Problemas e Soluções. 2005. CVE (Common Vulnerability and Exposures). http://cve.mitre.org. Clavis. Solução em auditoria e teste de invasão. http://www.clavis.com.br/servico/solucaoauditoria-teste-de-invasao-produto-consultoria.php EC-Council. http://www.eccouncil.org/ceh.htm Ferreira, Rafael Soares. Auditoria Teste de Invasão (Pentest). Planejamento, Preparação e Execução. http://www.seginfo.com.br/auditoria-teste-de-invasaopentest-planejamento-preparacaoe-execucao. Hoglund, Greg et al. Como quebrar Códigos. A arte de explorar e proteger software. Pearson. 2006. Horton, Mike et al,. Hack Notes – Segurança em Redes. Campus. 2005 15
ISECOM/OSSTMM –Metodologia Manual de Testes de Invasão. http://www.isecom.org/oml.html. Long, Johnny. Google Hacking para Testes de Invasão. Digerati. 2006. Mandia, Kelvin et al., Hackers – Resposta e Contra-Ataque. Campus. 2005 NSL. Network Security Library. http://secinf.net NIST. National Vulnerabilities Data Base. http://www.nist.org/news.php Sales, Anderson Ribeiro. Atuação dos profissionais de segurança da informação em redes corporativas. Faculdade de Tecnologia da Zona Leste. 2009. SAMS, Segurança Máxima. Campus. 2004. SANS Org Institute. http://www.sans.org Scambreay et al,. Hackers Expostos. Makron Books. 2005. Symantec Corporation – How to Break a Security - Ricardo Costa. http://www.symantec.com Security Focus (Home of BUGTRAQ). http://www.securityfocus.com Souza, Felipe de. Metasploit Tutorial. http://invasao.informe.com/tutorial-metasploit-dt13.html Uchôa, J. Q. Segurança em Redes e Criptografia. Lavras: UFLA/FAEPE, 2003. Valle, Della et al. Universidade Hacker. Digerati. 2005. Vieira, Luiz. Metasploit Framework. http://www.vivaolinux.com.br/artigo/MetasploitFramework?pagina=2 Resumo Curricular Ricardo Andrian Capozzi, possui graduação em Tecnologia da Informação pela Faculdade de Informática e Administração de São Paulo e pós-graduação nas áreas de Análise de Sistemas, Segurança da Informação, Marketing Internacional, Gestão de Negócios, Didática Superior em Tecnologia e Engenharia da Computação. Professor da FATEC - FACULDADE DE TECNOLOGIA DE SÃO PAULO, Faculdade Mauá e Faculdade Carlos Drummond de Andrade para graduação e pós-graduação. Atua como consultor de bancos e plataformas eletrônicas para o Banco Citibank S.A., com experiência na área de Ciência da Computação enfatizando Segurança da Informação e Redes. Contato: 11-8280-3133 – rackster@ig.com.br
16