Precisando testar sua segurança digital?
Fale com a gente!

BLOG

Computação Confidencial: você já está usando e não sabe

POR:

Computação Confidencial: é possível que você a esteja utilizando sem saber. E isso é um sinal de que ela está funcionando direito! Neste artigo Adriano Cansian comenta sobre a nova tecnologia de nuvem que isola dados confidenciais em uma região específica da CPU, de forma que eles fiquem protegidos durante o processamento. 

Por Adriano Cansian – Conselheiro da Resh Cyber Defense, PhD, Professor Associado e Pesquisador na UNESP.

É bem possível que, agora mesmo, você esteja utilizando computação confidencial e nunca se tenha se dado conta disso. A computação confidencial é um novo paradigma da computação, e uma nova tecnologia de nuvem, que isola dados confidenciais em uma região específica da CPU, de forma que eles fiquem protegidos durante o processamento.

Essa região específica é chamada de “enclave”, e nela ficam os dados e as técnicas usadas para processá-los. O conteúdo do enclave só pode ser acessado pelo código de programação autorizado a fazê-lo, de forma que ele se torna invisível e desconhecido para qualquer aplicação, pessoa ou entidade, até mesmo para o provedor de nuvem ou operador da CPU.

Estamos habituados a dados estarem criptografados quando estão armazenados na forma estacionária, seja em um dispositivo de armazenamento ou em nuvem. O mesmo acontece quando estão em trânsito pela rede ou entre aplicações. Mas isso não é verdade enquanto estão em uso na memória. Na computação tradicional de arquitetura, de Von Neumann, os dados e as aplicações precisam estar decriptados na memória, para que o computador possa utilizá-los e operar sobre eles. Ou seja, quando estão sendo processados, seja na CPU, na GPU ou na memória RAM, os dados estão abertos e desprotegidos.

Assim, na infraestrutura de computação convencional, a capacidade de proteger dados e códigos durante o uso é limitada. Este é um ponto fraco explorado por atacantes que buscam vulnerabilidades em sistemas, pelo menos nas últimas duas décadas. Uma vez que um atacante consiga uma maneira de ler os dados que estejam em memória RAM ou na CPU, ele poderá acessar informações potencialmente sigilosas, como senhas e chaves criptográficas. Usualmente isso é conseguido por intermédio de uma falha ou condição crítica numa aplicação, ou em um sistema, que leva a exposição dos dados sendo processados e é comum em aplicações que não foram testadas adequadamente.

De uma maneira simplificada podemos dizer que a computação confidencial visa eliminar as vulnerabilidades de segurança de dados quando eles estão sendo processados. A computação confidencial usa técnicas baseadas em hardware e software para isolar dados, funções ou mesmo um aplicativo inteiro, do sistema operacional, do hypervisor ou gerenciador de máquina virtual, ou outros processos privilegiados.

Como funciona a computação confidencial

Como explicado anteriormente, antes que um computador ou um aplicativo possa rodar e processar dados para operar, estes precisam estar decriptados na memória RAM. A computação confidencial visa resolver esse problema se valendo de um Ambiente de Execução Confiável, baseado em hardware, ou Trusted Execution Environment (TEE), o enclave seguro dentro de uma CPU [1].

Tecnicamente falando, o TEE é um ambiente de processamento inviolável em hardware, sendo executado em um kernel apartado. Ele garante a autenticidade e a confidencialidade dos dados sendo processados, do código executado. Garante também a integridade dos estados de tempo de execução, tais como, registros de CPU, memória e entrada e saída sensíveis.

O TEE é protegido por meio de chaves de criptografia incorporadas ao processo. Os mecanismos de certificados integrados garantem que as chaves sejam acessíveis apenas ao código de aplicativo autorizado. Se um malware, ou outro código não autorizado, tentar acessar as chaves — ou se o código autorizado for hackeado ou alterado de alguma forma — o TEE nega o acesso às chaves e cancela o processamento.

Dessa forma, os dados confidenciais podem permanecer protegidos na memória até que o aplicativo diga ao TEE para descriptografá-los para processamento. Enquanto os dados são descriptografados, e durante todo o processo de computação, eles são invisíveis para o sistema operacional ou para o hypervisor em uma máquina virtual, para outros recursos da pilha de computação, para o provedor de nuvem, e para humanos de forma geral.

Atualmente as CPUs de empresas como Intel e AMD permitem a criação de TEEs, que podem isolar um processo ou uma máquina virtual (VM) inteira, eliminando efetivamente o sistema operacional hospedeiro e o hypervisor do limite de confiança (*).

(*) Um “limite de confiança” (Trust Boundaryď) é um ponto em uma rede ou sistema onde a confiança é transferida de um nível para outro. Em outras palavras, é o ponto onde a segurança de uma rede ou sistema é considerada suficientemente confiável para permitir o acesso a dados sensíveis ou confidenciais.

Empresas que produzem GPUS, como, por exemplo, a NVIDIA, estão avançando para estender esse limite de confiança para as GPUs, permitindo que um código em execução no TEE da CPU transfira com segurança os cálculos e os dados para as GPUs, e vice-versa.

A computação confidencial exige ampla colaboração entre fornecedores de hardware e software para que aplicativos e dados possam funcionar com TEEs. O Open Portable Trusted Execution Environment (OP-TEE) [2] é um TEE para Kernels Linux não seguros rodando em núcleos Arm Cortex-A. O Virtual Secure Mode [3] da Microsoft é um TEE baseado em software implementado pelo Hyper-V no Windows 10 e no Windows Server 2016.

Uma parte significativa da computação confidencial é executada atualmente em servidores Intel (como a linha Xeon) com Intel Software Guard Extension (SGX), que isola códigos e dados de aplicativos específicos para execução em regiões privadas de memória. A Figura 1 apresenta um exemplo simplificado de isolamento de código usando Intel Software Guard Extension (SGX).

A aplicação é criada com partes confiáveis e não confiáveis. A execução ocorre, em suma, da seguinte forma, que pode ser acompanhada na figura:

  1. A aplicação não confiável inicia sua execução;
  2. A aplicação cria o Enclave, que fica localizado na memória confiável;
  3. A função confiável é chamada, e a execução é transacionada para o Enclave. Dados que estavam cifrados no armazenamento estacionário são levados para o Enclave e abertos apenas lá;
  4. O Enclave enxerga todos os dados em aberto (sem cifragem), e qualquer acesso externo ao enclave não é permitido;
  5. A função confiável retorna o resultado do processamento para a aplicação e a execução normal é retomada. Os dados do Enclave permanecem na memória segura e os dados voltam cifrados para o armazenamento estacionário
  6. A execução normal é retomada.

O Consórcio de Computação Confidencial

É interessante dizer que os conceitos tratados aqui não são recentes. Os primeiros artigos discutindo sobre TEE, base da Computação Confidencial, datam de 2003 [4], e a definição mais formal da arquitetura de TEE surge em 2011 [5]. Em 2019, um grupo de fabricantes de CPU, provedores de nuvem e empresas de software — Alibaba, AMD, Baidu, Fortanix, Google, IBM/Red Hat, Intel, Microsoft, Oracle, Swisscom, Tencent e VMware — formaram o Consórcio de Computação Confidencial (CCC) [8], sob os auspícios da The Linux Foundation.

O CCC reúne fornecedores de hardware, provedores de nuvem e desenvolvedores de software para acelerar a adoção de tecnologias e padrões de TEE. Os objetivos do CCC são definir padrões de toda a indústria para Computação Confidencial e promover o desenvolvimento de ferramentas de Computação Confidencial de código aberto.

Dois dos primeiros projetos de código aberto do Consórcio, o Open Enclave SDK e o Red Hat Enarx, permitem que os desenvolvedores criem e rodem aplicativos nas plataformas TEE, sem modificações ou esforços significativos.
O Consórcio de Computação Confidencial está crescendo. Um estudo de mercado do Everest Group e do Consórcio [6] previu em 2021 que a indústria de computação confidencial crescerá para US$ 54 bilhões até 2026.

Onde a Computação Confidencial está presente

A Computação Confidencial já vem sendo utilizada há algum tempo e pode ser que o leitor já tenha utilizado seus recursos, mesmo sem saber. Alguns exemplos que podem ser destacados:

  • O Google Cloud usa máquinas virtuais confidenciais com extensão de virtualização criptografada segura suportada por CPUs AMD EPYC de 3ª geração e processos de computação em nuvem. Os dados permanecem criptografados na memória com chaves dedicadas específicas do nó, chaves estas geradas e gerenciadas pelo processador. As chaves de segurança são geradas no hardware durante a criação do nó. A partir daí, eles nunca saem daquele hardware.

  • A IBM está na quarta geração de seus produtos de computação confidencial, começando com o Hyper Protect Services e o Data Shield da IBM Cloud em 2018. Em um lugar de destaque com os serviços Hyper Protect, vem um módulo de segurança de hardware em nuvem com certificação FIPS 140–2 Nível 4. Ambos os produtos são classificados para regulamentações como HIPAA, GDPR, ISO 27000 e outras. Disponível desde 2020, o IBM Secure Execution for Linux oferece um ambiente de execução confiável que permite aos clientes isolar um grande número de cargas de trabalho com granularidade e escala, projetado para proteger contra ameaças internas e externas numa nuvem híbrida.

  • O Nitro System da Amazon AWS sustenta seus serviços Elastic Cloud Compute, um serviço de infraestrutura sob demanda que, por natureza, exige bloqueios e permissões entre a Amazon AWS e o cliente que usa os serviços. Eles criam bloqueis e permissões de várias maneiras. Um deles é o Nitro System, que possui um chip de segurança proprietário que mede e valida criptograficamente o sistema.

  • As extensões de proteção de software da Intel contribuem para a segurança baseada em hardware desta empresa. Em 2021, eles se concentraram em fornecer serviços de ETE sob medida para saúde, finanças e governo.

  • O Microsoft Azure também oferece máquinas virtuais confidenciais, bem como contêineres Kubernetes confidenciais. Seus TEEs formam um pool de dados inviolável e não estruturado verificado usando blockchain. Uma raiz de confiança de hardware fornece uma assinatura digital em cada transação na camada confidencial. As autorizações baseadas em certificado também garantem que os provedores de nuvem não possam ver os dados hospedados lá.

Onipresença

Como dissemos no início, é possível que você esteja utilizando computação confiável sem saber. E isso é um sinal de que ela está funcionando direito. Existem vários tipos diferentes de aplicação de computação confiável, incluindo computação segura e computação verificável, projetadas para oferecer confiabilidade e segurança aos sistemas e dados.

Uma das maneiras mais comuns de encontrar computação confiável é procurando por sistemas e serviços que ofereçam segurança de alta qualidade e que tenham sido projetados para lidar com ameaças cibernéticas. Isso pode incluir serviços de nuvem segura, sistemas de gerenciamento de acesso e outras soluções de segurança de informação.

Muitas vezes, essas tecnologias são usadas em segundo plano e os usuários finais não podem vê-las e nem estarem cientes de que estão sendo utilizadas. No entanto, isso não significa que a computação confiável não esteja sendo eficaz em proteger os sistemas e dados.

Referências:

[1] M. Sabt, M. Achemlal and A. Bouabdallah, “Trusted Execution Environment: What It is, and What It is Not,” 2015 IEEE Trustcom/BigDataSE/ISPA, 2015, pp. 57–64, doi:10.1109/Trustcom.2015.357. — https://ieeexplore.ieee.org/document/7345265

[2] Open Portable Trusted Execution Environmenthttps://www.op-tee.org/

[3] Microsoft Virtual Secure Mode (VSM) — https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/vsm

[4] T. Garfinkel, B. Pfaff, J. Chow, M. Rosenblum and D. Boneh, “Terra: a virtual machine-based platform for trusted computing”, SIGOPS Oper. Syst. Rev, vol. 37, no. 5, pp. 193–206, Oct. 2003.

[5] GlobalPlatform, 2011. “The TEE is an execution environment that runs alongside but isolated from the device main operating system. It protects its assets against general software attacks. It can be implemented using multiple technologies, and its level of security varies accordingly.” — “GlobalPlatform”, TEE system architecture, 2011, [online] Available: http://www.globalplatform.org/specificationsdevice.asp.

[6] Everest Group, 2021. “Confidential Computing Market Could Reach US$54 Billion in 2026 https://www.prnewswire.com/news-releases/confidential-computing-market-could-reach-us54-billion-in-2026-301407273.html

[7] Microsoft. “Enclave Aware Containers with Intel SGX”. 27/maio/2022. https://learn.microsoft.com/en-us/azure/confidential-computing/enclave-aware-containers

https://www.ibm.com/cloud/learn/confidential-computing[8] Confidential Computing Consortium (CCC) — https://confidentialcomputing.io/

RESH

Compartilhe:

Artigos Relacionados

Protegendo as Transações Financeiras: O Papel Vital do PCI DSS para a Segurança Empresarial
Cibersegurança e sustentabilidade empresarial​​
Quais as vantagens da cibersegurança ofensiva?
Protegendo as Transações Financeiras: O Papel Vital do PCI DSS para a Segurança Empresarial
Cibersegurança e sustentabilidade empresarial​​
Quais as vantagens da cibersegurança ofensiva?