"Quando um usuário abre um aplicativo externo, tais como Gmail ou Angry Birds, e navegadores web, como Google Chrome, normalmente eles executam o código do programa em uma linguagem intermediária e mais segura, tais como JavaScript," disse Greg Morrisett, professor do curso de Ciência da Computação na Harvard School of Engineering and Applied Sciences. "Em muitos casos, seria preferível executar código nativo diretamente da máquina".
Porta Aberta para Crackers e Implementação do SFI
A utilização de código nativo, especialmente em um ambiente online, no entanto, abre a porta para que os crackers explorem as vulnerabilidades e possam, facilmente, ter acesso a outras partes de um computador ou dispositivo. Uma solução para este problema, inicialmente foi oferecida há mais de uma década por cientistas da computação da Universidade da Califórnia, Berkeley, que desenvolveu o Software Fault Isolation (SFI).
Além disso, o SFI força código nativo para "se comportar", reescrevendo o código da máquina que limitar-se às funções que se enquadram dentro dos parâmetros determinados. Este "processo de sandbox", configura um ambiente contido para a execução de código nativo. Na sequência, um "verificador" de programa (que age de maneira isolada), pode então garantir que o código executável respeite os regulamentos antes de executar o programa.
Cientistas da área computacional estão concentrados no trabalho de melhorar o desempenho e a proteção dos aplicativos
Embora considerada um grande avanço, a solução foi limitada a dispositivos que utilizam os chips RISC, um processador mais comum na investigação do que na computação do consumidor. Em 2006, Morrisett desenvolveu uma maneira de implementar o SFI sobre as mais populares chips com base em CISC, como o processador Intel x86. A técnica foi amplamente adotada, e o Google modificou a rotina para o Google Chrome, eventualmente para desenvolvê-la no Google Native Client (ou "NaCl").
Vulnerabilidades, Construção de Sistema e Avaliação do Verificador
Quando bugs e vulnerabilidades de segurança foram encontrados no verificador de NaCl, o Google enviou um chamado para que obtivesse suporte diante dessa situação. Morrissett mais uma vez aceitou o desafio, transformando o problema em uma oportunidade para seus alunos. O resultado foi RockSalt, uma melhoria em relação a NaCl, construído usando Coq, que trata-se de um sistema de desenvolvimento de prova.
"Nós construímos um sistema simples, mas extremamente poderoso para provar uma hipótese tão poderosa que seja suscetível de ser esquecida. Queremos provar que, se o verificador diz 'sim', o código vai realmente respeitar a política de segurança do sandbox ", diz o estudante de graduação Joseph Tassarotti, que construiu e testou um modelo de execução de instruções em uma plataforma x86. Ele também disse que "todos queriam ter a garantia de que não havia erros no verificador, então se propuseram a construir uma rigorosa proof machine-checked, com a intenção de sondar se o verificador estava funcionando de forma correta".
Saiba Mais:
[1] Net Security http://www.net-security.org/secworld.php?id=13314