O documento discute segurança em sistemas distribuídos, definindo quatro conceitos básicos (autenticidade, confiabilidade, integridade e disponibilidade), descrevendo vulnerabilidades e ataques comuns (como negação de serviço e interceptação), e mecanismos de segurança como autenticação, controle de acesso e criptografia.
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
Estudo de caso segurança computação distribuída
1. Ricardo Nagel Machado
Ricardo.nagel@hotmail.com
Estudo de Caso: Segurança em sistemas distribuídos
UNIVERSIDADE FEDERAL DE SANTA CATARINA – UFSC
Araranguá, 01 de dezembro de 2012.
2. Ricardo Nagel Machado
ricardo.nagel@hotmail.com
Estudo de Caso: Segurança em sistemas distribuídos
Estudo de caso sobre segurança em sistemas distribuídos
desenvolvido como atividade complementar a disciplina de
Computação Distribuída da 5ª fase do curso de Tecnologias da
Informação e Comunicação, ministrada pelo Professor Carlos
André de Sousa Rocha.
UNIVERSIDADE FEDERAL DE SANTA CATARINA – UFSC
Araranguá, 01 de dezembro de 2012.
3. Introdução
É inegável a importância e a necessidade que representam a segurança nos
sistemas distribuídos hoje por conta da grande quantidade de dados trafegando nas
redes. É visto também que na maioria das situações os atos causadores de quebras na
segurança de sistemas distribuídos são intencionais, o que motiva o estudo e a melhor
adequação da segurança para esses sistemas, para assim minimizar as falhas que hoje
podem representar grandes prejuízos para as corporações.
O critério segurança tornou-se essencial por até mesmo questão de sobrevivência
de empresas que lidam com dados.
4. Os quatro conceitos básicos de segurança em sistemas distribuídos
Podem-se definir quatro conceitos para a realização de uma comunicação segura.
Para isso podemos resgatar o conhecimento adquirido nas disciplinas de redes de
computadores para uma melhor compreensão do assunto a ser exposto posteriormente.
De acordo com o que foi estudado em redes de computadores, para a realização
de uma comunicação segura entre dois elementos X e Y são necessários que os
seguintes passos ocorram:
A mensagem que X enviar para Y precisa chegar a Y sem que esta seja
modificada ao decorrer da transmissão.
Quando Y receber a mensagem de X é necessário que tenha certeza que tenha
sido X que a enviou e não alguém se passando por X.
Apensas Y deve ser capaz de compreender a mensagem que X lhe enviar.
X e Y precisam estar disponíveis para realizar uma comunicação.
Com base nesse modelo de comunicação segura, surgem os quatro conceitos:
1. Autenticidade
Autenticidade remete a correta identificação de um usuário/computador. Para
que seja segura a transmissão de dados, o serviço de autenticação precisa assegurar ao
receptor que a mensagem realmente possua procedência da origem que é informada em
seu conteúdo. Geralmente o serviço de autenticidade é implementado através de
mecanismos de senhas ou de assinatura digital. A verificação de autenticidade é
necessária após todo processo de identificação, seja de um usuário para um sistema, de
um sistema para o usuário ou de um sistema para outro sistema.
2. Confiabilidade
O conceito de confiabilidade pode ser interpretado como prover a proteção dos
dados contra a revelação para pessoas sem autorização, seja ela interna ou externa. Isso
nada mais consiste em garantir proteção das informações contra a leitura/cópia por
usuários que não possuem autorização explicitada pelo proprietário da informação.
Levando este conceito para a comunicação em redes de computadores, confiabilidade
irá remeter a ocultação dos dados durante o tráfego de rede, para que os mesmos não
5. sejam alterados ou até mesmo extraídos por usuários sem autorização para realizar essa
verificação ou extração de dados.
3. Integridade
Integridade diz respeito à proteção contra a modificação da informação sem a
permissão de forma explícita por parte do proprietário de tal informação. O ato de
modificar a informação deve incluir ações de escrita, alteração de conteúdo, alteração de
status. Remoção e criação de informações. Considera-se a proteção da informação nas
mais diversas formas, tal como o armazenamento em disco. Resumindo, integridade
nada mais é que oferecer formas de garantir que o dado esteja lá, que este não tenha sido
corrompido, que se encontra íntegro. Ainda pode ser dito que seja um conceito para
manter os dados originais, onde nada foi acrescentado ou modificado.
4. Disponibilidade
A disponibilidade é o conceito que consiste na proteção dos serviços prestados
pelo sistema, para que assim eles não sejam afetados de alguma forma tornando-se
indisponíveis sem autorização para que isso ocorra. Esse conceito assegura então ao
usuário o acesso aos dados sempre que o mesmo necessitar. A disponibilidade também
pode ser chamada de continuidade de serviço.
6. Vulnerabilidade
A vulnerabilidade pode ser dita como a presença de erros no projeto ou na configuração
do Sistema Distribuído que podem ser explorados, implicando na produção de falhas
intencionais ou não.
Ataques a Sistemas Distribuídos
Diz-se que são investidas com intuito de explorar as vulnerabilidades do Sistema
Distribuído tendo como objetivo a destruição, modificação, roubo, revelação de
informações ou interrupção de serviços do mesmo.
1. Ataque de interrupção
Esse tipo de ataque possui o objetivo de destruir ou interromper o serviço oferecido.
Se sofrer este tipo de ataque, você pode ser forçado a reinicializar ou reiniciar vários
serviços. Embora não seja um risco importante de segurança, tempo de paralisação
(downtime) pode ser extremamente valioso.
O tipo de ataque de interrupção mais difundido é o Denial of service - DoS, ou
negação de serviço. Este consiste no envio de um grande número de requisições para
um determinado computador, para que assim o mesmo não consiga responder a todas
elas. Estas requisições ficarão em uma fila de espera por resposta e com isso todo o
poder de processamento do servidor será utilizado, acarretando que os serviços
instalados fiquem indisponíveis para as próximas requisições. Exemplificando, isso
poderia ocorrer em um servidor web no qual o número de acessos ao servidor em um
determinado momento fosse superior ao suportado, deixando sem respostas novos
pedidos de requisições. Outra maneira comum desse tipo de ataque é a destruição de
componentes de hardware, como, por exemplo, discos rígidos ou ainda a interrupção
proposital de circuitos de comunicação (links).
2. Ataque de intercepção
Este tipo de ataque possui como objetivo a captura de informação que está sendo
transmitida sem que o sistema perceba tal ação. O ataque de intercepção consiste em
gerar cópias de informações, arquivos ou programas não autorizados, onde a entidade
não autorizada pode ser uma pessoa, um programa ou um computador. Um dos
7. principais tipos de ataque desta categoria é o man in the middle, onde o ataque envolve
a conversação completa entre o atacante e o atacado. Assim toma-se o controle sobre
uma máquina no caminho entre atacado e o atacante, alterando a rota entre atacado e
atacante, usualmente estão perto do atacado. Defesa: Evitar ao máximo a liberação de
serviços perigosos em máquinas externas através de brechas em filtros. A figura abaixo
exemplifica este tipo de ataque:
Outra forma bastante usual deste tipo de ataque ocorre através da utilização de
analisadores de protocolos ou ferramentas sniffer, a qual consegue obter todos os
pacotes que estão trafegando em um determinado canal de comunicação. Desta maneira
um invasor consegue obter facilmente ou adulterar informações confidenciais de uma
corporação, beneficiando-se das fragilidades encontradas em um ambiente de rede,
como por exemplo, a ausência de criptografia nas informações confidenciais e senhas de
acesso que trafegam na rede.
3. Ataque de modificação
Este tipo de ataque pode ser evidenciado a partir da alteração de informações que
estão sendo transmitidas, ou seja, é um ataque a integridade desta informação. Pode-se
citar um tipo de ataque desta categoria chamado replay, no qual parte de uma
transmissão da rede é copiada e posteriormente reproduzida. Esse tipo de ataque
geralmente está associado a uma criptografia mal-estruturada.
4. Ataque de falsificação
O ataque de falsificação caracteriza-se pela finalidade do atacante se passar por um
usuário do sistema, assim este pretende obter informações para transmitir dados na rede,
ou seja, a autenticidade das informações é atacada. O mais comum tipo de ataque dessa
categoria é o IP spoofing, o qual consiste na substituição do endereço IP do computador
8. do invasor, tendo então como intuito que se passe por um computador confiável da rede,
obtendo posteriormente privilégios na comunicação.
5. Cavalos de Tróia – Trojans
Esse tipo de ataque é bem específico, não se tratando de programas escritos para
simplesmente destruir ou causar danos aos PCs assim como os conhecidos vírus. Os
trojans são mais inteligentes, pois podem ser controlados de qualquer lugar com
facilidade. Eles são desenvolvidos para ter duas partes, as quais são: o cliente e o
servidor. Para obter sucesso o servidor é a parte que deve ser instalada no computador
da vítima, já o cliente deverá ser utilizado pelo invasor. Um trojan bastante conhecido é
o Netbus. Esse tipo de invasão é utilizada pelos trojans a partir do servidor sendo um
executável e o cliente uma interface gráfica para de forma mais intuitiva até para leigos
conseguirem monitorar o computador invadido. O servidor basicamente será
responsável por abrir as portas do PC, possibilitando assim a invasão. A partir da
abertura das portas, o invasor terá assim a viabilidade para invadir e obter total controle
sobre a máquina, podendo então realizar procedimentos como downloads, exclusões e
tantas outras coisas, já que este terá total liberdade para manipular o PC invadido. Ainda
tratando sobre trojans, muitos possuem também função de Keylogers, ou seja, são
programas que capturam tudo o que é digitado no teclado, inclusive senhas de email e
senhas de contas bancárias.
6. Envenenamento de cache de DNS
Envenenamento de DNS é uma modalidade de ataque que age comprometendo o
serviço de nomes de domínio (DNS). Isto ocorre quando o cache de um servidor DNS é
alterado para que assim um domínio seja mapeado para um site malicioso. O
envenenamento de DNS dá-se da seguinte maneira:
Cracker faz solicitação ao servidor local DNS a partir de um determinado site.
Em caso do site não estiver no cache do servidor, ele perguntará para os
servidores subindo na hierarquia. Esse processe é feito através de um ID de
transação.
Após isso, o cracker enviará vários pacotes para o servidor de DNS local
simulando ser o servidor de nível mais alto. Então a partir da ID de transação, o
9. servidor DNS local escreve na cache o mapeamento do domínio para o
endereço malicioso.
O usuário então ao realizar a requisição de algum endereço, obterá o IP
malicioso do servidor agora envenenado e acabará acessando um site não
legítimo.
10. Mecanismos de segurança
Autenticação
Autenticação diz respeito ao mecanismo utilizado para garantir que um usuário,
processos sob controle ou processos que trabalham de forma cooperativa estejam se
identificando de acordo com suas reais identidades. Para isso há três formas básicas de
se realizar a autenticação, as quais devem ser utilizadas de acordo com a situação
específica. A autenticação pode ser feita de uma forma unilateral, mútua ou através da
mediação de terceiros. Autenticação unilateral remete a quando apenas um parceiro da
comunicação autentica-se diante o outro, contudo a recíproca não é verdadeira. Já na
autenticação mútua os parceiros de comunicação se autenticam um perante o outro. Na
autenticação com a mediação de terceiros, os parceiros da comunicação não se
conhecem, assim não podem autenticar-se mutuamente, contudo ambos conhecem um
terceiro com quem se autenticam e a partir disso recebem credenciais para procederem
assim a autenticação mútua.
Controle de acesso
Mecanismos de controle de acesso propõem-se para definir que usuários ou
processos terão acesso a recursos do Sistema Computacional e as devidas permissões.
Estes tipos de mecanismos podem ser aplicados a qualquer nível.
Criptografia
Entende-se criptografia como uma técnica para trocar o conteúdo de uma
mensagem compreensível, por um conteúdo incompreensível utilizando-se de uma
função específica para transformação deste conteúdo, método criptográfico. Criptografia
é um mecanismo essencial desde a antiguidade para manter-se a confidencialidade na
troca de mensagens, principalmente quando esta ocorre através de canais de
comunicação não confiáveis. As técnicas de criptografia desde a antiguidade têm
evoluído e hoje o método utilizado é a criptografia através do uso de chaves. Um texto
em claro para ser transformado num texto criptografado, ou vice-versa, faz-se
necessário o uso de um método e de uma chave de tal forma que a partir de um mesmo
texto em claro e usando-se o mesmo método de criptografia chega-se a textos
11. criptografados diferentes se as chaves forem diferentes. O método de criptografia é
considerado confiável e seguro quando ele é de domínio público, podendo ser
exaustivamente testado por todos.
Segurança no Cliente
O cliente apesar de não obter acesso as configurações avançadas de um sistema
distribuído, deve se prevenir de eventuais ataque através do acréscimo de alguns hábitos
de segurança, tais como:
Verificação de diferenças no comportamento do sistema distribuído mediante as
operações.
Manter sigilo sobre dados e não fornecê-los quando não for necessário.
Além disso, o cliente pode criptografar os dados armazenados em disco,
evitando assim a possibilidade de vazamento de dados caso o computador seja invadido.
Também é importante ser dito que deverá existir um sistema de autenticação no cliente,
para garantir a autenticidade do usuário que está acessando o computador.
Segurança no Servidor
No caso do servidor, este já oferece uma gama bem maior de possibilidades para
garantir o aumento da segurança do sistema distribuído, podendo ser citadas algumas
dessas práticas:
Configuração refinada dos serviços prestados
Versões atualizadas
Replicação
Logs
Ferramentas de segurança:
Criptografia
Autenticação
Certificados
12. Conclusão
A quantidade de informação trafegando nas redes está cada vez maior e com isso
vemos uma grande necessidade que informações de grande valia situadas em sistemas
distribuídos sejam protegidas de maneira eficiente e eficaz, evitando assim incômodos
ao administrador do sistema. A partir da visão do interesse sobre essas informações
privilegiadas, ataques maliciosos são cada vez mais comuns em sistemas distribuídos e
novas maneiras de praticar esse tipo de ataque surgem constantemente. Assim, é
necessário não apenas o desenvolvimento e a evolução dos mecanismos de proteção
para os sistemas distribuídos, como também é necessário que as pessoas tenham um
pouco de conhecimento a respeito dos tipos de ameaças que estão sendo expostas
diariamente para que assim possam evitá-las de maneira inteligente.
13. Referências
TANENBAUM, Andrew S.; Maarten Van Steen. Sistemas Distribuídos: princípios e
paradigmas. 2ª. Ed. Editora Pearson, 2007.
Couloris, George, Sistemas distribuídos: conceitos e projeto/ George Couloris,
Jean Dollimore, Tim Kindberg; tradução João Tortello – 4. Ed. – Porto Alegre:
Bookman, 2007.
Miguel P. Correia. Serviços Distribuídos Tolerantes a Intrusões: resultados
recentes e problemas abertos. V Simpósio Brasileiro em Segurança da Informação e
de Sistemas Computacionais - Livro Texto dos Minicursos, pp. 113-162, Sociedade
Brasileira de Computação, Setembro de 2005.
Francisco J. S. Silva. Conceitos de Segurança em Sistemas Distribuídos.
Laboratório de Sistemas Distribuídos (LSD) - Departamento de Informática / UFMA.
http://www.lsd.ufma.br 30 de novembro de 2011.