• Nenhum resultado encontrado

5.4 Confiabilidade e Segurança

5.4.1 Aspectos de confiabilidade de sistemas comerciais

Dentro deste contexto cabe destacar o trabalho de Miller,Fredriksen e So (1990).

Desenvolvido em 1990, ele descreve um estudo sobre a confiabilidade de utilitários de linha de comando do sistema operacional Unix. Esse estudo mostrou que, entre 25% e 33% das aplicações testadas, ou abortaram ou paralisaram quando expostas a testes de entradas aleatórias (Figura 31).

Uma continuação desse estudo, apresentada em 1995(MILLER et al.,1995), avaliou uma coleção maior de aplicações, incluindo algumas aplicações gráficas baseadas em X-

Windows. Os resultados apresentados foram semelhantes ao do estudo original.

Especificamente, até 40% dos utilitários de linha de comando do Unix abortaram ou paralisaram e 25% das aplicações baseadas em X-Windows também apresentaram este tipo de falha.

Figura 31 - Mecanismo de inserção de mensagens aleatórias no Windows NT5.0.

FONTE: Adaptado de Forrester (2000).

Na linha dos sistemas baseados em Unix, o trabalho de Chou et al.(2001)apresenta um estudo sobre os erros encontrados em núcleos Linux e OpenBSD através do emprego de ferramentas automáticas de análise do código fonte. Dessa forma foram analisadas várias versões de código fonte daqueles sistemas operacionais, possibilitando estimar,

por exemplo, que o tempo médio de permanência ativa dos erros no sistema, antes de serem corrigidos, é de aproximadamente 1,8 anos. O trabalho relata, também, que os device drivers apresentam taxas de erros até sete vezes maiores do que as encontradas em outros módulos, conforme apresentado na Figura 32.

Estes resultados são significativos na medida em que robustez é um dos pré- requisitos para se obter sistemas seguros. E tornam-se ainda mais significativos quando se constata que continuam sendo realizadas tentativas de adaptar os sistemas baseados em Unix aos requisitos de segurança, embora seja de conhecimento publico que eles, de uma forma geral, não são seguros.

Figura 32 - (a) numero de erros por diretório no linux; (b) taxa de erros comparada com outros diretórios.

FONTE: Chou et al. (2001).

Forrester (2000) descreve os resultados dos testes de robustez em aplicações baseadas em Windows NT. A Figura 31 apresenta graficamente a estratégia usada para inserir eventos aleatórios nas filas de mensagens do windows, de forma a excitar as aplicações. As estatísticas atualizadas são as seguintes:

• 21% das aplicações testadas na versão NT 4.0 abortaram quando submetidas a testes de entradas aleatórias (mensagens válidas eventos de mouse e teclado). Os mesmos testes na versão NT 5.0 (Windows 2000) apresentaram resultados similares;

• Até 100% das aplicações testadas falharam quando submetidas a fluxos aleatórios de mensagens da API Win32.

Uma conclusão a que Forrester(2000) chegou a partir dos testes realizados é que, “qualquer aplicação executando em plataformas Windows NT está vulnerável a

seqüências aleatórias de mensagens geradas por qualquer outra aplicação executando no mesmo sistema. Isto denota um aspecto critico na arquitetura de mensagens do sistema”.

Uma outra observação de Forrester (2000) é que os programadores também

contribuem para que esta taxa de erros seja tão elevada. Segundo o autor, “parece haver um acordo entre os programadores para utilizar ponteiros diretamente a partir do conteúdo das mensagens sem antes realizar verificações de segurança”. Esta situação conduz a uma infinidade de sub-versões e patches corretivos que já fazem parte do dia-a- dia da sociedade informatizada (Figura 33).

Figura 33 – Versões de correção de erros

Estas conclusões, se analisadas considerando-se as questões apresentadas por Linde

(1975), demonstram que, apesar do grande esforço e desenvolvimento realizado pelos

sistemas operacionais, particularmente nos últimos anos, os aspectos de segurança continuam a ser o seu ponto fraco do sistema e, por conseguinte, a principal origem de muitos dos problemas relacionados à sua instabilidade. O próprio mecanismo de geração de mensagens aleatórias, por si só, já caracteriza uma falha de segurança, pois permite que todas as funções do sistema sejam acessadas sem controle.

A questão é tão importante que foi objeto de um estudo financiado pela NSA

se o projeto DTOS, encerrado em 1997, cujo objetivo principal foi o de desenvolver uma arquitetura baseada em micronúcleo para sistemas distribuídos seguros. Os esforços do projeto Synergy fazem parte de uma estratégia de longo prazo do governo americano, que tem por objetivo encorajar os vendedores a incluir mecanismos de segurança consistentes (strong) nas próximas gerações de sistemas operacionais comercialmente disponíveis. Para tanto foram realizados estudos envolvendo diversos sistemas operacionais que possuíam mecanismos de segurança flexíveis, com o objetivo de identificar os mecanismos necessários para suportar um grande espectro de políticas de segurança. Como resultado deste esforço de pesquisa, várias indicações foram produzidas, bem como um protótipo sobre o micronúcleo Mach 3.0(DTOS,2001).

Uma proposta mais recente, também desenvolvida pela NSA, foi apresentada à comunidade em janeiro de 2001. Segundo a press release(NSA,2001):

“Reconhecendo-se o papel critico que os mecanismos de segurança dos sistemas operacionais em suportar aplicações sensíveis e críticas, pesquisadores da NSA têm investigado uma arquitetura de sistema operacional que possa prover a funcionalidade de segurança necessária de uma forma que possa atender as necessidades de segurança de um amplo espectro de ambientes computacionais. A NSA anuncia que desenvolveu e está tornando publico uma versão protótipo de um sistema linux security-enhanced”.

Os mecanismos de segurança implementados possuem suporte flexível para uma grande variedade de políticas de segurança. O sistema está sendo disponibilizado sob os termos da GNU (General Public License) com a intenção de permitir que a comunidade refine os melhoramentos de forma a incluí-los no Linux.

Com base nas informações apresentadas anteriormente, percebe-se que, apesar do desenvolvimento das várias abordagens descritas na seção 2.445, os problemas de segurança continuam presentes e não se vislumbra uma solução que seja ao mesmo tempo viável e robusta46. A seção a seguir apresenta alguns aspectos relativos a estudos sobre invasões de sistemas computacionais, no sentido de corroborar a afirmação anterior.

45Estruturas organizacionais clássicas.

46Viável no sentido de não comprometer a performance do sistema em termos de recursos computacionais