Pentest: avaliação do nível de segurança de uma rede
Este artigo abordará pontos importantes para auxiliar na compreensão de um termo que vem sendo amplamente usado no mercado, mas algumas vezes de forma equivocada ou incompleta.
Artigos Pentest: avaliação do nível de segurança de uma rede
Este artigo abordará pontos importantes para auxiliar na compreensão de um termo que vem sendo amplamente usado no mercado, mas algumas vezes de forma equivocada ou incompleta. Pentest é o acrônimo de Penetration Test (Teste de Penetração) e como poderemos ver, trata-se de um procedimento que avalia o nível de segurança de uma rede, sistema ou aplicação, externa ou internamente, com a ciência ou não da equipe responsável pela proteção do ativo, fazendo uso de ferramentas e até de práticas de Engenharia Social.
Compreender minimamente os conceitos que envolvem um Pentest ajudará os leitores a evitar gastos desnecessários com a aquisição de soluções e serviços que darão uma falsa sensação de segurança. Muitas empresas atuam de forma equivocada na hora de vender um serviço de Pentest aos seus clientes, automatizando processos e gerando relatórios genéricos sem uma análise mais profunda dos resultados da varredura, indicando onde e como as determinadas vulnerabilidades poderão afetar o negócio do cliente.
Nos últimos anos as empresas brasileiras adotaram massivamente a tecnologia buscando atender as necessidades de conectividade e mobilidade cada vez mais exigidas para a evolução de seus negócios. Para alguns setores do mercado, manter a disponibilidade de informações e serviços aos seus funcionários, fornecedores e clientes, há muito tempo deixou de ser um diferencial competitivo para se tornar uma necessidade básica e obrigatória, fundamental para sua existência. Mesmo que algumas atividades possam parecer não depender diretamente de apoio da área de TI, o negócio como um todo com certeza depende. Um exemplo muito claro é o que vemos em muitas metalúrgicas, com suas inúmeras máquinas ejetando milhares de peças sem parar. Empresas assim mantêm equipes de mecânicos de manutenção sempre apostos, pois a produção não pode parar caso alguma máquina emperre uma de suas engrenagens, pois na visão de seus diretores, os maquinários são os ativos responsáveis pelo lucro da empresa e, portanto devem estar sempre disponíveis. Pois bem, do que adiantará ter atingido a meta da linha de produção se o sistema que emite as notas fiscais dos produtos não estiver disponível quando as peças precisarem ser despachadas nos caminhões?
Garantir, além da disponibilidade, fatores como integridade e confidencialidade das informações estratégicas da organização, são exigências cada vez mais solicitadas aos departamentos de TI, e como os ambientes onde são processadas, transmitidas e armazenadas estas informações sofrem constantes alterações físicas e lógicas, é factível que os controles de segurança aplicados até o momento das alterações possam não estar mais protegendo adequadamente estes ativos. A questão é: como descobrir isso antes da ocorrência de um incidente?
No cenário ideal, descobriríamos as falhas por meio de testes sistemáticos, simulando situações de ataques ou falhas operacionais que poderiam levar a uma indisponibilidade em determinados sistemas ou a corrupção de dados críticos, como uma base de dados com o cadastro de todos os clientes. Estes testes ajudariam a detectar vulnerabilidades até então desconhecidas pelos administradores da rede, assim como permitir aos gestores do negócio ter uma estimativa de possíveis prejuízos se tal incidente ocorresse. Também daria ao time de resposta a incidentes uma visão de quais ações necessitariam ser tomadas na concretização deste fato e mais do que isso, poderia ajudar a equipe de TI a adotar controles que mitigassem estes riscos. Todo este esforço no final das contas sairia mais barato do que uma única interrupção que pudesse afetar o negócio. Muitas vezes o prejuízo de uma interrupção não atinge somente a parte financeira da empresa, mas também sua imagem e reputação de forma negativa, provocando desgastes nas equipes envolvidas no problema.
Mas o que vemos na prática na maioria das empresas é o reflexo do padrão cultural do brasileiro, que prefere tomar ações reativas a preventivas. Prefere correr o risco de passar por um incidente do que criar meios para tentar evitá-lo, ou seja, somente quando a rede é atacada, quando um sistema entra em falha e quando dados são perdidos é que se pensa em adotar os devidos controles de segurança. No entendimento da alta direção, isso nunca irá acontecer, pois ela gastou alguns milhares de reais em "firewalls" e "antivírus" e, portanto a rede está mais do que protegida. Porém, o que estes não compreendem é que para se ter um ambiente seguro não adianta colocar um firewall de última geração "padrão NASA" ou "padrão FIFA", como vimos recentemente no país. Também não adianta comprar aquele antivírus com mais propagandas no mercado se a equipe que for administrá-lo não estiver plenamente capacitada, com disponibilidade para gerenciar as soluções e principalmente com seus controles de segurança alinhados com os requisitos e expectativas do negócio.
Como consequência desta má gestão, no primeiro grave incidente que paralise as operações da empresa, a alta direção baterá na porta do departamento de TI questionando "todo aquele investimento" em firewalls e antivírus, deixando a impressão de que não vale a pena "gastar" com TI. Analisando a situação, até entendemos porque a TI acaba sendo vista pelos demais departamentos como um ralo, escoando dinheiro da organização, pois como justificar que determinada falha ocorreu após a implementação de controles de segurança caríssimos, como firewalls de última geração ou soluções de detecção de intrusão? Como a TI pôde ser pega de surpresa numa situação como esta? A resposta é a falta de prevenção, algo enraizado na cultura dos profissionais brasileiros, que reflete diretamente na gestão destas empresas. Infelizmente, amigos leitores, este ainda é o cenário dominante nas organizações públicas e privadas de nosso país.
Porém há uma luz lá no fim do túnel que começa a trazer um pouco de esperança de que esta cultura possa ser modificada, mesmo que seja na base da obrigação, na necessidade de cumprir regras. A antiga Norma ISO 17799, hoje oficialmente conhecida como ABNT NBR ISO/IEC 27002 – Tecnologia da Informação – Técnicas de Segurança – Código de Prática Para a Gestão da Segurança da Informação, lançada em 2005 (e atualizada em 2007), já citava a necessidade de atender a requisitos de auditorias de sistemas com o objetivo de minimizar o risco de interrupção dos processos do negócio. Esta norma ainda não é obrigatória, como uma ISO 9001, porém a cada dia empresas com certo grau de maturidade em seus processos começam a adotar determinados controles e também começam a exigir de seus parceiros os mesmos cuidados.
Empresas de diferentes setores do mercado financeiro como bancos e operadoras de cartões de crédito, cansadas de acumularem prejuízos com fraudes eletrônicas, iniciaram em Setembro de 2006 a criação de um Conselho para debater e elaborar normas contendo as melhores práticas para o manuseio e armazenagem de dados de cartões de crédito, a Payment Card Industry (PCI) – Data Security Standard (DSS), mais conhecida como PCI-DSS. Isso está fazendo com que empresas que possuam operações de comércio eletrônico ou que prestam serviços a instituições financeiras comecem a adotar os requisitos da PCI-DSS, com destaque para o Requisito 11: Testar regularmente os sistemas e processos de segurança.
Neste requisito em específico, a Norma PCI-DSS exige que as empresas realizem vários tipos de testes periodicamente na rede interna e externa, incluindo avaliações nos pontos de acesso wireless, firewalls e aplicações. Estas varreduras e testes de penetração em alguns casos devem ser realizados trimestralmente ou após alguma modificação no ambiente de rede.
Desta forma, a busca por serviços relacionados a revisões dos procedimentos de segurança e especificamente dos controles de segurança aumentará de forma significativa, incluindo principalmente auditorias técnicas como os Testes de Penetração. Porém, no mercado a divulgação deste tipo de serviço já acontece há algum tempo e a enxurrada de termos técnicos e siglas podem confundir até mesmo os gestores de TI mais experientes. Em meio a esta confusão, encontramos inúmeras empresas e especialistas que oferecem serviços a custos estratosféricos, simplesmente para rodar uma aplicação automatizada e gerar um relatório padrão, sem qualquer análise mais aprofundada.
Para garantir a correta contratação deste tipo de serviço, adequado à necessidade de cada empresa, com a qualidade reconhecida no mercado e principalmente dentro de uma margem de preço aceitável ao tipo de serviço contratado, apresentaremos aos leitores alguns pontos básicos que todos os gestores que necessitam deste serviço deveriam entender antes de adquirir um Teste de Penetração:
· O que é Pentest?
· Como é feito?
· Quando deve ser feito?
· Onde deve ser realizado?
· Por que tenho que fazer este teste?
Teste de Intrusão, Teste de Invasão, Teste de Penetração ou simplesmente Pentest (acrônimo para Penetration Test) é um procedimento legal e autorizado que visa identificar por meio de uma série de testes em um ambiente de rede, em um sistema ou em uma aplicação, possíveis vulnerabilidades que possam ser exploradas a partir de uma conexão na rede interna ou externa, permitindo acesso não autorizado a informações, dados e dispositivos na rede.
É muito comum encontrar profissionais e empresas no mercado que distinguem o Pentest de uma Análise de Vulnerabilidades. Segundo estes, a Análise de Vulnerabilidades é um procedimento que apenas faz uso de ferramentas automatizadas de escaneamento da rede para detectar vulnerabilidades pré-definidas em uma base de dados carregada por estas ferramentas, mas sem realizar a exploração destas falhas ou mesmo apontar recomendações para mitigação dos riscos de uma possível exploração. Já o Pentest, segundo eles, tem como objetivo realizar além do escaneamento, a exploração e a indicação da correção em relatórios detalhados. De acordo com o dicionário, o verbete análise consiste em examinar de forma detalhada cada parte de um todo, buscando compreender tudo aquilo que o caracteriza. Portanto, uma Análise de Vulnerabilidades não pode ficar restrita a uma simples varredura automática. Se fosse este o conceito, então o correto seria chamar de Varredura ou Escaneamento de Vulnerabilidades. Algumas metodologias incluem a Análise de Vulnerabilidades como uma parte integrante de um Teste de Penetração, isto é, uma etapa a ser cumprida.
O Pentest consiste em uma série de ações que faz uso de ferramentas, processos e pessoas para chegar a um conjunto de informações relevantes que possam auxiliar a organização na identificação e mitigação dos riscos.
Não existe uma receita única, pronta para ser aplicada em qualquer ambiente de rede. Cada cenário deve ser avaliado e seu escopo definido em conjunto com o cliente, especificando os ativos a serem testados, o tipo de abordagem, o nível de aprofundamento dos testes, as definições de prazos de execução e a entrega do relatório. Os resultados deverão ser descritos de forma clara e objetiva, com a apresentação das recomendações corretivas e preventivas para eliminar ou reduzir os riscos de uma possível invasão na rede.
Porém, mesmo não havendo uma receita de bolo pronta, existem metodologias que podem e devem ser aplicadas para chegarmos aos resultados mais conclusivos, reduzindo a possibilidade de surgirem falsos positivos e erros de interpretação dos dados. Mesmo assim, ainda encontramos muitas empresas que adotam metodologias próprias, o que dificulta a validação dos resultados.
Na Figura 1 podemos ver a representação do logotipo das principais metodologias presentes no mercado.
Figura 1. Principais metodologias aplicadas em Testes de Penetração.
A seguir, apresentaremos alguns pontos relevantes sobre cada uma das metodologias, para que o leitor possa compreender a inviabilidade de se trabalhar somente com uma única metodologia ou adotar metodologias próprias.
OSSTMM – Open Source Security Methodology Manual
A metodologia OSSTMM é desenvolvida pela ISECOM (Institute for Security and Open Methodologies), uma organização que realiza pesquisas na área de segurança de forma colaborativa, aberta e sem fins lucrativos. Trata-se de um manual de referência que pode ser aplicado a qualquer tipo de organização, independentemente do seu setor de atuação e tamanho. Abrange todas as áreas da segurança da informação, envolvendo a parte da segurança física, lógica e humana.
Outro ponto importante nesta metodologia é a realização do teste alinhada com a necessidade da organização, variando de acordo com o conhecimento prévio que o auditor possui em relação aos ativos que serão testados, assim como o nível de conhecimento que o alvo possui em relação ao teste a ser executado, conforme podemos verificar na Tabela 1.
Tabela 1. Tipos de Teste de Vulnerabilidade/Intrusão.
De todos os tipos de teste apresentados na Tabela 1, o que mais se aproxima da realidade de uma tentativa de invasão realizada por um cracker é o tipo Double Blind, onde o atacante não tem informações do alvo e o alvo não sabe que será atacado.
A OWASP (ou Projeto Aberto de Segurança em Aplicações Web) é uma entidade sem fins lucrativos, composta por diversos profissionais voluntários das áreas de tecnologia e segurança da informação. Atualmente possui capítulos (filiais) espalhados em diversos países, entre eles o Brasil, com a finalidade de promover melhorias no desenvolvimento de sistemas, especialmente voltados ao ambiente Web. Além dos profissionais voluntários, grandes empresas de tecnologia ajudam a manter o projeto, como a Amazon, Fundação Mozilla, IBM, Oracle, entre outras. De todos os projetos desenvolvidos, um em especial tem ganhado espaço no mercado como uma referência tanto para desenvolvedores como para analistas de segurança: "OWASP TOP 10". Trata-se de um estudo atualizado a cada três anos contendo informações sobre as principais vulnerabilidades em aplicações Web, com o objetivo de auxiliar as organizações na adoção de práticas seguras de desenvolvimento de software, apresentando recomendações para prevenir a exploração destas ameaças. Na Figura 2 podemos ver uma imagem do relatório de 2013.
Figura 2. Relatório OWASP – TOP 10 – 2013.
NIST – National Institute Standards and Technology
O NIST (Instituto Nacional de Padrões e Tecnologia) é um órgão do Departamento de Comércio dos Estados Unidos responsável pela promoção de competitividade e inovação industrial do país. O órgão desenvolve diversos documentos contendo as melhores práticas que podem ser adotadas livremente por qualquer setor do mercado norte americano. Para alguns departamentos do governo dos EUA, estas práticas devem ser obrigatoriamente seguidas.
Para a área de tecnologia e segurança da informação, o NIST desenvolveu uma série de metodologias (Série 800), incluindo uma específica para a realização de testes de segurança, denominada: "800-115 / Guia Técnico para Avaliações e Testes de Segurança da Informação". Este guia está organizado em oito seções, sendo a Seção 1 introdutória, explicando o propósito e o escopo do documento. As demais seções estão divididas da seguinte forma:
· Seção 2 – Apresenta uma visão geral das avaliações de segurança da informação, incluindo políticas, papéis e responsabilidades, metodologias e técnicas;
· Seção 3 – Fornece uma descrição detalhada das várias técnicas de avaliação, incluindo análise de documentação, análise de logs, interceptação de dados na rede e verificação de integridade de arquivos;
· Seção 4 – Descreve várias técnicas para a identificação de alvos e procedimentos para mapear possíveis vulnerabilidades;
· Seção 5 – Explica as técnicas usadas para validar a existência de vulnerabilidades, tais como quebra de senha e testes de penetração;
· Seção 6 – Apresenta uma abordagem e processo de planejamento de uma avaliação de segurança;
· Seção 7 – Discute os fatores que são fundamentais para a execução de avaliações de segurança, incluindo coordenação, a própria avaliação, análise e manipulação de dados;
· Seção 8 – Descreve uma abordagem para apresentação dos resultados da avaliação e fornece uma visão geral das ações para mitigar os riscos.
Uma das metodologias mais recentes e que vem ganhando espaço no mercado de Pentests é a PTES, que em uma tradução livre significa: "Padrão de Execução de Teste de Penetração" (Figura 3). Seu objetivo futuro é se tornar uma norma com diretrizes para padronizar a realização das avaliações técnicas de segurança por prestadores de serviços e dar suporte para que organizações que adquirem tal serviço possam exigir um trabalho dentro de um modelo de qualidade aceitável no mercado.
Figura 3. Site da entidade PTES contendo as diretrizes da norma.
A metodologia PTES divide o processo de um Pentest em sete etapas:
1. Predefinição – Antes de realizar a execução da avaliação técnica, o executor da tarefa, em conjunto com o cliente, deve definir o escopo do teste, metas, expectativas e custos. É nesta etapa que são assinados os termos de confidencialidade entre as partes (NDA – Non-Disclosure Agreement);
2. Coleta de Inteligência – O executor do teste inicia o processo de coleta de informações sobre o alvo, incluindo funcionários, instalações, produtos, sistemas, etc. Tudo que possa ser relevante e que possa auxiliar na identificação de vulnerabilidades;
3. Modelagem de Ameaças – Nesta etapa, o executor do teste analisa as informações coletadas para identificar quais as prováveis vulnerabilidades do alvo de acordo com o valor dos ativos da organização e o modelo de negócios do alvo;
4. Análise de Vulnerabilidade – Nesta etapa são realizados testes utilizando ferramentas automatizadas em busca de informações sobre as vulnerabilidades e as melhores formas de explorá-las;
5. Exploração – A etapa de exploração é o momento que o executor do Pentest obtém acesso a um sistema ou recursos, burlando controles de segurança que foram avaliados previamente;
6. Publicar Exploração – Trata-se da documentação de todas as informações sensíveis do alvo, de forma que possa permitir a identificação de novos ativos a serem explorados, obtendo mais acesso à rede do alvo;
7. Relatório – É a apresentação dos resultados do teste, incluindo as conclusões dos resultados alcançados, e o mais importante para o cliente, o direcionamento para eliminar ou reduzir os riscos de exploração destas vulnerabilidades.
Assim como a maioria das metodologias, o PTES também é uma entidade que depende da colaboração de profissionais, o que é muito importante, pois assim permite que especialistas de diferentes áreas possam expor suas percepções no processo de execução de um Pentest.
Analisando cada uma das metodologias, notamos que elas não obrigam o uso de uma ferramenta específica para a realização dos testes, embora algumas como a PTES incorporem uma lista de softwares que auxiliam o profissional na execução de suas atividades. A lista é extensa, porém, para facilitar o trabalho dos auditores, existem algumas distribuições Linux que agrupam as principais ferramentas de Pentest em um único sistema, como o Backtrack, Kali (atualização do Backtrack), Pentoo, Backbox, entre outras.
Para profissionais que queiram iniciar de forma correta o entendimento de todos os processos que envolvem um Pentest, estudar o PTES é um ótimo começo.
Os relatórios e manuais de todas estas metodologias podem ser baixados nos endereços das entidades na seção Links.
Independente da metodologia adotada, a realização deste tipo de teste deve ser frequente, dentro de intervalos programados, ou sempre que ocorrerem mudanças drásticas no ambiente físico ou lógico da rede. Pode parecer exagero, mas não é, pois as constantes mudanças na área de tecnologia, com novos recursos, novas ferramentas e novas soluções apresentadas dentro de um intervalo de tempo cada vez menor, trazem consigo inúmeros riscos, que podem ir desde vulnerabilidades não detectadas ou não previstas nos sistemas, até a adaptação de uso e pouco conhecimento das pessoas na operação do novo recurso. Somado a isso, temos uma constante evolução de ameaças provenientes de pessoas mal intencionadas que encontram nestas brechas oportunidades para obter algum tipo de vantagem, especialmente financeira.
Algumas metodologias informam em seus requisitos com que frequência devem ser realizados os testes. Como exemplo, temos as empresas ligadas ao setor de Cartões de Crédito, que coletam, processam, armazenam e/ou transmitem informações destes cartões, obrigadas a adotar a norma PCI-DSS, que exige da organização a realização de testes de penetração anualmente e varreduras de vulnerabilidades trimestrais ou quando há mudanças no ambiente de rede.
Como vimos anteriormente, algumas normas e metodologias especificam pontos a serem avaliados, como aplicações web, perímetros da rede como firewalls e dispositivos wireless, além de avaliações internas dos servidores, chegando até a avaliar pessoas e suas funções, especialmente no universo dos colaboradores internos da organização. De forma geral, o responsável pelo teste deve ter em mente que a avaliação não pode ser engessada, ou seja, ela deve atender as necessidades de cada cliente alvo. Para que isso aconteça, a definição do escopo deve ser acertada previamente junto com o cliente, verificando o cumprimento de normas e particularidades específicas de cada setor do mercado.
O que vai ser avaliado deve estar claramente definido entre o cliente e o prestador de serviço. O cliente pode precisar apenas da análise de uma aplicação Web específica, como pode também precisar de uma varredura em toda a rede, incluindo servidores, firewalls e dispositivos de conexão wireless. Como citamos no início do artigo, em alguns casos os Testes de Penetração envolvem até conceitos de Engenharia Social, fazendo com que os funcionários também passem pelo crivo da auditoria. Se o cliente não sabe ao certo onde será realizado o teste, quais ativos realmente precisam deste tipo da avaliação, ele terá em mãos orçamentos de Pentests com valores completamente discrepantes, pois cada prestador irá indicar os alvos que em seu entendimento são mais importantes. Isso acontece justamente porque a parte contratante (o cliente alvo) não tem conhecimento básico do que é o Teste de Penetração e nem quais requisitos de segurança sua empresa precisa atender.
Por que tenho que fazer este teste?
Com base nas últimas estatísticas anuais de incidentes de segurança das redes conectadas à Internet brasileira, podemos notar índices recordes de ataques reportados ao "Centro de Estudos, Respostas e Tratamento de Incidentes de Segurança no Brasil - CERT.br". Somente em 2012, o CERT.br registrou um total de 466.029 alertas registrados (observe a Figura 4). É importante ressaltar que estes números servem apenas como uma estimativa, uma vez que muitas empresas não reportam os seus incidentes aos órgãos responsáveis.
Figura 4. Histórico de incidentes reportados ao CERT.br.
Entre estes milhares de incidentes registrados, podemos notar que a maioria das notificações está relacionada à tentativa de exploração de vulnerabilidades na rede (Figura 5).
Figura 5. Tipos de ataque - CERT.br
Para nossa melhor compreensão do que representa cada tipo de ataque notificado ao órgão, o CERT.br fornece em sua página as seguintes descrições:
· Scan: notificações de varreduras em redes de computadores, com o intuito de identificar quais computadores estão ativos e quais serviços estão sendo disponibilizados por eles. É amplamente utilizado por atacantes para identificar potenciais alvos, pois permite associar possíveis vulnerabilidades aos serviços habilitados em um computador;
· Fraude: segundo Houaiss, é "qualquer ato ardiloso, enganoso, de má-fé, com intuito de lesar ou ludibriar outrem, ou de não cumprir determinado dever; logro". Esta categoria engloba as notificações de tentativas de fraudes, ou seja, de incidentes em que ocorre uma tentativa de obter vantagem;
· Worm: notificações de atividades maliciosas relacionadas com o processo automatizado de propagação de códigos maliciosos na rede;
· Web: um caso particular de ataque visando especificamente o comprometimento de servidores Web ou desfigurações de páginas na Internet;
· Invasão: um ataque bem sucedido que resulte no acesso não autorizado a um computador ou rede;
· DoS (Denial of Service): notificações de ataques de negação de serviço, onde o atacante utiliza um computador ou um conjunto de computadores para tirar de operação um serviço, computador ou rede;
· Outros: notificações de incidentes que não se enquadram nas categorias anteriores.
Em virtude dessa crescente tendência de ataques, cada vez mais as organizações, sejam elas públicas ou privadas, deverão rever suas políticas de segurança a fim de reduzir os riscos de ataques que possam comprometer suas operações. Consolidar as melhores práticas envolvendo ferramentas, processos e pessoas é a melhor forma de garantir um nível de segurança aceitável aos novos padrões de mercado.
Para atingir este objetivo, não podemos esperar que cada organização defina sua concepção do que é um Pentest. Unir todas as práticas em um conjunto de recomendações e diretrizes facilitará as atividades dos prestadores de serviço e poderá dar subsídios aos contratantes para validar a qualidade do trabalho realizado. Por falta de um padrão de avaliação, ainda encontramos dificuldades na execução deste tipo de trabalho, pois cada prestador procura oferecer um modelo de Pentest, adotando metodologias próprias que muitas vezes podem deixar o contratante sem garantias de que estes investimentos em segurança realmente poderão lhe propiciar proteção efetiva e não uma falsa sensação de segurança.