Baixe o app para aproveitar ainda mais
Prévia do material em texto
Auditoria e testes de invasão Maximiliano de Carvalho Jacomo 2020 Auditoria e testes de invasão – Página 2 de 120 Auditoria e testes de invasão Maximiliano de Carvalho Jacomo © Copyright do Instituto de Gestão e Tecnologia da Informação. Todos os direitos reservados. Auditoria e testes de invasão – Página 3 de 120 Sumário Capítulo 1. Conceito: Pentester (Teste de Intrusão) .................................................. 5 1.1. Relembrando conceitos – Conexões TCP ....................................................... 7 1.2. Ethical Hacker vs. Black Hacker ...................................................................... 9 1.3. Times de segurança ...................................................................................... 11 1.4. Pentester vs. Ethical Hacking ........................................................................ 20 1.5. Avaliação de Vulnerabilidade vs. Pentester ................................................... 22 1.6. Tipos de Pentest ............................................................................................ 27 1.7. Metodologia do teste de penetração .............................................................. 30 1.7.1. Modalidades de um Pentest .................................................................... 31 Capítulo 2. Fases do Teste de Penetração ............................................................. 33 2.1. Fase 1: Planejamento .................................................................................... 35 2.2. Fase 2: Reconhecimento do Alvo .................................................................. 36 2.3. Fase 3: Análise de Vulnerabilidades .............................................................. 37 2.4. Fase 4: Exploração (Ganho de Acesso) ........................................................ 38 2.5. Fase 5: Pós-exploração (Mantendo Acesso) ................................................. 39 2.6. Fase 6: Eliminação dos Rastros / Reporte ..................................................... 39 Capítulo 3. Ferramentas e Técnicas de Ethical Hacker ........................................... 41 3.1. Reconhecimento (Footprinting) ...................................................................... 41 3.1.1. Engenharia Social .................................................................................... 44 3.1.2. Netcraft .................................................................................................... 46 3.1.3. Lookups com Whois ................................................................................ 47 3.1.4. Reconhecimento com DNS ...................................................................... 48 3.1.5. Detectando os alvos ativos ...................................................................... 54 3.1.6. Fingerprint ................................................................................................ 56 3.1.7. Coletando informações de usuários ........................................................ 62 3.1.8. Maltego Footprinting Raiz ........................................................................ 67 Auditoria e testes de invasão – Página 4 de 120 3.2. Análise de vulnerabilidades ........................................................................... 69 3.2.1. Varredura com NMAP .............................................................................. 70 3.2.1.1. Varreduras Furtivas com NMAP .................................................................................... 72 3.2.1.2. Descobrindo firewall e IDS ............................................................................................ 73 3.2.1.3. Zenmap .......................................................................................................................... 75 3.2.2. Scanner OpenVas .............................................................................................. 77 3.2.3. Nmap Scripting Engine ............................................................................ 80 3.2.3. Metasploit modo scanner ......................................................................... 83 3.2.5. Scanner Web Application......................................................................... 84 3.2.6. Capturando o tráfego – Wireshark ........................................................... 85 3.3. Exploração (ganho de acesso) ...................................................................... 90 3.4. Detonando senhas ......................................................................................... 97 3.4.1. Encontrando senhas com o Hydra e o Medusa ....................................... 98 3.4.2. Encontrando senhas com Hashdump - Metepreter ............................... 102 3.5. Engenharia social Toolkit ............................................................................. 104 3.6. Explorando o alvo (pós-exploração) ............................................................ 111 3.7. Eliminação dos rastros ................................................................................. 112 Capítulo 4. Tópicos especiais: HoneyPot .............................................................. 114 Referências...... ...................................................................................................... 119 Auditoria e testes de invasão – Página 5 de 120 Capítulo 1. Conceito: Pentester (Teste de Intrusão) De acordo com Fontes (2006), segurança da informação trata-se de um conjunto de procedimentos, políticas e ações para a proteção das informações, permitindo que o negócio da organização seja contínuo e sua missão alcançada. Assim sendo, a segurança da informação precisa ser um componente crítico de todas as empresas. Existem vários métodos para testar a segurança da informação em uma empresa. Um teste de intrusão é um deles, pois além de possibilitar testar os ativos de TI contra diversos tipos de ameaças, também possibilita mensurar a postura e a maturidade da segurança da informação no ambiente corporativo. De forma generalizada, pode-se dizer que um teste de intrusão (ou simplesmente “Pentest”) é um exame que tem como principal objetivo mensurar os mecanismos de proteção e segurança aplicados em uma infraestrutura de TI, consecutivamente em seus ativos, por meio do reconhecimento e exploração de vulnerabilidades. Ou seja: “Um método para obter segurança na segurança de um sistema de TI, tentando violar parte ou toda a segurança desse sistema, usando as mesmas ferramentas e técnicas que um adversário utilizaria.” Normalmente os testes de intrusão são utilizados para identificar o nível de risco técnico resultante das vulnerabilidades de software e hardware. Exatamente quais técnicas são usadas, quais metas são permitidas, quanto de conhecimento do sistema é fornecido aos testadores de antemão e quanto de conhecimento do teste é fornecido às equipes de segurança dentro do mesmo regime de teste. Um teste de intrusão com um escopo bem definido, pode garantir que os controles de segurança testados foram configurados de acordo com as boas práticas, normas e políticas estabelecidas pela alta administração da empresa, bem como a existência de vulnerabilidades comuns ou conhecidas publicamente nos componentes testados no momento do teste. Auditoria e testes de invasão – Página 6 de 120 Pense da seguinte maneira: se você quiser descobrir a eficácia do sistema de segurança de sua casa, poderá contratar alguém para tentar “driblar” esse sistema e assaltar a sua casa. Isso é essencialmente o que um teste de intrusão faz. Se você ainda não possui um sistema de segurança residencial, a invasão em etapas seria muito fácil, concorda? É importante que após a implementação de mecanismos de proteção em sua residência, façatestes em tais mecanismos, para garantir que as medidas de proteção adotadas estejam funcionando perfeitamente. O mesmo acontece com um teste de intrusão. Se uma empresa nunca realizar uma avaliação de segurança adequada sobre as medidas e práticas de segurança implementadas em seus ativos de TI, para descobrir se elas possuem vulnerabilidades ou se estão adequadamente aptas a responder de forma eficiente e eficaz diversos tipos de ameaças, acaba sendo prematuro dizer que a empresa está segura e, em alguns casos, poderá haver desperdício de tempo e dinheiro. Mas por que uma empresa deve realizar um teste de intrusão? Mesmo com as mais fortes medidas de proteção e segurança implementada dentro de uma infraestrutura de TI, existem vulnerabilidades que expõem os ativos de TI da empresa a riscos desconhecidos. Essas lacunas podem ser tão inocentes quanto um aplicativo desatualizado ou a postura de um funcionário durante um bate- papo com colegas a respeito de um novo projeto, acesso a um sistema etc. De qualquer modo, uma dessas lacunas poderia fornecer uma rota direta para o vazamento ou roubo de dados digitais confidenciais, como dados financeiros, informações sobre novos produtos e serviços, documentos estratégicos ou classificados. A execução de um teste de intrusão neste contexto, torna-se uma ferramenta essencial para identificar os caminhos de acesso, essas “lacunas”, classificando o valor potencial de cada um e fornecendo um roteiro claro para a correção. Um teste de intrusão não é apenas uma prática comercial inteligente, mas também um requisito anual para aquelas empresas que devem permanecer em conformidade com as principais regulamentações, como: PCI, SOX, FACTA, GDPR e LDPD. Auditoria e testes de invasão – Página 7 de 120 1.1. Relembrando conceitos - Conexões TCP Para que duas pessoas realizem uma comunicação de forma eficiente, é preciso que ambas conheçam a mesma forma de comunicação e estabeleçam regras para que essa comunicação ocorra de forma legível. Ou seja, é preciso que se estabeleça um protocolo de comunicação. No universo dos sistemas computacionais, de acordo com Tanenbaum (2011), um protocolo é um acordo entre as partes que se comunicam, estabelecendo como se dará a comunicação. Neste contexto é correto afirmar que o TCP é um protocolo de comunicação utilizado por equipamentos computacionais, para realizar a comunicação entre eles de forma confiável e eficiente. Porém, é comum observamos a união de outro protocolo, o “IP”, dando a conotação de um único protocolo TCP/IP. Mas essa definição é errônea, pois ambos o TCP e o IP possuem funções e atuam em camadas diferentes durante o processo de comunicação. Diferente de outros protocolos, o TCP é um protocolo que foi projetado para estabelecer uma conexão orientada, confiável de forma ordenada entre duas pontas, características essas não presentes em outros protocolos, como o IP e o UDP. Isto é, uma comunicação “fim a fim” por meio de um processo conhecido como “Three-way Handshake”, ou simplesmente aperto de mão! Toda a comunicação realizada pelo protocolo TCP é realizada por meio de portas ou sockets, que por sua vez são associados a um endereço estabelecido pelo outro protocolo o “IP”, dando-se então a origem do termo TCP/IP. O processo “Three- way Handshake” realizado pelo protocolo TCP, acontece utilizando-se de duas flags contidas em um cabeçalho de um pacote de dados TCP, a ACK (Acknowledgement — Reconhecimento) e a SYN (Synchronize — Sincronizar). Vamos explicar o processo: Fase 1: o cliente envia um pacote de dados com a flag “SYN”, ativada; Fase 2: o servidor envia um pacote resposta com as flags “SYN+ACK” ativadas; Auditoria e testes de invasão – Página 8 de 120 Fase 3: o cliente devolve uma resposta ao servidor com a flag “ACK” ativada no pacote. Fazendo uma analogia, para a nossa linguagem de comunicação: Cliente pergunta: Ei servidor! Estou enviando um pacote de dados para você que contém um número 1000 (sequência inicial da transmissão), vamos sincronizar? Servidor responde: Sim, por que não?! Vou enviar a você a minha sequência que é a 2000, ok? Já estou enviando também o SYN e pode enviar a próxima sequência ACK da sua mensagem (1001). Cliente responde: Ok! Lá vai o meu pacote com a sequência 1001, envie-me o seu ACK com a sequência 2001... E assim por diante, até que o cliente termine a conversa mandando um pacote com a flag “FIN”, conforme demonstrado na Figura 1. Figura 1 – Three-Way Handshake. É importante ressaltar que a existência de números sequências distintas é necessária para que se haja a sincronização entre ambas as partes — cliente e servidor. Realizada a sincronização entre ambos, a troca de informações (pacotes de dados) começa. Auditoria e testes de invasão – Página 9 de 120 O TCP é um protocolo presente na camada de transporte do modelo de arquitetura OSI e como já comentamos, trabalha utilizando o conceito de portas lógicas de comunicação em conjunto com o outro protocolo IP. Abaixo temos alguns serviços que trabalham sobre TCP e suas portas lógicas: Figura 2 – Alguns serviços e portas do TCP. 1.2. Ethical Hacker vs. Black Hacker Sempre que estou falando do assunto para os cursos de segurança da informação e segurança cibernética, eu realizo a seguinte pergunta aos meus alunos: "Qual é a diferença entre um Ethical Hacker e Black Hacker?” Inevitavelmente, a questão da ética vem à tona. Isso porque é a ética que os conceitua e diferencia. Por definição, o Ethical Hacker é um indivíduo que realiza avaliações de segurança da informação e segurança cibernética em uma infraestrutura de TI, com o consentimento da alta administração da empresa; enquanto o Black Hacker é um indivíduo desconhecido da empresa que não possui acordo e muito menos autorização da alta administração. Seu principal propósito é realizar um ataque contra os sistemas de segurança da empresa, visando prejudicar a empresa em algum aspecto ou roubar dados e informações para algum lucro pessoal ou financeiro. As vezes um Black Hacker demonstra um comportamento ético. Um exemplo é a história de Adrian Lamo, um famoso Black Hacker que, após invadir diversos sistemas corporativos, informou às suas vítimas os passos realizados durante o ataque, assim como as formas de proteção que deveriam ser adotadas para mitigar futuros ataques de intrusão. Auditoria e testes de invasão – Página 10 de 120 Observa-se que, mesmo demonstrando uma forte convicção de ética, Lamo foi condenado por crimes cibernéticos nos Estados Unidos em 2004, por possuir um comportamento ético contrário às leis contra crimes cibernéticos vigentes nos Estados Unidos. Na segurança da informação e segurança cibernética, os Black Hackers são aqueles que realizam a intrusão não autorizada aos sistemas e infraestruturas de TI de uma empresa. Embora a razão por trás dessa atividade varia de uma simples curiosidade para o ganho financeiro, o comum é que o façam sem permissão. Em alguns casos, o Black Hacker pode estar localizado fisicamente em países que possuem leis fracas contra crimes virtuais, no entanto suas ações ainda podem ser consideradas ilegais quando violam as leis de países onde o alvo (vítima) situa-se. Entretanto, há uma grande dificuldade em punir e processar um Black Hacker quando seu próprio país não vê nada de errado em suas ações. Esta dificuldade pode ser mais bem demonstrada pela prisão de Dmitry Sklyarov, em 2001. Dmitry foi preso depois de chegar aos Estados Unidos para assistir uma conferência de segurança da informação em uma faculdade americana. Sua prisão estava relacionada com seu trabalho em derrotar a cópia proteção de e-books, por meio da quebra da criptografia inserida nestes e-books, projetada pela companhia americana Adobe Systems. Na ocasião, Dmitry foi presopor violar o Digital Millennium Copyright Act (DMCA), uma lei que se destina a impedir as pessoas de encontrar maneiras de contornar ou derrota criptografia de um software proprietário. O problema era que a DMCA é uma lei de direitos autorais dos EUA e não é aplicável na Rússia, onde Dmitry morava e publicou sua pesquisa. Apesar disso, o FBI — o escritório americano responsável por investigar crimes federais — o prendeu enquanto estava em solo americano. Eventualmente, todas as acusações foram retiradas em troca de seu testemunho. Nos Estados Unidos, as ações Dmitry foram consideradas ilegais, mas não houve tais proibições em seu próprio país. Isso porque ele não fez nada para violar leis de direitos autorais na Rússia. É importante ressaltar que mesmo não violando Auditoria e testes de invasão – Página 11 de 120 nenhuma lei em seu país, o trabalho de Dmitry foi feito sem a permissão da empresa americana Adobe Systems, tornando-se por definição um Black Hacker. Um Ethical Hacker é um indivíduo que realizam avaliações de segurança dentro de um acordo contratual. Assim como nos filmes do Velho Oeste, Ethical Hacker pode ser considerado o mocinho da história. Seu principal objetivo é ajudar as empresas e suas equipes de segurança a melhorar seus mecanismos de proteção em relação a segurança de seus ativos de TI contra Black Hackers. Atualmente há muitos esforços em codificar as responsabilidades éticas dos Ethical Hackers, em prol de uma melhor compreensão de como os dados confidenciais serão tratados durante um Pentest e sua postura perante a ética, que convenhamos é bastante subjetiva. Por exemplo, entidades como ISSAC, CISSP e ISC, reconhecidas mundialmente em formar profissionais Ethical Hacker, impõe códigos de ética e conduta rigorosos para os candidatos que desejam obter a certificação de Ethical Hacker. 1.3. Times de segurança Quando estamos conversando sobre segurança cibernética, os termos "Red Team e Blue Team, “Time Vermelho" e "Time Azul", são frequentemente mencionados. Há muito tempo associados às forças armadas, esses termos são usados para descrever equipes que usam suas habilidades para atacar ou defender determinado posição ou elemento. Na segurança cibernética, não há muita diferença. O Red Team (Time Vermelho) é composta de uma equipe de especialistas em segurança, que estão focadas em realizar testes de penetração em diferentes ambientes de TI e em seus níveis de programas de segurança. Eles estão lá para detectar, prevenir e eliminar vulnerabilidades. Uma equipe vermelha imita ataques do mundo real que podem atingir uma empresa e executa todas as etapas necessárias que os invasores “Black Hackers” Auditoria e testes de invasão – Página 12 de 120 usariam. Ao assumir o papel de um invasor, eles mostram às empresas quais vulnerabilidades exploráveis representam uma ameaça à sua segurança cibernética. Uma prática comum realizada pelas empresas é contratar alguém de fora para compor ou formar a equipe vermelha. No geral, esse indivíduo trata-se de alguém equipado com habilidades e conhecimentos necessário para explorar vulnerabilidades de segurança, mas desconhece as defesas incorporadas à infraestrutura da empresa. Ou seja, trata-se de um Ethical Hacker. As técnicas que uma equipe vermelha usa variam de tentativas entre: explorar falhas humanas por meio de técnicas de engenharia social (arte de enganar pessoas) em colaboradores, com o objetivo de obter acesso aos sistemas, dados ou informações de diversos tipos de classificação — como a utilização de códigos e scripts de programação desenvolvidos exclusivamente para explorar falhas (bugs) em sistemas operacionais, protocolos etc. Nesse contexto, para serem realmente eficazes, as equipes vermelhas precisam conhecer todas as táticas, técnicas e procedimentos que um invasor usaria durante uma tentativa de invasão a um ambiente de TI de uma empresa. É importante ressaltar que as equipes vermelhas (Red Team) oferecem benefícios críticos, incluindo uma melhor compreensão da possível exploração de dados e a prevenção de violações futuras. Ao simular ataques cibernéticos em suas infraestruturas de TI, as empresas garantem que as medidas de proteção implementadas por suas equipes de segurança estejam em conformidade com as políticas e defesas adequadas à segurança, além de possibilitar uma visão real dos riscos associados aos ativos de TI. Mas, como tudo não são “flores”, uma grande desvantagem de se ter um time vermelho é o “custo”. Manter um Red Team dentro de um ambiente corporativo requer um investimento considerável em ferramentas tecnológicas, contratação de pessoas altamente especializadas e treinamento constante. O Blue Team (Time Azul) também trata-se de uma equipe formada por especialistas em segurança da informação, semelhante a uma equipe vermelha. Isso Auditoria e testes de invasão – Página 13 de 120 porque também avaliam os níveis de proteção e segurança de um ambiente de TI corporativo e identificam possíveis vulnerabilidades. Porém, o que diferencia uma equipe azul de uma equipe vermelha é o seu objetivo. Uma equipe vermelha, conforme estudados anteriormente realiza o processo de uma invasão, valendo-se de táticas e técnicas características e utilizadas por um Black Hacker. Já no caso de uma equipe azul, por sua vez, está lá para encontrar maneiras de defender, mudar e reagrupar mecanismos de proteção e defesa para tornar a resposta a incidentes muito mais forte. Em resumo, o Red Team busca explorar vulnerabilidades por meio de ações ofensivas de ataque. Já o Blue Team busca detectar ações ofensivas e defender os ativos de TI contra diversos tipos de ameaças. É importante salientar que as equipes vermelha e azul precisam estar cientes das mesmas táticas, técnicas e procedimentos maliciosos para criar estratégias de resposta as ameaças. E ambas estão envolvidas na missão de fortalecer a segurança dos ativos de TI, por meio de técnicas e ferramentas como, por exemplo, softwares IDS (Sistema de Detecção de Intrusões), que fornece uma análise contínua de atividades incomuns e suspeitas. Para entendermos melhor sobre a importância e valor de se ter equipes vermelha e azul em um ambiente corporativo, em 2018 a revista InfoSec, especializada em assuntos relacionados à segurança da informação, segurança cibernética e demais outros assuntos do gênero, realizou uma pesquisa em sua rede social Twitter, no qual perguntou aos seus seguidores qual dos times, “Red ou Blue”, eram mais importantes e essenciais para se ter em uma empresa. Após um rápido tempo, a InfoSec no início entendeu que seus leitores estavam indecisos com a escolha. Porém, logo após perceberam que a vencedora da disputa seria a equipe vermelha, apesar do resultado apertado (Figura 3). Auditoria e testes de invasão – Página 14 de 120 Figura 3 – Resultado da pesquisa realizada pela revista Infotec. “É compreensível o porquê os leitores escolheriam a equipe vermelha, com estatísticas baseadas em quem são nossos seguidores e na natureza de suas carreiras. Sempre existe uma "animosidade" leve entre as equipes vermelha e azul, portanto, perguntar a diferentes grupos de pessoas provavelmente nos daria respostas diferentes. Uma coisa estamos feliz — ninguém estava envolvido no nosso pequeno truque! A verdade é que não há time vermelho sem o time azul, ou vice-versa. Não era nossa intenção enganar ninguém, mas era uma pergunta enganosa! A resposta real para a pergunta é: Ambos.” (Descrição da resposta da revista InfoSec, após publicar o resultado de sua pesquisa) Conforme observamos, o Red Team (Time Vermelho) usa suas habilidades para testar as medidas de proteção implementadas pelos Blue Team (Time Azul). Porém, às vezes a equipe vermelha pode encontrar buracos que a equipe azul ignorou completamente e, nessescasos, é responsabilidade da equipe vermelha mostrar como essas coisas podem ser melhoradas. Assim sendo, é vital que as equipes vermelha e azul trabalhem juntas contra criminosos cibernéticos, para que a segurança cibernética possa ser eficiente e eficaz. Não há tal coisa como “o time vermelho é melhor que o azul e vice-versa”, não há benefício em escolher lados ou investir em apenas um. O importante é lembrar que o objetivo de ambos os lados é evitar crimes cibernéticos. Auditoria e testes de invasão – Página 15 de 120 Conforme podemos perceber, as equipes vermelha e azul não poderiam ser mais opostas em suas táticas e comportamentos. Podemos até fazer uma analogia com a filosofia chinesa Yin–Yang, no qual defende a teoria que tudo no universo possui uma dualidade. Ou seja, existe sempre dois lados, preto e branco, bem e mal, sol e noite, ataque e defesa, e assim por diante; e no contexto de equipes vermelha e azul, essas diferenças são principalmente o que as tornam parte de um todo eficiente e eficaz. Podemos dizer que as equipes vermelhas atacam e as equipes azuis defendem, mas o objetivo principal é compartilhado entre ambas: melhorar a postura da segurança da empresa. Porém, alguns problemas comuns com a cooperação entre ambas podem existir. Como exemplo, podemos citar: (a) a equipe vermelha se considera elite demais para compartilhar informações com a equipe azul; (b) a equipe vermelha é puxada para dentro da organização e torna-se castrada, restrita e desmoralizada, resultando em uma redução catastrófica em sua eficácia; (c) ambas as equipes não são projetadas para interagir entre si de forma contínua, neste sentido as lições aprendidas de cada lado podem se perder ao longo do tempo; (d) algumas vezes a gerência de segurança da informação não vê ambas as equipes como parte do mesmo esforço e, por esse motivo não há informações, gerenciamento ou métricas compartilhadas entre ambas. As empresas que sofrem de um ou mais desses problemas, provavelmente pensam que precisam de uma nova equipe para resolvê-los. Eis que surge uma nova equipe: Purple Team (Time Roxo). Nascida da tentativa de conciliar equipes vermelhas e azuis, a equipe roxa é um conceito que não descreve verdadeiramente a existência de uma equipe totalmente nova. Ela é composta de uma combinação de ambas as equipes, “vermelha e azul’, promovendo o envolvimento e a integração entre ambas, para que trabalhem juntas em prol da segurança da informação e segurança cibernética de uma empresa. Precisamos dizer que as empresas precisam da cooperação mútua de ambas as equipes para fornecer uma auditoria completa de ambos os lados, com registros Auditoria e testes de invasão – Página 16 de 120 de todos os testes realizados e registros das especificidades relevantes. A equipe vermelha fornece informações sobre as operações que eles executaram enquanto "atacavam"; e a equipe azul fornece documentação sobre as ações que eles executaram para preencher as lacunas e solucionar as vulnerabilidades e os problemas encontrados. Tanto a equipe vermelha quanto a equipe azul são essenciais. Sem suas constantes auditorias de segurança, a implementação de testes de penetração e o desenvolvimento de infraestrutura de segurança, empresas não estariam cientes de sua própria segurança. Ou seja, não teriam conhecimento da eficiência e eficácia dos seus mecanismos e medidas de segurança. Atenção, o "Purple Team" (Time Roxo) deve ser pensado como uma função ou um conceito, e não como uma nova equipe/time que precisa ser contratado e implementado em um ambiente corporativo de forma permanente. Esse conceito é o de cooperação e benefício mútuo em direção a um objetivo comum. Portanto, talvez exista um engajamento da equipe roxa, onde terceiros analisem como suas equipes Vermelho e Azul trabalham entre si e recomendam correções; ou talvez haja um exercício da equipe roxa, em que alguém monitora as duas equipes em tempo real para ver como elas funcionam. Ou talvez haja uma reunião do time roxo, onde os dois times se unem, compartilham histórias e conversam sobre vários ataques e defesas. Embora seja bom ter pessoas dedicadas a proteger uma organização por meio de métodos de defesa ou ataque, as empresas e seus sistemas não permanecem estáticos. Processos adicionais, automações, produtos e serviços estão sendo constantemente construídos por desenvolvedores e arquitetos — com o aumento da área potencial de ataque a cada nova alteração ou integração. Pensando nisso, April C. Wright, ativista feminina, Ethical Hacker, professora e líder de uma comunidade que promove a proteção da segurança e da privacidade dos dados e da informação a mais de 25 anos, durante uma conferência internacional sobre segurança da informação e cibersegurança, a DefCamp nos Estados Unidos, Auditoria e testes de invasão – Página 17 de 120 apresentou um novo conceito intitulado “Orange is the new Purple” (Laranja é o novo Roxo). Em sua apresentação, April defendeu a tese de tornar os desenvolvedores, arquitetos, engenheiros e programadores de softwares uma equipe, a Yellow Team (equipe amarela), e fornecer a eles a capacidade de tornar os produtos desenvolvidos por eles mais seguros. Vale lembrar que o foco de um desenvolvedor está na funcionalidade, ou seja, tornar o fruto do seu desenvolvimento, o sistema no caso, mais funcional possível o mais rápido possível. Nesse sentido, quando a funcionalidade de um aplicativo ou sistema funciona para todos os usuários e partes interessadas de forma correta, os desenvolvedores ficarão tranquilos porque realizaram seu trabalho perfeitamente. Porém, os desenvolvedores nunca sabem, ou realmente pensam, se fizeram algo inseguro, até que isso seja apontado para eles como parte de um teste de penetração realizado por um Red Team ou como parte de uma violação descoberta por um Blue Team. É importante ressaltar que empresas e equipes de segurança são afetadas por vulnerabilidades e configurações incorretas, e todas têm a mesma fonte: a pessoa ou grupo que realizou o desenvolvimento do software. Como diz o ditado: se a depuração é o processo de remoção de bugs, a programação é o processo de colocar bugs no aplicativo. O teste prova apenas a presença de bugs, não a ausência deles. Para ajudar a resolver isso, as empresas devem implementar um ciclo no qual há uma interação entre as equipes RED, BLUE e YELLOW, no sentido que: a Yellow Team desenvolve o software, aplicativo ou sistema; a Red Team realiza os testes para descobrir e expor as vulnerabilidades; o Blue Team realizam a defesa e, geram os resultados em conjunto com o Red Team, que são encaminhados para o Yellow Team realizar as devidas correções. A ideia por trás do ciclo apresentado é de que o Yellow Team precisa aprender com Red Team e trabalhar lado a lado com o Blue Team. Auditoria e testes de invasão – Página 18 de 120 A partir do conceito difundido por April C. Wright, que por sinal foi recebido com esplendor por várias entidades e pessoas que estão envolvidas direta ou indiretamente com a segurança da informação, cibersegurança e afins no mundo a fora, novas estruturas de times foram criadas com base nas três cores básicas: Vermelho, Azul e Amarelo. Isso fez com que habilidades e competências fossem misturadas, criando-se assim conceitos e mecanismos de proteção novos para diversas áreas e ambientes de TI. Figura 4 – Paleta de Cores da Segurança da Informação. A seguir podemos observar as habilidades e competências de cada equipe e, consecutivamente, o resultado da união/integração desses times principais, fazendo surgir um novo time e um novo conjunto de habilidades e competências que irão garantir uma maior segurança em um ambiente corporativo. Figura 5 – Red Team + Blue Team = Purple Team. Auditoria e testes de invasão – Página19 de 120 Figura 6 – Yellow Team + Blue Team = Green Team. Figura 7 – Yellow Team + Red Team = Oragen Team. YELLOW TEAM •Formado por desenvolvedores, engenheiros, arquitetos e programadores de software. •Devem aprender com o Red e o Blue Team para desenvolver sistemas mais seguros. •Devem pensar em segurança e privacidade by default e by design. GREEN TEAM •Proporciona a melhoria contínua da segurança defensiva por meio da implementação de conceitos relacionados à segurança by design e by default. •Realiza auditoria interna nos mecanismos de proteção implementados. •Aplica conceitos de análise forense para resolver incidentes de segurança da informação. BLUE TEAM •Conceito de Segurança Defensiva. •Trabalha para proteger toda a infraestrutura de TI. •Altamente especializada em resposta aos incidentes de segurança. •São caçadores de ameaças. •Realizam diversos trabalhos de análise de logs de diversos sistemas de segurança. YELLOW TEAM •Formado por desenvolvedores, engenheiros, arquitetos e programadores de software. •Devem aprender com o Red e o Blue Team para desenvolver sistemas mais seguros. •Devem pensar em segurança e privacidade by default e by design. ORANGE TEAM •Promove a conscientização sobre a segurança da informação entre ambas as equipes RED e YELLOW. •Promove a construção de ambientes e sistemas mais seguros por meio de processos de aprendizagem de competências e habilidades de ambas as equipes, RED e YELLOW. • Inspira o pensamento crítico sobre as medidas adotadas para proteção do ambiente e sistemas de TI. RED TEAM •Conceito de Segurança Ofensiva. •Formada por Ethical Hackers. •Analisa e explora vulnerabilidades em sistemas locais e web. •Executa testes de penetração do tipo Black Box. •Utiliza-se de diversas técnicas para ludibriar as defesas impostas e enganar pessoas — engenharia social. Auditoria e testes de invasão – Página 20 de 120 1.4. Pentester vs. Ethical Hacking Quando se trata de aprender sobre Pentest e Ethical Hacking, é comum assumirmos que ambos possuem o mesmo significado. Isso porque ambos se enquadram na mesma categoria de "segurança ofensiva". Porém, há diferenças entre os dois. Debaixo do guarda-chuva da segurança ofensiva, existem várias disciplinas, como teste de intrusão, engenharia social, formação de equipes em vermelho “Red Team”, engenharia reversa de software, Hackers Éticos e muito mais, conforme observa-se abaixo. Figura 8 – Guarda-chuva da Segurança da Informação. Conforme estudamos anteriormente, o teste de intrusão tem como objetivo encontrar vulnerabilidades, conteúdos maliciosos, falhas e riscos. Isso é feito com o propósito de fortalecer o sistema de segurança de uma organização e defender os ativos de TI contra diversos tipos de ameaças. O teste de intrusão é um procedimento oficial e formalizado que deve ser considerado útil pelas equipes de segurança e não uma tentativa prejudicial, visto que faz parte de um processo realizado por um Ethical Hacking. Embora seja útil para melhorar as estratégias de segurança cibernética, os testes de intrusão podem não resolver todas as questões de segurança, mas minimizam significativamente a Auditoria e testes de invasão – Página 21 de 120 probabilidade de um ataque bem-sucedido e, nesse sentido, deve ser realizado de forma regular nas empresas. Um teste de intrusão ajuda a determinar se um sistema ou infraestrutura de TI é vulnerável a um ataque cibernético, se as medidas defensivas são suficientes e quais medidas de segurança falharam no teste. Ele mostra os pontos fortes e fracos de qualquer infraestrutura de TI em um determinado ponto do tempo. O processo de teste de intrusão não é casual, envolve muito planejamento e, principalmente, não deve obstruir o fluxo de trabalho regular do ambiente corporativo. O profissional Ethical Hacking visa identificar as vulnerabilidades e corrigi-las antes que os hackers “maliciosos e mal-intencionados” (Black Hackers) as explorem, para executar um ataque cibernético. O Ethical Hacking é denominado como ético porque é executado somente após a obtenção das permissões necessárias para invadir o sistema de segurança. O profissional que realiza a intrusão trabalha por motivos éticos e a favor da segurança e é assim que os Hackers Éticos podem ser diferenciados dos Black Hackers. O papel de um Hacker Ético é desafiador, pois ele deve invadir o sistema sem afetar o funcionamento dele, localizando as vulnerabilidades. O Hacker Ético entende e relata atividades maliciosas e sugere medidas adequadas para derrotar os invasores em suas tentativas. Além da tarefa de hackear o ambiente corporativo, um Hacker Ético também estuda outras metodologias relacionadas à segurança e sugere sua implementação. No geral, Hackers Éticos carregam o fardo da segurança de toda a infraestrutura de TI. A seguir, observa-se algumas diferenças: Pentest Ethical Hacking O principal objetivo é encontrar vulnerabilidades no ambiente de destino. O objetivo é abranger vários ataques através de diferentes técnicas de hackers para encontrar falhas de segurança. Auditoria e testes de invasão – Página 22 de 120 O teste de intrusão concentra-se na segurança de uma área específica definida para o teste. Hacking ético é um termo abrangente e o teste de intrusão é uma das funções do hacker ético. Espera-se que o hacker ético esteja ciente da execução de diferentes metodologias e conheça o objetivo de cada uma, assim como a forma e quando executar. O hacker ético deve ter um conhecimento abrangente das metodologias de hacking. É necessário ter experiência prévia em hacking ético para ser um bom analista. O hacking ético é um passo em direção ao teste de intrusão. A menos que se conheça as metodologias, elas não podem conduzir um teste. Um hacker ético pode trabalhar em um domínio e rede específica. O conhecimento esperado é mais específico em nível de especialista. Sendo um hacker ético, você deve estar ciente dos aspectos técnicos do software e hardware e de dispositivos digitais conectados à rede. Para resumir, o hacking ético é como aprender todos os aspectos técnicos da condução de um veículo versus o teste de intrusão, no qual você reúne todas as habilidades adquiridas para dirigir o carro. 1.5. Avaliação de Vulnerabilidade vs. Pentester Avaliações de vulnerabilidade e testes de intrusão são técnicas usadas pelas equipes de segurança de TI e por um hacker ético para identificar e resolver problemas de segurança nas redes, infraestrutura, aplicativos e outras áreas de TI de uma empresa. Essas avaliações e testes compartilham um objetivo comum, mas os métodos e ferramentas usados para encontrar e corrigir falhas de segurança são diferentes. Auditoria e testes de invasão – Página 23 de 120 Ambos são essenciais para uma compreensão clara e completa dos riscos em todo o ecossistema de TI e devem ser usados juntos para identificar e remediar possíveis vetores de ataque e pontos fracos tecnológicos. Uma ferramenta de análise e verificação de vulnerabilidades utiliza uma abordagem ampla para identificar falhas e vulnerabilidades em toda a empresa através de uma verificação de uma lista de riscos conhecidos, fornecidos por um banco de dados de vulnerabilidades, e podem ser executados automaticamente e de forma programada. No geral, é composta de quatro áreas principais: interface do usuário, lista de vulnerabilidades, mecanismo de verificação e ferramenta de relatório, podendo priorizar vulnerabilidades com base na gravidade, urgência e facilidade de correção, fornecendo sugestões para corrigir falhas identificadas. A análise e verificação de vulnerabilidades permite a identificação precoce e confiável de pontos fracos da infraestrutura de TI e seus ativos. Essasferramentas dependem do fornecedor/desenvolvedor do software, identificando regularmente as ameaças e integrando-as em um banco de dados de vulnerabilidades. Como essas ferramentas avaliam problemas de segurança conhecidos anteriormente, também destacam ações restaurativas para corrigir as falhas encontradas. A avaliação da vulnerabilidade concentra-se na identificação confiável de riscos e na correção de falhas de TI em toda a empresa. Já um Pentest (teste de intrusão), usa uma abordagem direcionada para tentar romper a segurança e as defesas de TI, tentando simular um ataque real por Black Hacker e outros maus atores, que buscam obter acesso a sistemas críticos e informações confidenciais da empresa. No geral, um Pentest, adapta-se de acordo com as defesas/resistência encontrada no ambiente alvo e tenta encontrar novos vetores de ataque para superar os obstáculos. Ou seja, as medidas de proteção. Um Pentest não se preocupa somente com vulnerabilidades específicas previamente identificadas, e o hacker ético pode-se valer de uma variedade de softwares, scripts de programação e outros Auditoria e testes de invasão – Página 24 de 120 métodos como engenharia social — a arte de enganar pessoas, para penetrar nas defesas impostas pelas equipes de segurança da informação e segurança cibernética. O Pentest permite uma compreensão profunda de como o ecossistema de TI pode ser violado. Ele usa uma combinação de ferramentas especializadas, um entendimento da abordagem de um Black Hacker e outras técnicas, para obter resultados. O Pentest se concentra em como uma ameaça ou pessoal mal- intencionada pode realmente violar os sistemas de TI por meio de um ataque direcionado. Com a migração das infraestruturas locais, aplicativos e dados para a nuvem, as avaliações de vulnerabilidades e os testes de intrusão devem funcionar em todos os ambientes de TI. Quer a empresa opere a TI no localmente “on-primeses” ou conte com uma nuvem privada, pública ou híbrida, as equipes de segurança devem certificar-se de usarem ferramentas que possam identificar vulnerabilidades onde quer que estejam, além de lidar com as integrações e conexões entre esses ambientes. Dentre as principais diferenças entre ambos, análise de vulnerabilidades e Pentest, destacam-se: As avaliações de vulnerabilidade são baseadas em lista, enquanto testes de intrusão são baseados em objetivos. Os testes de intrusão são adaptáveis à realidade da empresa e as avaliações de vulnerabilidade usam um método consistente e baseados em ferramentas. As avaliações de vulnerabilidade analisam uma ampla gama de riscos, enquanto o teste de intrusão usa uma abordagem muito mais direcionada. As equipes de segurança devem usar o teste de intrusão e as avaliações de vulnerabilidade juntas, visando mensurar as ameaças e riscos de sua infraestrutura e ativos de TI, bem como a maturidade de seus mecanismos de proteção e suas operações de segurança de TI. Auditoria e testes de invasão – Página 25 de 120 É importante ressaltar que uma segurança de TI menos madura obterá mais benefícios das avaliações e verificações de vulnerabilidades. Isso porque, como essas ferramentas analisam todo o ecossistema de TI, elas expõem os vetores de ataque e falhas de segurança mais comuns, além, de oferecem relatórios abrangentes e ações de mitigação; favorecendo assim a alocação de recursos de segurança de forma mais concisa e restauração de mecanismos de proteção mais rápidos e fáceis. A verificação de vulnerabilidades é uma ferramenta ideal quando uma empresa sabe que possui problemas de segurança, mas não onde eles estão. Isso porque as ferramentas de verificação de vulnerabilidades usam vulnerabilidades previamente identificadas e podem testar rápido e completamente, todos os ativos de TI em relação a essas vulnerabilidades. Por outro lado, empresas que já possuem uma segurança de TI madura podem se valer da avaliação de vulnerabilidade na implementação de novos sistemas, testando e corrigindo falhas no ambiente de desenvolvimento ou teste antes de entrar em produção. No caso do teste de intrusão, esse torna-se mais útil para empresas com uma forte maturidade em suas operações de segurança de TI. Como o teste de intrusão é feito sob medida para sua infraestrutura, aplicativos e defesas exclusivas, ele pode fornecer informações precoces sobre como um Black Hacker comprometeria a infraestrutura e os ativos de TI em um ambiente corporativo. Para simplificar ainda mais o entendimento sobre a avaliação de vulnerabilidades e o Pentest, vamos observar as vantagens e desvantagens de cada um deles. De acordo com Sêmola (2013), análises de vulnerabilidade identificam, quantificam e priorizam o que há de mais frágil nos sistemas, a fim de tornar a segurança dos ativos de TI mais robusta. Esse tipo de análise é indicado para testar uma grande quantidade de sistemas em um curto período. Porém, para Machado (2014), uma análise de vulnerabilidade é diferente de um Pentest porque seus objetivos são distintos. Enquanto o teste de intrusão explora táticas específicas de invasão, a análise de vulnerabilidades identifica todas as brechas existentes em um Auditoria e testes de invasão – Página 26 de 120 sistema. As equipes de segurança da informação e segurança cibernética podem fazer as PoC (Provas de Conceitos), com base nos resultados que a ferramenta apresenta. O autor ainda destaca como principais vantagens: Análises com ferramentas automatizadas. Identificação e mitigação de riscos. Redução da probabilidade de vazamento de dados. Normalmente não causa interrupções de serviços. Porém, como desvantagens, Machado (2014) enfatiza: Pode apresentar falsos positivos. Não explora a vulnerabilidade. Só encontra riscos já conhecidos (não reconhece Zero Day). O resultado pode conter erros. Diante das considerações dos autores Sêmola e Machado, pode-se concluir que um Pentest leva mais tempo de execução se comparado a uma análise de vulnerabilidade. Isso faz com que seja mais preciso e eficaz, permitindo a organização e suas equipes de segurança de TI obter uma visão real das ameaças, riscos e impactos para o modelo de negócio, além da possibilidade de detecção de vulnerabilidades não conhecidas ou catalogadas. Stalling (2017) cita as seguintes vantagens de um Pentest, perante a análise de vulnerabilidades: a medição do impacto das ameaças junto ao modelo de negócio; a possibilidade encontrar vulnerabilidades não identificadas; a geração de informações reais; a validação da postura de segurança da organização quanto a maturidade para lidar com ameaças atuais; e, por fim, a mistura de testes automatizados com testes manuais. Porém, o autor ainda demonstra como desvantagem o fator “tempo”. Segundo Stalling (2017), um Pentest leva mais tempo para ser concebido e executado se Auditoria e testes de invasão – Página 27 de 120 comparado a uma análise de vulnerabilidades, afirmando assim o posicionamento de Sêmola e Machado, anteriormente citado e adaptado nesta apostila. 1.6. Tipos de Pentest Independente da natureza do teste de intrusão, já sabemos que o principal objetivo é obter acesso restrito ou irrestrito ao sistema de informação. Aqui vale uma ressalva, entende-se sistema de informação como: o ambiente de TI, servidores, estações, documentos e informações confidenciais, caixas de e-mail e aplicações web. Bem, é comum que as empresas fiquem na dúvida sobre qual tipo de Pentesting deve ser escolhido e realizado, afinal existem inúmeros. A seguir expomos os mais comuns, de acordo com Moreno (2017): Pentest Web: realiza testes de vulnerabilidades e exploração em ambientes e aplicações web. Pentest Mobile: realiza testes de vulnerabilidades e exploração em aplicativos e sistemas operacionais para dispositivos moveis. Pentest Rede: focado em explorar a infraestrutura de rede. Pentest Wireless: nesse tipo de teste é examinada a rede sem fio utilizada no ambiente corporativo, seu foco está em testar vulnerabilidades e explorar os pontos de acessos, protocolos e credenciais administrativas. Pentest Físico: aqui a busca concentra-se nas vulnerabilidades e exploração das falhas situadas nos controles de acessos ao ambiente, mapeando fraquezas aos recursos físicos da empresa. Pentest Engenharia Social: o foco é testar “pessoas”. Ou seja, encontrar vulnerabilidades nos próprios colaboradores e as explorar utilizando técnicas psicológicas para tentar induzi-los a passar informações importantes. Auditoria e testes de invasão – Página 28 de 120 Pentest Stress (DDoS): verifica a disponibilidade de uma aplicação suportar uma demanda de requisições. Pentest Externo: realizado a partir da Internet para encontrar vulnerabilidades que permitam a exploração de fora para dentro do ambiente corporativo. Pentest Interno: normalmente alocado no cliente, para encontrar vulnerabilidades que possam ser exploradas de dentro para fora do ambiente corporativo. É importante ressaltar que seja qual for o tipo de teste a ser realizado, haverá a necessidade de definição de uma metodologia a ser seguida. Nesse contexto, observa-se que há vários tipos de metodologias que podem ser utilizadas para a realização de um teste de intrusão. Isso permite a divisão do processo, que no geral é extremamente complexo com uma série de partes menores e administráveis. Essas metodologias são conhecidas como manuais de boas práticas em um Pentest. As mais comuns, de acordo com Schultz (2018), são: PTES (Penetration Test Execution Standard): define e levanta a conscientização sobre o que um Pentest real pode significar e estabelece uma base de princípios fundamentais requeridos para a condução dele. OSSTMM (Open Source Security Testing Methodology Manual): padrão internacional baseado em métodos científicos para auxiliar no processo de segurança, uma das metodologias mais completas e robustas; ISSAF (Information System Security Assessment Framework): busca resultados da auditoria da forma mais rápida possível, e é capaz de modelar os requisitos de controle internos para a segurança da informação. OWASP (Open Web Application Security Project): é direcionada para testes em servidores e aplicações web. Para definir o tipo e a metodologia a ser seguida, é preciso compreender o cliente. Esse é um passo primordial para o sucesso de um teste de intrusão. Desta Auditoria e testes de invasão – Página 29 de 120 forma, antes de definir um escopo para a construção de um teste de intrusão, ouvir o cliente é primordial para dar andamento ao processo e, perguntas importantes precisam ser feitas, visando atender as expectativas e necessidades do cliente de forma clara e eficiente. Schultz (2018) apresenta como exemplo, as seguintes perguntas: a. O que se espera do Pentest? b. É o primeiro teste? c. O que é considerado valioso na organização? d. Quais as suas preocupações? e. O teste é feito para cumprir algum requisito de compliance? (exemplo: LPGD) f. Existe algum sistema frágil? g. Qual o objetivo do Pentest? h. O que será considerado como sucesso no projeto? i. Existe alguma limitação? De posse das respost/as, o Ethical Hacker pode estruturar o Pentest e respectivamente os procedimentos necessários, de acordo com as expectativas e necessidades do cliente. Lembre-se: além das várias modalidades (tipos) de teste de intrusão, você também conta com uma grande diversidade de alvos para testar contra os mais avançados métodos e ameaças virtuais. A seguir observe quais elementos você pode validar sua estratégia de proteção: Auditoria e testes de invasão – Página 30 de 120 Figura 9 – Tipos de Pentest. 1.7. Metodologia do teste de penetração Acredito que até aqui você já deva ter entendido que um teste de penetração nada mais é do que um método utilizado pelas equipes de segurança da informação, para descobrir e avaliar vulnerabilidades em um ambiente de TI. Os testes de penetração são importantes e precisam ser realizados de forma eficiente e seguindo uma metodologia. Daí cabe entendermos, o que é metodologia? Auditoria e testes de invasão – Página 31 de 120 Segundo o artigo publicado por Porto no site escolaeducação.com.br, o termo metodologia é derivado de método, do latim “methodus”, cujo significado representa o caminho ou a via para a concretização de algo. Método é, portanto, o meio pelo qual se percorre para alcançar um determinado fim ou a condição fornecida para se chegar a respectivo conhecimento. A metodologia deve auxiliar a explicar não apenas os produtos da investigação científica, mas principalmente seu próprio processo, pois suas exigências não são de submissão restrita a procedimentos rígidos, mas antes da fecundidade na produção dos resultados (BRUYNE, 1991, p. 29). Segundo Strauss e Corbin (1998), o método de pesquisa é um conjunto de procedimentos e técnicas utilizadas para se coletar e analisar os dados. O método fornece os meios para se alcançar o objetivo proposto, ou seja, são as “ferramentas” das quais fazemos uso na pesquisa, a fim de responder nossa questão. Um teste de intrusão é constituído de cinco fases, que possuem métodos predefinidos que auxiliam na produção dos resultados. 1.7.1. Modalidades de um Pentest Quanto as modalidades de um teste de intrusão, ou seja, métodos que podem ser adotados para a realização de um teste de intrusão, podemos classificá-los de três formas: White Box: modalidade de teste, na qual as informações sobre todo ambiente de TI da organização são previamente fornecidas ao Ethical Hacker. No geral, são testes mais extensivos e com abrangência maior. Black Box: modalidade de teste na qual busca-se a maior similaridade em comparação a uma invasão real. Ou seja, é o tipo de teste mais próximo de uma invasão real. Isso porque nenhuma informação sobre o ambiente de TI é fornecida ao Ethical Hacker, fazendo com que ele adote métodos específicos para adquirir o máximo possível de informações sobre os ativos e recursos de file:///C:/Users/Usuario/Documents/igti/3.%20Apostila/Escolaeducação.com.br Auditoria e testes de invasão – Página 32 de 120 TI disponíveis no alvo, identificando os pontos fracos “vulnerabilidades” e os possíveis impactos associados a exploração desses pontos fracos. Gray Box: modalidade de teste em que há um “meio termo” entre o que se sabe e o que não se sabe sobre o alvo. Ou seja, o Ethical Hacker possui algumas informações sobre o ambiente de TI do alvo a ser analisado e outras não. Esse tipo de teste é realizado para analisar possíveis falhas de segurança advindas do ambiente interno da organização, tais como: verificação de permissões de acesso, compartilhamento de recursos, sistemas etc. Figura 10 – Diferenças entre Black, Gray e White Box. Auditoria e testes de invasão – Página 33 de 120 Capítulo 2. Fases do Teste de Penetração Antes de apresentar os conceitos relacionados as fases de um teste de penetração, precisamos entender que para cada uma das fases será necessário a utilização de ferramentas e técnicas específicas e aderentes a fase em questão. Porém, adquirir as técnicas necessárias requer por parte das equipes de segurança um processo de estudos contínuo e acumulativo. Quanto as ferramentas necessárias, as equipes de segurança devem um trabalho árduo de pesquisa junto a diversos fornecedores, bem como configurá-las de forma correta em um sistema operacional. Mas, como dizem por aí... “seus problemas acabaram!” Para facilitar esse trabalho árduo, um grupo de especialistas em segurança da informação e segurança cibernética fundaram uma organizaçãodenominada Ofensive Security. Essa organização tem como objetivo oferecer serviços de treinamento, certificação, consultoria e fornecimento de conjuntos de soluções, produtos e ferramentas de segurança que visam atender as necessidades de diversas entidades, tais como: governos, empresas e pessoas entusiastas em segurança em âmbito global. Entre os produtos e ferramentas desenvolvidas pela Ofensive Security, citamos o site Exploit Data Base, no qual mantém um banco de dados atualizados de exploits utilizados para explorar vulnerabilidades em diversos tipos de sistemas de TI e uma distribuição Linux, denominada KALI Linux — uma espécie de “canivete suíço” que possui diversas ferramentas separadas em grupos, que por sua vez correspondem a cada uma das fases de um teste de penetração, incluindo um sistema operacional completo Open Source. Atualmente, o Kali Linux é adotado mundialmente por diversas equipes de segurança para realização de auditorias em segurança da informação e segurança cibernética, permitindo que elas executem testes de penetração em seus ambientes de TI. Auditoria e testes de invasão – Página 34 de 120 Como se trata de um kit completo para realizar um Pentest, mundialmente utilizado por Ethical Hackers, iremos em nossa disciplina usá-lo como base para apresentarmos as ferramentas e técnicas. Assim sendo, é importante que você realize o download da última versão do Kali Linux, no site http://kali.org, e instale todo o sistema operacional em seu computador por meio de uma máquina virtual, através dos softwares de virtualização, como por exemplo o Virtual Box ou VMWare Player — ambos podem ser encontrados na internet facilmente. Outro ponto importante a comentar, está relacionado a instalação do Kali Linux e suas ferramentas. Essa disciplina não irá ensinar a instalar e configurar a distribuição Kali Linux, fornecida pela Ofensive Security. Isso porque o propósito da disciplina é o de conceituar temas relacionados a Ethical Hacker e demonstrar algumas das principais ferramentas e técnicas utilizadas durante as fases de um teste de penetração. Como dica, na internet existem diversos guias e tutorias que podem auxiliar você a instalar e configurar a distribuição Kali Linux, bem como os processos de instalação e criação de máquinas virtuais. Nesse contexto, caso tenha dificuldades recorra a esses guias e tutoriais que, como mencionado, são facilmente encontrados na internet através dos mecanismos de busca como Google, Yahoo, Bing etc. Disto isso, vamos a seguir conceituar e explorar as fases de um teste de penetração e respectivamente nos capítulos seguintes, apresentar e demonstrar algumas das principais ferramentas e técnicas utilizadas durante o processo de um teste de penetração. Preparados? Vamos lá... No geral, um teste de penetração possui entre cinco ou sei fases, dependendo da metodologia a ser seguida e, cada fase poderá receber diversas nomenclaturas. Como exemplo, podemos citar a primeira fase de um teste de penetração. Essa fase costuma ser denominada por alguns autores e Ethical Hackers como: Informação do Alvo. Já para outros autores e Ethical Hackers, essa fase pode ser denominada como: Coleta de Informações ou Reconhecimento. http://kali.org/ Auditoria e testes de invasão – Página 35 de 120 Vale ressaltar que independente da nomenclatura utilizada para nomear as fases de um teste de penetração, os objetivos, ferramentas e técnicas são as mesmas. Isso significa que não importa o nome dado à fase, mas sim o conceito, objetivo e propósito que essa fase se destina a cumprir. Sendo assim, vamos tratar o nosso Pentest com base em seis fases, nas quais teremos: Figura 11 – Fases do Pentest. 2.1. Fase 1: Planejamento Certamente trata-se de uma etapa primordial de um teste de penetração, pois é nesse momento que será definido o escopo do projeto, ou seja, de todo o teste de penetração, além das assinaturas de contrato e acordos relacionados ao projeto, como por exemplo os acordos de confidencialidade, os contratos que garantem ao executor do teste as devidas autorizações para a realização do teste por parte da alta administração da empresa, entre outras questões legais. Entre as definições do escopo do projeto, podemos citar: o que será testado, quais as formas (tipos) de testes serão realizadas, qual a abrangência do teste, que tipos de relatórios serão entregues ao final do teste, quais serão as premissas e restrições do teste etc. Planejamento do Teste Reconhecimento do Alvo Análise de Vulnerabilidades Exploração Pós-exploração Eliminação / Reporte Auditoria e testes de invasão – Página 36 de 120 Conforme comentamos, trata-se de uma etapa crucial e importantíssima. Entretanto, muitos esquecem de definir o escopo ou criam escopos mal definidos. Essa falha em definir o escopo ou de não planejar adequadamente os objetivos, partes envolvidas, critérios, premissas e restrições, podem causar erros ou resultados inadequados ou fora das expectativas e necessidades da empresa. É importante ressaltar que nessa fase as questões legais devem ser decididas, o contrato de trabalho deve ser elaborado contendo todas as informações sobre o teste que será realizado, os prazos e os valores. Essa ação garante a ambas as partes uma conformidade jurídica, ética e um caráter profissional. Lembre-se, um teste de intrusão é algo sério e provavelmente dados, informações e sistemas críticos serão envolvidos durante o teste, então cabe ao Ethical Hacker proceder com ética por meio da confecção de um contrato legal entre as partes envolvidas. Ou seja, o cliente (empresa) e o Ethical Hacker. Um Ethical Hacker deve buscar uma assessoria jurídica para auxiliá-lo na elaboração dos contratos, acordos de confidencialidade e demais documentos, visando a salvaguarda de suas ações e evitando que essas ações sejam confundidas com as ações de um criminoso virtual. 2.2. Fase 2: Reconhecimento do Alvo Aqui, nada pode ser deixado de lado. Isso porque o máximo possível de informações sobre o alvo deverá ser coleta para garantir o objetivo do teste de intrusão. Trata-se da realização da maior parte do trabalho realizado pelo Ethical Hacker, durante todo o teste de intrusão, garantindo assim a maior probabilidade de acesso ao alvo auditado. Todas os dados e informações relacionadas ao segmento da empresa, ativos de TI como: servidores, roteadores, firewalls, sistemas de informações, informações sobre os funcionários, e-mails, telefones, parceiros e fornecedores relacionados à Auditoria e testes de invasão – Página 37 de 120 empresa e até mesmo o lixo, devem ser coletadas, organizadas e posteriormente analisadas de forma minuciosa pelo Ethical Hacker. Nessa etapa, podemos aplicar a engenharia social – a arte de enganar as pessoas, visando obter dados e informações significativas e relevantes as próximas fases do teste de intrusão. Pode até parecer bobagem, mas muitas das vezes um simples telefonema realizado a um funcionário que não possui nenhum tipo de treinamento, ou esteja conscientizado quanto a importância da proteção de dados e informações, pode já garantir a exploração com sucesso de uma infraestrutura de TI. Ferramentas de busca na internet como: Google, Yahoo, Bing e as redes sociais com Facebook, Twitter, LinkedIn etc., podem também auxiliar na busca de informações sobre o alvo em poucas horas! Isso porque não só a empresa, mas também seus colaboradores, acabam publicando de forma intencional ou não informações que podem comprometer toda a segurança de TI de uma organização, sem levar em conta o sigilo e a proteção dos dados de uma empresa. Alguns estudiosos do assunto e especialistas em segurança da informação ainda citam que a falta de treinamento e aperfeiçoamento dos colaboradores envolvidos em processos críticos da empresa acabam sendosuscetíveis as investidas de ameaças, fornecendo informações valiosas. É importante que o Ethical Hacker utilize as mesmas artimanhas que um Black Hacker durante a fase de reconhecimento, para obter informações e poder mensurar as falhas que poderiam ser exploradas no futuro por um Black Hacker. 2.3. Fase 3: Análise de Vulnerabilidades Também reconhecida como fase de varredura de vulnerabilidades, essa etapa destina-se a descobrir por meio de ferramentas de análise de vulnerabilidades como OpenVas e Nessus, as vulnerabilidades “pontos fracos” do alvo a ser testado. Realizar a varredura de vulnerabilidades nos hardwares utilizados, servidores, firewalls, sistemas de informação, sistemas operacionais, tipo de serviços Auditoria e testes de invasão – Página 38 de 120 utilizados, portas de conexão existentes e abertas, entre outras informações levantadas na etapa anterior, é essencial para garantirmos a exploração do sistema- alvo. A verificação por exemplo de sistemas de IDS presente na infraestrutura de TI da organização, deve ser analisado de forma mais minuciosa pelo Ethical Hacker. Isso permitirá a aplicabilidade de mecanismos engenhosos relacionados à dificuldade imposta pela equipe de segurança. Previamente, o executor do teste sabe que várias regras devem existir no firewall, por exemplo. 2.4. Fase 4: Exploração (Ganho de Acesso) Fase em que o alvo é violado, ou seja, é comprometido com base nas vulnerabilidades analisadas pelo Ethical Hacker. Neste momento, o Ethical Hacker pode explorar o ambiente interno da organização, pois já venceu as barreiras de proteção. Nessa fase, o Ethical Hacker pode, por exemplo: verificar as estruturas de diretórios e arquivos contidos em um sistema operacional, as configurações adotadas em senhas, os compartilhamentos de redes existentes na infraestrutura de TI, os bancos de dados existentes e várias outras ações que permitam extrair o máximo de dados e informações dos sistemas que a empresa utiliza. Lembre-se que o sucesso da fase de exploração depende da realização com sucesso das duas outras fases anteriores: Reconhecimento do Alvo e Análise de Vulnerabilidades. Diversas ferramentas e técnicas serão utilizadas durante essa fase, como exemplo, podemos citar: Ferramentas que possibilitam decodificar hashes de senhas. Ferramentas que possibilitam ataques de força bruta a sistemas de acesso. Ferramentas que possibilitam o mapeamento de portas de comunicação. Ferramentas que possibilitam explorar falhas e vulnerabilidades. Auditoria e testes de invasão – Página 39 de 120 Técnicas de engenharia social para coletar dados importantes, como senhas. Entre outras. 2.5. Fase 5: Pós-exploração (Mantendo Acesso) Uma vez realizado o acesso ao sistema alvo, por meio das técnicas de análise de vulnerabilidades e exploração, é preciso que o Ethical Hacker mantenha esse acesso. Isso é realizado por meio da instalação de malwares do tipo Backdoor e Rootkit. A implantação de tais mecanismos que garantam o retorno a qualquer momento é essencial para futuras explorações ao sistema alvo. Essa prática realizada pelo Ethical Hacker, além de possibilitar o seu retorno, consolida todo o trabalho realizado anteriormente, validando assim o sucesso do teste de intrusão. Deve-se compreender que tais procedimentos podem causar ao sistema alvo rupturas e novas brechas de vulnerabilidades, que podem também ser exploradas por ameaças. Neste sentido é importante que o Ethical Hacker tenha total conhecimento do que está sendo feito, a fim de evitar problemas junto aos ativos de TI, que possam prejudicar o funcionamento da organização como um todo. Há casos em que o Ethical Hacker pode até corrigir deficiências e outras vulnerabilidades encontradas pelo caminho, visando deixar uma brecha única e exclusiva que somente ele poder utilizar. 2.6. Fase 6: Eliminação dos Rastros / Reporte A invasão a um ambiente de TI, sem a devida autorização da empresa, é considerada uma ação criminosa por várias áreas jurídicas. Sabendo disso, os Black Hackers aplicam técnicas criteriosas a fim de eliminar as “pegadas” deixadas durante a fase de exploração a um sistema alvo. Auditoria e testes de invasão – Página 40 de 120 Um Ethical Hacker também realiza essas técnicas a fim de verificar a eficiência dos mecanismos de proteção, quanto ao registro de “logs” que possam comprovar e validar o acesso não autorizado ao sistema alvo durante um teste de intrusão. As ações realizadas nessa fase contribuem de forma significativa para a correção dos mecanismos utilizados para rastrear as ações realizadas pelas ameaças e possibilitam a realização de estudos e pesquisas que trazem como resultado o aumento das competências e habilidades das equipes de segurança. Conhecer as “pegadas” deixadas por um invasor é essencial para mensurar o quanto o sistema alvo foi comprometido e o que foi afetado. Neste contexto, as equipes de segurança e um Ethical Hacker deve pensar e agir como os invasores, entendendo seus métodos de operação e as tecnologias utilizadas durante a invasão. Essa ação contribuirá no processo de investigação de incidentes de segurança. A emissão de relatórios é outra atividade contida nessa etapa e considerada por muitos Ethical Hackers a parte menos “divertida” de todo processo de invasão. Porém, possui uma importância significativa. Isso porque os relatórios gerados possibilitam as equipes de segurança e a alta administração da empresa compreender as vulnerabilidades que foram exploradas. Daí a importância da confecção de relatórios detalhados contendo todos os processos e procedimentos realizados durante o teste e consecutivamente os ativos comprometidos. Atenção, o Ethical Hacker deve detalhar no relatório diversos tipos de informações, como por exemplo: quais métodos foram utilizados para invadir e comprometer o sistema alvo; as evidências que comprovam as vulnerabilidades exploradas, os impactos causados, as ferramentas utilizadas e por fim as sugestões de correções necessárias que devem ser adotadas e aplicadas para mitigar as vulnerabilidades e o risco. Auditoria e testes de invasão – Página 41 de 120 Capítulo 3. Ferramentas e Técnicas de Ethical Hacker Neste capítulo, iremos estudar algumas das principais ferramentas e técnicas utilizadas para a realização de um teste de penetração. Vale ressaltar que um Ethical Hacker deverá adquirir habilidades e competências em diversos planos para realizar o seu trabalho. Para isso ele conta com um “cardápio” completo, que contém milhares de ferramentas e técnicas disponíveis. Como o “cardápio” do Kali Linux é bem completo, acaba sendo difícil abordarmos e aprendermos todas as ferramentas e técnicas contidas no Kali Linux em pouco tempo. Neste sentido, optaremos em apresentar as mais comuns e utilizadas que, por sua vez, já servem como uma base inicial para a sua caminhada na aquisição de habilidades e competências para se tornar um Ethical Hacker. Por fim, gostaria de salientar que um Ethical Hacker precisa expandir sua base de conhecimentos, e para isso ele precisará: realizar um trabalho intensivo de pesquisa, dedicar horas de estudos complementares e principalmente ter força, foco e fé! Porém, antes de iniciarmos, vamos relembrar alguns conceitos sobre o protocolo TCP/IP. Afinal, trata-se do protocolo utilizado por todos os dispositivos computacionais que se conectam à uma rede e é base para diversos outros sistemas, serviços e demais protocolos. 3.1. Reconhecimento (Footprinting) O Footprinting é um método utilizado por um Ethical Hacker para obter dados e informações a respeito de um sistema alvo. O conceito “Footprinting” advém do círculo militar, no qual busca-se estudar o terreno de maneira estratégica antes que esse possa ser atacado e conquistado, por meio de táticasde reconhecimento detalhado. O Ethical Hacker ou Black Hacker durante o Footprinting obtém dados e informações importantes sobre o sistema alvo. Isso possibilita minimizar dúvidas Auditoria e testes de invasão – Página 42 de 120 sobre o sistema alvo e auxilia na criação de estratégias, e principalmente a escolha correta das ferramentas e técnicas necessárias que permitirão sucesso durante o teste de penetração. Lembre-se que no Footprinting muitos dados e informações podem ser obtidas através de meios públicos, como por exemplo os sites de pesquisa na internet, como o Google e Yahoo. Encontrar informações sobre o alvo a princípio pode ser algo difícil em uma primeira análise, porém é muito comum a existência de dados e informações em relação a uma pessoa ou empresa na internet. Basta saber procurá- las de forma correta! Como exemplo, a utilização de técnicas baseadas em Google Hacking no qual permite que seja utilizadas expressões regulares na barra de busca da ferramenta de pesquisa on-line do Google, possibilita encontrar dados e informações mais precisas e relevantes em milhares de centenas de fontes (sites). Vamos a um exemplo prático: suponha que o seu desejo seja encontrar apenas informações que contenham uma determinada palavra, no caso “admin”. Para tal, basta colocar na barra de busca do Google a expressão “intext:” seguido da palavra. Exemplo: intext:admin e pronto! O Google irá apenas mostrar os resultados que contenham “admin” no texto, conforme observado na Figura 12. Figura 12 – Resultado da pesquisa utilizando a expressão intext: Auditoria e testes de invasão – Página 43 de 120 Outro exemplo que podemos citar utilizando expressões no Google é o “index of/*”, que possibilita localizarmos informações não indexadas em diversos domínios e sistemas alvo, que no geral expõe vulnerabilidades. Observe as Figuras 13 e 14: Figura 13 – Resultado da pesquisa utilizando a expressão index of/*. Figura 14 – Acesso ao conteúdo. Conforme observado, a simples expressão “index of/*” permite localizar conteúdos não indexados e consecutivamente a busca de informações que muitas das vezes passam desapercebidos pelas equipes de segurança. Auditoria e testes de invasão – Página 44 de 120 3.1.1. Engenharia Social Reconhecida como uma das técnicas mais utilizadas para a coleta de informações, a engenharia social permite o Ethical Hacker explorar vulnerabilidades relacionadas ao fator humano. Mesmo havendo um processo evolutivo, o homem ainda possui vulnerabilidades relacionadas a sua natureza. Como exemplo podemos citar a ignorância, a credulidade, a inocência, o medo, a culpa, a curiosidade, a confiança e muitos outros fatores que podem ser explorados por indivíduos mal intencionados. Observe o exemplo a seguir: Você encontra um pen drive abandonado em local qualquer em seu horário de almoço, daí sua primeira ação e a de verificar se há alguma identificação que revele de quem é esse pen drive, correto? Porém, percebe que há uma etiqueta escrito “arquivo confidencial”. Bem, a grande pergunta será: Vejo ou não vejo o conteúdo deste pen drive? Observe que neste momento pelo menos o fator “curiosidade” exposto anteriormente será o fator motivador que irá explorar uma vulnerabilidade humana. Agora, vamos supor que você foi tomado pela curiosidade de abrir o conteúdo existente no pen drive encontrado, inserindo o mesmo em seu computador no trabalho. Bem, caso o arquivo contido no pen drive seja um arquivo malicioso, por exemplo um malware do tipo Backdoor ou Trojan, todas as medidas de proteção implementadas pelas equipes de segurança no ambiente corporativo, tais como: firewall, IPS, IDS e outras, não servirão de nada. Isto porque a vulnerabilidade explorada está relacionada ao fator humano. Existem diversas técnicas ativas e passivas que um Ethical Hacker ou Black Hacker pode utilizar, tendo como ponto de partida a engenharia social para obter dados e informações de pessoas. O pen drive deixado propositalmente em um local é um exemplo de uma técnica passiva. Já um telefonema para um funcionário passando-se por um técnico pode ser considerado uma técnica ativa de engenharia social. Auditoria e testes de invasão – Página 45 de 120 Observe, uma situação hipotética de engenharia social através de uma técnica ativa, via um simples telefonema a um funcionário: É importante ressaltar que a melhor tática para mitigar a engenharia social e tratar vulnerabilidades relacionadas ao fator humano são as políticas de treinamentos e conscientização envolvendo todos os colaboradores da organização. Auditoria e testes de invasão – Página 46 de 120 3.1.2. Netcraft Conforme mencionei, às vezes as informações que os servidores web e as empresas de web hosting reúnem e tornam publicamente disponíveis, podem dizer muito a respeito de um site ou empresa. Por exemplo, uma empresa chamada Netcraft faz o log do uptime e faz consultas sobre o software subjacente (essas informações estão publicamente disponíveis em http://www.netcraft.com). O Netcraft também provê outros serviços, e suas ofertas relacionadas ao antiphishing e segurança cibernética são de particular interesse para a segurança de informações. Por exemplo, a Figura 15 mostra o resultado ao fazermos uma consulta no endereço http://www.igti.edu.br. Observe as diversas informações que puderam ser colhidas por meio de uma simples pesquisa. Exemplo: o domínio foi registrado por meio do GoDaddy, tem um endereço IP igual a 132.148.194.190 e está hospedado em um servidor Linux com um servidor web Apache. De posse dessas informações, ao efetuar um teste de invasão em igti.edu.br, podemos começar excluindo as vulnerabilidades que afetem somente servidores Apache. Ou, se quisermos tentar usar a engenharia social para obter credenciais para o site, poderíamos escrever um e-mail que pareça ter sido enviado pelo GoDaddy, pedindo que o administrador faça login e verifique alguns parâmetros de segurança do site junto ao servidor Linux ou Apache. http://www.netcraft.com/ http://www.igti.edu.br/ http://www.igti.edu.br/ Auditoria e testes de invasão – Página 47 de 120 Figura 15 – Resultado da Pesquisa Utilizando o Netcraft. 3.1.3. Lookups com Whois Todos os registradores de domínio mantêm registros dos domínios que eles hospedam. Esses registros contêm informações sobre o proprietário, incluindo informações de contato. Por exemplo, se executarmos o comando whois no shell do nosso Kali Linux para solicitar informações sobre igti.edu.br, vamos obter muitas informações, como por exemplo: o CNPJ da empresa, dados como o nome e o e-mail dos responsáveis administrativos e técnicos pelo domínio, a localidade em que esse domínio foi registrado, data de criação, modificação e vencimento do domínio etc. Auditoria e testes de invasão – Página 48 de 120 Figura 16 – Resultado obtido com o comando whois. Essas informações podem ser mascaradas através da utilização de servidores proxy, que por sua vez ocultam detalhes pessoais das informações. No entanto, podemos ver os servidores de domínio e com isso obter outros tipos de dados e informações do alvo. 3.1.4. Reconhecimento com DNS Podemos usar servidores DNS (Domain Name System) para obter informações sobre o alvo, especificamente relacionadas aos domínios de internet pertencentes ao mesmo e que podem conter diversos tipos de sistemas e aplicações sendo executados. Os servidores DNS traduzem o URL legível aos seres humanos, em um endereço IP. Por exemplo, podemos usar uma ferramenta de linha de comando como o nslookup, para obter o endereço IP do domínio igti.edu.br. file:///C:/Users/Usuario/Documents/igti/3.%20Apostila/igti.edu.br Auditoria e testes de invasão – Página 49 de 120 A execução de outros comandos no shell, como
Compartilhar