Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fundamentos em Segurança Ofensiva Bootcamp: Segurança Ofensiva Paulo Gontijo 2021 Fundamentos em Segurança Ofensiva – Página 2 de 44 Fundamentos em Segurança Ofensiva Bootcamp: Segurança Ofensiva Paulo Gontijo © Copyright do Instituto de Gestão e Tecnologia da Informação. Todos os direitos reservados. Fundamentos em Segurança Ofensiva – Página 3 de 44 Sumário Capítulo 1. Introdução a Segurança ...................................................................... 5 Pilares e conceitos de Segurança ........................................................................... 5 Segurança – Generalizações e especializações ..................................................... 6 Red Team, Blue Team e Purple Team ................................................................... 6 Em segurança ofensiva, o que preciso conhecer? ................................................. 7 Hacker mindset ....................................................................................................... 8 Capítulo 2. Conceitos básicos de redes e uso de Linux ...................................... 10 Introdução a redes de computadores – Modelo OSI ............................................. 10 TCP/IP .................................................................................................................. 11 Linux ..................................................................................................................... 13 Capítulo 3. Ativos de segurança e virtualização .................................................. 15 Ativos de Segurança e Infraestrutura .................................................................... 15 Capítulo 4. Ataque a redes de computadores ..................................................... 17 Ataques e defesa a redes de computadores ........................................................ 17 Ameaças do cyberspace ....................................................................................... 20 Capítulo 5. Segurança ofensiva ........................................................................... 21 É tudo igual ou diferente? ..................................................................................... 21 Tipos de ataque e obtenção de autorização ......................................................... 22 Fases de um ataque ............................................................................................. 22 Engenharia social ................................................................................................. 23 Capítulo 6. Reconhecimento, varredura e enumeração ...................................... 24 Reconhecimento com Shodan .............................................................................. 24 Reconhecimento com DNS ................................................................................... 25 NMAP ................................................................................................................... 25 Fundamentos em Segurança Ofensiva – Página 4 de 44 Scan de vulnerabilidades ...................................................................................... 26 CVE e CVSS ......................................................................................................... 28 Capítulo 7. Exploração de vulnerabilidades - Infraestrutura ................................ 31 Kali ........................................................................................................................ 31 Metasploit.............................................................................................................. 32 Capítulo 8. Explorando vulnerabilidades – Aplicações ........................................ 33 Entendendo a causa de aplicações inseguras ...................................................... 33 Arquitetura de aplicações ..................................................................................... 33 Ataque a APIs ....................................................................................................... 35 Ataques a aplicações Web.................................................................................... 36 Utilizando Burp e SQLMAP ................................................................................... 37 Capítulo 9. Apresentando resultados .................................................................. 38 Apresentação de resultados ................................................................................. 38 O dilema do Red Team ......................................................................................... 39 Capítulo 10. Entendendo como ocorre a proteção do ambiente............................ 42 Entendendo como ocorre a proteção do ambiente ............................................... 42 Referências............ .................................................................................................. 44 Fundamentos em Segurança Ofensiva – Página 5 de 44 Capítulo 1. Introdução a Segurança Olá! Esta apostila tem como objetivo ser um guia rápido dos conceitos e práticas vistas e detalhadas nas aulas gravadas, utilize-a como referência. Boa leitura! Pilares e conceitos de Segurança Os pilares de segurança se aplicam a todas suas dimensões: da informação, cibernética, ofensiva, defensiva dentre outras: Figura 1 – Pilares de Segurança. Conceitos fundamentais se aplicam a segurança e podem ser melhor entendidos por seus conceitos, são eles: Ameaça = Atacante hacker. Vulnerabilidade = Banco de dados com senha padrão exposto na internet. Ativo = Servidor Web com o site da empresa. Controle = Firewall bloqueando FTP para a Internet. Tais conceitos se conectam da seguinte forma: “Uma ameaça explora uma vulnerabilidade presente em um ativo, que não é protegido por um controle de segurança”. Fundamentos em Segurança Ofensiva – Página 6 de 44 Segurança – Generalizações e especializações Segurança cibernética, pode ser entendida como a especialização da segurança da informação, da mesma forma que segurança ofensiva é uma especialização das citadas anteriormente. Cabe aqui ressaltar que não há mais ou menos importância se estamos nos referindo a algo mais genérico (segurança da informação) ou mais especializado (segurança ofensiva). Para tal, façamos uso de uma analogia: a medicina. Na medicina, um médico, clínico geral, possui um conhecimento abrangente do corpo humano, entendendo seu contexto, interações e formas de manifestação como um todo. Já um médico especializado em cirurgia do joelho, entende menos, por exemplo, sobre enxaquecas recorrentes e muito mais sobre como operar um joelho lesionado. Note que não há graus de importância em que possamos comprar ambos os médicos, fato é que, dependendo da dor, iremos procurar um ou outro. Em segurança a analogia é a mesma, gestores de segurança, por exemplo, tem uma visão ampla e abrangente, enquanto integrantes de um red team, tem conhecimento especializado em ferramentas de ataque, ambos são igualmente importantes e necessários no contexto de uma organização. Red Team, Blue Team e Purple Team Os times de segurança podem ser agrupados em 3 grandes verticais: Figura 2 – Times de Segurança. Fonte: Twitter, @proxyblue. Fundamentos em Segurança Ofensiva – Página 7 de 44 Suas principais atribuições são: Red Team: ▪ Simula ataques. ▪ Atua continuamente buscando vulnerabilidades e explorando falhas. ▪ Executa testes Black / Gray box. ▪ Não tem acesso prévio / liberado aos sistemas atacados. ▪ Atua, sempre, com permissão (escrita) prévia. Blue Team: ▪ Cria, implanta e monitora controles para evitar ataques. ▪ Identifica e reage a incidentes. ▪ Corrige e reporta falhas. ▪ Tem amplo conhecimento e acesso ao ambiente interno. PurpleTeam: ▪ Cria, implanta e monitora controles para evitar ataques. ▪ Identifica e reage a incidentes. ▪ Corrige e reporta falhas. ▪ Tem amplo conhecimento e acesso ao ambiente interno. Em segurança ofensiva, o que preciso conhecer? A aquisição de conhecimento é um processo contínuo e deve ser encarado como um processo de descoberta, gerando, portanto, prazer e não sofrimento. Se Fundamentos em Segurança Ofensiva – Página 8 de 44 este é o seu caso, esteja certo de que trabalhar com segurança é para você. Isso pois a amplitude de conhecimento que se espera de um profissional que trabalha nesta área é muito vasta, especialmente aqueles que trabalham com segurança ofensiva. Os conhecimentos envolvem quatro grandes áreas de conhecimento: infraestrutura, ferramentas de segurança, governança e software. Figura 3 – Áreas de conhecimento. Hacker mindset A palavra hacker, de acordo com a Wikipedia, tem conotação bem diferente daquela que nos deparamos com o exposto pela mídia em geral: Figura 4 – Definição de hacker. Fonte: Wikipédia. Já a palavra mindset, remete a uma visão de mundo ou filosofia de vida. Desta forma, hacker mindset pode ser entendido como acreditar em um mundo que deve ser explorado além de suas fronteiras tradicionais. Assim, se um sistema foi designado para funcionar de forma X, é interesse do hacker encontrar formas que Fundamentos em Segurança Ofensiva – Página 9 de 44 fujam da forma originalmente projetada. É um caminho de descobertas constantes, de experimentação, de tentativa e erro. Fundamentos em Segurança Ofensiva – Página 10 de 44 Capítulo 2. Conceitos básicos de redes e uso de Linux Neste capítulo veremos os conceitos básicos para o correto entendimento das redes de computador, bem como uma breve introdução ao Linux. Introdução a redes de computadores – Modelo OSI O modelo OSI (Open Systems Interconnection) é composto de sete camadas de comunicação, cada uma com uma finalidade específica. O objetivo do modelo OSI é permitir a interligação entre equipamentos de diferentes fabricantes. Assim eu posso ter um computador da marca Dell, conectado com um switch da Cisco, que se conecta com um roteador Huawei, que por sua vez está conectado a um firewall Checkpoint. Tudo isso é possível graças a compatibilidade proporcionada por este modelo. Figura 5 – Fluxo de dados. Na imagem acima é descrito na primeira coluna o número da camada, na segunda o seu nome, na terceira o nome do protocolo de exemplo e na quarta um exemplo de fluxo e como cada camada participa do processo. Note como o processo começa no desktop, na camada 7, onde o usuário seleciona uma imagem para upload e este pacote vai sendo agregado com informações nas camadas inferiores, até que sai da máquina na camada 1, através da sua transformação em pulsos elétricos. Na Fundamentos em Segurança Ofensiva – Página 11 de 44 outra ponta temos o servidor, que recebe tais pulsos elétricos e desempacota tais informações, camada a camada até ser interpretada na camada 7, para que a imagem seja salva. Nem toda comunicação acontece em todas as camadas. O popular comando ping (echo request), por exemplo, começa sua execução na camada 3 e desce o modelo OSI até ser transformado em pulso elétrico. Assim que recebido pelo servidor ele interpreta tais pulsos elétricos e desempacota o mesmo apenas até a camada 3, respondendo com um pong (echo reply). A figura abaixo demonstra como um pacote recebe agregação de informações à medida que vai descendo as camadas do modelo OSI. Figura 6 – Pacote no modelo OSI. Fonte: Wikipédia, com adaptações. TCP/IP O Transmition Control Protocol/Internet Protocol é, como o nome diz, o protocolo da internet. Embora carregue apenas o nome TCP, há também o UDP (User Datagram Protocol). Fundamentos em Segurança Ofensiva – Página 12 de 44 O TCP e o UDP atuam na camada 4 do modelo OSI e o IP na camada 3. O TCP fornece conexão com controle de fluxo de sessão, isso significa que há sequenciamento no processamento dos pacotes. Assim, quando executo um comando remotamente, por exemplo: “ps –ax” no caso do Linux, para listar os processos da máquina, eu só devo receber a tela após a tecla ENTER ser pressionada. Já o UDP não prevê este controle de fluxo e por isso é muito utilizado em transmissões de voz e vídeo. Há de se destacar que o TCP possui um tamanho de pacote maior para controles deste fluxo e é por isso mais lento que o UDP. Em comunicações ao vivo, como ligação telefônica, o uso de UDP é mais utilizado, pois se eu perco pacotes na comunicação da rede, por exemplo, conduzindo a mensagem falada “estou bem”, não faz sentido eu reproduzir este pacote depois de passado 10 segundos de conversa. No caso de mecanismos de streaming, o uso de TCP é mais plausível, motivo pelo qual os principais serviços de streaming o implementam. Isso porque garante que a imagem ficará pouco distorcida (perda de pacote). A forma como tais serviços diminuem o efeito da maior lentidão do protocolo TCP é através do caching local. Desta forma, a informação que sua televisão recebe agora na verdade vai ser reproduzida dentro de alguns segundos, desta forma, caso alguma informação seja perdida, há tempo para que o TCP corrija as falhas e entregue um conteúdo com melhor qualidade. Quando falamos de IP, correlacionamos imediatamente com endereços IP, não é mesmo? E esta é a sua função, prover endereçamento para que a comunicação ocorra. Os endereços IPs, na versão mais popular e amplamente usada na internet (IPv4), tem tipicamente um formato análogo a este: 192.168.0.1, ou seja, um conjunto composto de quatro subconjuntos, compostos por até três números. O que é importante reforçarmos, para o nosso conhecimento prático, com relação ao IP, diz respeito a máscara de rede, isso porque é ela quem determina se um pacote vai trafegar na rede local, ou precisará ser encaminhado para que o roteador determine o seu destino. Considerando que a explicação didática para o entendimento do seu funcionamento é mais bem demostrada em sala de aula, não aprofundaremos o seu Fundamentos em Segurança Ofensiva – Página 13 de 44 conhecimento aqui, até mesmo porque atualmente existem inúmeras opções de calculadoras IP disponíveis na internet. Sorte essa que o autor não teve ao iniciar seus estudos em redes de computadores há muitos anos atrás. ☺ Portanto, mais importante do que investir tempo na compreensão detalhada dos bits e bytes que criam a lógica do comportamento do endereçamento IP, é saber qual a faixa (primeiro e último IP) aquele endereço carrega. Abaixo uma imagem que demonstra tal consulta no site: http://calculadoraip.com.br/. Figura 7 – Calculadora IP. Fonte: http://calculadoraip.com.br/ Linux O sistema operacional utilizado para praticar os conceitos que aprendemos acima e que também aprenderemos nos capítulos posteriores é o Linux, na sua distribuição Ubuntu. O Linux, atualmente já conhecido por todos nós, está presente em servidores, desktops, dispositivos IoT e muito mais. Na minha visão pessoal não http://calculadoraip.com.br/ http://calculadoraip.com.br/ Fundamentos em Segurança Ofensiva – Página 14 de 44 existe entendimento técnico de segurança sem conhecimento de Linux, motivo pelo qual o utilizamos do início ao fim do curso. Isso significa que não é importante conhecer de segurança em Windows ou utilizá-lo para fins de demonstração? De forma alguma. O fato é que se torna necessário fazer uma escolha para fins didáticos e esta foi a escolha do autor que aqui vos escreve. Ademais, boa parte dos alunos tem contato natural com o Windows no dia a dia, desta forma, utilizar o Linux adiciona conhecimentos para aqueles que ainda não tiveram oportunidade de conhecer o sistema operacional. Caso você nunca tenha usado o sistema operacionaldo pinguim, como é conhecido, não se assuste. A tela preta, característica principal do seu console de administração, pode espantar no início, mas muito em breve você verá o quão maleável e potente ele é e passará a enxergá-lo como amigo. Existe um guia, disponível online, que recomendo fortemente para aqueles que querem aprofundar em Linux: https://www.guiafoca.org/. . https://www.guiafoca.org/ Fundamentos em Segurança Ofensiva – Página 15 de 44 Capítulo 3. Ativos de segurança e virtualização Neste capítulo, veremos sobre os principais ativos de segurança e virtualização. Ativos de Segurança e Infraestrutura A topologia abaixo detalha em uma única figura todos os principais componentes de uma arquitetura de rede que preza pela segurança. Nas imagens seguintes é possível compreender o papel de cada componente. Figura 8 – Conjunto de imagens de uma arquitetura segura. Fundamentos em Segurança Ofensiva – Página 16 de 44 Fundamentos em Segurança Ofensiva – Página 17 de 44 Capítulo 4. Ataque a redes de computadores Neste capítulo veremos tipos de ataque e nas aulas gravadas usaremos as ferramentas para execução dos mesmos. Ataques e defesa a redes de computadores Cada tipo de ataque a rede de computadores busca explorar um ou mais pilares de segurança da informação, a figura abaixo cita alguns deles: Figura 9 – Exemplos de ataques. Um ataque muito famoso na internet é o de DDoS. Vários bancos, empresas de e-commerce e outras tantas já ficaram indisponíveis por ataques como este na internet. Basta fazer uma pesquisa no Google para obter exemplos. O ataque de DDoS tem início com a infecção por malware ou software malicioso análogo em dezenas, centenas, as vezes milhares, e há alguns casos raros de milhões de máquinas infectadas. Ao conjunto destas máquinas, denominamos botnets. Estas máquinas são então gerenciadas por outras máquinas também invadidas, chamadas máster. O papel da máquina máster é importante, e é necessário que sejam várias, pois a perda de uma delas leva automaticamente a perda de controle de muitas máquinas zumbis. Quando um atacante resolve fazer um ataque, ele envia um comando para que todas estas máquinas façam conexões simultâneas à vítima. Usualmente, a vítima, por mais que seja grande, não está preparada para receber um número tão gigante de conexões simultâneas, quando este limite é ultrapassado temos então a negação do serviço (Denial of Service). Fundamentos em Segurança Ofensiva – Página 18 de 44 Figura 9 – Ataque DDoS. Fonte: Canaltech. Atualmente um serviço muito utilizado para proteção de ataques de DDoS são as chamadas CDNs (Content Delivery Network). O propósito principal destas redes é entregar conteúdos, como imagens, vídeos e páginas web numa velocidade muito mais ágil. Elas fazem isso aproximando o servidor que atende a requisição do browser do usuário que acessa o site, no entanto, como tais redes têm uma capacidade de entrega inimaginável em termos de bits por segundo, é comum serem usados também para defesa dos sites de empresas. Abaixo uma figura que compara do lado esquerdo um cenário sem CDNs e do direito a implementação de CDNs. Fundamentos em Segurança Ofensiva – Página 19 de 44 Figura 9 – Ataque DDoS. Fonte: Xlab Security. Outro ataque muito comum em redes de computadores é o sequestro de DNS (Domain Name System). O DNS é responsável por transformar nomes, como www.meusite.com.br para IPs. Desta forma, quando nossos computadores fazem consultas a servidores de DNS, eles recebem como retorno o IP que devem acessar. Se estes DNSs são invadidos, é possível manipular o IP que é acessado, levando o usuário a acessar algo que acredita ser o site correto, quando na verdade, este pode cair em uma armadilha que irá capturar informações relevantes do usuário enganado. Existem algumas formas de se proteger deste tipo de ataque: 1) Utilize diretamente nas máquinas (desktops ou servidores) o IP 8.8.8.8 (Google) ou 1.1.1.1 (Cloudfare). 2) Se o seu servidor de DNS for um roteador de banda larga, mantenha este sempre atualizado e usado sempre como cache de serviços, serviços confiáveis como 8.8.8.8 (Google) e 1.1.1.1 (Cloudfare). http://www.meusite.com.br/ Fundamentos em Segurança Ofensiva – Página 20 de 44 3) Se o seu servidor de DNS está instalado em um servidor interno, garanta que este atue apenas como resolver, ou seja, que ele preste serviços apenas para a rede interna. Ameaças do cyberspace Existem uma enormidade de ameaças presentes no cyberspace, o quadro abaixo detalha o tipo de ameaça, como é dado a infecção, os objetivos e a forma de prevenção/remediação. Para fins didáticos, algumas ameaças foram aglutinadas em uma única linha. Figura 10 – Ameaças do cyberspace. Ameaça Como é a infecção Objetivos Prevenção/Remediação Malware / Keylogger Usualmente via anexo de email Obter dados como número do cartão de crédito e senhas Antimalware Virus / Worms Falhas em sistemas operacionais ou aplicativos muito usados (ex: pdf reader) Se replicar e causar danos ao usuário (deletar arquivos, por exemplo) Antivirus Ransonware Falhas em sistemas operacionais ou aplicativos muito usados (ex: pdf reader) Criptografar arquivos do computador e pedindo resgate em BitCoin para devolução dos dados Anti-Ransonware Tools Spywares Usualmente via anexo de email e instalação de aplicativos baixados da Internet (search bars) Obter o comportamento e informações pessoais do usuário infectado e direciona-lo para sites de propaganda Antispyware Tools Rootkits Instalado pelo invasor após ter acesso ao sistema (usualmente presente em servidores invadidos) Permitir o atacante não ser detectado em acessos futuros. Usualmente aplicativos de sistema como "ls", "ps" e outros são substituídos pelos do rootkit chkrootkit Fundamentos em Segurança Ofensiva – Página 21 de 44 Capítulo 5. Segurança ofensiva Aprofundaremos neste capítulo o entendimento e conceitos sobre segurança ofensiva. É tudo igual ou diferente? Alguns conceitos em segurança ofensiva, são frequentemente confundidos, e merecem, portanto, explicação a respeito. Pen Tester ou penetration tester diz respeito ao profissional ou equipe de profissionais que são contratados para executar testes de penetração. Tais testes usualmente são amparados por contratos, que tem escopo, tempo e custo bem definidos. Red team pode ser entendido como a equipe de segurança ofensiva de uma empresa. O trabalho executado por um red team é análogo ao pen tester, no entanto, se difere pelo fato de ser contínuo. Na maioria dos casos, o red team é composto por funcionários da empresa onde se executam os testes de penetração. Usualmente, o red team é presente em empresas de grande porte. Como visto em capítulo anterior, o conceito de hacker é frequentemente citado pela mídia como atrelado a uma ou mais pessoas que causam danos a uma empresa, no entanto, o conceito, como também vimos através da Wikipédia, diz respeito a “um indivíduo que se dedica com intensidade incomum a conhecer e modificar os aspectos mais internos de dispositivos, programas e redes de computador”, desta forma, o mais correto é atribuir o nome de hacker malicioso a indivíduos que geram danos a empresas, buscando obter ganho financeiro ou mesmo status. Ethical Hacker, é o indivíduo que atua em red teams ou em consultorias/empresas que prestam serviços (pen testers) de forma ética e, portanto, consensual. Fundamentos em Segurança Ofensiva – Página 22 de 44 Tipos de ataque e obtenção de autorização Existem três tipos de ataques: Black box: nenhum conhecimento é fornecido ao atacante (ethical hacker), devendo este executar todas as etapas necessárias para obter acesso não autorizado a sistemas ou dados. Gray box: conhecimento ouacessos parciais se aplicam neste tipo de ataque. Assim, poderíamos considerar, por exemplo, um usuário que tem acesso não privilegiado a um sistema e que busca elevar seus privilégios de forma não autorizada, como um tipo de ataque gray box. White box: neste tipo de ataque, que se confunde mais com uma análise exploratória, privilégios são concedidos, por exemplo, ao código fonte de uma aplicação, e o ethical hacker busca vulnerabilidades que possam ser futuramente corrigidas. É fundamental que em todos os tipos de ataque (black, gray ou white box) o ethical hacker, obtenha autorização prévia, seja este integrante de uma empresa contratada (pen tester) ou integrante do red team. Tal autorização deve ser concedida por escrito, delimitar escopos e ações a serem tomadas por este no caso da descoberta de vulnerabilidades. É fundamental que o ethical hacker comunique a empresa, através dos canais estabelecidos, a descoberta de tais vulnerabilidades. De forma alguma o ethical hacker, deve tornar pública as suas descobertas (vulnerabilidades) atreladas a empresa alvo. Fases de um ataque De acordo com o EC-Council, um ataque pode ser descrito em cinco fases, conforme figura abaixo: Fundamentos em Segurança Ofensiva – Página 23 de 44 Figura 11 – Fases de um ataque. Fonte: EC-Council, com adaptações do autor. Engenharia social Obter informações, acessos ou influenciar pessoas para que executem ações em prol de um ataque recebe o nome de engenharia social. Esta técnica, ficou mundialmente conhecida após Kevin Mitnick ser preso em 1995, por invadir sistemas de telecomunicações. Cito este vídeo no Youtube que esclarece bem como a técnica funciona: https://www.youtube.com/watch?v=My-SizcEJok. Outra forma de ataque que se baseia em engenharia social é aquela atrelada a conteúdos (e-mails, sites de internet, publicações em redes sociais etc.) que levam a pessoa a, na maioria das vezes, clicar em um link ou executar um arquivo infectado que permite ao atacante acesso a informações não autorizadas. https://www.youtube.com/watch?v=My-SizcEJok Fundamentos em Segurança Ofensiva – Página 24 de 44 Capítulo 6. Reconhecimento, varredura e enumeração Neste capítulo temos as práticas de reconhecimento, varredura e enumeração que são demonstrados nas aulas gravadas em vídeo, aqui você irá encontrar os conceitos básicos e referências sobre as ferramentas. Reconhecimento com Shodan O Shodan (https://shodan.io) é uma ferramenta de busca online que apresenta informações sobre equipamentos, serviços ou qualquer outra coisa que esteja pública na internet. De acordo com o próprio site é possível responder a perguntas como: qual a versão do IIS é a mais popular em algum país do mundo, ou, considerando que uma nova vulnerabilidade seja descoberta, qual seria a quantidade de dispositivos infectados no mundo? Realizar uma busca no Shodan é simples, basta digitar o que se deseja e ele retorna uma página com os IPs encontrados, sua localização e informações como versão, data que foi feita a query pelo Shodan e outras. Para realizar mais do que dois buscar é necessário estar logado, de forma gratuita, no site. Figura 12 – Retorno da pesquisa no Shodan. Fonte: shodan.io. https://shodan.io/ Fundamentos em Segurança Ofensiva – Página 25 de 44 Reconhecimento com DNS O DNS, ou Domain Name System, é o serviço responsável por transformar nomes em IPs e vice-versa. A Internet trabalha com o roteamento de pacotes, baseado em endereços IPs, mas humanos são melhores em guardar nomes, este é o principal motivo da existência do DNS. Se desejo acessar a página do Uol, da Gol ou da Americanas, basta eu colocar o nome destes acrescidos do .com.br, ou seja, a associação da marca ao nome na internet é imediata. Podemos utilizar o DNS (ferramenta nslookup), para fazer buscas adicionais sobre quais são os servidores de e-mail de um domínio, quais são seus responsáveis e, dependendo do caso, até listar todas as entradas de DNS. Figura 13 – Utilização do nslookup para consulta de servidor de e-mail. NMAP O nmap (nmap.org) é uma ferramenta open source utilizada para realizar auditorias de segurança e discovery. Em nossas aulas em vídeo, utilizamos o nmap para realizar escaneamento de portas de um host específico e adicionamos a opção -A para exibir informações de sistema operacional e fingerprinting, conforme pode ser visto na imagem abaixo. Fundamentos em Segurança Ofensiva – Página 26 de 44 Figura 14 – Tela de saída do comando nmap –A. Scan de vulnerabilidades De acordo com o site openvas.org/#about, em 2005, os desenvolvedores do Nessus, decidiram parar de trabalhar com o projeto sob o licenciamento Open Source e passaram, a partir de então, a comercializar o mesmo. Deste ponto em diante surgiu o projeto OpenVas, que deu continuidade ao mesmo, usando o licenciamento Open Source. O OpenVas evoluiu e em 2017 a Greenbone, empresa que mantém seu código fonte, criou um produto comercial, assim como o Nessus, chamado “Greenbone Vulnerability Manager”, onde o OpenVas está presente como o scan de vulnerabilidade. Com isso, uma versão paga e outra gratuita foram originadas. Infelizmente, comparando o OpenVas/Greenbone de hoje com o de 3 anos atrás, muitas são as dificuldades atuais para a instalação e atualização do produto, o que torna o processo didático custoso e muito focado em resolver problemas de Fundamentos em Segurança Ofensiva – Página 27 de 44 instalação, configuração e atualização em detrimento de focar no que importa, que é o scan de vulnerabilidades. Por este motivo utilizamos em nossas aulas o Nessus Essentials, que tem todas as avaliações de profundida da versão paga, com limitação apenas de 16 IPs verificados. Se o seu ambiente requerer um volume maior do que estes 16 IPs, sugiro seguir para a versão paga do Nessus ou mesmo a versão paga do Greenbone. Figura 15 – Versão do Nessus utilizada nas aulas. Fonte: https://www.tenable.com/. Abaixo exemplo de relatório, gerado pelo Nessus (html). https://www.tenable.com/ Fundamentos em Segurança Ofensiva – Página 28 de 44 Figura 16 – Relatório gerado pelo nessus. CVE e CVSS CVE (Common Vulnerabilities and Exposures) pode ser entendido como uma referência mundial para catalogar vulnerabilidades. É mantida por uma empresa chamada MITRE e é financiado pelo governo americano. O CVE é utilizado tanto pelo Nessus como pelo Openvas para as vulnerabilidades encontradas. CVSS (Common Vulnerability Scoring System) é utilizado para mensurar o impacto de uma vulnerabilidade, baseado em pontuações atribuídas a sua Fundamentos em Segurança Ofensiva – Página 29 de 44 severidade. Assim, temos os CVEs, que apresentam a vulnerabilidade e o CVSS que atribui o seu grau de severidade, conforme demonstrado na imagem abaixo: Figura 17 – CVE e CVSS. Fonte: https://www.imperva.com/. Na imagem abaixo, podemos observar que a vulnerabilidade (CVE-2018- 8011) que afeta o Apache, tem uma pontuação total de 7.5, baseado em todas as métricas que são definidas e apresentadas no site do NIST (nvd.nist.gov). https://www.imperva.com/ Fundamentos em Segurança Ofensiva – Página 30 de 44 Figura 18 – Pontuação CVSS para vulnerabilidade no Apache. Fonte: https://nvd.nist.gov/. https://nvd.nist.gov/ Fundamentos em Segurança Ofensiva – Página 31 de 44 Capítulo 7. Exploração de vulnerabilidades - Infraestrutura Neste capítulo utilizamos o Kali e o Metasploit nas aulas em vídeo, para explorar vulnerabilidades na máquina Metasploitable. Kali O Kali Linux (kali.org) é uma distribuição Linux otimizada para realizar testes de penetração. É uma distribuição open source, baseada em Linux Debian. O Kali é mundialmente famoso por já entregar através de máquinas virtuais, ou através demídias de instalação, um conjunto completo para execução dos mais abrangentes testes, como brute force, application assessment, web application analysis, sniffing e muito mais. Em nossas aulas utilizamos a versão já instalada do Metasploit para explorar vulnerabilidades em uma distribuição Linux conhecida como metasploitable, que é intencionalmente vulnerável para o treinamento de pessoas, que como nós, buscam entender como realizar testes de penetração. Figura 19 – Kali Linux. Fonte: https://www.kali.org/. https://www.kali.org/ Fundamentos em Segurança Ofensiva – Página 32 de 44 Metasploit O Metasploit é um framework que tem versões open source e pagas para execução de exploração de vulnerabilidades. O Metasploit tem uma comunidade ativa no GitHub e conta com mais de 11 mil forks e 24 mil estrelas. Em nossas aulas gravadas, utilizamos exploits para obter acesso, realizar ataques de brute force e para elevar privilégios. Figura 20 – Tela do Metasploit. Fundamentos em Segurança Ofensiva – Página 33 de 44 Capítulo 8. Explorando vulnerabilidades – Aplicações Segurança em aplicações é um tema vasto e amplo, que abrange várias tecnologias arquiteturas, frameworks e outros. Iremos entender o que torna o desenvolvimento seguro e realizaremos exploração de vulnerabilidade em uma aplicação web. Entendendo a causa de aplicações inseguras O autor que aqui vos escreve criou carreira iniciando na área de suporte técnico, passou em seguida por áreas de segurança em consultorias e empresas de telecom. Recentemente resolveu inovar e junto com o time de desenvolvedores sentiu na pele o que é desenvolver com segurança. Desenvolver um código seguro passa por aprender a desenvolver com segurança. Isso abrange não só os desenvolvedores, mas os clientes do produto a ser construído, que precisam ser engajados em ter um pouco menos de velocidade em prol de qualidade, que neste caso é materializado através da segurança. Arquitetura de aplicações Existem diversas formas de comunicação e funcionamento de aplicações, que são sumarizadas no quadro abaixo. Fundamentos em Segurança Ofensiva – Página 34 de 44 Figura 17 – Formas de comunicação e funcionamento de aplicações. Atualmente as arquiteturas que envolvem Web e APIs (Application Programming Interface) são as mais utilizadas, sendo esta última especialmente útil na confecção de aplicações que podem ser rodadas em celulares, televisões, dispositivos diversos como Alexa da Amazon e demais dispositivos de IoT. As figuras abaixo ilustram o funcionamento destes tipos de aplicação que serão exploradas a seguir, a respeito dos métodos de ataque e defesa. Na arquitetura MVC há uma delegação de responsabilidade em cada camada de aplicação. Sendo elas: ▪ View: responsável por coletar e exibir dados para usuários (veja sobre vulnerabilidades desta camada quando falarmos de Javascript nas aulas práticas). ▪ Controller: responsável por receber as requisições e tratá-las. ▪ Model: responsável por tratamento junto a camada de dados. Figura 18 – Arquitetura MVC. Fonte: UFMG Tipo de arquitetura Principal caracteristica Exemplos Ataques mais comuns Stand alone Não se comunicam em rede PDF Readers PDF que exploram erros e permitem instalação de malwares Client Server Comunicação de muitos para poucos Maior parte do processamento no servidor Microsoft Outlook Ataques ao servidor de emails Ataques ao cliente Microsoft Outlook Sistemas distribuídos Funcionalidades espalhadas em diversos locais (geográficos ou não) Microserviços Ataque ao hub central (orquestrador) Cloud Não sabemos onde fica Netflix Falhas humanas ou bugs de software Web Camadas (usualmente MVC) Aplicações corporativas DDoS, exploração de vulnerabilidades na aplicação Mobile Transito de dados (e não de imagens, sons, etc) Jogos Ataques ao servidor Fundamentos em Segurança Ofensiva – Página 35 de 44 Figura 19 – REST. Fonte: CXArch. Na arquitetura de APIs, a View é feita pelo dispositivo remoto, podendo ser uma página Web, um dispositivo móvel ou um dispositivo IoT. Todo o processamento é feito pelo fornecedor de dados. Um bom exemplo disso é a API de consulta de CEP dos Correios, que pode ser consultada por qualquer site de comércio eletrônico, por exemplo. Ataque a APIs O ataque às APIs ocorre quando estas não processam adequadamente as permissões, controles de sessão e outros mecanismos de proteção de segurança ao fornecer as informações devidas. ▪ Enumeração de dados / Massive attack (DELETE, PUT). ▪ Falha no controle de sessão. ▪ Injeção de parâmetros. ▪ DoS (ausência de paginação). ▪ Excesso de confiança na camada de apresentação/view (Javascript). Fundamentos em Segurança Ofensiva – Página 36 de 44 Com relação ao excesso de confiança na camada de apresentação, é importante destacar que o Javascript é processado na camada de View e que, portanto, pode ser manipulado por um usuário mal-intencionado. Desta forma, qualquer validação que envolva regra de negócio pode ser facilitada na camada view, mas deve ser verificada no backend (API). As proteções para as APIs serão detalhadas a seguir, junto as proteções aplicadas às aplicações Web. Ataques a aplicações Web De acordo com o OWASP (Open Web Application Security Project), estes são os ataques mais comuns a aplicações Web: ▪ Injeção de parâmetros (SQL Injection, REST Parameters etc.). ▪ Falha no controle de acesso (erro de implementação de sessão, auth etc.). ▪ Exposição de informações sensíveis (disponibilização demasiadamente de infos). ▪ Interfaces administrativas expostas. ▪ Falhas de controle de acesso (usuários autenticados acessam mais do que deveriam). ▪ Configuração default (mensagens verbosas, bibliotecas usadas sem configuração). ▪ Cross site scripts (Injeção de códigos JS em formulários Web). ▪ Deserialização insegura (confiar no que vem do cliente ou é processado por este). ▪ Logs / monitoração insuficientes. Fundamentos em Segurança Ofensiva – Página 37 de 44 Utilizando Burp e SQLMAP Em nossas aulas utilizamos o BURP e o SQLMAP para explorar a vulnerabilidade mais comum na Web: SQL Injection. Figura 20 – Burp. Figura 21 – Sqlmap. Fundamentos em Segurança Ofensiva – Página 38 de 44 Capítulo 9. Apresentando resultados A apresentação de resultados, é uma etapa importante no contexto de pen testers ou red teams. Neste capítulo veremos o que tais apresentações precisam ter. Apresentação de resultados Como vimos em capítulo anterior, por estar presente no dia a dia de uma empresa, os times purple e red atuam e apresentam resultados de forma contínua e, por serem funcionários desta empresa, tem um envolvimento maior, ou seja, estão diretamente interessados que a empresa gere bons resultados. Já o pen tester, tem um contrato com início e término definidos e o seu envolvimento com a empresa contratante dura apenas enquanto o contrato está em vigor, estas diferenças fazem com que os resultados sejam apresentados de forma e em tempos distintos. Purple teams e Red Team, usualmente tem além de apresentações de resultados dos testes que executam, outros parâmetros para mensurar o trabalho feito. É comum, por exemplo, que métricas como tempo médio de correção de vulnerabilidades críticas, risco total do ambiente e outros façam parte da rotina destes times. Saber apresentar resultados é fundamental para o sucesso tanto de contratos quanto de times, desta forma, a pessoa ou time que irá apresentar os resultados precisa passar uma mensagem clara, sobre o que foi encontrado no ambiente, sua severidade e as recomendações. Uma frase de impacto como: “O ambiente analisado apresenta três vulnerabilidades críticas que se não corrigidas poderão permitir o vazamento de todas as informações de clientes.”,certamente é mais relevante que uma série de gráficos abarrotados com informações que não falam por si só e usualmente este é o erro que muitos times cometem. Na expectativa de demonstrar o quão árduo foi o trabalho, acabam exibindo informações de forma demasiada e não conseguem passar a mensagem principal. Fundamentos em Segurança Ofensiva – Página 39 de 44 Certamente a apresentação de resultados não se resume à apenas uma frase de efeito, dependendo do público é necessário entrar nos detalhes das vulnerabilidades encontradas e correções sugeridas, o ponto aqui é que quem apresenta precisa dosar e ajustar o material para o público que recebe a mensagem. De uma forma geral, um relatório de apresentação de resultados, segue a seguinte forma: Figura 22 – Apresentação de resultados. O dilema do Red Team Os integrantes do Red team vivem em um constante dilema. Se por um lado precisam apontar a falha no desenvolvimento de um software, por outro, querem manter o bom relacionamento com seus colegas de trabalho e superiores, e certamente não é apontando o problema que tais profissionais serão bem quistos no ambiente de TI de uma empresa. Este tipo de dilema é enfrentado a décadas por profissionais de auditoria interna. Sabidamente, tal dilema não é enfrentado por profissionais de auditoria externa. O quadro abaixo, produzido pelo Portal de Auditoria, demonstra as atividades, ações e mindset de cada profissional: Fundamentos em Segurança Ofensiva – Página 40 de 44 Figura 23 – Comparação auditoria interna e externa. Fonte: https://portaldeauditoria.com.br/. A partir do quadro acima, o autor, que aqui escreve, elaborou o quadro abaixo, comparando integrantes de Red Teams e Pen Testers, veja como fica claro a definição do dilema neste contexto. https://portaldeauditoria.com.br/ Fundamentos em Segurança Ofensiva – Página 41 de 44 A pergunta natural que surge, é como resolver tal dilema. Pois bem, querido(a) leitor(a), a má notícia é que não há solução. A natureza do trabalho de red teams, assim como de auditores internos, levam a esta encruzilhada. O que torna as coisas mais simples em muitas empresas é a senioridade das pessoas envolvidas no trabalho. Se o problema converge para apontar falhas no processo e não nas pessoas há uma tendência em suavizar as relações, no entanto, se a cultura da empresa é para buscar e achar “o (i)responsável” que criou vulnerabilidade X, a tendência é que o dilema se intensifique. Outra forma de suavizar o dilema é tornando as decisões tomadas em forma de colegiado, de tal forma que a alta administração decide em colegiado sobre, por exemplo, retirar ou barrar a entrada em produção de uma aplicação vulnerável, avaliando para tal os prós e contras. Consenso, dificilmente haverá, mas criando uma decisão por votos, por exemplo, pode diminuir os conflitos de interesse. Fundamentos em Segurança Ofensiva – Página 42 de 44 Capítulo 10. Entendendo como ocorre a proteção do ambiente O foco dos nossos estudos foi totalmente orientado a segurança ofensiva, no entanto, apresentamos neste capítulo final algumas palavras-chave que podem ser usadas no Google para obtenção de mais informações a respeito. Para aqueles que trabalham ou pretendem trabalhar em Blue Teams, um nível de especialização diferente do que vimos nas aulas é requerido, como por exemplo a arquitetura e configuração de ambientes e cloud, frameworks de governança e muitos outros. Entendendo como ocorre a proteção do ambiente A proteção do ambiente envolve principalmente, quatro verticais: proteger o código/aplicação, proteger a infra, proteger os dados e proteger as pessoas. Os profissionais que atuam em Blue Teams podem buscar conhecimento nas seguintes áreas: Proteção do código/aplicação: ▪ Treinar desenvolvedores em técnicas de segurança. ▪ Automatizar testes na implantação e no deploy(CI/CD). Proteção da infra: ▪ Entender e estudar as melhores arquiteturas em Cloud e on-premisse. ▪ Dominar os ativos de defesa como Firewalls, IPS, Application Firewall, e outros. Proteção de dados: ▪ Conhecer sobre DLP e criptografia. ▪ Trabalhar a gestão do consentimento do usuário e mudar o mindset, para reter menos informação. Fundamentos em Segurança Ofensiva – Página 43 de 44 Proteção de pessoas: ▪ Realizar treinamentos constantes de conscientização dos times. ▪ Implantar, sempre que possível MFA (múltiplo fator autenticação). Muitos frameworks e documentações são disponibilizadas para ajudar os integrantes de Blue Teams na implantação de melhores práticas de proteção, abaixo cito algumas: ▪ LGPD. ▪ COBIT/ITIL. ▪ OWASP. ▪ DevSecOps. ▪ ISO 27001/2. ▪ NIST (publicação 800-53 e outras). Fundamentos em Segurança Ofensiva – Página 44 de 44 Referências ABNT – ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. ABNT NBR ISO/IEC 27001 – Tecnologia da informação — Técnicas de segurança — Sistemas de gestão da segurança da informação — Requisitos. Brasil, 2013. JOINT TASK FORCE TRANSFORMATION INICIATIVE. Managing Information Security Risk: Organization, Mission, and Information System View. NIST, mar. 2011. Disponível em: <https://csrc.nist.gov/publications/detail/sp/800-39/final>. Acesso em: 20 mai. 2021. HARRIS, Shon; MAYMI, Fernando. CISSP All-in-One Exam Guide. 8. ed. McGraw- Hill Education, 2018. https://csrc.nist.gov/publications/detail/sp/800-39/final
Compartilhar