O Ambiente

 

    O entendimento do ambiente de computação atual possibilita que nos não falhemos em se comunicar e interagir com um computador. O desconhecimento nos cega quanto o que uma maquina pode ou não fazer, e em que tarefas podemos ou não confiar-la. Por esses motivos, esta seção procura explicar de forma simples o ambiente computacional que se situa a computação segura.

Uma plataforma, não necessariamente um computador pessoal, mas também servidores ou plataformas móveis, é composto de quatro componentes básicos:

 

  • hardware;
  • sistema operacional (OS);
  • aplicações;
  • configuração: Conjunto de opções de controle do software e hardware.

 

Focaremos nosso estudo nos aspectos que tangem a segurança.

 

  •  Hardware:

  

    Parte “dura”, componentes eletrônicos que provêem o ambiente básico de execução para os outros componentes da plataforma.

    Um ponto importante para a segurança é configuração do DIMM (Módulo de Memória em Linha Dupla). É possível configurar-la impropriamente, causando vários endereços da memória para apontar para o mesmo local. Isso gera um grande problema de segurança, pois invasores podem mudar o endereço de uma aplicação para uma parte da memória que seja interessante para ele, possibilitando a execução de aplicações indesejadas.

 

  •  Sistema operacional:

 

Responsável principalmente por gerenciar hardwares e serviços para aplicações. Contendo varias opções de configuração, o OS está suscetível a problemas de segurança, muitas delas tem relação com sua arquitetura.

 

Adaptado de Grawrock, David - The Intel Safer Computing Initiative-Building Blocks for Trusted Computing

 

Figura 1: Arquitetura do processador usada pelos desenvolvedores de OS e o ideal, respectivamente.

 

 

    O processador foi pensado contendo todas as camadas acima, porém os desenvolvedores de OS acabam não usando todas, o que implica em sérios problemas de segurança. A junção das camadas 1,2 e 3 possibilita que todas as atividades possuam o mesmo nível de segurança, podendo alterar configurações tanto de serviços ou de drivers. Outro problema é o uso da camada zero para todas as atividades do sistema, sendo esta a mais visada por invasores.

    Muitas vezes os próprios drivers precisam do acesso da camada zero para funcionar, quebrando qualquer separação que o OS tenta prover. Outro problema de segurança é que drivers podem interagir com outros drivers inclusive enquanto um está acessando um recurso, isso gera problemas de conflito que às vezes não podem ser resolvidos, além claro, de servir de porta de entrada para ataques.

 

 

  • Aplicações:

 

    Programas (software) que oferecem serviços. Interage diretamente com o OS e o usuário. Os mesmos problemas de OS são encontrados nelas, além disso outro problema grave é saber se uma aplicação esta presente na plataforma ou não.

 

    Algumas aplicações deixam indicadores que estão instaladas, mas outras não. Isso possibilita que Malwares ajam sem serem percebidos e interrompidos pelo usuário ou pelo OS.

 

    Malwares são simplesmente aplicações que fazem ações não desejadas pelo dono da plataforma. Um ataque feito pelo Malware pode ter como alvo a própria plataforma infectada ou outras. Sendo uma aplicação, ele tem acesso a drivers e sua configuração possibilitando invasores mudarem o ambiente de forma a obter informações ou alterar o funcionamento da plataforma.

 

 

  • BORE

 

    Alguns mecanismos de proteção têm outro problema de segurança, o BORE (Break Once Run Everywhere). O ataque de BORE é quando o atacante ou Malware descobre uma chave secreta compartilhada por varias plataformas, assim quebrando uma única plataforma ele pode atacar todas as outras.

     Um exemplo seria o uso de uma chave simétrica para mensagens encriptadas. Ao invés de usar um par de chaves assimétricas para distribuir a chave simétrica, o desenvolvedor decide apenas usar a simétrica em cada plataforma e proteger-la muito bem. Se o invasor conseguir quebra a proteção em apenas uma, todas estão em perigo.