Segurança em Sistemas de Informação Eduardo Luzeiro Feitosa Agenda Conceitos Normas de Segurança Avaliação de Riscos Políticas de Segurança Detecção de Vulnerabilidades Ataque Conceitos Segurança da Informação Segurança da Informação (SI) é a proteção de sistemas de informação contra desastres, erros e manipulação de modo a minimizar a probabilidade e impacto de incidentes Prevenção: Confidencialidade Integridade Disponibilidade Segurança da Informação Confidencialidade Garantia de que a informação é acessível somente por pessoas autorizadas Não deve acontecer divulgação intencional (ou não) de informações reservadas Questões de confidencialidade surgem porque processos e informação sensíveis do negócio só devem ser divulgados para pessoal / programas autorizados Necessidade de controlar acesso Segurança da Informação Integridade Garantia da exatidão e completude da informação e dos métodos de processamento Informações não devem ser Modificadas por pessoas/processos desautorizados Modificações desautorizadas não sejam feitas por pessoas/processos autorizados Inconsistentes Necessidade de garantir que os objetos são precisos e completos Segurança da Informação Disponibilidade Garantia que usuários autorizados obtenham acesso à informação e aos ativos correspondentes sempre que necessário Informação e serviços do negócio devem estar disponíveis quando necessários Necessidade de controles para garantir confiabilidade dos serviços Segurança da Informação Como a SI pode ser obtida? Implementando controles para garantir que os objetivos de segurança sejam alcançados Porque SI é necessária? A informação, processos, sistemas e redes são importantes ativos para os negócios Confidencialidade, integridade e disponibilidade são essenciais para preservar o negócio As informações são constantemente “ameaçadas” Dependência dos SIs gera vulnerabilidades Quase nada é projetado para ser seguro Segurança da Informação Requisitos de segurança Avaliação de riscos dos ativos Avaliação de ameaças, vulnerabilidades, probabilidade de ocorrência de incidentes, impacto ao negócio Legislação vigente, estatutos, regulamentação, cláusulas contratuais Devem ser obrigatoriamente atendidos Normas para Segurança da Informação Norma BS 7799 (BS = British Standard) BS-7799-1:2000 – Primeira parte Publicada em 1995 pela primeira vez Versão atual de 2000 Código de prática para a gestão da segurança da informação Objetivo da organização: conformidade BS-7799-2:2002 – Segunda parte Publicada em 1998 pela primeira vez Versão atual de 2002 Especificação de sistemas de gerenciamento de segurança da informação (ISMS – information security management system) Objetivo da organização: certificação Norma ISO/IEC 17799 Internacionalização da norma BS 7799 ISO/IEC 17799:2000, substitui a norma britânica Inclui 127 controles e 36 objetivos de controle agrupados em 10 áreas de controle Controles baseados na experiência das organizações e melhores práticas Atualmente está sendo atualizado ISO/IEC 17799:2005: disponível maio/junho 2005 Várias modificações gerais e específicas http://www.aexis.de/17799CT.htm Norma NBR 17799 NBR ISO/IEC 17799 Versão brasileira da norma ISO, homologada pela ABNT em setembro de 2001 Tradução literal da norma ISO www.abnt.org.br No Brasil, deve-se usar a norma brasileira Em outros países, recomenda-se verificar se existe uma norma local Detalhe importante: Deve-se pagar pelas normas Vantagens das Normas (1 # 2) Conformidade com regras dos governos para o gerenciamento de riscos Maior proteção das informações confidenciais da organização Redução no risco de ataques de hackers Recuperação de ataques mais fácil e rápidas Metodologia estruturada de segurança que está alcançando reconhecimento internacional Vantagens das Normas (2 # 2) Maior confiança mútua entre parceiros comerciais Custos possivelmente menores para seguros de riscos computacionais Melhores práticas de privacidade e conformidade com leis de privacidade Gerenciamento e Avaliação de Riscos Terminologia (1 # 2) Risco Possibilidade de sofrer perda ou dano; perigo Ataque Acesso a dados ou uso de recursos sem autorização Execução de comandos como outro usuário Violação de uma política de segurança, etc Vulnerabilidade É uma falha que pode permitir a condução de um ataque Terminologia (2 # 2) Incidente A ocorrência de um ataque; exploração de vulnerabilidades Ameaça Qualquer evento que pode causar dano a um sistema ou rede A existência de uma vulnerabilidade implica em uma ameaça Exploit code Um código preparado para explorar uma vulnerabilidade conhecida Exemplos de Ameaças Pessoas chaves para uma organização Ferimento, morte Servidores de arquivos Ataques DoS Dados dos alunos Acesso interno não autorizado Equipamentos de produção Desastre natural Exemplos de Vulnerabilidades Pessoas chaves para uma organização Sem controle de acesso Servidores de arquivos Aplicação incorreta de correções (patches) Dados dos alunos Terceirizados não averiguados Equipamentos de produção Controles fracos de acesso físicos Gerenciamento de Riscos O gerenciamento de riscos é baseado no: Identificação (conhecimento) e avaliação (estimativa) de riscos Controle (minimização) de riscos Identificação de Riscos Conhecimento do Ambiente Identificar, examinar e compreender como a informação e como ela é processada, armazenada e transmitida Iniciar um programa detalhado de gerenciamento de riscos Conhecimento do inimigo Identificar, examinar e compreender as ameaças Gestores devem estar preparados para identificar as ameaças que oferecem riscos para a organização e a segurança dos seus ativos Estimativa de Riscos Passo 1: Caracterização do sistema O que há para gerenciar? Como a TI está integrada no processo? Passo 2: Identificação das ameaças Quais fontes de ameaças devem ser consideradas? (Interna/externa, acidental/intencional, maliciosa/nãomaliciosa) Passo 3: Identificação de vulnerabilidades Quais falhas/fraquezas podem ser exploradas? Passo 4: Análise de controles Quais são os controles atuais e planejados? Estimativa de Riscos Passo 5: Determinação das possibilidades Alta, Média e Baixa Passo 6: Análise de Impacto O que a exploração da vulnerabilidade pode resultar? Alta, Média e Baixa Passo 7: Determinação dos riscos Possibilidade x Impacto Passo 8: Recomendações de controles Passo 9: Documentação Políticas de Segurança da Informação Tipos de políticas 1. Programa de Política (organizacional) 2. Diretrizes da diretoria para criar um “programa” de segurança, estabelecer os seus objetivos e atribuir responsabilidades Políticas de sistemas Regras de segurança específicas para proteger sistemas (redes, máquinas, software) específicos Implementação de Políticas Padrões Uniformidade de uso de tecnologias, parâmetros ou procedimentos, para beneficiar a organização Ex: Uso de Windows 2000 (mesmo existindo XP) Diretrizes Em alguns casos, a aplicação de padrões não é possível, conveniente ou acessível (custos) Ex: auxílio no desenvolvimento de procedimentos Procedimentos Passos detalhados para serem seguidos pelos funcionários Ex: Cuidados na criação de contas de e-mail Política (componentes) Objetivo Por que a política? Escopo Toda a organização ou parte dela? Responsabilidades Quem são as pessoas? Estrutura formal? Conformidade Como fiscalizar”? O que acontece para quem não cumprir? Intencional, não-intencional (falta de treinamento?) Exemplo: SANS Institute para roteador Objetivo Este documento descreve uma configuração mínima de segurança para todos os roteadores e switches conectados na rede de produção da <organização> Escopo Todos os roteadores e switches conectados na rede de produção da <organização> são afetados. Roteadores em laboratórios internos/seguros são excluídos Roteadores dentro da DMZ devem seguir política específica Exemplo: SANS Institute para roteador Política: padrões de configuração 1. Contas locais não devem ser configuradas nos roteadores. Roteadores devem usar TACACS+ (AAA) para todas as autenticações de usuários 2. A senha de “enable” deve ser criptografada 3. Deve ser desabilitado 1. 2. 3. 4. 5. Broadcast IP direcionado (sub-redes que o host não está) Recepção de pacotes com endereços inválidos (ex: RFC1918) Serviços “pequenos” TCP e UDP (echo, chargen, daytime, discard) Roteamento pela fonte (source routing) Serviços web rodando no roteador 4. Não usar comunidade SNMP public (criar padrões) 5. Regras de acesso devem ser definidas pela necessidade 6. ... Vulnerabilidades Terminologia RFC 2828 – Glossário de segurança da Internet Uma falha ou fraqueza em um sistema Que pode ocorrer No projeto Na implementação Na operação ou gerenciamento Que pode ser explorada para violar a política de segurança do sistema Livro do Nessus Erro de programação ou configuração errada que pode permitir que um intruso tenha acesso não autorizado a algum ativo Tipos de Vulnerabilidades Não existe ainda consenso sobre classificação e/ou taxonomia para vulnerabilidades Por serviço afetado Por gravidade Por sistema operacional alvo Classificação por impacto potencial (Nessus) Vulnerabilidades Críticas Vazamento de informações Negação de serviços Falha em implementar melhores práticas Vulnerabilidades críticas São os problemas de mais alta prioridade A sua exploração podem levar a execução de programas, escalada de privilégios, comprometimento do sistema, etc Critérios para classificar uma falha como crítica Possibilidade de exploração remota Exploração sem conta de usuário local Permissão de acesso privilegiado Exploração automática e confiável (para o atacante) Vermes exploram vulnerabilidades críticas Vulnerabilidades críticas (exemplos) Sasser worm Buffer overflow no Local Security Authority Subsystem Service (LSASS) do Windows Witty worm Buffer overflow no parser do ICQ de produtos para IDS da Internet Security Systems (ISS) Slapper worm Falha na biblioteca OpenSSL do Apache que permite executar uma shell remota e explorar DoS Solaris sadmind O serviço RPC do sadmind permite que usuários não autenticados executem comandos como root Vulnerabilidades críticas (classificação) Buffer overflow (transbordamento de memória) Travessia de diretórios Ataques de formatação de strings Senhas default Configurações erradas Backdoors conhecidos Vulnerabilidades críticas Buffer Overflow O tipo mais famoso e explorado de vulnerabilidade crítica O programador não limita a quantidade de informação que pode ser escrita em uma determinada área de memória (string, array, etc) O transbordo da memória ocorre quando o programa copia os dados de entrada para o buffer sem verificar o seu tamanho Metade das vulnerabilidades descobertas nos últimos anos são de buffer overflow (CERT) http://www.sans.org/rr/whitepapers/threats/481.php Vulnerabilidades críticas Travessia de Diretórios Problema comum encontrado em várias protocolos/aplicações que mapeiam pedidos dos usuários para caminhos de arquivos locais Exemplo: através de uma conta de FTP que remete ao /home/userX, o atacante consegue acessar outros diretórios e arquivos Vulnerabilidades descobertas TFTP Apache rsync Mcrosoft IIS Vulnerabilidades críticas Formatação de strings Permite que um atacante passe como parâmetro especificadores de conversão (ex: %d”, “%s”) e faça com que seja processados mais dados do que o programador considerou originalmente Permite que endereços de memória sejam sobrescritos e código malicioso seja executado O atacante precisa ter muito conhecimento, ou seja, precisa ser um “hacker de verdade” Vulnerabilidades descobertas Solaris rpc.rwalld Tripwire Vulnerabilidades críticas Senhas default A maioria dos equipamentos e softwares vem configurados com usuários e senhas default (padrão), documentados e bem conhecidos Elas facilitam a instalação e configuração inicial É muito comum os administradores esquecerem de alterar esses usuários e contas Exemplos Cisco: conta: cisco, senha: cisco WLAN: SSID (service set identifier) linksys SNMP: comunidade public Windows: administrator Vulnerabilidades críticas Configurações erradas A vida dos administradores de sistemas e de redes é dura Eles sempre têm que fazer tudo às pressas Por inexperiência, displicência ou pressa, muitas vezes configurações erradas ficam ativas por muito tempo Exemplo: FTP anônimo Para permitir que um web designer um administrador configura um FTP “seguro” e esquece da conta padrão “anonymous” Um atacante coletou durante 3 meses o arquivo de senhas de uma instituição financeira, antes que o problema fosse detectado Vulnerabilidades críticas Backdoors conhecidos Geralmente são programas que escutam portas e possibilitam algum tipo de acesso Redes com administradores inexperientes facilmente facilmente têm pelo menos um sistema com backdoors conhecidos Trojans: capturadores de teclado, mouse, senhas, área de desktop, relay para outros sistemas Geralmente são instalados por um atacante para ter novo acesso após um ataque bem sucedido Ou seja, um backdoor significa que a rede já foi atacada e vários ativos podem ter sido comprometidos Anatomia de um ataque Anatomia de um ataque Varredura Reconhecimento Enumeração Invasão Negação de Serviços Escalando privilégios Acesso à informação Instalação de back doors Ocultação de rastros Anatomia de um ataque Varredura Reconhecimento Enumeração Invasão Negação de Serviços Escalando privilégios Acesso à informação Instalação de back doors Ocultação de rastros 1. Footprinting (reconhecimento) Informações básicas podem indicar a postura e a política de segurança da empresa Coleta de informações essenciais para o ataque Nomes de máquinas, nomes de login, faixas de IP, nomes de domínios, protocolos, sistemas de detecção de intrusão São usadas ferramentas comuns da rede Engenharia Social Qual o e-mail de fulano? Aqui é Cicrano. Poderia mudar minha senha? Qual o número IP do servidor SSH? e o DNS? Anatomia de um ataque Varredura Reconhecimento Enumeração Invasão Negação de Serviços Escalando privilégios Acesso à informação Instalação de back doors Ocultação de rastros 2. Scanning (varredura ou mapeamento) De posse das informações coletadas, determinar Ferramentas Descoberta da Topologia Detecção de Sistema Operacional Busca de senhas contidas em pacotes (sniffing) Quais sistemas estão ativos e alcançáveis Portas de entrada ativas em cada sistema Nmap, system banners, informações via SNMP Automated discovery tools: cheops, ntop, … Comandos usuais: ping, traceroute, nslookup Técnicas de fingerprint (nmap) Muitas das ferramentas são as mesmas usadas para gerenciamento e administração da rede Mapeamento de rede Tela do Cheops (http://cheops-ng.sourceforge.net) Anatomia de um ataque Varredura Reconhecimento Enumeração Invasão Negação de Serviços Escalando privilégios Acesso à informação Instalação de back doors Ocultação de rastros 3. Enumeration (enumeração) Coleta de dados intrusiva Identificação de logins válidos Banners identificam versões de HTTP, FTP servers Identificação de recursos da rede Identificação de Vulnerabilidades comuns Identificação de permissões Consultas diretas ao sistema Está conectado ao sistema e pode ser notado Compartilhamentos (windows) - Comandos net view, nbstat Exported filesystems (unix) - Comando showmount Nessus, SAINT, SATAN, SARA, TARA, ... Anatomia de um ataque Varredura Reconhecimento Enumeração Invasão Negação de Serviços Escalando privilégios Acesso à informação Instalação de back doors Ocultação de rastros 4. Ganhando acesso (invasão) Informações coletadas norteiam a estratégia de ataque Invasores tem uma “base” de vulnerabilidades Bugs de cada SO, kernel, serviço, aplicativo – por versão Tentam encontrar sistemas com falhas conhecidas Busca privilégio de usuário comum (pelo menos) Técnicas Password sniffing, password crackers, password guessing Session hijacking (sequestro de sessão) Ferramentas para bugs conhecidos (buffer overflow) Hackers constróem suas próprias ferramentas Anatomia de um ataque Varredura Reconhecimento Enumeração Invasão Negação de Serviços Escalando privilégios Acesso à informação Instalação de back doors Ocultação de rastros 5. Escalada de privilégios Uma vez com acesso comum, busca acesso completo ao sistema (administrator, root) Ferramentas específicas para bugs conhecidos "Exploits" Técnicas Password sniffing, password crackers, password guessing Session hijacking (sequestro de sessão) Replay attacks Buffer overflow Trojans Anatomia de um ataque Varredura Reconhecimento Enumeração Invasão Negação de Serviços Escalando privilégios Acesso à informação Instalação de back doors Ocultação de rastros Anatomia de um ataque Varredura Reconhecimento Enumeração Invasão Negação de Serviços Escalando privilégios Acesso à informação Instalação de back doors Ocultação de rastros 7. Ocultação de rastros Invasor usa tenta evitar detecção da presença Usa ferramentas do sistema para desabilitar auditoria Toma cuidados para não deixar “buracos” nos logs excessivo tempo de inatividade vai denuciar um ataque Existem ferramentas para remoção seletiva do Event Log Esconde arquivos “plantados” (back doors) Anatomia de um ataque Varredura Reconhecimento Enumeração Invasão Negação de Serviços Escalando privilégios Acesso à informação Instalação de back doors Ocultação de rastros 8. Instalação de Back doors Objetivo é a manutenção do acesso Trojans podem mandar informação para invasor Rootkits se confundem com o sistema Back doors Rootkits – ferramentas ativas, mas escondidas Trojan horses – programas falsificados Back doors – acesso/controle remoto sem autenticação Captura teclado Manda um e-mail com a senha Comandos modificados para não revelar o invasor Sistemas cliente/servidor Cliente na máquina invasora controlando Servidor na máquina remota Não aparecem na "Task List" do Windows NT/2k Anatomia de um ataque Varredura Reconhecimento Enumeração Invasão Negação de Serviços Escalando privilégios Acesso à informação Instalação de back doors Ocultação de rastros 9. Denial of Service (negação de serviço) Ataques com objetivo de bloquear serviços, através de: Consumo de banda de rede Esgotamento de recursos Exploração de falhas de programação (ex: ping da morte) Sabotagem de Roteamento Sabotagem no DNS DDoS Distributed Denial of Service Ataques coordenados de múltiplas fontes