O material utilizado neste curso é de autoria de Leonardo Gardini. No caso de eventual necessidade o material somente poderá ser utilizado, mesmo que em parte, mediante prévia e explícita anuência do autor. Segurança de Aplicações Internet e Comércio Eletrônico Especialização em Administração e Segurança de Sistemas Computacionais
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor. Autor: Contato: GARDINI, Leonardo lgardini@gmail.com
APRESENTAÇÃO Prof. Gardini IT Security Leader Solar/Coca-Cola Professor convidado nos cursos de Pós graduação UNIFOR, FA7, FAP e FIC Mestrando em Computação Aplicada (UECE) MBA em Governança de TI (Estácio/FIC) Bacharel em Sistemas de Informação (FA7) Técnico Eletrotécnico (CEFET-PR) CISM (Certified Information Security Manager) ISO/IEC 27002 Foundation CobiT 4.1 Foundation ITIL v3 Foundation Perito Forense Computacional em ambiente Windows CCNA (Cisco Certified Network Associate) - Expirado Associado ISACA (Information Systems Audit and Control Association) Apresentação de trabalhos de pesquisa em conferências internacionais (IEEE)
ASSUNTOS QUE SERÃO ABORDADOS NESTA DISCIPLINA Data 08.03.2014 22.03.2014 05.04.2014 Conteúdo Módulo I: Apresentação da Disciplina: Objetivos, Metodologia, Conteúdo, Avaliação, Cronograma; Conceitos Gerais de Segurança da Informação na Internet; Vulnerabilidades WEB e Conceito Geral de PenTest; Hacking Game Módulo II: Conceitos Gerais sobre Comércio Eletrônico; Regulamentações de Segurança para Comércio Eletrônico; Segurança no Comércio Eletrônico; Conceitos Gerais sobre Bitcoin; Protocolo seguro SSL/TLS; Prática (SSL/TLS, Nessus e Wireshark) Módulo III: Protocolo seguro IPSec; Virtual Private Network (VPN); Protocolo seguro PGP; Padrão seguro S/MIME; Seminários; Encerramento da Disciplina
REGRAS EM SALA DE AULA Horário das aulas: 08:00h às 11:30h (Almoço 1½h ) 13:00h às 17:00h As chamadas para verificação das presenças serão efetuadas aleatoriamente durante as aulas.
REGRAS DAS AVALIAÇÕES E AMBIENTE DA SALA DE AULA Avaliação: Seminário no dia 05.04.2014 + participação em sala *1(um) ponto adicional para a equipe vencedora do Hacking Game Mínimo de 75% de presença para poder ser aprovado. Celulares desligados ou no silencioso. Em caso de urgência, sair da sala para atender o telefone.
BIBLIOGRAFIA (Recomendação)
PROPÓSITO DESTA DISCIPLINA Esta disciplina tem o propósito de capacitar os alunos a: Entender a necessidade de Segurança nas Aplicações Conhecer os protocolos seguros no modelo TCP/IP Identificar vulnerabilidades em aplicações WEB Administrar segurança em aplicações WEB
MÓDULO I Conceitos Gerais de Segurança da Informação na Internet
INTRODUÇÃO Os 10 HACKERS mais famosos Fonte: terra.com.br 1º. Kevin Mitnick. Um dos mais famosos hackers de todos os tempos, ele chegou a roubar 20 mil números de cartões de crédito e assombrava o sistema telefônico dos EUA. Foi o primeiro hacker a entrar para a lista dos 10 criminosos mais procurados pelo FBI. 2º. Adrian Lamo. Na lista de invasões do jovem hacker americano estão os sites da Microsoft, do Yahoo! e do jornal The New York Times. 3º. Raphael Gray. O hacker britânico Raphael Gray, 19 anos, foi condenado por roubar 23 mil números de cartões de crédito, entre eles um de Bill Gates. 4º Jonathan James. Preso aos 16 anos, o hacker invadiu uma das agências Departamento de Defesa americano. Lá, o jovem instalou um backdoor para roubar senhas de empregados da agência. 5º. Jon Lech Johansen. Conhecido como DVD Jon, o hacker norueguês ganhou fama após burlar os sistemas de proteção dos DVDs comerciais. 6º. Vladimir Levin. O criminoso russo liderou uma gangue que invadiu computadores do Citibank e desviou US$ 10 milhões, em 1994. 7º. Onel de Guzman. Com apenas 23 anos, o filipino Onel de Guzman causou um prejuízo de US$ 10 bilhões com seu vírus I Love You, que atingiu sistemas de e-mail no mundo todo. 8º. Kevin Poulsen. Ganhou um Porsche num concurso realizado por uma rádio americana. O 102º ouvinte que telefonasse para a emissora, levava o carro. Poulsen invadiu a central. 9º. Robert Morris. O americano, filho do cientista chefe do Centro Nacional de Segurança Computacional dos EUA, espalhou o primeiro worm que infectou milhões de computadores e fez grande parte da Internet entrar em colapso, em 1988. 10º. David L. Smith. Com o vírus Melissa, o programador conseguiu derrubar servidores de grandes empresas, como Intel, Lucent e Microsoft.
INTRODUÇÃO Mas nós estamos do lado da LEI!!
INTRODUÇÃO Conceitos de Segurança da Informação INFORMAÇÃO Disponibilidade Marcos Sêmola
MÓDULO I Vulnerabilidades WEB e Conceito Geral de PenTest
VULNERABILIDADES EM APLICAÇÕES WEB Principais vulnerabilidades encontradas em Aplicações Web
CROSS SITE SCRIPTING (XSS) Os furos XSS ocorrem sempre que uma aplicação obtém as informações fornecidas pelo usuário e as envia de volta ao navegador sem realizar validação ou codificação daquele conteúdo. O XSS permite aos atacantes executarem scripts no navegador da vítima, o qual pode roubar sessões de usuário, pichar sites Web, introduzir worms, etc.
FALHA DE INJEÇÃO (EM ESPECIAL SQL INJECTION) A injeção ocorre quando os dados fornecidos pelo usuário são enviados a um interpretador com parte do comando ou consulta. A informação maliciosa fornecida pelo atacante engana o interpretador que irá executar comandos mal intencionados ou manipular informações.
VAZAMENTO DE INFORMAÇÕES E TRATAMENTO DE ERROS INAPROPRIADO As aplicações podem divulgar informações sobre suas configurações, processos internos ou violar a privacidade por meio de uma série de problemas na aplicação, sem haver qualquer intenção. Os atacantes podem usar esta fragilidade para roubar informações consideradas sensíveis ou conduzir ataques mais estruturados.
AUTENTICAÇÃO FALHA E GERENCIAMENTO DE SESSÃO As credenciais de acesso e token de sessão não são protegidos apropriadamente com bastante frequência. Atacantes comprometem senhas, chaves ou tokens de autenticação de forma a assumir a identidade de outros usuários.
ARMAZENAMENTO CRIPTOGRÁFICO INSEGURO As aplicações Web raramente utilizam funções criptográficas de forma adequada para proteção de informações e credenciais. Os atacantes se aproveitam de informações mal protegidas para realizar roubo de identidade e outros crimes, como fraudes de cartões de crédito.
COMUNICAÇÕES INSEGURAS As aplicações frequentemente falham em criptografar tráfego de rede quando se faz necessário proteger comunicações críticas/confidenciais.
INDICADORES MITRE (TOP 10 VULNERABILIDADES) 1. Injection (se aproveita de falhas que interagem com base de dados via SQL) 2. Cross-Site Scripting (XSS) (ativa ataques maliciosos ao injetar client-side script em páginas Web) 3. Broken Authentication and Session Management (Quebra de Autenticação e Gerenciamento de Sessão) 4. Insecure Direct Object References (ocorrência comum em aplicações PHP) 5. Cross-Site Request Forgery (CSRF) 6. Security Misconfiguration 7. Insecure Cryptographic Storage 8. Failure to Restrict URL Access (Falha para Restrição de Acesso à URL) 9. Insufficient Transport Layer Protection 10. Unvalidated Redirects and Forwards (Invalidar Redirecionamentos e Encaminhamentos)
RECORDANDO... Exemplo de VULNERABILIDADE: Uso de protocolos inseguros para transmissão dos dados. Exemplo de AMEAÇA: Um funcionário insatisfeito com a empresa. Exemplo de ATAQUE/RISCO: O usuário insatisfeito capturando o tráfego de rede.
QUEM EXPLORA AS VULNERABILIDADES? De acordo com a pesquisa elaborada pelo Computer Security Institute em 2008, mais de 70% dos ataques partem de utilizadores legítimos de sistemas de informação, ou seja, os famosos Insiders. Interno (70% dos ataques) Externo Funcionários Insatisfeitos Crackers Funcionários Despreparados Espionagem Concorrentes Espionagem
PROCEDIMENTOS DE UM PENTEST Os procedimentos realizados por um profissional de Pen Test são muito similares aos procedimentos realizados pelos Crackers, porém com diferentes éticas e intenções. 1. Levantando Informações 2. Varreduras 5. Limpando Rastros 3. Ganhando Acesso 4. Mantendo Acesso
1. LEVANTAMENTO DE INFORMAÇÕES Nesta fase emprega-se aproximadamente 90% do tempo gasto em uma análise de segurança (Pen Test). Nesta etapa, o principal objetivo do profissional é conseguir o maior número de informações sobre o alvo, para somente então, começar a planejar a melhor maneira de sua intrusão. Quanto maior o tempo empregado nesta fase, maior a probabilidade de sucesso na fase de acesso.
1. LEVANTAMENTO DE INFORMAÇÕES (CONT...) Nesta fase procura-se conhecer: Informações sobre a organização ou pessoa alvo; Informações sobre os servidores da organização; Informações sobre os funcionários da organização; Informações sobre os amigos e pessoas chaves da organização; Endereços de e-mail, telefones e nº de registro (crachá); Sistemas e equipamentos utilizados (parcerias); Qualquer outra informação relacionada com o negócio.
2. VARREDURAS Nesta etapa, o profissional se utiliza das informações descobertas na fase anterior e as usa para examinar a rede de maneira direcionada, conduzindo uma série de buscas, com a finalidade de obter as versões de sistemas e serviços que possam ser explorados, ou seja, que possam estar vulneráveis. Nesta fase procura-se conhecer: Sistemas operacionais utilizados e suas versões; Serviços utilizados e suas versões; Existência de IDS/IPS, firewalls e outros controles de segurança.
3. GANHANDO ACESSO GENDA Nesta fase, é onde a invasão realmente ocorre. Através das informações obtidas nas fases anteriores, fazem possíveis a descoberta de vulnerabilidades que agora podem ser exploradas para obter acesso ao sistema.
4. MANTENDO ACESSO E 5. LIMPANDO RASTROS Estas duas fases são as que basicamente diferenciam os profissionais de Pen Test dos Crackers, pois um profissional autorizado (pen test), não precisará manter acesso ao equipamento, nem mesmo efetuar a limpeza de registros, uma vez que já efetuou os serviços contratados e relatará todos os problemas diagnosticados ao seu cliente.
OBTENDO INFORMAÇÕES Obtendo Informações do Domínio Ex.: Comando whois e/ou visita ao site http://www.registro.br Neste momento conseguimos obter quais informações?? Nome e IP dos servidores DNS; Nome do Responsável pelo domínio; Datas de alteração e criação; Usuário - E-mail; CNPJ. Obs: Sites Antigos - http://www.archive.org
ATAQUES PARA OBTENÇÃO DE INFORMAÇÕES/VULNERABILIDADES Port Scanning Obtém informações a respeito dos serviços acessíveis (portas abertas) em um sistema. Scanning de vulnerabilidades Obtém informações sobre vulnerabilidades específicas (conhecidas) para cada serviço em um sistema.
ESTE NOME LEMBRA ALGUMA COISA???
GOOGLE HACKING Google Hacking é a atividade de usar recursos de busca do site, visando atacar ou melhor proteger as informações de uma empresa. As informações disponíveis nos servidores web da empresa provavelmente estarão nas bases de dados do Google. Um servidor mal configurado pode expor diversas informações da empresa no Google. Não é difícil conseguir acesso a arquivos de base de dados de sites através do Google.
GOOGLE HACKING Detectando sistemas usando a porta 8080 inurl:8080 -intext:8080 Encontrando VNC intitle:vnc inurl:5800 intitle:vnc or intitle:"vnc Viewer for Java Encontrando Apache 1.3.20 "Apache/1.3.20 server at" intitle:index.of http://www.exploit-db.com/google-dorks/
ALGUNS ERROS COMUNS Descuido Erros de Configuração Listagem de Diretórios Demonstração de campos e valores na barra de endereço Arquivos Antigos / Backup Usuários e Senhas Padrões Usuários e Senhas fracas Demonstração de Versões/Sistemas que estão sendo utilizados. (Apache / FTP / Webmail) Falta de atualização (de TODAS as aplicações, sistemas operacionais, etc) Não execução de Hardening!
EXEMPLO DE RELATÓRIO DE VULNERABILIDADES http://cve.mitre.org/ Nome Descrição Severidade Classificação da Vulnerabilidade CVE Solução Vulnerabilidade na biblioteca ASN.1 Foi detectado a ausência do patch que corrige a vulnerabilidade na biblioteca ASN.1 utilizada em alguns serviços do Microsoft Windows. Esta vulnerabilidade servidor como usuário SYSTEM.permite um usuário mal intencionado executar comandos remotamente no Alta Lógica CAN-2003-0818 - Aplique a correção disponibilizada pela Microsoft no boletim MS04-007; URL: http://www.microsoft.com/technet/security/bulletin/ms04-007.mspx Dados Obtidos - Ativos afetados www.nxsecurity.com MOSTRAR RELATÓRIO ENCONTRADO NA WEB
VAMOS PRATICAR?
MÓDULO I Hacking Game
HACKING GAME Regras do jogo: 1 Etapa: Separar em grupos (vamos nomear os grupos!) Identificar seu alvo Buscar o máximo de informações possíveis sobre seu alvo Montar uma apresentação com os resultados obtidos Apresentar para a turma os resultados colhidos na análise Abaixo segue a composição da nota final desta etapa: 1 pontos (informações sobre localização) 1 pontos (informações dos representantes legais) 2 pontos (informações sobre o servidor WEB) 2 pontos (informações adicionais sobre a empresa, como a infraestrutura interna de TI) 2 pontos (desenvoltura para realização da apresentação em sala)
HACKING GAME Que comecem os jogos
BIBLIOGRAFIAS UTILIZADAS PARA DESENVOLVER ESTE MATERIAL Bibliografia KUROSE, James F.; ROSS, Keith W. Computer Networking A Top- Down Approach. Pearson Education Br. 6 Edição NAKAMURA, Emilio; GEUS, Paulo. Segurança de Redes em Ambientes Cooperativos. São Paulo: Novatec, 2010. PEIXOTO, Mário César Pintaudi. Engenharia Social e Segurança da Informação na Gestão Corporativa. Rio de Janeiro: Brasport, 2006. SÊMOLA, Marcos. Gestão da Segurança da Informação: uma visão executiva. 14ª ed. Campus Elsevier, 2011 CISM, Review Manual. Edição 2010, ed. ISACA