Segurança Informática - Introdução

Sob o ponto de vista da administração de sistemas informáticos, é conveniente interpretar o termo "Segurança" de forma muito abrangente.

Um sistema seguro é aquele que funciona nas condições desejadas e previamente definidas.

Esta noção tem a vantagem de apontar directamente para o objectivo final, no entanto deixa a importante tarefa de definir as "condições desejadas" de funcionamento do sistema informático.

Estabilidade e condições de funcionamento dos sistemas

Pretende-se que os sistemas informáticos se mantenham permanentemente funcionais e disponíveis para realizar as tarefas para que foram projectados, dentro dos parâmetros estabelecidos.

As condições de funcionamento desejáveis para um sistema podem ser definidas através de parâmetros mais ou menos quantificaveis e mais ou menos detalhados, como por exemplo:

  • Confidencialidade
  • Integridade
  • Controlo de acesso (autorização) e autenticação
  • Tempo máximo de resposta
  • Disponibilidade
  • Tempo máximo de resposta / execução de tarefas
  • ...

Na prática nem sempre se consegue garantir em termos absolutos o respeito permanente dos parâmetros de funcionamento desejados. Em alguns casos não é fisicamente possível, em outros casos os custos económicos ou de performance são demasiado elevados e procura-se uma solução de compromisso.

Os desvios relativamente ao modo de funcionamento desejado tomam a designação de 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. Muitas vezes as falhas ocorrem porque o sistema informático tem deficiências sob o ponto de vista de segurança.

Também são classificadas como FALHAS todas as deficiências do sistema informático que possam conduzir à futura ocorrência de uma FALHA.

O combate às FALHAS pode ser feito em várias vertentes:

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

Estas várias abordagens são complementares, ou seja em cada caso particular devem ser aplicadas simultaneamente as três estratégias.

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.

O "software" é uma causa comum para a ocorrencia de falhas, 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.

Se pretendemos um sistema estável devemos evitar o "software" demasiado recente e pouco testado. Sempre que são detectados erros são produzidos "remendos" ("patches") que devem ser aplicados com a maior brevidade possível.

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 definição de direitos/permissões 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 sistema operativo "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.

Se existir uma politica de direitos correcta (apenas fornecer os direitos estritamente necessários) a possibilidade de um utilizador causar uma falha fica muito mais reduzida.

Devido ao facto de possuir direitos totais sobre o sistema, muitas vezes é o próprio administrador a causar problemas acidentalmente. Em sistemas de grande dimensão para os quais faz sentido definir vários sub-sistemas independentes, deve existir um perfil/conta de administrador diferente para cada sub-sistema, desse modo cada um destes perfis/contas terá apenas com os direitos necessários para administrar esse sub-sistema.

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

O acesso físico aos equipamentos deve ser evitado, 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. A tolerância a falhas pode por isso ser vista como um caso extremo de "Minimizar consequências das falhas", no sentido em que se elimina totalmente as consequências mais evidentes da falha.

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 (RAID - Redundant Array of Independent Disks) ou consistir na duplicação de servidores inteiros.

Em qualquer dos dois casos existem mecanismos de controlo responsáveis pela sincronização, 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, não devem servir de base para um menor cuidado na redução das probabilidades de ocorrência de falhas. Não é lícito 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 sincronizadas "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

Uma das consequências graves de uma falha pode ser a perda de dados por danos irreparáveis em unidades de armazenamento (ex.: discos), a solução é a realização de cópias de segurança com frequência. Estas cópias de segurança ("backups") devem ser realizadas de uma forma sistemática, de preferência automática e devem ser fiáveis.

O tempo de duração da falha deve ser miminizado, por exemplo no caso de falhas de "hardware" pode haver necessidade de substituir componentes danificados, existem contratos de manutenção que garantem a intervenção rápida dos técnicos, uma outra solução é manter alguns componentes mais importantes em "stock".

Confidencialidade dos Dados

Por confidencialidade entende-se a capacidade de um sistema em garantir que a leitura dos dados apenas é possível a determinadas entidades.

A confidencialidade é um parâmetro que pode ser difícil de garantir, desde logo não fazem sentido as estratégias de "tolerância a falhas" ou "minimização de consequências de falhas", por esta razão ficamos limitados a "minimizar a possibilidade de ocorrência de falhas".

Os sistemas servidores de ficheiros podem assegurar alguma confidencialidade atribuindo apenas a um utilizador direitos de leitura sobre um ficheiro. Contudo a segurança desta técnica está limitada pela segurança da autenticação dos utilizadores e pela integridade do sistema.

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 é cifrar os dados, desse modo os dados cifrados podem ser lidos por todos, mas apenas o destinatário correcto os consegue decifrar.

Detecção de Falhas

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

Uma vez detectada a falha pode ser desencadeado um mecanismo de correcção automática ou pode ser activado um alarme a solicitar uma intervenção humana.

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

  • pode contribuir para esclarecer os motivos de ocorrência de uma falha, sugerindo soluções para evitar a sua repetição.
  • 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 que o evento fique registado pois permite saber que determinada informação deixou de ser confidêncial.
  • o facto de os sistemas seram minitorizados e os eventos registados é um importante elemento de dissução para actividades ilícitas.