870 likes | 1.06k Views
Segurança. 9.1 O ambiente de segurança 9.2 Criptografia básica 9.3 Mecanismos de proteção 9.4 Autenticação 9.5 Ataques de dentro do sistema 9.6 Explorando erros de código 9.7 Malware 9.8 Defesas. Capítulo 9. O Ambiente de Segurança Ameaças. Invasores.
E N D
Segurança 9.1 O ambiente de segurança 9.2 Criptografiabásica 9.3 Mecanismos de proteção 9.4 Autenticação 9.5 Ataques de dentro do sistema 9.6 Explorandoerros de código 9.7 Malware 9.8 Defesas Capítulo 9
Invasores Categoriascomuns • Curiosidadescasuais de usuáriosleigos (configuração default do UNIX: read for world); • Espionagemporpessoasinternas : hámotivação e treinamento; • Tentativasdeterminadasparaganhardinheiro; • Espionagemmilitaroucomercial O esforço de proteçãodepende de quem se imaginaqueseja o inimigo: se é um estudanteou se é um governoestrangeirohostil…
Dados de Segurança – br (1) As redes do governo federal são alvos de uma média de 2.100 incidentes por hora, cerca de 60 são considerados mais sérios. A maioria dos ataques às redes do governo federal está relacionada à desconfiguração, vulnerabilidade de códigos e de servidores, "phishing"(fraude eletrônica para "pescar" dados como senhas) e "malwares“. Na área de segurança é fundamental desenvolver soluções proprietárias, segundo Otávio Cunha da Silva, coordenador geral do CEPESC (Centro de Pesquisas e Desenvolvimento para a Segurança das Comunicações) da Abin (Agência Brasileira de Inteligência), evitando assim a inserção de backdoors - maneira de ganhar acesso a serviços e sistemas. Segurança
Dados de Segurança – br (2) Notícia fresca (27/05/2014): http://www1.folha.uol.com.br/mundo/2014/05/1460646-itamaraty-sofre-onda-de-ataques-de-hackers.shtml Segurança
PerdaAcidental de Dados Além das ameças dos invasores, podem se perder dados poracidente. Causas: • Fenômenosnaturais: incêndios, enchentes, guerras • Erros de hardware ou software: defeitosna CPU, discos ruins, erros de programas • Erroshumanos: entradaincorreta de dados, montagemerradadafita Viva o backup!
9.2 - CriptografiaBásica Relação entre o textoplano e o textocifrado Princípio de Kerckhoff (adotadoporprofissionaissériosdaárea): Todososalgoritmosdevem ser públicos, apenas as chavessãosecretas.
Ex: Transposição de Cifra Chave: MEGABUCK : KE=KD Algoritmopúblico: coloque o textoplanoemlinhas do tamanhodachave. Gere o textocifradocolocando o textogeradoporcolunas. A ordem das colunas é dada pelaordemalfabética das letrasdachave.
Ex: Substituição monoalfabética (1) Cadaletra é substituídaporletradiferente; Texto Plano: ABCDEFGHIJKLMNOPQRSTUVWXYZ TextoCifrado: QWERTYUIOPASDFGHJKLZXCVBNM que é a chave. Dada a chavecriptográfica, é fácilachar a chave de decriptação: Ch. Dec: KXVMCNOPHQRSZYIJADLEGWBUFT, pois um A no textocifrado é um K no textoplano, etc.
Ex: Substituiçãomonoalfabética (2) Este sistema é seguro? Há 26! possíveischaves ~ 4 * 10 26 Problema: usandopropriedadesestatísticas das linguagensnaturais se decifra: no inglês a letramaiscomum é o e, seguida do t,o,a.... As duascombinações de letrasmaiscomunssãoth, in, er, re... Usandoestasinformaçõesficamaisfácilquebrar o código.
CriptografiaporChaveSecreta (ChaveSimétrica) • Dada a chavecriptográfica é fácilachar a chave de decriptação • Algoritmos de chavesimétricasãoseguros se as chavesforemsuficientementelongas. Hoje, utiliza-se 1024 bits o queleva a 2 1024 ~2 * 10 308chaves. • Inconveniência: ambos osladosdevempossuir a chavesecretacompartilhada
Criptografia por Chave Pública (1) Outraclasse de algoritmospropõeumachaveparacriptografia e outraparadecriptografia. A chave de criptografia é pública, e a outra é privada. Alice publicaEAemsua home page. MantémDAsecreto. Bob publicaEBemsua home page. MantémDBsecreto.
Criptografia por Chave Pública (2) Quando Alice quermandarmensagempara Bob, cifra a mensagemusandoEB. Como somente Bob tem DBsóelepodedecifrar a mensagem. A cifragemusaumafunçãofácil, mas a decifragemsem a chavecerta, requerumaoperaçãodifícil, de tal forma quenão se conseguedecifrarnem com forçabrutacasonão se tenha a chavecorreta. RSA – Algoritmoamplamenteutilizado, desenvolvidoporpesquisadores do MIT :Rivest, Shamir, Adleman.
RSA - 1 Baseia-se emprincípiosdateoria de números. Cálculo de parâmetros: • Escolha 2 númerosprimosextensos,p e q • Calculen = p*q e z = (p-1) * (q-1) • Escolha um númerodtalque z e dsejamprimos entre si (ouseja, único divisor comum entre eles é o 1). • Encontree de forma quee*d = 1 mod z (ou, e*d-1 divisívelpor z) Segurança
RSA - 2 Agrupe o textoemblocos de k bits, onde k é o maiorinteirotalque 2K< n. A chavepúblicaconsiste no par (e,n) Para criptografar a msgP, calculeC= Pe (mod n). A chaveprivadaconsiste no par (d,n). Para descriptografar C, calculeP = Cd (mod n). A segurança do métodoestánadificuldade de fatorarnúmerosextensos. Fatorandon, poderiaencontrar-se p, q e z. Conhecendoz e e, encontra-se d. Segurança
Exemplo do RSA Nesteexemplo, escolhe-se p=3, q=11, portanto n=33, z=20. Escolheu-se d=7, 7e = 1 mod 20 => e=3 RSA é lento paracodificargrandes volumes de dados, portanto é utilizadoparadistribuição de chavesquesãoempregadasemalgoritmosmaisrápidos Segurança
Funções de Uma Via Funçãotalque dados f e seuparâmetrox é fácilcalcular y = f(x). Mas dado y, é computacionalmenteinviávelencontrar x. A função f costumaembaralharos bits de um modobastantecomplexo. Funçãochamada de Função de ResumoCriptográfico. Um tipo de hash (de novo!!)
Assinatura Digital (1) Objetivos:(1) o receptor verifique a identidade do transmissor;(2) o transmissornãopossarepudiar a mensagem ;(3) o receptor nãotenhapossibilidade de forjarelemesmo a mensagem. Ex: compra de açõespela Internet. Umamaneiracomum de fazeristo é através de umafunção hash de uma via, difícil de inverter – As maisconhecidassãoMD5 (Message Digest) queproduz 16 bytes e SHA (Secure hash algorithm) queproduz 20 bytes (Atualmentequebradas...).
Assinatura Digital (2) Apóscalcular o hash, o cifra com a chaveprivada (realiza a transformaçãomatemáticadifícil). O receptor recebedocumento e D(Hash). Submete à cifragem E(D(Hash)) = Hash. Calculaporsuavez o hash do documento original paraver se bate. Obs: o algoritmo E e D devem ser comutativos. Qual o Problema com a Segurançadesteesquema? Quem enviou a msg pode repudiar?
Assinatura Digital (3) Alice podedizerquenãofoielaqueenviou. Quempodeafirmarquefoi? Quemprovaque D é suachaveprivada? E se alguminvasoralterou a chave? Enquantonãohouver um esquema de assinaturacomprovadoporterceiro de confiança, o esquemapodefalhar. A solução é o uso de uma Infra-estrutura de ChavePública (ICP). Veremos no curso de redes.
9.3 - Mecanismos de ProteçãoModelo: Domínios de Proteção (1) Exemplos de trêsdomínios de proteção Direitos: leitura, escrita, execução. Domínio: conjunto de pares (objetos, direitos). Cada par especifica um objeto e um subconjunto das operaçõesquepodem ser realizadas. Um domíniopodecorresponder, por ex, a um grupo
Domínios de Proteção (2) Umamatriz de proteção Umamaneira de implementar
Domínios de Proteção (3) Umamatriz de proteção com domínioscomoobjetos Processos do domínio 1 podemalternarpara o domínio 2,mas no domínio 2 nãopodemvoltarpara o domínio 1.Estamatriznão é armazenadanapráticapoismuitoesparsa: armazenarsomenteoselementosquenãosãovazios.
Modelo: Listas de Controle de Acesso (1) Armazenando a matriz por colunas: Uso de listas de controle de acesso (ACL - Access Control Lists) paragerenciar o acesso a arquivos Supõecadadomínio, um usuário. (No ex. A,B,C)
Listas de Controle de Acesso (2) É possívelassociar a identificação de usuário (UID)e de grupo (GID) paradefinir a ACL. Ex: Ana é do gruposysadm e do grupo de criadores de pombos. Seriapossívelrestringir o acesso de Ana as senhas se estivesselogada no grupocrdpmb. Duaslistas de controle de acesso
Modelo: Capacidades (1) Armazenando a matriz por linhas – chamada lista de capacidades. Cadaprocesso tem umalista de capacidades
Capacidades (2) Capacidadedevem ser protegidas de adulteraçõesporusuários; poderia se manter no núcleo, oumanter no espaço do usuáriomasusarcriptografiaparaproteção. EsquemaconvenienteparaSistemasDistribuídos : • Processoclienteenviaumamensagem a servidorremotoparaquecrie um objetoparaele. • Servidorcria a entrada de capacidadesolicitada, e geranúmeroaleatório (campo de verificação) queficajunto com o objeto (no i-node, por ex.) no servidor. Servidorenvia a capacidade de voltaaousuário. Capacidade retornada ao usuário:
Capacidades (3) A capacidadecontém: • Identificação do servidor; • Número do Objeto (número do i-node); • Os direitosarmazenados; • f – a função hash criptografada de todosos dados incluindo o campo aleatório de verificação. Quandousuárioqueracessar o objeto, envia a capacidade. O sistemarecalcula f com o camposque tem armazenados do objeto e verifica se conferem antes de conceder acesso.
Sistemas Confiáveis SOs com mais funcionalidade => mais complexidade => mais código => mais falhas, mais erros de segurança. Ex: Páginas html não eram perigosas, páginas com conteúdo dinâmico sim: programas remotos podem ser executados... Quem quis conteúdo dinâmico? Usuários unidos? Ou projetistas que não ligam para segurança? Briga eterna: Funcionalidades versus segurança. Sistemas confiáveis: tem uma base de computação confiável mínima. TCB (Trusted Computing Base)
Sistemas ConfiáveisBase de Computação Confiável Um monitor de referência Se a CB for T, seguir a especificação, a segurança não será comprometida, independente do que esteja errado. Monitor de referência: decide se deve processar ou não a requisição. (A maioria dos SOs não é assim... O MINIX, nem o FreeBSD). 30
Segurança Multiníveis (1) Documentos e usuários tem classificação de segurança; em ambiente militar : (1) Classificado, (2)Confidencial, (3) Secreto e (4) Altamente secreto. Usuários podem ler os níveis inferiores e escrever em níveis superiores: dar informação. O modelo de segurançamultiníveis Bell-La Padula
Canais Subliminares (1) Modelo Bell-LaPadula mantém segredos, mas não garante a integridade. (O nível de baixo pode escrever o que quiser.) Formalismos não tem funcionado, pois as falhas persistem... Um sistema como (a): servidor não pode passar informação que tenha recebido do cliente parao colaborador (“comparsa”), usando matriz de proteção, pode arrumar outra maneira de passar informação... Canais subliminares ( ou ocultos).
CanaisSubliminares (2) Canal subliminarpermiteque um processo execute parapassar dados que o sistema de proteção o impediria de passardiretamente. Ex: modulação do usoda CPU peloservidor: Bit 1 - processamentointensivoporquantidadefixa de tempo; Bit 0 - inativodurante o mesmointervalo de tempo; Processocolaboradorapenasmonitora a atividadeda CPU. Este esquemaburlaporexemplo a matriz de proteção.
CanaisSubliminares (2) Ex dafigura: O arquivoficaimpedidooudesimpedidoporcertointervalofixo de tempo conhecidopeloservidor e pelocolaborador. Podemsofisticar a comunicaçãocriandoprotocolos de comunicação. Ex: usar + arquivos: servidor impede File1 p/ sinalizar o envio de um bit; colaborador impede File2 p/ sinalizar o recebimento. Um canal subliminarusandoimpedimento de arquivo
Canais Subliminares (3) Imagensdaesquerda e direitaparecem as mesmas; a dadireitacontémostextos de 5 peças de Shakespeare criptografados, inseridosnos bits menossignificativos de cada valor de cor (700KB de texto). Figura de 1024x 768 pixels. Hamlet, Macbeth, Julius Caesar Mercador de Veneza, Rei Lear Zebras Encontrar e bloquearCanal Subliminaré extremamentedifícil.
9.4 - Autenticação de Usuário Quandousuário se conecta a um computador, o SO devedeterminarquem é o usuário -> autenticação. A autenticaçãodeveidentificar: • Algumacoisaque o usuáriosabe • Algumacoisaque o usuário tem • Algumacoisaque o usuário é Estes princípioslevam a esquemasdiferentes de autenticação com diferentescomplexidadespropriedades de segurança. Nomenclatura: Hackers: grandesprogramadores com muitoconhecimento. Crackers: tentam se infiltrarsemautorizaçãoemsistemas.
Autenticação Usando Senhas (1) Maneiramaisamplamenteusada de autenticação. Implementação simples. Manterlista de pares (nome, senha). Obviamente o sistemanãodeveecoar a senha. (a) Um acessobemsucedido (b) Acessorejeitadodepoisdaentrada de nome (c) Acessorejeitadodepoisdaentrada de nome e senha Quantomenosinformação se derao cracker melhor
Autenticação Usando Senhas (2) • Como um cracker invadiu o computador de um laboratório de pesquisa do Dep. de Energia dos EUA. UUCP (Unix to Unix Copy) contausadaparatráfego de rede com poder de root. • A combinação de discador de guerra e chutador de senhaspode ser fatal.
Autenticação Usando Senhas (3) As senhassãoarmazenadascifradas. Podem ser atacadas: “chutadas”, cifradas e conferidas com o arquivo de senhasarmazenadas. Para dificultar, se associa à senha um númeroaleatório de n bits chamadosal. (Altera a senha, altera o sal, armazenadojunto). Junta-se senha e sal e cifra-os. Armazenaresultado, não a senhaemtextoplano. Para adivinhar é precisochutar a senha e o sal. No Unix n=12 Login Sal Senha+Sal Cifrados
Autenticação Usando Senhas (4) Rodar um programatestador de senhasqueavisa: • Senhasdevemter no mínimo 7 caracteres; • Senhasdevemconterletrasmaiúsculas e minúsculas; • Senhasdevemconterpelomenos um dígitooucaracter especial; • Senhasnãodevem ser palavras de dicionário, nomes de pessoa, etc. Exigirqueusuáriosalteremsenhasregularmente. Manterequilíbrio das exigênciasparanãoaumentar o problemacomomanter um bilhetenatela do monitor com a senhaquenãoconsegueguardar...
Autenticação Usando um Objeto Físico • Cartões de plástico • Cartões de faixamagnética - abrigamcerca de 140 bytes; nãomuitosegurospois se podeclonar com facilidade. • Cartões com chip: • Cartõessó com memória - normalmente 1KB; • Cartões com processador: CPUs com ROM e RAM podeminteragir com o sistemaremoto.
AutenticaçãoUsandoBiometria (1) Cadastramento: identifica características do usuário e digitaliza; Identificação: Usuário se exibe, sistema faz medição e compara com cadastro Atributossignificativossãoextraídos. No exemplo: análise do comprimento dos dedos. Quetalfazermolde de mãoparaatacar?
AutenticaçãoUsandoBiometria (2) • Muito popular é a análise de retina; até de gêmeos idênticos é diferente. O padrão de vasos sanguíneos retinais difere muito. Que tal fazer uma foto do olho da pessoa e colocar para ser reconhecida? • Análise de assinatura – assinar com os mesmos movimentos, na mesma velocidade com a mesma pressão. • Análise da voz – cada vez mais avançado, ao invés de repetir o texto padrão gravado, solicita que repita texto qualquer para confrontar alguns padrões de reconhecimento. • Análise de urina e sangue... Quem aceita?
9.5 - Ataques de dentro do SistemaBombasLógicas • Programadordaempresaescreveprograma • com potencialparacausardanos - bombalógica; • A bombanãoestouradesdequeele/elaalimente o programadiariamente com umasenha • se programador é despedido, programanão é alimentado com senha, bomba explode: apaga disco, criptografaarquivosaté re-contratarprogramador...
Alçapões (Trap door) (a) Código normal (b) Código com alçapãoinserido Para evitaristomanterrevisão de códigocomopráticapadronizada.
Conexão Impostora (Spoofing) (a) Tela de conexãoverdadeira (b) Tela de conexãoimpostora Apósobter (login, senha) o programa impostor enviaparaalgumlugar, chama o programa original e morre. O usuáriofica com a sensaçãoquedigitou a senhaerradadaprimeiravez e tentanovamente com sucesso
9.6 – Explorandoerros de códigoTransbordo de Buffer (Overflow) A maioria dos SistemasOperacionais é escritaem C e muitosprogramas de sistemas. O C nãoverificalimites de buffers. Seriapermitido: inti; char c[1024]; i = 12000; c[i]= 0; Estacaracterística é exploradaintensamentepelos crackers. A função de bibliotecagets do C é assim! Algunscompiladoresavisamquehá um gets.
Transbordo de Buffer (Overflow) (a) Situaçãonaqualprograma principal estáexecutando (b) DepoisqueprocedimentoAfoichamado. Imagine queArequeiranome de arquivo a abrirarmazenadoemB. Cracker fornece string conveniente no lugar do nome do arquivo. (c) Transbordo de buffer mostradoemcinza. Abertura de arquivofalha e quandobuscarendereço de retorno, estefoitrocadoporendereço de códigocolocado no início de B.
Transbordo de Buffer (2) Para detectar se um programa tem transbordo de buffer: • Alimentá-lo com dados enormes – salários de 100 dígitos, nomes de arquivo com 1000 caracteres, etc. • Aotérmino do programaexamina a imagemnamemória, procura a cadeialonga; • Estuda o estadodamemória; • Se códigofontedisponívelna Internet o estudo é facilitado: layout dapilha é conhecido.
Ataque à cadeia de formato(1) Algunsprogramadores tem preguiça de digitar… Se aoinvés de digitar: char *s=“Hello world”; printf (“%s”,s); Eleeconomizar 5 caracteres: printf(s); O próximoprogramadorquealtera o código, vaiperguntar o nome do usuário: char s[100], g[100]=“Hello”; gets(s); strcat(g,s); printf(g); Pode-se entrar com qualquer coisa, não só string...