Segurança em Sistemas de Computação
Introdução
Autenticação
Controle de permissões
Os tópicos a serem examinados
podem ser encontrados nos seguintes capítulos de livros:
Computer
Networks, Tanenbaum, cap. 7
Modern
Operating Systems, Tanenbaum, cap. 4
Operating
Systems Concepts, Peterson/Silberschatz, cap. 11
Outros bons livros de redes de
computadores ou de sistemas operacionais, nos capítulos sobre
segurança
1. Introdução
No capítulo anterior mencionou-se
que segurança seria um dos serviços a serem providos
pela camada de aplicação de um protocolo de rede.
Entretanto, a segurança de um sistema computacional não
difere muito se tratada do ponto de vista de rede ou de uma máquina
isolada, uma vez que o problema básico de segurança é
o controle de acesso, que pode ser dividido entre as atividades de
autenticação do usuário e de controle de
permissões. Essas duas atividades, exceto pelo escopo de sua
atuação e vulnerabilidade, são semelhantes quer
aplicadas para uma ou mais máquinas.
Nesse capítulo faremos uma
revisão rápida dos principais problemas envolvidos em
fornecer segurança a um sistema computacional (máquina
ou rede), examinando inicialmente os problemas envolvidos com
autenticação e depois aqueles referentes ao controle de
permissões. Saliente-se que o exame desse tópico aqui
não deve, nem pode, ser considerado como um curso introdutório de
segurança de computadores.
Assim sendo, é interessante
começar com uma lista de alguns dos tipos mais comuns de
ataques perpretados contra sistemas de computação. São eles:
Denial
of Service (DoS) ou Distributed Denial of Service (DDoS),
em que uma máquina recebe um número exorbitante de solicitações de
serviço causando sua paralização;
Brechas
de sistema, em que se aproveita de bugs na implementação
de um sistema operacional para se ganhar acesso ao equipamento. Isso
envolve, em geral, uso de scanners que procuram na rede por
sistemas que apresentem tais vulnerabilidades;
Sniffing, em que se escuta
as mensagens circulando pela rede na busca de dados importantes,
como nomes de usuários e de suas senhas.
2. Autenticação
O serviço de autenticação
de usuários é o responsável por permitir que o
acesso lógico ao sistema seja habilitado na forma e grau
determinados para cada usuário. Tanto do ponto de vista de
acesso à rede quanto de uma máquina, o processo de
autenticação envolve a identificação do usuário.
Dependendo do grau de restrição
de acesso ao sistema, o processo de autenticação exige
procedimentos distintos. Por exemplo, numa máquina isolada,
instalada em um quarto de uma residência, a autenticação
pode envolver simplesmente o acesso físico ao equipamento,
através da chave da residência. Já num ambiente
de máxima segurança esse processo pode envolver
mecanismos sofisticados, tais como verificação de
timbre vocal, iris do olho, impressão digital, DNA, etc.
O tratamento dos problemas associados
ao processo de autenticação se restringem basicamente à
possibilidade de burla de senhas ou outros mecanismos quaisquer. Numa
máquina isolada cabe ao usuário cuidar que sua senha não
seja facilmente descoberta e que a mesma seja trocada com uma certa
frequência. Numa rede o problema é agravado com a
possibilidade de escutas na rede (sniffers), que podem
capturar nomes e senhas de usuários que estejam fazendo acesso
remoto, ou ainda por malwares para captura dessas informações.
O problema com sniffers pode ser minimizado se os mecanismos de acesso
remoto fizerem uso de criptografia, como é o caso do ssh,
por exemplo.
Na prática, então, o
controle de autenticação depende de um bom mecanismo de
proteção de informações, que vai desde
serviços de criptografia (existem inúmeras técnicas
para se criptografar, como PGP, DES, RSA, etc.) até mesmo ao
cuidado do usuário em evitar que sua senha seja óbvia
ou que o vejam digitando-a.
No contexto de redes de computadores,
esses cuidados dever ser ampliados para incluir autenticação de
máquinas. Isso significa garantir que as máquinas em
conexão são, de fato, as máquinas esperadas. Uma
forma de se resolver isso é através do um serviço
de DNS reverso de encaminhamento confirmado (FRrDNS), que procura
garantir as identidades das máquinas envolvidas.
3. Controle de permissões
Uma vez que o usuário tenha ganho
acesso ao sistema ainda é preciso controlar suas ações
dentro dele. Isso envolve basicamente a verificação das
permissões dadas a ele, controlando o acesso do mesmo aos
vários recursos do sistema (máquinas, aplicativos,
comandos, arquivos) de acordo com tais permissões.
O modo de se realizar esse controle
varia de sistema para sistema e de recurso para recurso. No caso de
arquivos (e diretórios), por exemplo, o controle normalmente é
feito através de informações armazenadas sobre
cada arquivo, que dizem o tipo de acessibilidade que o mesmo tem. A
mesma estratégia pode ser usada para o acesso a aplicativos e
comandos do sistema.
Para o acesso a máquinas, a
estratégia pode envolver o uso de mecanismos de autenticação
explícitos ou ainda, como é o caso do UNIX, fazer uso
de arquivos que delimitam o acesso de cada máquina ou aplicação
(arquivos .allow e .deny, por
exemplo).
Vale ainda indicar aqui que no caso de
uma máquina, todo esse controle de segurança é feito pelo sistema operacional,
através de seu módulo de gerenciamento de arquivos (o Sistema de Arquivos),
que será examinado no próximo capítulo.
|