Uma equipe de pesquisadores do MIT e
da Universidade da Califórnia em Berkeley, com o apoio do Facebook, Google, Microsoft e outros gigantes de TI,
apresentou o projeto
Keystone . Este é um componente de código aberto que permite organizar um ambiente confiável para a execução de programas (ambiente de execução confiável,
TEE ) com base na arquitetura RISC-V.
A seguir - por que uma solução era necessária e como ela funciona.
/ foto Wikimedia CCPorquê a Keystone
O ambiente de execução confiável é uma área isolada (enclave) do processador principal com um conjunto de mecanismos de segurança. Acredita-se que o código e os dados carregados nessa área sejam protegidos de maneira confiável contra alterações e interferências externas.
A idéia é que nesses enclaves você possa realizar operações com dados pessoais e confidenciais sem medo de comprometer, pois nem o sistema operacional nem outros aplicativos têm acesso a essas áreas do processador.
Existem sistemas e soluções no mercado que protegem os dados no nível do ferro. No entanto, todos eles são proprietários, pois são implementados pelos próprios fabricantes de chips de computador. E
há uma opinião de que essas tecnologias não estão bem protegidas (uma vez que não estão disponíveis para avaliação por especialistas independentes em segurança da informação).
Por exemplo, a Intel oferece a
extensão de arquitetura SGX (
Software Guard Extensions ), que protege os dados contra acesso e modificação não autorizados. Essa tecnologia também envolve enclaves nos quais o código do aplicativo do usuário é executado. No entanto, recentemente
se soube que este sistema é vulnerável a um ataque
Foreshadow (
CVE-2018-3615 ). Os invasores podem obter acesso aos dados no enclave SGX usando os recursos da
execução especulativa de comandos .
Além da Intel, a AMD oferece suas soluções - seus nomes são Secure Processor e SEV, além de ARM - eles possuem TrustZone. No entanto,
os especialistas em
segurança também têm perguntas para
sua segurança .
De acordo com pesquisadores do MIT e da Universidade da Califórnia, o sistema de código aberto, embora não torne os enclaves invulneráveis, aumentará sua segurança por meio da experiência de muitos especialistas da comunidade.
/ foto Brad Holt CCPortanto, o sistema Keystone é um projeto de código aberto baseado na arquitetura RISC-V para a construção de TEE. Os pesquisadores escolheram o RISC-V porque é menos vulnerável a
ataques através de canais de terceiros que visam a implementação prática de sistemas de criptografia. Em particular, esse tipo de arquitetura
não é
afetado por vulnerabilidades como Meltdown e Spectre.
Os desenvolvedores do Keystone
definiram os seguintes objetivos :
- Crie uma cadeia de confiança para verificar cada componente de hardware e software (isso inclui sistemas de inicialização segura e verificação de confiabilidade remota de hardware);
- Isole a memória da interferência externa;
- Implementar métodos de proteção contra ataques a canais de terceiros;
- Implemente métodos de criptografia para barramento de memória e endereço.
Componentes da solução
O conceito da Keystone é baseado na tecnologia
SGX e na plataforma do enclave
Sanctum Processor desenvolvida no MIT .
O último é construído usando a chamada
camada de abstração confiável ou TAP (Plataforma Abstrata Confiável). A plataforma (TAP) consiste em um processador com um
contador de comandos ,
registros gerais , um sistema para
traduzir endereços virtuais e um conjunto de primitivos para executar código em um enclave seguro.
No sistema SGX, a Keystone “pegou” o mecanismo de criptografia de memória (Mecanismo de Criptografia de Memória, MEE). O núcleo da solução é organizado usando o processador RISC-V
BOOM parametrizado (Berkeley Out-Order-Machine) no gerador
Rocket SoC .
Em termos gerais, o esquema de implementação de um sistema com um enclave no RISC-V é o seguinte:
Os pesquisadores já realizaram vários testes de sua solução e
descobriram que ele isola o ambiente de tempo de execução do código de forma confiável e o protege contra interferências externas (pelo menos contra ataques conhecidos).
Quando liberar
A primeira versão - Keystone v0.1 -
aparecerá neste outono e será realizada no FPGA. Os pesquisadores ganham vida que, no futuro, ele poderá substituir o SGX na
implementação de plataformas blockchain.
Recursos adicionais do PS do primeiro blog corporativo de IaaS:
PPS Algumas postagens do nosso blog no Habré: