Segurança Informática - Introdução

O termo "Segurança" aplicado aos sistemas informáticos é extremamente lato. Podemos considerar que um sistema seguro é aquele que permite aos utilizadores a realização do seu trabalho nas condições desejadas.

Estabilidade de Funcionamento dos Sistemas

Pretende-se que os sistemas informáticos se mantenham permanentemente funcionais e disponíveis para os utilizadores. Não sendo nunca possível garantir esta caracteristica a 100%, para nos aproximar dela devemos actuar em vários campos:

  • Minimizar a possibilidade de ocorrência de falhas
  • Proporcionar tolerância a falhas
  • Minimizar consequências das falhas

Por falha entende-se a ocorrência (ou possibilidade de ocorrência) de qualquer evento que provoque um desvio relativamento aos parâmetros de funcionamento desejados. Estes parâmetros de funcionamento dependem do tipo de sistema informático e serviços que ele presta, incluem geralmente a confidencialidade dos dados, a integridade dos sistemas e sua disponibilidade permanente.

Minimizar a possibilidade de ocorrência de falhas

As falhas têm diversas origens, de acordo com o tipo de falha temos a considerar um conjunto de procedimentos para minimizar a probabilidade da mesma ocorrer.

As falhas de "hardware" podem ser reduzidas com um aumento de qualidade dos componentes, devemos contudo atender também aos aumentos nos custos. O "hardware" é concebido para funcionar sob certas condições ambientais que devem ser controladas, a estabilidade da alimentação electrica é outro aspecto que deve ser cuidado com a instalação de UPS's adequadas.

Mais comuns são as falhas de "software", mesmo a mais testada das aplicações pode sofrer de "bug's" que só se revelam em situações muito particulares. O "software" mais recente ("última novidade") tende a sofrer de "bug´s" de juventude que só com o tempo são corrigidos nas versões seguintes (que não raramente introduzem outros "melhoramentos" com novos "bug´s").

Um "bug" num componente de "software" pode ter consequências muito diversas que também dependendem do sistema operativo em causa. Os sistemas operativos "single-user" tendem a relaxar o controlo sobre a execução das aplicações, nestes casos é comum que um "bug" num componente de "software" provoque o colapso de todo o sistema/máquina. Num sistema operativo "multi-user" o controlo sobre as aplicações é extremamente apertado e raramente surge qualquer tipo de consequencia para além do colapso da aplicação.

Nota: entenda-se por sistema operativo "multi-user" aquele em que, simultaneamente, distintos utilizadores executam aplicações, são exemplos os sistemas operativos UNIX, OS/400 e NT Server "Terminal Server Edition". Existe uma diversidade de sistemas operativos que servem ficheiros para vários utilizadores em rede, não são sistemas operativos "multi-user", apenas servidores de ficheiros multi-cliente, é o caso do Windows/95; NT Workstation; NT Server; Netware; OS/2.

As falhas também podem ser provocadas pelos utilizadores (autorizados ou não), intencionalmente ou não. Para as evitar são definidos mecanismos de controlo de acessos e atribuição de direitos aos utilizadores. No caso de servidores de ficheiros, estes mecanismos são relativamente simples e reduzem-se à definição de direitos sobre os ficheiros. Num verdadeiro sistema opertivo "multi-user" este controlo extende-se à execução das aplicações, nomeadamente controlando o acesso à memória central, utilização dos processadores e sistemas I/O.

Para que os direitos dos utilizadores possam ser implementados é necessário um mecanismo de autenticação, geralmente baseado na combinação USERNAME (público) + PASSWORD (secreta).

O acesso físico aos equipamentos não é de ignorar, se a segurança é muito dificil de assegurar, existindo acesso físico, é impossivel. As linhas de comunicação, devido à sua extensão são sempre um aspecto complicado em termos de segurança.

Proporcionar tolerância a falhas

Por tolerância a falhas entenda-se a eliminação completa dos inconvenientes da ocorrencia de uma falha, a ideia é de que os utilizadores não devem notar qualquer alteração de funcionamento. Quase todos os sistemas servidores de ficheiros proporcionam mecanismos de tolerância a falhas, invariavelmente baseiam-se na duplicação de recursos e replicação dos dados. Podem reduzir-se à duplicação de discos rígidos (sistemas RAID) ou consistir na duplicação de servidores inteiros. Em qualquer dos dois casos existem mecanismos de controlo responsáveis pela detecção da falha e substituição lógica sem qualquer intervenção humana.

Embora os sistemas de tolerância a falhas sejam absolutamente imprescindiveis em situações comerciais/industriais, também não devem servir de base para um menor cuidado na redução das probabilidades de ocorrência de falhas. Não é licito afirmar que não é grave um sistema falhar constantemente porque se encontra replicado em dois ou três outros sistemas.

A manutenção de várias cópias actualizadas "on-line" tem custos importantes, não só em termos de "hardware"/"software", mas também em termos de eficiência dos sistemas.

Minimizar consequências das falhas

O aspecto mais grave das falhas é a perda de dados por danos irreparáveis em unidades de armazenamento, a solução é a realização de cópias de segurança com frequência.

Outro aspecto a atender é a duração da falha, no caso de falhas de "hardware" tende a ser longa pois há necessidade de substituir componentes danificados, existem contratos de manutenção que garantem a intervenção rápida dos técnicos, uma solução alternativa é manter alguns componentes mais sensiveis em "stock".

Confidencialidade dos Dados

Os sistemas servidores de ficheiros podem assegurar alguma confidencialidade atribuindo apenas a um utilizador direitos sobre um ficheiro.

Em muitas situações não existe a possibilidade de restringir direitos de leitura, é por exemplo o caso de transferências de dados através de redes inseguras. Neste tipo de situação a estratégia a seguir é encriptar os dados, desse modo os dados podem ser lidos por todos, mas apenas o destinatário correcto os consegue desencriptar.

No caso das falhas de confidencialiadade não fazem muitos sentido os conceitos de "tolerância a falhas" e "minimização de consequências de falhas", por esta razão ficamos limitados a "minimizar a possibilidade de ocorrência de falhas".

Detecção de Falhas

A detecção de falhas é uma ferramente importante, serve de base à implementação de mecanismos de tolerância a falhas e contribui para minimizar a duração das falhas.

Associado à detecção de falhas deve ser efectuado um registo de todos os eventos importantes ("auditing"):

  • por um lado pode contribuir para esclarecer os motivos de ocorrência de uma falha, sugerindo soluções para evitar a sua repetição.
  • por outro lado regista situações que poderiam originar futuramente uma falha, como por exemplo tentativas frustadas de acesso não autorizado.
  • mesmo para o caso de uma falha de confidencialidade, é muito importante a sua detecção pois permite desencadear medidas no sentido de minimizar as consequencias.