Conceitos Fundamentais de Confiabilidade e de Segurança causas acidentais causas maliciosas 1 Insegurança, Pessoas e Computadores Falhas de segurança são causadas por faltas maliciosas (ataques) perpetrados por hackers (humanos) Hackers maus vs. Hackers bons é um erro sério de perspectiva Frequentemente estas falhas só acontecem devido a ocorrência de faltas não intencionais (vulnerabilidades) criadas por projectistas ou operadores (também humanos...) É difícil caracterizar o processo com precisão (humanos são pouco previsíveis ) 2
Insegurança, Pessoas e Computadores A falta de segurança esta ligada tanto com as deficiências técnicas quanto com a atitude das pessoas A insegurança é uma consequência directa das acções de pessoas que precisam ser educadas sobre quão sérios são seus actos/obrigações É melhor investir do que gastar Programadores precisam saber fazer software seguro (Esta cadeira e outras no 2º ciclo) As pessoas precisam respeitar os limites (Mas pessoas mal intencionadas sempre existirão) 3 Vulnerabilidade, Ataque e Intrusão Intrusão É uma falta operacional induzida por meio externo e intencionalmente maliciosa, que provoca um estado erróneo no sistema Uma intrusão tem duas causas: Vulnerabilidade» Uma fraqueza maliciosa ou não no sistema que pode ser explorada com intenções maliciosas Ataque» Falta intencional maliciosa introduzida no sistema com a intenção de explorar uma vulnerabilidade deste sistema Observações: Intrusões são consequências de ataques bem sucedidos Sem ataques, as vulnerabilidades são inofensivas Sem vulnerabilidades, não pode haver ataques bem sucedidos 4
Faltas e falhas (ou a perspectiva da confiabilidade) Vulnerabilidade, Ataque e Intrusão : são tudo faltas e falhas dos sistemas computacionais (e o envelope humano, utilizadores, administr., etc.) 5 The failure of computers Why do computers fail and what can we do about it? [ J. Gray] Because: All that works, fails We tend to overestimate our HW e SW--- that s called faith So: We had better prevent (failures) than remedy Dependability is... that property of a computer system such that reliance can justifiably be placed on the service it delivers Why? Because (faith notwithstanding) it is the scientific way to quantify, predict, prevent, tolerate, the effect of disturbances that affect the operation of the system 6
Does not get better with distribution A distributed system is the one that prevents you from working because of the failure of a machine that you had never heard of. [ L. Lamport] Since: Machines fail independently, for a start But they may influence each other, They communicate through unreliable networks, with unpredictable delays...gathering machines renders the situation worse: The reliability (<1) of a system is the product of the individual component reliabilities, for independent component failures R(10 @ 0.99)= 0.9910= 0.90; R(10 @ 0.90)= 0.9010= 0.35 7 Visão sistemática da falha de um sistema sequência falta erro falha interaction fault error failure Designer/ Operator design/ operation fault 8
Faults, Errors and Failures A system failure occurs when the delivered service deviates from fulfilling the system function An error is that part of the system state which is liable to lead to subsequent failure The adjudged cause of an error is a fault EXAMPLES: Fault --- stuck-at 0 RAM memory register Error --- what happens when the register is read after 1 is written Failure --- the wrong reading ( 0 ) is returned to the user buffer SOLUTIONS? Remove the faulty memory chip Detect the problem, e.g. using parity bits Recover from the problem, e.g. using error correcting codes (ECC) Mask the problem, replicating the memory and voting on readings 9 Types of Faults Physical Design Interaction (*) Accidental vs. Intentional vs. Malicious (*) Internal vs. External Permanent vs. Temporary Transient vs. Intermittent (*) Especially important in distributed systems and security 10
Interaction Fault classification (specially important in distributed systems) Omissive Crash» host that goes down Omission» message that gets lost Timing Assertive» computation gets delayed Syntactic» sensor says air temperature is 100º Semantic» sensor says air temperature is 26º when it is 30º ARBITRARY timing omission crash OMISSIVE syntactic semantic ASSERTIVE 11 Achieving dependability (dependability measures) interaction fault error failure Designer/ Operator design/ operation fault fault prevention imperfect fault removal error processing fault tolerance fault treatment 12
Achieving dependability Fault prevention how to prevent the occurrence or introduction of faults Fault tolerance how to ensure continued correct service provision despite faults Fault removal how to reduce the presence (number, severity) of faults Fault forecasting how to estimate the presence, creation and consequences of faults 13 Propriedades da Confiabilidade Fiabilidade ( reliability) probabilidade de um sistema não falhar durante o tempo de missão, também dada pela medida do tempo de funcionamento de um sistema até falhar (ex. MTTF, MTBF, 10-5 f/h,.99%) Reparabilidade ( maintainability) medida do tempo de reposição em serviço de um sistema (ex. MTTR) Disponibilidade ( availability) medida da percentagem do tempo (ou do intervalo) em que um sistema está operacional, durante um intervalo de missão (ex. 5000h/ano, MTBF/(MTBF+MTTR)) Segurança operacional (safety) medida da fiabilidade do sistema com respeito a faltas acidentais que ocasionem efeitos catastróficos (i.e. a probabilidade de que o sistema, quando falha, não falha de modo catastrófico) 2.15
Gets much worse with malicious failures Failures are no longer independent Failures become more severe Fault models become less representative... Hackers don t like stochastics... 16 Visão sistemática de uma falha de segurança num sistema Intruder attack (fault) error failure Intruder/ Designer/ Operator vulnerability (fault) intrusion (fault) Sequência AVI : Ataque + Vulnerabilidade Intrusão intrusão erro falha 17
Como Evitar Falhas de Segurança? modo usual: prevenção da intrusão Intruder attack prevention attack (fault) error failure Intruder/ Designer/ Operator vulnerability prevention vulnerability (fault) intrusion prevention vulnerability removal intrusion (fault) 18 Como Evitar Falhas de Segurança? modo pouco usual: tolerância a intrusões Intruder attack prevention attack (fault) error failure Intruder/ Designer/ Operator vulnerability prevention vulnerability (fault) intrusion prevention vulnerability removal intrusion (fault) intrusion tolerance a ser estudado em cursos avançados (p. ex. mestrado MSI) 19
O que mede o risco de uma intrusão? Tecnicamente, o RISCO mede a probabilidade de ocorrer uma falha de segurança é uma métrica composta que leva em consideração o nível de ameaça (do ataque) a que um sistema está exposto, e o seu grau de vulnerabilidade: RISCO = VULNERABILIDADE X AMEAÇA A medida correcta de quão potencialmente inseguro um sistema pode ser (ou, quão difícil é torná-lo seguro) depende de: O número e a severidade das falhas do sistema (vulnerabilidades) As potencias ameaças que ele pode ser submetido (ataques) No mundo real, o risco é igualmente ponderado pelo impacto, em caso de falha 20 Dois Exemplos O Sistema X tem um grau de vulnerabilidade vx=0.1, e como ele tem uma alta resistência, os seus operadores puseram-no a servir pedidos anónimos na Internet, sem qualquer controlo sobre quem e como ele pode ser acedido, o que resulta num nível de ameaça alto, tx=100. O sistema Y por outro lado, é um sistema vulnerável (vy=10) e portanto os seus operadores protegeram-no, instalando-o atrás de uma firewall e controlando os acessos feitos a ele, o que pode ser traduzido num nível de ameaça pequeno (ty=1). Qual deles oferece menor risco operacional? Considere o produto ameaça x vulnerabilidade: Com os valores imaginários que atribuímos para cada um dos sistemas, ambos tem o mesmo risco operacional (10). 21
Propriedades de Segurança Confidencialidade medida em que um serviço/informação está protegido contra o acesso em leitura de intrusos Integridade medida em que um serviço/informação está protegido contra a modificação/deterioração por intrusos Autenticidade medida em que um serviço/informação é genuíno, i.e., está protegido contra a personificação por intrusos Disponibilidade medida em que um serviço/informação está protegido contra a recusa de provisão/acesso provocada por intrusos 22 Confidencialidade Objectivos/Alvos: proteger informações e serviços privados dos olhos de intrusos Privacidade é uma forma padrão de confidencialidade problema: crime organizado segurança nacional pode ter que violar a confidencialidade Comunicação: evitar escuta: isolamento físico permitindo escuta, evitar inteligibilidade (cifra) Informação: evitar acesso a servidor (acesso físico) permitindo acesso, evitar inteligibilidade (usar cifra ou fragmentação) 23
Objectivos/Alvos: Integridade Evitar/detectar forjamento ou alteração de documentos/mensagens, incluindo interacções com o serviço com intenções maliciosas Verificar que tudo está certo Comunicação: Usar alguma forma de checksum com resistência criptográfica para detectar modificação de mensagens Prevenir forjamento não detectado de mensagens Informação: Da mesma forma, detectar modificações em repositórios de dados Prevenção de modificação, se temos medo que ataques radicais podem apagar toda informação do sistema As técnicas neste caso variam: protecção por controlo de acesso, tolerância a faltas por redundância 24 Autenticidade Objectivos/Alvos: Garantir a origem de uma requisição a um serviço, a identidade do criador de um item de dado ou mensagem, ou de um serviço Acções são atribuídas a sua origem genuína (não-repudiação) Problemas: tentativas de personificação ou forjamento, negação de alguma acção, violação de autenticidade pode levar a violação de confidencialidade ou integridade Mantida através de mecanismos de autenticação Comunicação: o interlocutor é quem diz ser?» quem envia não pode negar que enviou» quem recebe não pode negar que recebeu Informação: Reconhecendo o criador de uma assinatura, mesmo que ele negue 25
Disponibilidade Objectivos/Alvos: Garantir que a informação ou serviço permanecem acessíveis à usuários autorizados, apesar de acções maliciosas (chamadas ataques de negação de serviço - DoS) Problemas:» bloqueio de serviços sensíveis em infra-estruturas críticas podem acontecer em situações de crise (acidente, sabotagem, terrorismo, etc ), quando o sistema precisaria funcionar bem;» botnets na Internet causam ataques de DoS distribuídos (DDoS) Comunicação: Prevenir acções que tentam bloquear comunicação ou causar danos em pacotes Se não for possível: neutralizar efeitos (redundância ou reconfiguração) Informação: Prevenir acções que tentam bloquear o acesso a serviços Se não for possível: neutralizar efeitos (redundância de dados/servidores) 26 Redes e Sistemas Distribuídos Confiáveis Uma rápida olhadela. 27
Example Fault Tolerant Networks and Architectures 2.28 Redundant Networks 2.29
Redundant Media Networks 2.30 Redundant Storage and Processing (a) (b) 2.31
Error Detection and Masking V (a) (b) 2.32 Modular Distributed FT with Replica Sets 2.33
Client-Server with FT Servers Client PC or WS Data Network Fault-Tolerant Application Servers 2.34 FT Publisher-Subscriber Publishers Fault-Tolerant Publishing Server Subscribers Data Network PERSISTENT MESSAGE BUS 2.35
Redes e Sistemas Distribuídos Seguros Uma rápida olhadela. 36 Circuito Físico Seguro (usando dispositivo criptográfico) Host Cryptographic Device Leased Line Cryptographic Device Router Cryptographic Device Data Network 37
Circuito Virtual Seguro (comunicação segura extremo-a-extremo) Host Router Router Router Public Data Network Host Cryptographic Server Router Router Router 38 Monitor de Referência (e.g., controlo de acesso a recursos do SO) User O.S. Resources 39
Servidor de Segurança (uso de monitor de referência) Security Server Data Network System Servers 40 Firewall (uso de monitor de referência) Firewall System Servers Data Network Inside System (Outside System) 41
Operações Remotas Seguras (com e sem dispositivos invioláveis) Client Server @# %*?????? Sniffer Router Public Data Network Client Server Tamperproof Device 42 Pagamento Electrónico (com dispositivo inviolável desconectado) ATM Client's Bank Banking Network Client's Smart Card Merchant's Terminal Merchant's Bank Tamperproof Device 43
Estudo da raiz do problema: O Percurso de um Hacker 44 Motivações de hackers/phreakers curiosidade coleccionar troféus acesso grátis a recursos computacionais e de comunicação ponte para outras máquinas em um sistema distribuído efectuar danos e sabotagem em sistemas por razões criminais ou políticas obter informações confidenciais para uso particular ou venda, como segredos de software, comerciais, industriais ou informação pedagógica 45
Percurso de um Hacker (1/3) Descoberta de vulnerabilidades no sistema Procura por pontos fracos no sistema computacional:» Contas sem password» Configurações ou drivers vulneráveis» Ficheiros de password acessíveis Aceder ao sistema Fazer um plano de ataque:» Testar palavras de um dicionário com entradas no ficheiro de passwords» Atacar o driver do sistema com um programa malicioso para obter uma conta» Escutar a rede a procura de pares login/password 46 Percurso de um Hacker (2/3) Controlar o sistema Controlar todos os recursos do sistema, através da obtenção de privilégios de administrador:» Explorando vulnerabilidades de programas instalados que usem permissões de root» Utilizando shell scripts com suid para root» Usando cavalos de Tróia previamente instalados Apagar os seus rastos Esconder a sua actividade durante a campanha de intrusão:» Disfarçando-se enquanto está a aceder o sistema» Apagando os logs do sistema após sair 47
Percurso de um Hacker (3/3) Aceder continuamente e furtivamente ao sistema Fazendo acessos a máquinas de uma maneira escondida:» Cavalos de Tróia ou backdoors que podem ser activados por códigos ou sequências especiais» Contas abandonadas ou inactivas Exploração de novos alvos Busca por novos troféus :» Através da abertura de canais para outras máquinas» Busca por informações de acesso em ficheiros pessoais» Escutar a partir da máquina invadida 48