Buscar

Segurança em Sistemas Computacionais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 SO I - 9 1 SO I - 9 
Capítulo 9. Segurança 
 
Segurança: garantia de que dados/arquivos não podem ser 
lidos/alterados por pessoas sem autorização. 
 Inclui questões técnicas, administrativas, legais e políticas. 
 
9.1 Ambiente de Segurança 
 
9.1.1 Ameaças 
 
Sistemas computacionais possuem 3 metas gerais, sendo que a cada 
uma corresponde uma ameaça específica: 
 
Meta Ameaça 
Confidencialidade de dados Esposição de dados 
Integridade de dados Alteração de dados 
Disponibilidade do sistema Negação de serviço 
 
Confidencialidade de dados significa que o dono de um conjunto de 
dados deve ter garantias de que seus dados não serão expostos a 
pessoas não autorizadas. 
O sistema deve prover mecanismos que permitam ao dono indicar 
quem tem acesso aos seus dados e de que modo. 
 
Integridade de dados significa que pessoas não autorizadas não 
podem alterar o conjunto de dados do usuário, incluindo 
modificação, exclusão e inclusão de dados. 
 
Disponibilidade do sistema significa que ninguém pode criar 
distúrbios para tornar o sistema inacessível. 
 
Outra questão importante diz respeito à privacidade. 
Privacidade significa proteger o indivíduo do mau-uso de 
informações sobre ele. 
P. ex.: 
 O governo tem direito de montar dossiês sobre vigaristas e 
sonegadores? 
 A polícia tem direito a verificar qualquer informação sobre 
qualquer um para deter o crime organizado? 
 O que acontece se essas atitudes conflitam com os direitos 
individuais? 
 
9.1.2 Invasores 
 
A maioria das pessoas são bacanas, educadas e obedecem a lei sem 
questionar. 
Então, por que se preocupar com segurança? 
Porque há umas poucas que não são tão bacanas nem tão educadas, e 
muito menos seguem regras de boa conduta. Entre essas, algumas 
causam problemas por interesse comercial próprio. 
 
Pessoas que “metem o nariz onde não são chamadas” são chamadas 
de invasores, adversários, etc. 
Há 2 tipos de invasores: 
 Passivos: que só querem ler o conteúdo de arquivos; 
 Ativos: que querem modificar certos conteúdos. 
 
Algumas das categorias mais comuns: 
2 SO I - 9 2 SO I - 9 
 Leitura casual por usuários não técnicos: é da natureza 
humana xeretar coisas se não houver barreiras que as impeçam. 
P. ex.: alguns sistemas Unix tem o padrão de criar arquivos 
abertos para leitura pública. 
 Ataques por pessoas internas: alguns estudantes, 
programadores, operadores e outras pessoas de conhecimento 
técnico algumas vezes consideram como um desafio pessoal 
conseguir acessar determinadas informações. Além de 
conhecimento, possuem tempo suficiente para o esforço. 
 Tentativas determinadas de fazer dinheiro: p. ex. Alguns 
programadores de bancos podem tentar roubar dinheiro do banco 
para quem eles trabalham. Truncar centavos quando se deveria 
arredondar, sangrar contas não usadas a anos, chantagem tipo 
“paguem ou eu vou destruir todos os registros”. 
 Espionagem comercial ou militar: competidores podem tentar 
roubar planos, projetos, idéias, tecnologia, circuitos, etc. Isso 
pode envolver cooptação de funcionários, escuta, antenas que 
captam radiação eletromagnética de computadores, etc. 
 
Existe uma outra categoria representada pelos virus. 
Um virus está mais para um terrorista enquanto nos outros casos 
temos alguém com um fim determinado. 
 
9.1.3 Perdas de dados acidentais 
 
Causas possíveis de perdas de dados: 
 Atos de Deus: fogo, inundações, terremotos, guerras, até ratos 
que roem fitas ou disquetes; 
 Erros de hardware/software: malfuncionamento da CPU, erros 
em discos ou fitas, erros de transmissão, erros de programação, 
etc.; 
 Erros humanos: entrada de dados incorretos, erro de montagem 
de discos ou fitas, execução de programas errados, perda de 
discos ou fitas, etc.. 
 
Para todos esses problemas, em geral os backups resolvem. 
9.2 Criptografia básica 
 
Conceito: transformação de informações de forma que ela não possa 
ser entendida por ninguém, exceto o destinatário, que possui os 
meios de reverter a transformação. 
 
Grupos que tem usado e contribuído para a criptografia: 
 Militares; 
 Diplomatas; 
 Memorialistas; 
 Amantes. 
 
Antes dos computadores, a principal restrição da criptografia era a 
habilidade dos responsáveis em fazer as transformações sobre a 
informação, muitas vezes no próprio campo de batalha. 
 
Considere: 
 P: texto a ser cifrado; 
 C: texto cifrado; 
 E(): função (chave) de criptografia; 
 D(): função (chave) de descriptografia. 
3 SO I - 9 3 SO I - 9 
Então: 
P  E(P)  C  D(C)  P 
 
 
 
Criptoanálise: arte de quebrar cifras. 
Criptografia: arte de estabelecer cifras. 
Criptologia: criptoanálise + criptografia. 
 
Regra fundamental: o criptoanalista sabe como o método de 
criptografia funciona. 
 É impraticável substituir o método em uso toda vez que ele for 
quebrado. 
 
Complicação: 
 O criptoanalista pode ter uma idéia de parte do texto cifrado. 
 Ex.: uma comunicação cliente-servidor pode iniciar com o texto 
"PLEASE LOGIN". 
 Com amostras do texto cifrado, a tarefa de quebrar um código é 
mais fácil. 
 Ele pode usar o método conhecido, supor chaves e cifrar 
amostras de texto. 
 Depois, ele pode comparar as amostras com o texto cifrado a ser 
quebrado. 
 
Objetivo: garantir que o sistema é inquebrável mesmo se o oponente 
consiga encriptar quantidades não conhecidas de texto. 
 
Exemplos de métodos de criptografia: 
 
1) Cifras de substituição: 
 Neste método, cada letra (ou grupo) é substituída por outra 
(outro); 
 O exemplo mais antigo que se conhece é atribuído a Júlio César 
(Cifra de César); 
 A  D, B  E, C  F, ..., Z  C. 
 Ex.: Gisele  JLVHOH; 
 Variação: em vez de 3, usar um valor k qualquer; 
 K  chave! 
 
Este método é conhecido como Substituição Monoalfabética: 
 Ao alfabeto do texto de entrada, corresponde um único alfabeto 
de substituição. 
 
Dificuldade deste método: 26! 
 
Método de quebra: 
 Idêntico aos quebra-cabeças de revistas especializadas. 
 
 
 
 
4 SO I - 9 4 SO I - 9 
O B A L D Ã O É O 
1 2 3 4 5 3 1 6 1 
B G A S Ã O A M I G O 
2 7 3 8 3 1 3 9 10 7 1 
S E S Ó C I O S 
8 6 8 1 11 10 1 8 
 
2) Cifras Polialfabéticas: 
 Usa múltiplos alfabetos para tornar a quebra mais difícil; 
 O sistema usa uma matriz com 26 alfabetos: 
 
ABCDEFGHIJKLMNOPQRSTUVWXYZ 
BCDEFGHIJKLMNOPQRSTUVWXYZA 
CDEFGHIJKLMNOPQRSTUVWXYZAB 
DEFGHIJKLMNOPQRSTUVWXYZABC 
Etc. 
 
O sistema tem uma chave, que é um texto colocado sobre o texto a 
ser cifrado: 
 
BACADABACADABACADABACADABACA 
OBALDAOEOBGASAOAMIGOSESOCIOS 
 
As letras da chave indicam o alfabeto a ser usado. Com ele, 
substitui-se a letra correspondente: 
 
PBCLGAPEQBJATAQAPIHOUEVODIQS 
 
Método de quebra: 
 Tentar adivinhar o tamanho da chave; 
 1º, assume-se um valor k qualquer; 
 Depois, arruma-se o texto em linhas, k letras por linha; 
 Neste caso, cada coluna foi cifrada com o mesmo monoalfabeto; 
 Verifica-se qual é a distribuição das letras - em inglês, o caracter 
mais comum tem 13%, o 2
º
 tem 9%, etc. 
 Se a distribuição não corresponde, tenta-se outro tamanho de 
chave. 
 
Na Revolução Francesa, houve um caso de uma aristocrata que 
tramou contra o governo revolucionário. Para cifrar suas mensagens, 
ela usou um sistema de substituição de letras por símbolos (uma 
simples substituição monoalfabética): 
 

 
O sistema foi descoberto e a mulher foi decapitada! 
 
3) Cifras de Transposição 
 
Considere a frase: 
Please, transfer one million dollars to my Swiss bank account six 
two two. 
 
Digamos que a chave seja MEGABUCK: 
 
 
 
 
 
 
5 SO I - 9 5 SO I - 9 
 
M E G A B U C K 
7 4 5 1 2 8 3 6 
P L E A S E T R 
A N S F E R O N 
E M I L L I O N 
D O L L A R S T 
O M Y S W I S S 
B A N K A C C O 
U N T S I X T W 
O T W O A B C D 
 
Texto cifrado: 
AFLLSKSO SELAWAIATOOSSCTC LNMOMANT ESILYNTW 
RNNTSOWD PAEDOBUO ERIRICXB 
 
4) Algoritmos de chave pública 
 
 Nos algoritmos de chave secreta, o maior problema é a 
distribuição das chaves entre os pares! 
 Diffie e Hellman (1976) mostraram que é possível usar um 
método que elimina a necessidade de confiança entre as partes; 
 Ele é baseado no produto de 2 números primos muito grandes 
(maiores que 10
100
); 
 Determinar os fatores primos exige tanta computação que na 
prática é impossível! 
 
Funcionamento: 
 A pessoa que quer receber mensagens cifradas cria 1 par de 
chaves, Ke e Kd, e mantém Kd secreta; 
 Ke é tornada pública para qualquer pessoa que queira mandar 
uma mensagem cifrada para a 1
ª
; 
 Por sua vez, E e D são funções conhecidas e one-way – funções 
do tipo f(X) = Y em que, conhecendo-se Y é extremamente 
difícil (ou impossível) descobrir X. 
 
Processo de envio de uma mensagem: 
 B toma a chave pública de A e faz C = E(Ke, M); 
 A recebe C e faz M = D(Kd, C). 
 
Dos algoritmos de chave pública, um dos mais conhecidos é o RSA 
(Rivest, Shamir e Adelman, 1978). 
 
Para encontrar um par de chaves e, d: 
 Escolher 2 números primos muito grandes, P e Q, da ordem de 
10
100
; 
 N = P x Q; Z = (P – 1) x (Q – 1); 
 d = número primo relativo a Z; 
 
Ex.: P = 13 e Q = 17 
N = 221, Z = 192, d = 5 
 
Para encontrar e, resolver a equação e x d = 1 mod 192: 
 Considerando a série 1, Z+1, 2Z+1, 3Z+1, ...; 
 e x d é o menor elemento da série que é divisível por d. 
 
Ex.: série = 1, 193, 385, ... 
385 é divisível por d = 5 
e = 385/5 = 77 
 
6 SO I - 9 6 SO I - 9 
Tamanho do bloco: 
 k bits, onde 2k < N; 
 na prática, k  [256, 512]. 
 
Ex.: k = 7  27 = 128 (28 = 256) 
 
Função para cifrar uma mensagem M: 
C = E(e, N, M) = M
e
 mod N 
 
Ex.: M
77
 mod 221 
 
Função para decifrar C: 
M = D(d, N, C) = C
d
 mod N 
 
Ex.: C
5
 mod 221 
 
Rivest et al. provaram que E e D são mutuamente inversos: 
 E(D(X)) = D(E(X)); 
 Para todos os valores de P na faixa 0  P  N! 
 
Conclusão: 
 Ke = <e, N> 
 Kd = <d, N> 
 
9.3 Falhas famosas de segurança 
 
9.3.1 UNIX 
 
Comando lpr: imprime um arquivo: 
 Tem uma opção de remover o arquivo após a impressão; 
 Nas 1as versões do Unix, era possível imprimir e remover o 
arquivo de passwords! 
 
Link do arquivo de senhas com um arquivo core: 
 Arquivo onde a memória de um programa é salvo após um erro 
grave; 
 Nesse caso, uma falha de programa que gere um dump grava 
esse conteúdo no início do arquivo de passwords; 
 Construindo uma estrutura apropriada no programa, é possível 
escrever o conteúdo certo para obter algum privilégio! 
 
Comando MKDIR nomedir: 
 Esse comando 1o cria um I-node para o diretório (comando 
MKNOD) e depois acerta o owner; 
 Num sistema lento, era possível para o usuário remover o I-node 
criado e fazer um link para o arquivo de senhas com o nome de 
nomedir; 
 Quando o sistema completava a operação, alterava o owner do 
arquivo de senhas para o usuário. 
 
9.3.2 MULTICS 
 
Sistema voltado para aplicações timesharing (com ótima segurança). 
Atendimento a aplicações batch foi introduzido para satisfazer 
solicitações de interessados (segurança péssima – opção introduzida 
como quebra-galho). 
 Uma aplicação batch pode gravar arquivos em áreas de outros 
usuários; 
 Alguém pode alterar um editor de textos para roubar arquivos de 
outros; 
7 SO I - 9 7 SO I - 9 
 Uma aplicação grava o editor alterado na área de outro usuário; 
 Quando este usar o editor, sem saber estará passando seus 
arquivos para o ladrão. 
 
Obs.: este é o precursor dos Trojan Horses! 
 
9.3.3 TENEX 
 
 Sistema operacional do DEC-10; 
 Suporta paginação; 
 Permite associar falhas em processos (ex.: page faults) com 
funções definidas pelo usuário; 
 Usa passwords para proteger arquivos; 
 Os programas precisam fornecer a password correta para acessar 
um arquivo; 
 O SO verifica passwords um caracter por vez; 
 Quando há um problema, o SO reporta imediatamente – caso um 
caracter esteja correto, verifica o próximo; 
 Para quebrar uma senha, o invasor posiciona a password como 
pode ser visto na figura. 
 
 Nesse caso, quando o invasor tenta abrir o arquivo da vítima, o 
sistema verifica a password um caracter por vez; 
 Se o 1o caracter estiver errado, o sistema reporta “Invalid 
Password”; 
 Nesse caso, o invasor tenta o próximo caracter; 
 Eventualmente ele acertará! 
 
 
 
 1
a
 página (mem) 
 
 
 2
a
 página (ausente) 
 
 
 
 
 Se estiver certo, o sistema tentará o próximo caracter; 
 Como a password está na fronteira de 2 páginas e a 2a não está 
presente, o processo ganha um page fault; 
 Nesse caso, o invasor desloca a password um caracter para cima 
na 1
a
 página, trazendo um caracter da 2
a
 página; 
 O processo é repetido até que a password seja quebrada! 
 
9.3.4 OS/360 
 
 Permite processamento em paralelo com I/O; 
 É possível disparar uma leitura de fita sobre uma área e rodar um 
processo para ler um arquivo; 
 Para a leitura, é preciso fazer uma chamada passando um 
ponteiro com o nome do arquivo e outro com a password; 
 O sistema 1o verifica a password e determina se está correta ou 
não; 
 Nesse meio tempo, a fita termina seu I/O e carrega os dados 
pedidos sobre o ponteiro do nome do arquivo passado para a 
chamada de sistema; 
 Em seguida, o SO verifica qual o arquivo que deve ser acessado 
e usa um nome para o qual não foi passado uma password. 
 
 
A 
A 
A 
A 
A 
A 
A 
8 SO I - 9 8 SO I - 9 
9.3.5 Internet Worm 
 
A grande violação de segurança de todos os tempos: 
 Iniciou na noite de 2/11/1988; 
 O estudante de graduação Robert Tappan Morris, da 
universidade de Cornell, liberou um programa Worm na 
Internet; 
 Esse programa derrubou milhares de computadores em 
universidades, corporações e laboratórios por todo o mundo até 
ser identificado e removido! 
 Hoje ainda há uma controvérsia se esse programa foi 
completamente desativado!!! 
 
Como isso foi acontecer? 
 Naquele ano, Morris descobriu 2 falhas graves de segurança no 
Unix de Berkeley; 
 Com elas, ele obteve acesso não autorizado a várias máquinas 
por toda Internet; 
 Morris escreveu um programa auto-replicante que explorava 
essas falhas; 
 Depois de ativado, esse programa atingiu todas as máquinas que 
conseguiu acessar; 
 Ainda não há certeza se a noite de 2/11/88 foi apenas um teste ou 
se era o programa definitivo; 
 A própria motivação de Morris até hoje é desconhecida! 
 
Funcionamento do Worm: 
 Basicamente, era constituído por 2 programas: 
 Bootstrap: programa de 99 linhas escrito em C (l1.c); 
 Era compilado e executado no sistema sob ataque; 
 Ao rodar, o programa se conectava com a máquina de 
onde veio, fazia o download do Worm e executava-o! 
 Worm: 
 Preocupava-se em esconder sua existência; 
 Verificava as tabelas de roteamento da máquina 
procurando pelos próximos hosts e tentava enviar o 
bootstrap para elas! 
 
Métodos de Infecção: 
Método 1: 
 O Worm tentava executar um shell remoto com o comando rsh; 
 Se estivesse habilitado, o próprio shell podia fazer o download 
do Worm! 
 
Método 2: 
 Programa Finger! 
 Ex.: finger nome@site ! 
 Em cada site BSD, um daemon finger fica executando para 
atender requisições de outras máquinas; 
 O Worm chamava o finger passando como parâmetro um string 
de 536 bytes! 
 Esse string causava um overflow no buffer do daemon finger e 
sobrescrevia sua pilha! 
 Quando o daemon fazia um retorno do procedimento de 
tratamento do string, ele não voltava para main! 
 Nesse caso, o retorno era para uma função dentro do string de 
536 bytes! 
 Este procedimento tentava executar /bin/sh; 
 Se conseguisse, o Worm tinha um shell na máquina atacada! 
9 SO I - 9 9 SO I - 9 
Método 3: 
 Bug no sendmail! 
 Permitia ao Worm passar um e-mail com o bootstrap e permitirsua execução. 
 
Objetivo: 
 Tentar quebrar passwords dos usuários! 
 Para esse fim, tudo que Morris precisava fazer era perguntar ao 
seu pai! 
 Ele era especialista em segurança da NSA; 
 Em 1979, o pai de Morris publicou um artigo junto com Ken 
Thompson sobre quebra de códigos!!! 
 Cada password quebrada permitia ao Worm se logar em 
qualquer sistema que aceitasse aquele usuário! 
 
Nas máquinas infectadas: 
 Cada vez que o Worm chegava numa máquina, verificava se já 
estava presente; 
 Se estivesse, a cópia encerrava, exceto a cada 7 vezes!!! 
 Isso provavelmente foi feito para evitar que um administrador 
colocasse sua própria versão do Worm para enganar o ataque! 
 Esta característica fez com que os Worms se proliferassem até 
derrubar todos os sistemas infectados! 
 Se Morris tivesse tirado essa característica de seu programa, 
provavelmente o Worm teria permanecido muito tempo sem ser 
detectado! 
 
Como Morris foi achado? 
 Um de seus amigos deu uma entrevista para John Markoff, 
repórter de computação do New York Times; 
 Este amigo disse que o Worm não era danoso, tudo havia sido 
um acidente e o autor sentia muito! 
 Durante a entrevista, o amigo disse que o login do autor era rtm; 
 Para achar o login, bastou dar finger em algumas máquinas e o 
culpado foi identificado; 
 A história toda foi publicada no dia seguinte em 1a página, 
mesmo com o resultado da eleição presidencial 3 dias antes! 
 
Desenlace: 
 Morris foi a julgamento; 
 Foi sentenciado em US$ 10.000,00, 3 anos de condicional e 400 
horas de serviço comunitário; 
 As custas legais ficaram em US$ 150.000,00!!! 
 Há dúvidas quanto a Morris: se estudante brilhante e ingênuo ou 
criminoso! 
 
9.3.6 Kevin Mitnick 
 
Kevin Mitnick é o hacker (na verdade, cracker) mais famoso de 
todos os tempos. Criador da “engenharia social” (ou, pelo menos, 
primeiro a utilizá-la em larga escala com sucesso), ainda adolescente 
conseguiu obter senhas e informações confidenciais de diversas 
empresas. As técnicas que ele usava eram variadas, mas em geral 
consistiam de truques para enganar as pessoas para que entregassem 
os dados que ele queria. 
Em entrevistas para a televisão, revelou que vasculhava o lixo de 
grandes corporações. Disse que chegou a encontrar manuais de 
protótipos e produtos recém lançados no mercado. Usando esse 
material, descobriu falhas que conseguiu explorar em seus ataques. 
10 SO I - 9 10 SO I - 9 
Supunha-se que ele havia sido o modelo usado no filme Wargames 
(1984), mas os diretores negaram. 
Foi preso a primeira vez em 1987 por invadir a SCO. Conseguiu 
apenas 3 anos de condicional. 
No ano seguinte, porém, um amigo entregou que ele estava usando 
computadores para “hacking”. Foi preso por violação da 
condicional e por ter invadido a DEC e roubado códigos fontes. 
Seu advogado conseguiu convencer o tribunal que Kevin tinha uma 
compulsão por computadores e precisava, na verdade, de 
acompanhamento profissional. Ainda assim, recebeu uma pena de 
um ano de detenção. 
Mas um detalhe ajudou a levar sua fama para as alturas. A 
promotoria conseguiu convencer o juiz que Kevin era um elemento 
perigoso e que poderia invadir sistemas usando apenas sua voz e um 
telefone. Como resultado, ficou preso sob severas restrições, 
passando cerca de 8 meses na solitária. As condições eram tão ruins 
que ele começou a desenvolver problemas mentais. 
 
Solto em 1989, tentou vários trabalhos diferentes, até que conseguiu 
um emprego como ajudante de um detetive particular. Com isso, 
foi introduzido no submundo do crime. Não demorou até que o FBI 
estivesse atraz dele de novo. 
Para não ser preso, decidiu se tornar um fugitivo. 
Chegou a fazer parte da lista de Mais Procurados no Mundo 
depois que um jornalista do NYT, John Markoff, fez uma série de 
artigos sobre ele, sua suposta capacidade e o risco que ele 
representava para a sociedade. Nesses artigos, na maioria de 
primeira página, Kevin era tratado como elemento perigoso, mortal, 
“unstoppable” . 
 
Durante sua fuga, continuou invadindo sistemas. Adotou 
identidades falsas e mudava constantemente de lugar, 
perambulando pelos Estados Unidos. 
Em 1995, finalmente, foi preso pelo FBI na Carolina do Norte. Em 
uma das vans usadas em sua cassada estava John Markoff, que 
ajudava o FBI nas investigações. A ética dessa empreitada é 
questionada até hoje. 
 
A figura central na prisão de Kevin foi um investigador particular 
chamado Tsutomo Shimomura, cujos computadores supostamente 
Kevin invadiu. Aparentemente, nunca foi provado e há dúvidas 
sobre isso. Usando equipamentos de rastreamento, Shimomura 
conseguiu determinar de onde Kevin estava fazendo suas ligações. 
Há alegações de problemas éticos também com Shimomura. 
 
Seu caso na justiça ganhou ainda mais notoriedade quando se 
descobriu que o FBI incentivou empresas vítimas de Kevin a entrar 
com reclamações de prejuízos de milhões de dólares que incluiam 
softwares originais que ele teria copiado, mais o custo de todo o 
hardware usado em seu desenvolvimento, além de salários e prédios. 
Surpreendentemente, Kevin e seus advogados não puderam ver 
várias das provas contra ele. 
Os jornais publicavam matérias e matérias sobre seus crimes, sua 
mente arquicriminosa e os danos que teria causado, na maioria das 
vezes baseados no artigos de Markoff. 
 
Enquanto as autoridades levantavam provas contra ele, passou 4 
anos preso sem ser acusado. Isso se tornou um dos maiores casos de 
abuso do sistema prisional dos tempos modernos. 
11 SO I - 9 11 SO I - 9 
Quando finalmente, foi a julgamento, declarou-se culpado. Recebeu 
uma pena de 5 anos, usando os 4 que já tinha passado preso. 
Quando foi solto, o acordo da condicional era extremamente rígido: 
ele estava proibido de fazer qualquer uso de computadores. Por 
vários anos, Kevin não poderia ter computadores em casa, não 
poderia usar qualquer programa, receber ou mandar e-mails, nem 
tocar num teclado. 
Para contar sua versão da história, escreveu um livro em co-autoria, 
chamado The Art of Deception, usando uma máquina de escrever 
manual. 
 
Quando venceu a proibição de acesso à Internet, ele foi num 
programa de televisão ao vivo para usar a Internet pela primeira vez 
depois da prisão. Acessou então um blog de sua namorada. 
 
Markoff e Shimomura escreveram um livro, Takedown, e venderam 
os direitos para um filme (Takedown também) para a Miramax. 
Segundo muitas pessoas, tanto o livro como o filme não são fiéis aos 
fatos. Shimomura é conhecido por não ser muito honesto. No filme, 
ocorre um encontro entre os dois quando Kevin está preso. Na vida 
real, nunca aconteceu. 
Dizem que, pelo livro e pelo filme, Markoff recebeu um milhão de 
dólares. 
 
Atualmente, Kevin trabalha como consultor de segurança e tem sua 
própria empresa, Defensive Thinking (defensivethinking.com). 
 
Ataques genéricos à segurança 
 
Fraquezas em geral: 
 Muitos sistemas não limpam áreas de memória, discos e fitas. 
Para ver seu conteúdo, basta criar arquivos alocando áreas sem 
gravar ou alocar memória dinâmica e verificar o conteúdo; 
 
 Pode-se tentar fazer coisas imprevistas: 
 Sys calls ilegais; 
 Chamadas legais mas com parâmetros ilegais; 
 Chamadas legais com parâmetros legais mas não razoáveis; 
 Iniciar o login e teclar <CTRL>-C ou BREAK (em alguns 
sistemas, o programa que verifica as passwords é derrubado e 
o login é considerado bem sucedido; 
 Modificar estruturas usadas para acessar recursos do sistema 
(em alguns casos, o SO altera dados na área do usuário – 
modificar esses valores pode causar confusão); 
 Escrever um programa que simula a tela de login; 
 Procurar nos manuais observações do tipo “Não faça X ...”. 
Então, tente tantas variantes de X quantas puder; 
 Convencer programadores do sistema a alterar elementos de 
segurança no código do SO; 
 Em último caso, convide a secretária do CPDpara sair. Em 
geral, ela tem acesso a todo tipo de informação, recebe um 
salário baixo e é suscetível à cantadas românticas baratas! 
 Vírus! 
 
4.4.5 Princípios de projeto para a segurança 
 
 A especificação do sistema deve ser pública. Assumir que um 
intruso não conhece o sistema é apenas uma ilusão; 
12 SO I - 9 12 SO I - 9 
 O default deve ser “sem acesso”. Erros em que o acesso 
autorizado é recusado são comunicados mais rapidamente que 
acessos não autorizados permitidos; 
 Sempre verificar a autoridade corrente! O sistema deve verificar 
o acesso e não permissões! P. ex.: um sistema verifica a 
permissão quando um arquivo é aberto e não depois. Alguém 
pode manter um arquivo aberto por semanas e continuar 
acessando os dados mesmo depois de perder o direito; 
 Dar a cada processo o mínimo de privilégio possível. Ex.: se um 
editor só tem o direito de acessar o arquivo que vai editar, um 
trojan horse não poderá causar muito dano (proteção de 
granularidade fina); 
 O esquema de proteção deve ser simples, uniforme, construído 
nas camadas mais baixas do sistema. Segurança não é uma 
característica add-on! 
 Psicologicamente aceitável! Se a proteção requer muito trabalho 
dos usuários, eles não usarão! 
 
4.4.6 Autenticação de usuários 
 
Passwords 
 Fácil de burlar; 
 Morris & Thompson, 1979 (estudo sobre vários sistemas Unix): 
 Lista de passwords comuns (nomes, ruas, cidades, palavras 
invertidas, cachorros, gatos, etc.); 
 Cada password da lista foi encriptada e comparada com o 
arquivo de senhas; 
 Cerca de 86% das passwords estavam na lista!!! 
 
Proposta de solução: 
 Além da senha, usar um número de n bits; 
 Esse número é concatenado com a senha antes da criptografia; 
 Agora, além da palavra da senha é preciso saber o número; 
 Para cada senha da lista, é preciso fazer 2n strings! 
 Técnica usada no Unix (n = 12). 
 
Passwords one-time: 
 O usuário deve manter um livro de senhas; 
 Cada login usa a próxima senha do livro; 
 Se um intruso descobrir uma senha, ela não terá mais utilidade; 
 É claro, não se pode perder o livro! (militares) 
 
Considerações importantes: 
 A senha não pode ser mostrada enquanto o usuário digita; 
 O sistema não pode armazenar a senha descriptografada. 
 
Variações da idéia de password: 
1. O sistema faz perguntas ao usuário: 
 Para cada usuário, é mantida uma longa lista de perguntas 
criptografadas; 
 No login, o computador pergunta uma delas aleatoriamente e 
verifica a resposta. 
2. Desafio: 
 O usuário escolhe algoritmos matemáticos variados, cada um 
para um momento (manhã, tarde, noite, dia da semana, dia do 
mês, etc.); 
 Quando o usuário faz o login, o sistema usa o algoritmo 
daquele período e apresenta um valor; 
 O usuário aplica o algoritmo e digita a resposta certa; 
13 SO I - 9 13 SO I - 9 
 Ex.: função x2 – sistema apresenta 7 – usuário responde 49. 
 
Identificação física 
 Ex.: cartão magnético 
 Cartão associado com senha; 
 Características físicas: 
 Impressão digital; 
 Voz; 
 Análise de assinatura; 
 Análise do movimento e pressão da caneta; 
 Tamanho dos dedos; 
 Íris do olho; 
 Amostra de urina!!! 
 Amostra de sangue!!! 
 
Alguns desses itens podem ser 100% seguros, mas o método precisa 
ser psicologicamente aceitável! 
Além disso, é preciso considerar possíveis falhas: 
 Um intruso pode arrancar o dedo de alguém para entrar num 
sistema; 
 Para o tamanho dos dedos, pode-se levar a mão da pessoa; 
 O intruso pode falsificar a assinatura; 
 O olho? 
 Seqüestro, obrigando a vítima a ceder amostras de substâncias 
corporais! 
 
 
9.6 Mecanismos de Proteção 
 
Separação entre política e mecanismo: 
 Política: que dados devem ser protegidos de quem; 
 Mecanismo: como o sistema garante a execução da política. 
 
9.6.1 Domínios de proteção 
 
Tipos de recursos (objetos) a serem protegidos: 
 Hardware: CPU, memória, terminais, discos, etc. 
 Software: processos, arquivos, bancos de dados, semáforos, etc. 
Cada objeto tem um nome único e possui um conjunto de operações. 
 
Necessidades: 
 Método para proibir os processos de acessar objetos sem 
autorização; 
 Restringir o conjunto de operações para um conjunto daquelas 
possíveis. 
 
Domínio: 
 Conjunto de pares (objeto, direitos); 
 Direitos especifica quais operações podem ser realizadas sobre 
aquele objeto; 
 Em cada instante, os processos executam em algum domínio de 
proteção; 
 Cada processo pode acessar um conjunto determinado de 
objetos; 
 Para cada um, só pode realizar determinadas operações. 
 
14 SO I - 9 14 SO I - 9 
Matriz de proteção: 
Domí
nio 
Arq 1 Arq 2 Arq 3 Arq 4 Arq 5 Arq 6 Prn 1 Plotter 
2 
1 R RW 
2 R RWX RW W 
3 RWX W W 
 
 
Domínio 1 
 
 
 
 
 Domínio 2 Domínio 3 
 
 
 
 
 
Quais objetos pertencem a qual domínio? 
 
9.6.2 Listas de Controle de Acesso 
 
Na prática, uma ACL é um sistema de controle por objeto, ou a 
representação da matriz de proteção por colunas. 
 
 
 
 
9.6.3 Capabilities 
 
Capabilities é um sistema de proteção em que a matriz é acessada 
por linha. 
Cada processo, associado ao seu usuário, recebe um conjunto de 
direitos que ele pode exercer durante a sua execução. 
 
 
File1 [R] 
File2 [RW] 
File3 [R] 
File4 [RWX] Prn1 [W] 
 File5 [RWX] 
 Plotter1 [W] 
15 SO I - 9 15 SO I - 9 
O interessante nas capacilities é que elas são objetos também, 
podendo ser apontadas por outras capabilities. Isso facilita a 
implementação de subdomínios. 
9.7 Sistemas Confiáveis 
 
Em todo o mundo, estima-se que as perdas causados por virus e 
problemas de segurança em geral passam de 1 trilhão de dólares por 
ano. 
Basicamente, essa soma é “gasta” em recuperação de problemas, 
reconstrução de dados e perdas comerciais decorrentes. 
Temos duas questões principais, relacionadas com esse estado de 
coisas: 
 É possível construir um sistema computacional seguro? 
 Se sim, por que isso não é feito? 
 
A resposta à primeira questão é SIM. 
O método de construção de sistemas seguros é conhecido a décadas. 
Responder a 2
a
. pergunta já é mais complicado. 
Há duas razões principais: 
 Os sistemas atuais são inseguros, mas os usuários convivem com 
isso por outros motivos. 
o Ex. Suponha que a Microsoft lance um SO que seja à 
prova de virus, mas não roda aplicações Windows 
anteriores – dificilmente alguém migraria para o novo 
produto. 
 A única forma de construir um sistema seguro é mantê-lo 
simples. Opções e recursos de utilização são inimigos da 
simplicidade. 
o Os projetistas acreditam que o que os usuários querem 
são mais opções e recursos. Isso significa mais 
complexidade, mais código, mais erros e mais problemas 
de segurança. 
 
2 exemplos interessantes. 
 
O primeiro sistema de email enviava mensagens como textos ASCII. 
Era um sistema completamente seguro. 
Então, apareceu a idéia de expandir os recursos do sistema para 
enviar outros tipos de documentos, como arquivos Word. 
Textos do Word podem conter macros, que são programas feitos por 
alguém. 
Ler um texto desses significa executar no seu sistema programas 
escritos por outra pessoa, possibilitando falhas de segurança. 
Pergunta: os usuários pediram que o sistema de email de 
documentos passivos ganhasse o recurso de transportar programas? 
Provavelmente não. Mas os projetistas acharam que isso era 
interessante, independente dos problemas que pudesse ter. 
 
Outro exemplo: páginas WEB. No começo, as páginas eram escritas 
em texto simples HTML. 
O máximo que alguém podia fazer era provocar um estouro de 
buffer usando HTML ilegal. 
Agora, as páginas podem carregar applets e scripts. Isso tem gerado 
problemas de segurança um depois do outro. 
Quando as páginas eram estáticas, os usuários pediram que elas 
tivessem recursos dinâmicos com problemas de segurança? 
Dificilmente! 
 
16 SO I - 916 SO I - 9 
Anexo 
 
Cuidado ao acessar os sites dos bancos. Algum tipo de trojan ou 
vírus pode estar instalado em sua máquina. Ao acessar o internet 
Banking pela primeira vez após iniciar a máquina, pode surgir uma 
nova caixa pedindo novamente seus dados e senhas. Conforme 
ilustrado nas figuras anexas. 
 
Observem com atenção, pois esta tela é personalizada para cada 
banco e só aparece depois de efetuar o logon no site, quando vc já 
está em ambiente "seguro". No Itaú só aparece depois que vc iniciar 
a navegação em uma das áreas do site (extratos, transferências....) 
 
Se vc digitar os dados nesta tela, o sistema envia um e-mail com 
seus dados, sem deixar nenhum rastro (log) de que isso aconteceu. 
Só percebí isso pois o norton fez uma varredura na mensagem que 
estava sendo enviada. Caso vc já tenha caído nessa, ALTERE todas 
as suas senhas imediatamente. 
 
ATENÇÃO: Por enquanto (23/01/04) não é possível detectar o 
problema através de nenhum antivirus ou utilitário de remoção de 
Spyware. 
 
 
 
17 SO I - 9 17 SO I - 9 
 
 
 
 
18 SO I - 9 18 SO I - 9

Continue navegando