BR112020013998A2 - liberação de recurso dedicado para estado seguro aplicável à computação em nuvem - Google Patents

liberação de recurso dedicado para estado seguro aplicável à computação em nuvem Download PDF

Info

Publication number
BR112020013998A2
BR112020013998A2 BR112020013998-0A BR112020013998A BR112020013998A2 BR 112020013998 A2 BR112020013998 A2 BR 112020013998A2 BR 112020013998 A BR112020013998 A BR 112020013998A BR 112020013998 A2 BR112020013998 A2 BR 112020013998A2
Authority
BR
Brazil
Prior art keywords
secure
dedicated resource
dedicated
resource
unsafe
Prior art date
Application number
BR112020013998-0A
Other languages
English (en)
Inventor
Bryan W. Tuttle
Carlos Jose Cela
Ho-Yuen Chau
Melur K. Raghuraman
Saurabh M. KULKARNI
Yimin Deng
Original Assignee
Microsoft Technology Licensing, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112020013998A2 publication Critical patent/BR112020013998A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Solid-Sorbent Or Filter-Aiding Compositions (AREA)
  • Emergency Alarm Devices (AREA)

Abstract

A presente invenção refere-se a um recurso dedicado, que inclui uma parte segura e uma parte insegura. A parte segura inclui hardware seguro, um repositório de imagens e um gerenciador de liberação. O gerenciador de liberação é executável durante a inicialização do recurso dedicado para executar um processo de liberação na parte insegura, incluindo eliminar o BIOS na parte insegura e carregar um BIOS seguro do repositório de imagens no hardware inseguro, para colocar a parte insegura em um estado seguro. O recurso dedicado pode ser fornecido a um arrendatário de um provedor em nuvem após ser colocado no estado seguro.

Description

Relatório Descritivo da Patente de Invenção para "LIBE-
RAÇÃO DE RECURSO DEDICADO PARA ESTADO SEGURO APLICÁVEL À COMPUTAÇÃO EM NUVEM". ANTECEDENTES
[001] A computação em nuvem envolve, tipicamente, a prestação de serviços de computação, que podem envolver servidores, armaze- namento, bases de dados, ligação em rede, software, etc. pela Inter- net. As empresas que oferecem esses serviços de computação são chamadas provedores em nuvem e, tipicamente, cobram pelos servi- ços de computação em nuvem com base no uso.
[002] Frequentemente, os provedores em nuvem usam a virtuali- zação para implementar um grupo de recursos de computação, que podem ser atribuídos a diferentes arrendatários. A virtualização é uma tecnologia que separa a infraestrutura física para criar vários recursos dedicados, tais como as máquinas virtuais (VMs), que podem executar diferentes casos de sistemas operacionais e aplicações no mesmo servidor. Por uso de virtualização de servidor, os provedores em nu- vem podem maximizar o uso recursos de servidor e reduzir o número de servidores necessários. Também, as VMs podem funcionar como unidades isoladas, separadas, proporcionando, desse modo, falha e isolamento da segurança. Os provedores em nuvem podem se basear na tecnologia da virtualização para proteger hardware de vários ata- ques invasivos, provocados por malware (software nocivo), ataques de hypervisor em nível de BIOS, sobreposição de BIOS (sistema básico de entrada e saída) / firmware e negação de ataques de serviços. Co- mumente, os módulos de memórias não voláteis em uma placa de sis- tema são o alvo para esses ataques, em virtude do direcionamento da memória não volátil propicia que um ataque persista por um ciclo de energia do sistema. A virtualização pode ajudar no isolamento dos módulos de memórias voláteis desses ataques.
[003] Para um desempenho aperfeiçoado, os arrendatários de computação em nuvem estão demandando cada vez mais acesso de- dicado a hardware de alto desempenho de última geração e/ou acele- radores para cargas de trabalho, tais como cargas de trabalho de inte- ligência artificial ou de aprendizado por máquina, na nuvem. O acesso dedicado pode incluir proporcionar acesso de um arrendatário a um servidor físico de arrendatário único, em vez de uma VM. O acesso dedicado pode permitir que um arrendatário acesse o hardware no servidor dedicado, tal como instalar drivers ou firmware personaliza- dos.
[004] Pode ser desafiador para os provedores em nuvem propor- cionar acesso dedicado de servidores a arrendatários. Por exemplo, pode haver desafios em manter a segurança de servidores dedicados, sem que se tenha uma camada de virtualização para isolar o hardware de ataques. Também, diferentemente de uma VM, que pode ser termi- nada pelo hypervisor após ter sido usada por um arrendatário, não há um mecanismo automatizado, eficiente para limpar um servidor dedi- cado após ele ter sido usado por um arrendatário.
BREVE DESCRIÇÃO DOS DESENHOS
[005] As concretizações e os exemplos são descritos em deta- lhes na descrição apresentada a seguir com referência às figuras se- guintes. As concretizações são ilustradas por exemplos mostrados nas figuras em anexo, nas quais os números de referência similares indi- cam elementos similares.
[006] A Figura 1 ilustra um sistema incluindo um recurso dedica- do e um dispositivo de infraestrutura seguro, de acordo com uma con- cretização.
[007] A Figura 2 mostra um método de iniciação e execução de um processo de liberação, de acordo com uma concretização.
[008] A Figura 3 ilustra um ambiente em nuvem no qual os prin-
cípios descritos no presente relatório descritivo podem ser emprega- dos, de acordo com uma concretização.
[009] A Figura 4 ilustra um ambiente em centro de dados no qual os princípios descritos no presente relatório descritivo podem ser em- pregados, de acordo com uma concretização.
[0010] A Figura 5 mostra um ambiente em nuvem no qual recursos dedicados são fornecidos a um arrendatário, de acordo com uma con- cretização.
[0011] A Figura 6 ilustra um sistema de computação no qual os princípios descritos no presente relatório descritivo podem ser empre- gados, de acordo com uma concretização.
DESCRIÇÃO DETALHADA
[0012] Para fins de simplicidade e ilustrativos, os princípios da presente invenção são descritos com referência principal às suas con- cretizações e seus exemplos. Na descrição a seguir, vários detalhes específicos são apresentados para proporcionar um entendimento das concretizações e exemplos. Vai ser, no entanto, evidente, a uma pes- soa versada na técnica, que as concretizações e os exemplos podem ser praticados sem limitação a esses detalhes específicos. Em alguns casos, métodos e/ou estruturas bem conhecidos não foram descritos em detalhes de modo a não obscurecer desnecessariamente a descri- ção das concretizações e dos exemplos. Além do mais, as concretiza- ções e os exemplos podem ser usados conjuntamente em várias com- binações.
[0013] De acordo com as concretizações da presente invenção, hardware e métodos são descritos, que permitem fornecer recursos de computadores dedicados reatribuíveis. O fornecimento pode ser feito em um ambiente de computação em nuvem por um provedor em nu- vem para arrendatários de computação em nuvem. A Figura 1 mostra um sistema 100, que inclui um recurso dedicado 110 e um dispositivo de infraestrutura segura 150, de acordo com uma concretização. O recurso dedicado 110 pode ser também referido como um servidor de- dicado ou uma máquina dedicada. O recurso dedicado 110 inclui um servidor físico diferentemente de um servidor virtual. Em um exemplo, o recurso dedicado 110 é alocado a um único arrendatário (por exem- plo, dedicado a apenas um único arrendatário) em um ambiente de computação em nuvem, e o arrendatário pode configurar o recurso dedicado 110 quando necessário.
[0014] O recurso dedicado 110 tem uma placa-mãe incluindo dis- positivos de hardware 111. Os dispositivos de hardware 111 podem incluir CPUs 112, dispositivos de armazenamento 113 e outro hardwa- re não mostrado. Por exemplo, os dispositivos de hardware 111 po- dem incluir um ou mais de uma disposição de portas de campo pro- gramável (FPGA), uma unidade de processamento gráfico (GPU), um adaptador de barramento hospedeiro (HBA), uma memória instantâ- nea de memória não volátil expressa (NVMe), dispositivos de estado sólido (SSDs), unidades de discos rígidos (HDDs), unidade de proces- samento central (CPU), memória dinâmica de acesso aleatório (DRAM), etc. Em um exemplo, o recurso dedicado 110 pode incluir uma placa-mãe de servidor, compreendendo uma plataforma x86 (por exemplo, com placas de CPU de soquete único ou duplo) e um ou mais dispositivos presos por interligação expressa de componentes periféricos (PCIe), tal como uma disposição de campo programável (FGPA), um controlador de interface de rede (NIC), um NIC de Ether- net e circuitos de sinais de relógio e energia. O recurso dedicado 110 pode ser um servidor tipo lâmina, que pode ser colocado em um gabi- nete, que pode ser proporcionado em um centro de dados. O recurso dedicado 110 pode seguir os requisitos do centro de dados. Um exemplo é que aquele no qual o recurso dedicado é de um projeto de chassi em lâmina, com o chassi sendo de altura de 4U e alojando 4 a
6 lâminas inseridas verticalmente. O recurso dedicado 110 pode ser proporcionado como parte de uma oferta dedicada de um provedor em nuvem, tal como parte de uma infraestrutura como um Serviço (IaaS) ou outro tipo de serviço disponibilizado aos arrendatários de computa- ção em nuvem por um provedor em nuvem.
[0015] O recurso dedicado 110 pode incluir uma parte segura 120 e uma parte insegura 130. A parte segura 120, por exemplo, se refere ao hardware e ao software do recurso dedicado 110, que são inaces- síveis por um arrendatário e não podem ser configurados por um ar- rendatário. A parte insegura 130, por exemplo, se refere a um hardwa- re e a um software, que são acessíveis por um arrendatário, que pode configurá-los, tal como quando o recurso dedicado 110 é fornecido ao arrendatário.
[0016] A parte segura 120 pode incluir hardware e software, que executam um processo de liberação no recurso dedicado 110 para co- locar o recurso dedicado 110 em um estado seguro. O estado seguro pode ser uma configuração do recurso dedicado 110, que é conhecido como operando corretamente. Por exemplo, a configuração do recurso dedicado 110, no estado seguro, é testada antes da implementação para determinar que ele opera sem falha. O processo de liberação po- de ser usado para retornar o recurso dedicado ao estado seguro, tal como em um caso de uma violação de segurança, ou quando de rea- tribuição do recurso dedicado 110 a um diferente arrendatário, ou quando o recurso dedicado 110 falha, que pode ser provocado por um software carregado por arrendatário, defeituoso.
[0017] A parte segura 120 inclui dispositivos de hardware. Por exemplo, a parte segura 120 inclui um circuito de processamento 125 e uma memória 126. O circuito de processamento 125 pode incluir um microcontrolador, uma CPU, uma FGPA, um Circuito Integrado de Aplicação Específica (ASIC), etc., que executam firmware, tal como um gerenciador de liberação 122, que executa o processo de libera- ção. O gerenciador de liberação 122 pode incluir rotinas de inicializa- ção 124, que executam as operações do processo de liberação des- crito abaixo. Em um exemplo, o gerenciador de liberação 122 pode executar um autoteste de inicialização (POST), incluindo as rotinas de inicialização 124, responsivo a um boot (uma inicialização) de hardwa- re especial, para executar o processo de liberação.
[0018] A parte segura 120 inclui um repositório de imagens 121, que armazena imagens seguras 123. O repositório de imagens 121 pode ser armazenado em um dispositivo de armazenamento na parte segura 120, que pode incluir uma memória não volátil. As imagens se- guras 123 podem ser carregadas na parte insegura 130, durante o processo de liberação.
[0019] As imagens seguras 123 no repositório de imagens 121 in- cluem boas imagens conhecidas de firmware ou outros tipos de sof- tware, tais como imagens seguras para drivers, firmware, BIOS, OS e imagens para componentes críticos de boot básicos, incluindo contro- lador de gerenciamento de placa-mãe (BMC), NIC e dispositivos bási- cos de entrada e saída (I/O), etc. Uma boa imagem conhecida pode ser uma imagem que é conhecida como funcionando sem defeitos na plataforma na qual é carregada. O repositório de imagens 121 pode armazenar múltiplas versões de imagens. Por exemplo, o repositório de imagens seguro 121 armazena uma imagem de trabalho de acesso integral para leitura e escrita voltada para um arrendatário, uma ima- gem do tipo Last-known-Good (LKG), e uma imagem para componen- tes críticos de boot básicos. Essas imagens são, por exemplo, boas imagens conhecidas, e uma ou mais dessas imagens são carregadas na parte insegura 130, durante o processo de liberação como discutido acima.
[0020] A parte segura 120 e a parte insegura 130 podem ficar na mesma placa-mãe do recurso dedicado 110. Por exemplo, a parte se- gura 120 pode ser um chip ou um conjunto de chips na placa-mãe, ou a parte segura 120 pode ser um cartão que pode ser plugado em uma ranhura na placa-mãe. A parte segura 120 não é acessível pelo arren- datário que aluga o recurso dedicado 110 e não é visível à parte inse- gura 130, quando a parte insegura 130 está sendo usada pelo arren- datário, tal como após execução do processo de liberação e o recurso dedicado 110 ser fornecido ao arrendatário.
[0021] A parte insegura 130 pode incluir dispositivos de software 111 e de hardware inseguros 140. O software inseguro 140 pode inclu- ir o firmware 131, o BIOS 132, os drivers 133, o sistema operacional (OS) 134, as aplicações 135, etc., que o arrendatário pode acessar, remover, adicionar ou remover. O firmware 131 e os drivers 133 po- dem incluir firmware e drivers usados por dispositivos no recurso dedi- cado 110. Por exemplo, o firmware 131 pode incluir firmware de um controlador de gerenciamento de placa-mãe no recurso dedicado 110. Os drivers 133 podem incluir drivers para um cartão de vídeo ou um controlador de interface de rede (NIC) no recurso dedicado 110. Por exemplo, após o recurso dedicado 110 ser fornecido a um arrendatá- rio, o arrendatário pode instalar e executar aplicações personalizadas no recurso dedicado 110. O arrendatário pode também instalar um no- vo OS, ou um novo BIOS ou novos drivers no recurso dedicado 110 de modo a configurar o recurso dedicado para um melhor serviço das su- as demandas de computação. O software inseguro 140 pode ser ar- mazenado nos dispositivos de armazenamento 113 dos dispositivos de hardware 111. Também, o software inseguro 140 pode ser executado pelas CPUs 112 ou por outros circuitos de processamento dos disposi- tivos de hardware 111. Geralmente, os dispositivos de hardware 111 e o software inseguro 140 podem ser acessados e configurados pelo arrendatário, após o processo de liberação ser conduzido e após o re-
curso dedicado 110 ser fornecido ao arrendatário.
[0022] O recurso dedicado 110 pode incluir uma ou mais interfaces de comunicação. Por exemplo, os dispositivos de hardware 111 po- dem incluir um NIC para comunicação por uma rede em banda. Tam- bém, o recurso dedicado 110 pode incluir uma interface de comunica- ção 128 para comunicação com um plano de controle 151 do provedor em nuvem por meio de um canal fora de banda 160. A interface de comunicação 128 pode ser um NIC separado de um NIC para comuni- cação por uma rede em banda, ou pode ser o mesmo NIC, que é mul- tiplexado. Em outro exemplo, a interface de comunicação 128 pode incluir uma interface de placa de sistema, que pode incluir conectores do tipo de Dual-In-Line Plug (DIP) e/ou de uma porta programável de entrada e saída genérica (GPIO), que se conectam por fios a um dis- positivo de infraestrutura segura 150 no plano de controle por meio do canal fora de banda 160.
[0023] O dispositivo de infraestrutura segura 150 pode ser parte do plano de controle 151 do ambiente de computação em nuvem e é ope- rante para enviar instruções ou sinalizar ao recurso dedicado 110 para executar o processo de liberação e executar outras funções. O plano de controle 151 pode ser usado para tráfego administrativo e fornecer recursos a arrendatários em vez de conduzir dados de arrendatários. O dispositivo de infraestrutura segura 150 pode invocar o processo de liberação e iniciar o fornecimento e a recuperação de falha para o re- curso dedicado 110. Também, o dispositivo de infraestrutura segura 150 pode acessar o recurso dedicado 110 para executar outras fun- ções de gerenciamento, tais como gerenciamento de recursos, monito- ramento contínuo de saúde, cobrança, etc. Em um exemplo, o disposi- tivo de infraestrutura segura 150 é parte de um controlador de gabine- te, que pode acessar os recursos dedicados no gabinete para executar o processo de liberação e outras funções de gerenciamento. Em outro exemplo, o dispositivo de infraestrutura segura 150 pode ser um dis- positivo de gerenciamento de rede no plano de controle 151, que se comunica por meio de uma rede fora de banda (com fio e/ou sem fio), incluindo o canal fora de banda 160, com os recursos dedicados na nuvem para executar o processo de liberação e fornecer os recursos dedicados aos arrendatários individuais.
[0024] Como indicado acima, o dispositivo de infraestrutura segura 150, por exemplo, é acoplado comunicativamente ao recurso dedicado 110 por meio do canal fora de banda 160. O canal fora de banda 160 é fora de banda com relação às redes da nuvem, que armazenam e conduzem dados dos arrendatários, e o canal fora de banda 160 é inacessível aos arrendatários. O canal fora de banda 160 pode ser uma conexão segura por um meio de comunicação, tal como Ethernet ou por uma interligação segura / privada, tal como uma porta progra- mável de entrada e saída genérica (GPIO), ou por intermédio de outro meio de comunicação.
[0025] Em um exemplo, o dispositivo de infraestrutura segura 150 é conectado à parte segura 120 pelas GPIOs e/ou por chaves de pa- cotes em linha duplos (DIP). As chaves de DIP podem habilitar ou de- sabilitar uma GPIO particular, se necessário. Para invocar o processo de liberação, o dispositivo de infraestrutura segura 150 pode controlar os pinos adequados da GPIO, de modo que o recurso dedicado 110 seja iniciado da parte segura 120 em vez da parte insegura 130. De- pois, após o processo de liberação ser completado, o dispositivo de infraestrutura segura 150 pode controlar os pinos adequados da GPIO, de modo que o recurso dedicado 110 seja iniciado da parte insegura 130, e o recurso dedicado 110 fique pronto para uso dos arrendatários.
[0026] Em um exemplo, um arrendatário do provedor em nuvem pode assinar uma oferta de IaaS dedicada do provedor em nuvem, e alugar um recurso dedicado. O provedor em nuvem pode proporcionar acesso ao recurso dedicado 110 como parte do IaaS.
Antes de pro- porcionar ao arrendatário acesso ao recurso dedicado 110, um pro- cesso de liberação é executado no recurso dedicado 110. O processo de liberação pode apagar um estado persistente dos dispositivos de hardware 111 na parte insegura 130. Isso pode incluir deletar quais- quer dados ou instruções legíveis por máquina deixados pelo arrenda- tário (ou um arrendatário prévio) na parte insegura 130, e pode incluir restaurar os dispositivos de hardware 111 a um bom estado persisten- te conhecido (isto é, um estado seguro). Isso pode incluir apagar todos os dispositivos de armazenamento, tal como deletar dados de arrenda- tários, aplicações, etc. dos dispositivos de armazenamento 11. Isso pode incluir: restaurar o firmware nos dispositivos de hardware 111 (por exemplo, um cartão de rede, uma unidade de NVMe, ou quais- quer outros dispositivos presos na placa-mãe tendo provavelmente firmware neles) a um estado seguro; restaurar um estado persistente na placa-mãe do recurso dedicado 110 a um estado seguro (por exemplo, um relógio em tempo real de semicondutor de óxido metálico complementar (CMOS) na placa-mãe pode ter alguma memória persis- tente disponível, tal como uma memória de acesso aleatório (RAM) recuperada por bateria, que um usuário pode escrever dados e pode ser considerado um estado que pode ser deixado de lado se não eli- minado, permitindo que um atacante faça coisas como identificar se estava antes nessa máquina); e restaurar um BIOS a um estado segu- ro se o BIOS tiver mudado.
O processo de liberação pode incluir car- regar boas imagens conhecidas do repositório de imagens 121 da par- te segura 120 para a parte insegura 130. Geralmente, para restaurar para o estado seguro, o sistema 100 checa o estado persistente nos dispositivos de hardware 111, que podem ser acessíveis pelo arrenda- tário, e se uma mudança for detectada, o estado é estabelecido como um estado válido, tal como um bom valor conhecido.
Também, os da-
dos e o software são apagados e as boas imagens conhecidas são carregadas na parte insegura 130. Após o processo de liberação ser completado, o recurso dedicado 110 é então atribuído ao arrendatário, e o arrendatário é dotado com acesso ao recurso dedicado 110, tal como por um canal de rede seguro de uma rede em banda. O arrenda- tário pode então configurar a parte insegura 130 se necessário, tal como por carga de um novo BIOS, firmware, OD, drivers, aplicações, etc., nos dispositivos de hardware 111 da parte insegura 130. O arren- datário não pode acessar a parte segura 120 do recurso dedicado 110 a qualquer momento.
[0027] O processo de liberação pode ser executado em várias si- tuações, incluindo ambos os cenários de aluguel após reivindicação de hardware e de suporte de recuperação de arrendatário. Por exemplo, se o recurso dedicado 110 não for inicializado devido a um bug ou de- vido a um usuário malicioso, o processo de liberação pode ser habili- tado. Se o recurso dedicado 110 estiver sendo retornado a um conjun- to dos recursos dedicados, que é disponibilizado para uso dos arren- datários, o processo de liberação pode ser habilitado. Por exemplo, o processo de liberação pode ser iniciado quando um arrendatário deso- cupa o recurso dedicado 110, antes de disponibilizá-lo para o arrenda- tário seguinte.
[0028] A Figura 2 mostra um método 2 de iniciação e execução do processo de liberação, de acordo com uma concretização. Em 201, o recurso dedicado 110 recebe um sinal do plano de controle 151 do provedor em nuvem, e, em 202, uma reinicialização do recurso dedi- cado 110 é habilitada da parte segura 120, responsiva ao sinal recebi- do. Em um exemplo, uma reinicialização do recurso dedicado 110 é iniciada pelo plano de controle 151, que envia um sinal por meio de uma rede fora de banda para executar a reinicialização da parte segu- ra 120. O sinal pode ser uma interrupção gerada no recurso dedicado
110 por meio de um canal fora de banda 160, para executar a reinicia- lização da parte segura 120. Por exemplo, o dispositivo de infraestrutu- ra segura 150 pode enviar sinais aos pinos da GPIO adequados do recurso dedicado 110, conectado ao dispositivo de infraestrutura segu- ra 150. Os sinais podem ser enviados em uma sequência particular para iniciar a reinicialização. Os pinos da GPIO podem ficar na placa- mãe do recurso dedicado 110. Em uma configuração, a sinalização pode incluir enviar uma interrupção para uma inicialização de hardwa- re especial, que faz com que uma CPU, na parte insegura 130, execu- te a reinicialização da parte segura 120. Em outra configuração, um ciclo de energia de servidor pode ser iniciado, que provoca uma reini- cialização da parte segura 120.
[0029] O recurso dedicado pode ser reinicializado em um modo especial para provocar a reinicialização da parte segura 120. Por exemplo, uma CPU na parte segura 120 armazena a localização do gerenciador de liberação 122 e solicita o gerenciador de liberação 122 da memória 126 para a reinicialização de modo especial. O gerencia- dor de liberação 122 pode executar um POST em resposta à reiniciali- zação de hardware provocada pelo dispositivo de infraestrutura segura
150. O POST pode incluir a execução de rotinas de inicialização 124 para executar operações do processo de liberação, que ainda vão ser discutidas abaixo. Em um exemplo, o gerenciador de liberação 122 pode incluir um firmware de nível baixo armazenado na memória 126. A memória 126 pode ser uma memória não volátil.
[0030] Também, em 202, a reinicialização da parte segura 120 ini- cia o processo de liberação. Por exemplo, uma reinicialização é inicia- da da parte segura 120 em vez de da parte insegura 130. O gerencia- dor de liberação 122 executa as rotinas de reinicialização 124 para executar uma ou mais das operações de liberação.
[0031] Os exemplos de operações de liberação, executadas du-
rante o processo de liberação, são descritas a seguir. Por exemplo, em 203, os dispositivos inseguros 111b na parte insegura 130 são coloca- dos em um estado persistente. Como outro exemplo, o processo de liberação pode incluir um processo de inicialização incremental, execu- tado pelo gerenciador de liberação 122 na memória da parte segura
120. O processo de inicialização incremental coloca os dispositivos inseguros 111b na parte insegura 130 no estado persistente. Por exemplo, o processo de inicialização incremental elimina os estados não voláteis dos dispositivos inseguros 111b, que estão armazenados na memória não volátil. Isso pode incluir estabelecer valores de estado armazenados para os dispositivos inseguros 111b como sendo valo- res-padrão. Por exemplo, um estado de um Relógio em Tempo Real (RTC) é para um valor de estado-padrão válido. Também, todos os dados dos arrendatários, armazenados em dispositivos de armazena- mento voláteis e não voláteis na parte insegura 130, são limpos, e to- dos os dados persistentes em quaisquer outros dispositivos são colo- cados em um bom estado conhecido. Além do mais, o software inse- guro na parte insegura 130 é removido. Por exemplo, o BIOS 132, o firmware 133, o OS 134, as aplicações 135, etc., que são armazena- dos na parte insegura 130, são limpos. Essas operações podem ser uma parte de um autoteste de inicialização executado pelo BIOS.
[0032] Em 204, o gerenciador de liberação 122 carrega as boas imagens conhecidas do repositório de imagens 121 na parte insegura 130, para operar como as imagens de trabalho na parte insegura 130. As boas imagens conhecidas podem ser carregadas do repositório de imagens 121 na parte insegura 130, incluindo as imagens para o fir- mware 131, o BIOS 132, os drivers 133 e o OS 134. A parte segura 120 pode incluir um repositório de imagens seguras 121, que armaze- na imagens seguras 123 compreendendo boas imagens conhecidas de firmware ou software. Uma boa imagem conhecida pode ser uma imagem que é conhecida como funcionando sem defeitos na platafor- ma na qual está carregada. Por exemplo, o repositório de imagens se- guras 121 armazena uma imagem de trabalho de acesso integral para leitura e escrita voltada para um arrendatário, uma imagem do tipo Last-known-Good (LKG), e uma imagem de ouro para componentes críticos de boot básicos, incluindo BIOS, controlador de gerenciamento de placa-mãe (BMC), NIC e dispositivos básicos de entrada e saída (I/O), às quais o cliente não vai ter acesso para escrever nelas. Essas imagens são, por exemplo, as boas imagens conhecidas, e uma ou mais dessas imagens são carregadas na parte insegura 130, durante o processo de liberação, como é discutido abaixo.
[0033] Em 205, o dispositivo de infraestrutura segura 150 verifica se o processo de liberação foi completado com sucesso e se o recurso dedicado 110 está operacional. Isso pode incluir executar testes de memória e executar outros testes em outros dispositivos dos dispositi- vos de hardware 111, durante o POST. Códigos de erros podem ser gerados se qualquer um dos testes de verificação falhar, e os códigos de erros podem ser armazenados em locais predeterminados da me- mória 126. Se a verificação falhar, então uma ou mais ações de reme- diação podem ser executadas em 206. Por exemplo, um administrador de sistema pode ser notificado e/ou o gerenciador de liberação 122 pode executar de novo o processo de liberação, mas pode carregar as imagens à prova de falha do repositório de imagens 121 nos dispositi- vos de hardware 111. As imagens à prova de falha podem incluir ima- gens básicas de inicialização, e após as imagens à prova de falha se- rem carregadas, então o dispositivo de infraestrutura segura 150 verifi- ca se o recurso dedicado 110 está operacional. Se o recurso dedicado 110 não estiver ainda operacional, então o administrador pode ser no- tificado.
[0034] Em mais outro exemplo de completamento de verificação do processo de liberação, o dispositivo de infraestrutura segura 150 detecta o progresso adiantado na sequência de inicialização (ou falta dele), durante a reinicialização da parte segura 120. A determinação do progresso da sequência de inicialização pode ser feita por armaze- namento da sequência predeterminada de operações para a sequên- cia de inicialização, e por determinação de quais as operações que foram completadas. Em um exemplo, o gerenciador de liberação 122 pode escrever valores nos registros predeterminados na memória 126, que indicam o desempenho das operações. O dispositivo de infraestru- tura segura 150 pode também medir o tempo decorrido do processo de liberação, desde que a sequência começou, para determinar se o processo foi interrompido. O tempo decorrido pode ser medido por um cronômetro ou por vários deles para medir a execução de diferentes operações do processo de liberação. O dispositivo de infraestrutura segura 150 pode enviar um alerta se detectar que o recurso dedicado 110 não está marcando um progresso adiantado no seu processo de liberação. Também, o dispositivo de infraestrutura segura 150 e/ou o gerenciador de liberação 122 pode(m) determinar quanto do processo de liberação foi completado antes da falha e solicitar operações base- adas em quanto da liberação foi completada. Por exemplo, as etapas no processo de liberação, que foram completadas com sucesso antes de falha do processo de liberação, podem ser puladas quando o pro- cesso de liberação for reiniciado.
[0035] Em 207, após o dispositivo de infraestrutura segura 150 ve- rificar se o processo de liberação está completado e se o recurso dedi- cado 110 está operacional, o dispositivo de infraestrutura segura 150 solicita uma reinicialização da parte insegura 130. Por exemplo, o dis- positivo de infraestrutura segura 150 envia um sinal pelo canal fora de banda 160, que provoca uma reinicialização da parte insegura 130. Em um exemplo, o sinal enviado em 207 pode ser uma interrupção diferente daquela enviada em 201, para provocar a reinicialização da parte segura 120. Em resposta ao recebimento do sinal, o recurso de- dicado 110 inicializa do BIOS 132 (que é, nesse ponto, um BIOS segu- ro carregado do repositório de imagens 121) na parte insegura 130. Por exemplo, o dispositivo de infraestrutura segura 150 pode estabele- cer pinos de GPIO particulares em uma sequência para gerar uma in- terrupção para provocar que uma CPU, na parte insegura 130, seja inicializada do BIOS 132, que foi copiado para a parte insegura 130 do repositório de imagens 121.
[0036] O processo de liberação pode ser iniciado e executado au- tomaticamente sem qualquer intervenção humana. Por exemplo, ne- nhuma operação manual é solicitada, de modo que um técnico do cen- tro de dados não precisa estar fisicamente presente para colocar o re- curso dedicado 100 em um estado com conhecido. No entanto, um mecanismo de disparo de recuperação manual adicional pode ser pro- porcionado, tal como por uso de pinos saltadores que podem ser rapi- damente movimentados manualmente na placa do recurso dedicado 110, para manutenção manual.
[0037] O processo de liberação pode ser executado pelo circuito de processamento 125, tal como um microcontrolador, uma FGPA, ou por um dispositivo de lógica programável complexo (CPLD), que exe- cuta o gerenciador de liberação 122, incluindo um carregador de POST, responsável pela iniciação da plataforma básica. Em um exem- plo, a parte segura 120 pode inclui um chip ou um conjunto de chips (por exemplo, incluindo uma FGPA, uma memória), que é separado dos chips na parte insegura 130. A parte segura 120 pode incluir um firmware e um hardware de nível baixo.
[0038] As partes segura e insegura 120 e 130 podem não ser si- multaneamente operacionais. Por exemplo, a parte segura é operacio- nal durante o processo de liberação e a parte insegura 130 não é ope-
racional e inacessível por um arrendatário durante o processo de libe- ração. A parte segura 120 fica não operacional após o processo de liberação ser completado, quando a parte insegura 130 fica operacio- nal e pode ser acessível por um arrendatário. A parte segura 120 pode ser invisível ao OS 134, que está sendo executado na parte insegura
130. Por exemplo, a memória 126 na parte segura 120, que pode ser alguma forma de memória exclusiva de leitura, pode não ser mapeada durante o processo de inicialização executado pelo BIOS 132 na parte insegura 130, e a parte segura 120 é invisível à parte insegura 130 quando a parte insegura 130 é operacional.
[0039] Como discutido acima, o processo de liberação pode ser executado em um ambiente em nuvem, também referido como um ambiente de computação em nuvem, gerenciado por um provedor em nuvem, que ainda é discutido abaixo. No entanto, o processo de libe- ração pode ser executado em outros cenários nos quais um recurso dedicado precisa ser eliminado ou precisa ser feito operacional.
[0040] A Figura 3 ilustra um ambiente 300, que pode incluir um ambiente em nuvem, no qual os princípios descritos no presente rela- tório descritivo podem ser empregados. O ambiente 300 inclui múlti- plos clientes 301 interagindo com um sistema 310 usando uma interfa- ce 303. O ambiente 300 é ilustrado como tendo três clientes 301A, 301B e 301C, embora os princípios descritos no presente relatório descritivo não sejam limitados a esse número de clientes interagindo com o sistema 310 pela interface 303. O sistema 310 pode proporcio- nar serviços aos clientes 301 por demanda, e, desse modo, o número de clientes 301, que recebem os serviços do sistema 310, pode variar com o tempo.
[0041] Cada cliente 301 pode incluir um computador, uma aplica- ção e/ou outro módulo de software, que interaja com o sistema 310 pela interface 302. A interface 302 pode ser uma interface de progra-
ma de aplicação, que é definida de um modo tal que qualquer sistema de computação ou entidade de software, que seja capaz de usar a in- terface do programa de aplicação, possa se comunicar com o sistema
310.
[0042] O sistema 310 pode ser um sistema distribuído, e é, em um exemplo, um ambiente de computação em nuvem. Os ambientes de computação em nuvem podem ser distribuídos, embora não necessá- rio, e podem ser ainda distribuídos internacionalmente e/ou ter compo- nentes possuídos por múltiplas organizações.
[0043] Nessa descrição e nas reivindicações a seguir, "computa- ção em nuvem" é definida como um modelo para permitir acesso a re- de por demanda a um conjunto compartilhado de recursos de compu- tação configuráveis (por exemplo, redes, servidores, armazenamento, aplicações e serviços). A definição de "computação em nuvem" não é limitada a quaisquer de várias outras vantagens que podem ser obti- das desse modelo, quando disposto adequadamente.
[0044] Por exemplo, a computação em nuvem é atualmente em- pregada no mercado de modo a oferecer acesso por demanda ubíquo e conveniente ao conjunto compartilhado de recursos de computação configuráveis. Além do mais, o conjunto compartilhado de recursos de computação configuráveis pode ser fornecido rapidamente por meio de virtualização e liberado com baixo esforço de gerenciamento ou com baixa interação com provedores de serviços, e depois, consequente- mente, escalonados. Também, o conjunto compartilhado de recursos de computação configuráveis pode incluir recursos dedicados, tal co- mo o recurso dedicado 110 mostrado na Figura 1.
[0045] Um modelo de computação em nuvem pode ser composto de várias características, tais como, autosserviço por demanda, aces- so a rede de banda larga, agregação de recursos, rápida elasticidade, serviço medido e assim por diante. Um modelo de computação em nu-
vem também pode surgir na forma de vários modelos de serviços, tais como, por exemplo, Software como um Serviço ("SaaS"), Plataforma como um Serviço ("PaaS") e infraestrutura como um Serviço ("IaaS"). O modelo de computação em nuvem pode ser também disposto por uso de diferentes modelos de disposição, tais como nuvem privada, nuvem comunitária, nuvem pública, nuvem híbrida e assim por diante. Nessa descrição e nas reivindicações, um "ambiente de computação em nuvem" é um ambiente no qual a computação em nuvem é empre- gada.
[0046] O sistema 310 pode incluir múltiplos centros de dados 311. Embora o sistema 310 possa incluir um número qualquer de centros de dados 311, há três centros de dados 311A, 311B e 311C ilustrados na Figura 3. Pode haver tão poucos como um centro de dados sem qualquer limite superior. Além do mais, o número de centros de dados pode ser estático, ou pode variar dinamicamente com o tempo na me- dida em que novos centros de dados são adicionados ao sistema 310, ou na medida em que os centros de dados são eliminados do sistema
310.
[0047] Todos os centros de dados 311 incluem múltiplos hospedei- ros, que proporcionam recursos de computação correspondentes, tais como processamento, memória, armazenamento, largura de banda e assim por diante. Os centros de dados 311 podem também incluir uma infraestrutura física, tais como chaves de redes, equilibradores de car- gas, disposições de armazenamento e assemelhados.
[0048] Como ilustrado na Figura 3, o centro de dados 311A inclui os hospedeiros 314A, 314B e 314C, o centro de dados 311b inclui os hospedeiros 314E, 314F e 314G, e o centro de dados 311C inclui os hospedeiros 314I, 314J e 314K. Os princípios descritos no presente relatório descritivo não são limitados a um número exato de hospedei- ros 314. Um grande centro de dados 311 vai incluir centenas ou milha-
res de hospedeiros 314, enquanto que centros de dados menores vão ter um número muito menor de hospedeiros 314. O número de hospe- deiros 314 pode ser estático ou pode variar dinamicamente com o tempo na medida em que novos centros de dados são adicionados ao sistema 311, ou na medida em que os centros de dados são elimina- dos do sistema 311.
[0049] Em um exemplo, os hospedeiros são capazes de executar uma ou mais e, potencialmente, muitas máquinas virtuais. Durante a operação, as máquinas virtuais emulam um sistema de computação inteiramente operacional, incluindo pelo menos um sistema operacio- nal, e talvez também uma ou mais outras aplicações. Cada máquina virtual é atribuída a um cliente particular ou a um grupo de clientes, e é responsável por auxiliar o ambiente de trabalho para aquele cliente ou grupo de clientes e auxiliar para que as aplicações sejam executadas nesse cliente ou grupo de clientes. Em um exemplo, uma máquina vir- tual gera uma imagem de ambiente de trabalho ou outras instruções de geração que representam um estado atual do ambiente de trabalho, e depois transmite a imagens ou as instruções ao cliente para geração do ambiente de trabalho. Na medida em que o usuário interage com o ambiente de trabalho do cliente, as entradas dos usuários são transmi- tidas do cliente para a máquina virtual.
[0050] Em um exemplo, os hospedeiros 314 podem incluir recur- sos dedicados, que são fornecidos a um arrendatário após serem co- locados em um estado seguro por execução do processo de liberação. Depois, o arrendatário pode configurar os recursos dedicados, tais como por carga de software, tais como aplicações, um OS, um BIOS, etc., nas partes seguras dos recursos dedicados, tal como mostrado na Figura 1. O arrendatário pode configurar os recursos dedicados pa- ra executar VMs ou pode operar os recursos dedicados como servido- res físicos sem virtualização, dependendo de suas necessidades.
[0051] O sistema 310 também inclui os serviços 312. No exemplo ilustrado, os serviços 312 incluem cinco serviços distintos 312A, 312B, 312C, 312D e 312E, embora os princípios descritos no presente relató- rio descritivo não sejam limitados ao número de serviços no sistema
310. Um sistema de coordenação de serviços 313 se comunica com os hospedeiros 314 e com os serviços 312, para, desse modo, propor- cionar os serviços solicitados pelos clientes 301, e outros serviços (tais como autenticação, cobrança e assim por diante), que podem ser pré- requisitos para o serviço solicitado.
[0052] A Figura 4 ilustra um centro de dados 40, no qual os princí- pios descritos no presente relatório descritivo podem ser empregados, de acordo com uma concretização. O centro de dados 400 pode cor- responder a qualquer um dos centros de dados 311 discutidos previa- mente. Como ilustrado, o centro de dados 400 inclui os arrendatários 410A e 410B (a seguir, referidos também como os "arrendatários 410"), mas pode haver um número qualquer de arrendatários adicio- nais. Cada arrendatário 410 representa uma entidade (ou um grupo de entidades), que usa ou tem alocado para uso dele uma parte dos re- cursos de computação do centro de dados 400.
[0053] O centro de dados 400 também inclui os recursos de com- putação 420A e 420B (a seguir, também referidos como os "recursos de computação 420"), mas pode haver um número qualquer de recur- sos de computação adicionais. Os recursos de computação 420 repre- sentam todos os recursos físicos, incluindo os recursos dedicados e os recursos de computação virtuais do centro de dados 400, e podem corresponder aos hospedeiros 314. Os exemplos incluem servidores ou hospedeiros, chaves de rede, processadores, disposições de arma- zenamento e outros dispositivos de armazenamento, componentes de software, máquinas virtuais e recursos dedicados.
[0054] O centro de dados 400 inclui ainda um gerenciador de sis-
tema 430. O gerenciador de sistema 430 gerencia a interação entre os arrendatários 410 e os recursos de computação 420. O gerenciador de sistema 430 pode ser implementado em uma maneira distribuída ou pode ser implementado em um único sistema computacional. Deve-se entender que o gerenciador de sistema 430 tem acesso a vários recur- sos de processamento, armazenamento e outros recursos de compu- tação do centro de dados 400, se necessário.
[0055] A operação do gerenciador de sistema 430 vai ser explica- da em mais detalhes a seguir. Deve-se também entender que os vá- rios componentes e módulos do gerenciador de sistema 430, que vão ser descritos, também podem ser distribuídos por múltiplos hospedei- ros 214. Ainda mais, o gerenciador de sistema 430 pode incluir mais ou menos do que os componentes e os módulos ilustrados, e os com- ponentes e os módulos podem ser combinados na medida em que as circunstâncias garantem.
[0056] O gerenciador de sistema 430 pode configurar os recursos de computação 420 relevantes para uso dos arrendatários 410. Por exemplo, para um hospedeiro ou servidor, uma configuração de recur- sos predefinida pode incluir a imagem e as informações de personali- zação do sistema operacional, os pacotes e as informações de perso- nalização de aplicações, os endereços de Protocolos da Internet (IP), os endereços de controle de acesso de mídia (MAC), os nomes mun- diais, e os pré-requisitos de hardware para armazenamento, ligação em rede e computação. Deve-se entender que a configuração de re- cursos predefinida pode incluir configurações de recursos adicionais ou diferentes. Em um exemplo, para os recursos dedicados, a configu- ração pode incluir o armazenamento de imagens seguras no repositó- rio de imagens da parte segura e a instalação do gerenciador de libe- ração.
[0057] O gerenciador de sistema 430 pode incluir um módulo de eventos 433. Em operação, o módulo de eventos 433 permite que o administrador 440 defina várias condições de eventos 433A, que vão permitir que os recursos de computação do centro de dados 400 ge- rem eventos, que podem requerer que o gerenciador de sistema 430 execute uma ação, tal como aplicação de uma configuração de recur- sos ou execução do processo de liberação no recurso dedicado, para remediar a condição que provoca o evento. Os exemplos de condições de eventos 433A podem incluir, mas não são limitados a, recebimento de um pedido de Protocolo de Configuração Dinâmica de Hospedeiros (DHCP) de um novo servidor, que tenha sido adicionado aos recursos de computação 430, expansão de capacidade por demanda com base na exaustão de recursos (reativar) ou aumento previsto na utilização de recursos (preemptiva), escalonamento de recursos com base em excesso de alocação da capacidade, fornecer recursos dedicados e restaurar os componentes falhos, incluindo os recursos dedicados fa- lhos. Deve-se entender que as condições de eventos 433A não preci- sam ser apenas um evento, mas podem ser uma sequência de múlti- plos eventos.
[0058] O gerenciador de sistema 430 também pode incluir um mo- nitor de eventos 434. Em operação, o monitor de eventos 434 é confi- gurado para monitorar os arrendatários 410 e o recursos de computa- ção 420 para as condições dos eventos 433A, que podem provocar uma tomada de alguma ação pelo gerenciador de sistema 430. O mo- nitor de eventos 434 pode monitorar ou de outro modo analisar os con- tadores de desempenho e os registros de eventos dos recursos de computação 420, para determinar se ocorreu a condição do evento. Em uma concretização, o monitor de eventos 434 pode ser instalado do gerenciador de sistema 430 pode se comunicar com os recursos de computação 420, que estão sendo monitorados por meio de um plano de controle. Em outras concretizações, um recurso de computação
420 ou um arrendatário 410 pode notificar o monitor de eventos 434, em um modo sem solicitação, que uma condição de evento 433A ocor- reu, sem a necessidade para que o monitor de eventos 434 monitore diretamente os recursos de computação.
[0059] O gerenciador de sistema 430 também inclui um gerencia- dor de fornecimento 435. Em operação, o gerenciador de fornecimento 435 pode associar uma configuração ou outra ação com uma condição de evento específica e sua política associada. Isso permite que o ge- renciador de fornecimento 435 determine e execute a ação adequada para um evento particular, e saiba como conduzir a ação. Também, o gerenciador de fornecimento 435 executa operações para fornecer no- vos recursos de computação aos arrendatários, tal como um arrenda- tário aluga inicialmente um recurso dedicado para seu uso.
[0060] A Figura 5 mostra um ambiente em nuvem, no qual os re- cursos dedicados são fornecidos a um arrendatário, de acordo com uma concretização. Por exemplo, os recursos dedicados 500, incluindo o recurso dedicado 500a, podem ser alojados nos gabinetes 501, in- cluindo o gabinete 501a, em um centro de dados, tal como o centro de dados 400. Os recursos dedicados 500 são parte dos recursos de computação 420. Os recursos dedicados 500 podem ter os componen- tes do recurso dedicado 110, mostrado na Figura 1, e podem ser re- cursos dedicados que podem ser montados em gabinetes. Em um exemplo o dispositivo de infraestrutura segura 150 da Figura 1 é um controlador de gabinete e se comunica com um recurso dedicado, no seu gabinete, por um canal fora de banda 160, mostrado na Figura 1, que pode incluir uma conexão com fio com os pinos de GPIO do re- curso dedicado. Por exemplo, os controladores de gabinetes 503, in- cluindo o controlador de gabinete 503a no gabinete 501a, incluem to- dos o dispositivo de infraestrutura segura 150. Em outro exemplo, o dispositivo de infraestrutura segura 150 pode ser parte do gerenciador de sistema 430, e o gerenciador de sistema 430 se comunica com os recursos dedicados 500 para executar o processo de liberação. Os princípios descritos no presente relatório descritivo não são limitados ao número de gabinetes e dos recursos dedicados mostrados na Figu- ra 5. Também, o centro de dados pode incluir os recursos dedicados e/ou outros tipos de recursos de computação, que podem ser forneci- dos aos arrendatários.
[0061] Como foi discutido acima com relação às Figuras 1 e 2, o dispositivo de infraestrutura segura 150, que pode ser parte de um controlador de gabinete 503a, se comunica com o recurso dedicado 500a por meio de um canal fora de banda para executar o processo de liberação no recurso dedicado 500a, para colocá-lo no estado seguro. O gerenciador de sistema 430 pode se comunicar com o controlador de gabinete 503a, em resposta a um evento para disparar o processo de liberação. Por exemplo, o evento pode ser um pedido de um arren- datário para alugar um novo recurso dedicado, ou o evento pode ser uma indicação que o recurso dedicado 500a ficou não operacional.
[0062] Como ilustrado na Figura 6, na sua configuração mais bási- ca, um sistema de computação 600 inclui tipicamente pelo menos uma unidade de processamento 602 e a memória 604. A memória 604 po- de ser uma memória de sistema físico, que pode ser volátil, não volátil ou alguma combinação das duas. O termo "memória" pode ser tam- bém usado no presente relatório descritivo para se referir a um arma- zenamento em massa não volátil, tal como uma mídia de armazena- mento físico. Se o sistema de computação for distribuído, a capacida- de de processamento, de memória e/ou de armazenamento também pode ser distribuída. Como usado no presente relatório descritivo, o termo "módulo" ou "componente" pode se referir a objetos ou rotinas de software, que são executados no sistema de computação. Os dife- rentes componentes, módulos, mecanismos e serviços, descritos no presente relatório descritivo, podem ser implementados como objetos ou processos que são executados no sistema de computação (por exemplo, como tópicos separados).
[0063] Na descrição acima, as concretizações e os exemplos são descritos com referência aos atos, que são executados por um ou mais sistemas de computação. Se esses atos forem implementados em software, um ou mais processadores do sistema de computação associado, que executa o ato, direciona a operação do sistema de computação em resposta a ter as instruções executáveis por compu- tador executadas. Por exemplo, essas instruções executáveis por computador, também referidas como instruções legíveis por máquina, podem ser incorporadas em um ou mais meios legíveis por computa- dor, que formam um produto de programa de computador. Um exem- plo dessa operação envolve a manipulação de dados. As instruções executáveis por computador (e os dados manipulados) podem ser ar- mazenados na memória 604 do sistema de computação 600. O siste- ma de computação 600 também pode conter canais de comunicação, que permitem que o sistema de computação 600 se comunique com outros processadores de mensagens por, por exemplo, uma rede. O sistema de computação 600 pode representar a arquitetura para um computador, que pode alojar o gerenciador de sistema 430 ou o dispo- sitivo de infraestrutura segura 150. As concretizações descritas no presente relatório descritivo também incluem meios físicos e outros legíveis por computador para conduzir ou armazenar instruções execu- táveis por computador e/ou estruturas de dados. Esses meios legíveis por computador podem ser quaisquer meios disponíveis, que podem ser acessados por um sistema de computação genérico ou para um fim especial. Os meios legíveis por computador, que armazenam ins- truções executáveis por computador, são meios de armazenamento físico. Os meios legíveis por computador, que conduzem instruções executáveis por computador, são meios de transmissão.
Desse modo, por meio de exemplo e não limitação, as concretizações da invenção podem compreender pelo menos dois tipos distintamente diferentes de meios legíveis por computador: meios de armazenamento de compu- tador e meios de transmissão.
Os meios de armazenamento de com- putador incluem RAM, ROM, EEPROM, CD-ROM ou outro armazena- mento em disco óptico ou outros dispositivos de armazenamento mag- nético, ou qualquer outro meio, que possa ser usado para armazenar meios de códigos de programas desejados, na forma de instruções executáveis por computador ou estruturas de dados e que podem ser acessados por um computador.
Também, certas etapas dos métodos descritos acima e várias operações discutidas acima podem ser exe- cutados por um processador, um microcontrolador ou outro hardware, que possa executar instruções legíveis por máquina, armazenadas em um meio legível por computador não transitório.
As concretizações e os exemplos são descritos acima, e aqueles versados na técnica vão ser capazes de fazer várias modificações nas concretizações e exem- plos descritos sem se afastar do escopo das concretizações e dos exemplos.

Claims (15)

REIVINDICAÇÕES
1. Recurso dedicado, caracterizado pelo fato de que com- preende: uma parte segura incluindo um circuito de processamento, um gerenciador de liberação e um repositório de imagens; e uma parte insegura incluindo software inseguro, que inclui um sistema básico de entrada/saída (BIOS), em que o gerenciador de liberação é executável pelo circui- to de processamento, durante a inicialização do recurso dedicado, an- tes do BIOS executar um processo de liberação na parte insegura, o processo de liberação incluindo deletar o BIOS na parte insegura e carregar um BIOS seguro do repositório de imagens em um dispositivo de armazenamento, que armazena o software inseguro, para colocar o recurso dedicado em um estado seguro.
2. Recurso dedicado, de acordo com a reivindicação 1, ca- racterizado pelo fato de que, para executar o processo de liberação, o gerenciador de liberação remove o software inseguro e os dados dos dispositivos de armazenamento da parte insegura, e carrega pelo me- nos uma imagem segura, incluindo o BIOS seguro, do repositório de imagens em pelo menos um dos dispositivos de armazenamento da parte insegura.
3. Recurso dedicado, de acordo com a reivindicação 2, ca- racterizado pelo fato de que a pelo menos uma imagem segura com- preende pelo menos um de um driver de dispositivo e um firmware.
4. Recurso dedicado, de acordo com a reivindicação 2, ca- racterizado pelo fato de que, para executar o processo de liberação, o gerenciador de liberação estabelece um estado de um relógio em tem- po real a um valor-padrão válido.
5. Recurso dedicado, de acordo com a reivindicação 1, ca- racterizado pelo fato de que é um recurso de computação, disponível a um arrendatário de um provedor em nuvem, e a parte insegura é acessível pelo arrendatário por meio de uma rede, após o recurso dedicado ser colocado no estado seguro.
6. Recurso dedicado, de acordo com a reivindicação 5, ca- racterizado pelo fato de que é acoplado comunicativamente a um dis- positivo de infraestrutura segura em um plano de controle do provedor em nuvem por meio de um canal fora de banda, e o recurso dedicado é configurado para receber um sinal do dispositivo de infraestrutura segura para invocar o processo de libera- ção.
7. Recurso dedicado, de acordo com a reivindicação 6, ca- racterizado pelo fato de que é configurado para receber um segundo sinal do dispositivo de infraestrutura segura pelo canal fora de banda, após o dispositivo de infraestrutura segura verificar que o recurso de- dicado está no estado seguro, para fazer com que o recurso dedicado seja inicializado do BIOS seguro, carregado na parte insegura.
8. Recurso dedicado, de acordo com a reivindicação 6, ca- racterizado pelo fato de que o dispositivo de infraestrutura segura exe- cuta um cronômetro para determinar se o processo de liberação está completado.
9. Recurso dedicado, de acordo com a reivindicação 6, ca- racterizado pelo fato de que o dispositivo de infraestrutura segura é um controlador de gabinete, e o canal fora de banda compreende uma co- nexão com fio entre o controlador de gabinete e um conector em uma placa de sistema do recurso dedicado.
10. Recurso dedicado, de acordo com a reivindicação 1, caracterizado pelo fato de que a parte segura e a parte insegura não são simultaneamente operacionais.
11. Recurso dedicado em um conjunto de recursos de computação, caracterizado pelo fato de que compreende:
uma parte segura incluindo uma memória, que armazena um gerenciador de liberação, um repositório de imagens armazenando boas imagens conhecidas, e um circuito de processamento para exe- cutar o gerenciador de liberação, em que a parte segura é inacessível a um arrendatário; uma parte insegura, acessível ao arrendatário quando o recurso dedicado é fornecido ao arrendatário, incluindo hardware e software inseguro, que compreende um sistema básico de entra- da/saída (BIOS); e uma interface de comunicação acoplada comunicativamen- te a um dispositivo de infraestrutura segura de um provedor em nuvem por meio de um canal fora de banda, em que, em resposta ao recebimento de um sinal do dispo- sitivo de infraestrutura segura pelo canal fora de banda, o recurso de- dicado é configurado para ser inicializado do gerenciador de liberação, e o gerenciador de liberação é configurado para executar um processo de liberação na parte insegura, incluindo a eliminação do BIOS na par- te insegura e o carregamento de um BIOS seguro do repositório de imagens em um dispositivo de armazenamento na parte insegura, para colocar o recurso dedicado em um estado seguro.
12. Recurso dedicado, de acordo com a reivindicação 11, caracterizado pelo fato de que é configurado para receber um segundo sinal do dispositivo de infraestrutura segura pelo canal fora de banda, para fazer com que o recurso dedicado seja inicializado do BIOS segu- ro, carregado na parte insegura, após o recurso dedicado ficar no es- tado seguro.
13. Método, caracterizado pelo fato de que compreende: receber, de um dispositivo de infraestrutura segura de um provedor em nuvem, um sinal de um recurso dedicado operável para ser fornecido a um arrendatário do provedor em nuvem;
disparar uma inicialização do recurso dedicado de uma par- te segura do recurso dedicado responsiva ao sinal; executar, por um gerenciador de liberação na parte segura, um processo de liberação para limpar os dispositivos de armazena- mento de uma parte insegura do recurso dedicado e carregar uma boa imagem conhecida de um sistema básico de entrada/saída (BIOS) de um repositório de imagens da parte segura do recurso dedicado na parte insegura; e reinicializar o recurso dedicado do BIOS carregado na parte insegura do repositório de imagens.
14. Método, de acordo com a reivindicação 13, caracteriza- do pelo fato de que o dispositivo de infraestrutura segura transmite o sinal do recurso dedicado responsivo a uma indicação que o recurso dedicado está sendo liberado do arrendatário ou uma indicação que o recurso dedicado está em um estado não operacional.
15. Método, de acordo com a reivindicação 13, caracteriza- do pelo fato de que a reinicialização do recurso dedicado ocorre em resposta ao recebimento de um segundo sinal do dispositivo de infra- estrutura segura, em que o dispositivo de infraestrutura segura trans- mite o segundo sinal ao recurso dedicado após verificar que o proces- so de liberação foi completado com sucesso.
PARTE SEGURA RECURSO
DEDICADO
CIRCUITO DE Petição 870200085254, de 09/07/2020, pág. 40/75 PROCESSA- APLICAÇÕES
MENTO PARTE INSEGURA
MEMÓRIA
GERENCIADOR REPOSITÓRIO PROGRAMA DE LIBE- DE IMAGENS ÇÃO EM RAÇÃO HARDWARE 131
ROTINAS DE IMAGENS
SOFTWARE INSEGURO
INICIALIZAÇÃO SEGURAS 123 1/5
DISPOSITIVOS DE HARDWARE
DISPOSITIVOS DE ARMAZE-
NAMENTO
INTERFACE DE COMUNICAÇÃO
CANAL FORA DE BANDA PLANO DE CONTROLE DE PROVEDOR EM NUVEM
DISPOSITIVO DE
INFRAESTRUTURA SEGURA
Receber sinal do plano de controle para iniciar reinicialização pela parte segura Disparar reinicialização da parte segura e iniciar o processo de liberação Dispositivos inseguros colocados em um estado persistente, por exemplo, limpeza de estados não voláteis, limpeza de dados e limpeza de software Carregar boas imagens conhecidas na parte insegura NÃO Executar ação Recurso dedicado operacional? de remediação
SIM Solicitar reinicialização da parte insegura
Clientes Sistema de dados Centros Serviços
Centro de dados
Petição 870200085254, de 09/07/2020, pág. 43/75 Gerenciador de fornecimento
Arrenda- tário
Monitor de eventos
Arrenda- tário 4/5
Módulo de eventos
Recurso de computação
Gerenciador de sistema Recurso de computação
Gerenciador Processador
Petição 870200085254, de 09/07/2020, pág. 44/75 de sistema
Memória
Gabinetes Volátil
Não volátil Controladores de gabinetes 5/5
Recursos dedicados Sistema de computação
BR112020013998-0A 2018-02-14 2019-01-04 liberação de recurso dedicado para estado seguro aplicável à computação em nuvem BR112020013998A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862630534P 2018-02-14 2018-02-14
US62/630,534 2018-02-14
US16/235,771 2018-12-28
US16/235,771 US11163887B2 (en) 2018-02-14 2018-12-28 Clearance of bare metal resource to trusted state usable in cloud computing
PCT/US2019/012412 WO2019160618A1 (en) 2018-02-14 2019-01-04 Clearance of bare metal resource to trusted state usable in cloud computing

Publications (1)

Publication Number Publication Date
BR112020013998A2 true BR112020013998A2 (pt) 2020-12-01

Family

ID=67541707

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020013998-0A BR112020013998A2 (pt) 2018-02-14 2019-01-04 liberação de recurso dedicado para estado seguro aplicável à computação em nuvem

Country Status (15)

Country Link
US (1) US11163887B2 (pt)
EP (1) EP3752951B1 (pt)
JP (1) JP7299903B2 (pt)
KR (1) KR102607127B1 (pt)
CN (1) CN111742317B (pt)
AU (1) AU2019220460B2 (pt)
BR (1) BR112020013998A2 (pt)
CA (1) CA3088634A1 (pt)
IL (1) IL276465B2 (pt)
MX (1) MX2020008426A (pt)
PH (1) PH12020551245A1 (pt)
RU (1) RU2020129947A (pt)
SG (1) SG11202007308SA (pt)
WO (1) WO2019160618A1 (pt)
ZA (1) ZA202004081B (pt)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829478B2 (en) * 2019-01-08 2023-11-28 Oracle International Corporation Full server recovery architecture for cloud bare metal instances
WO2020231418A1 (en) * 2019-05-15 2020-11-19 Hewlett-Packard Development Company, L.P. Update signals
CN110795738B (zh) 2019-09-19 2022-05-13 超聚变数字技术有限公司 一种计算机的启动方法和控制器、存储介质以及系统
CN113965530B (zh) * 2020-07-01 2023-10-13 中移(苏州)软件技术有限公司 一种服务启动方法、装置和存储介质
CN112036828B (zh) * 2020-08-28 2022-06-07 北京浪潮数据技术有限公司 一种裸金属的管理方法、装置、设备及介质
CN112434278B (zh) * 2020-11-20 2024-07-02 北京浪潮数据技术有限公司 一种裸机认证方法、装置、设备及介质
US11593490B2 (en) * 2021-07-28 2023-02-28 Dell Products, L.P. System and method for maintaining trusted execution in an untrusted computing environment using a secure communication channel
CN113986358B (zh) * 2021-09-26 2023-12-26 阿里巴巴(中国)有限公司 裸金属实例装机方法、装置及设备
CN114024853B (zh) * 2021-10-27 2024-05-28 广东浪潮智慧计算技术有限公司 一种裸金属节点的硬件信息收集方法、系统及相关组件
US20230325534A1 (en) * 2022-04-06 2023-10-12 Dell Products L.P. Secure wipe of data processing unit using firmware capsule

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002073438A1 (en) 2001-03-13 2002-09-19 Izorch Systems Method and system for management of remote devices
JP2005535003A (ja) 2001-11-19 2005-11-17 セルフ リペアリング コンピューターズ インコーポレイテッド 複数の独立コンピューティング環境をサポートすることができるコンピュータシステム
JP2009506399A (ja) 2005-06-24 2009-02-12 シンクソート インコーポレイテッド バックアップイメージを仮想化するシステム及び方法
US20080147555A1 (en) * 2006-12-18 2008-06-19 Daryl Carvis Cromer System and Method for Using a Hypervisor to Control Access to a Rental Computer
US8621460B2 (en) 2009-11-02 2013-12-31 International Business Machines Corporation Endpoint-hosted hypervisor management
US8381021B2 (en) 2010-08-25 2013-02-19 Itron, Inc. System and method for automated unattended recovery for remotely deployed intelligent communication devices
US9015455B2 (en) 2011-07-07 2015-04-21 Intel Corporation Processsor integral technologies for BIOS flash attack protection and notification
US9292312B2 (en) * 2012-03-22 2016-03-22 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Simulated network boot environment for bootstrap redirection
US8925066B2 (en) * 2012-11-15 2014-12-30 Red Hat Israel, Ltd. Provisioning proxy for provisioning data on hardware resources
US9275248B1 (en) * 2013-02-13 2016-03-01 Amazon Technologies, Inc. Updating processor microcode
US9230112B1 (en) 2013-02-23 2016-01-05 Xilinx, Inc. Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis
US9594910B2 (en) 2014-03-28 2017-03-14 Intel Corporation In-system provisioning of firmware for a hardware platform
CN104079434A (zh) * 2014-07-07 2014-10-01 用友软件股份有限公司 云计算系统中物理设备管理的装置及方法
WO2016089411A1 (en) * 2014-12-04 2016-06-09 Hewlett-Packard Development Company, L.P. Access to network-based storage resource based on hardware identifier
US9424389B2 (en) * 2014-12-18 2016-08-23 International Business Machines Corporation Implementing enhanced performance dynamic evaluation circuit by combining precharge and delayed keeper
CN107003864B (zh) 2015-01-29 2021-08-20 惠普发展公司,有限责任合伙企业 恢复片上系统设备
US9846617B2 (en) * 2015-05-07 2017-12-19 Dell Products, Lp System and method for self-healing basic input/output system boot image and secure recovery
CN107025223B (zh) * 2016-01-29 2019-11-22 华为技术有限公司 一种面向多租户的缓冲区管理方法及服务器
US20170310700A1 (en) 2016-04-20 2017-10-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. System failure event-based approach to addressing security breaches
US10171445B2 (en) * 2016-06-30 2019-01-01 International Business Machines Corporation Secure virtualized servers
US10395039B2 (en) * 2016-09-12 2019-08-27 Dell Products, L.P. Customer-owned trust of device firmware
US10691803B2 (en) * 2016-12-13 2020-06-23 Amazon Technologies, Inc. Secure execution environment on a server
CN107391260A (zh) * 2017-07-27 2017-11-24 郑州云海信息技术有限公司 一种交付裸机资源的方法和装置
US11050635B2 (en) * 2019-02-05 2021-06-29 International Business Machines Corporation Managing bare metal networking in a cloud computing environment

Also Published As

Publication number Publication date
SG11202007308SA (en) 2020-08-28
MX2020008426A (es) 2020-09-21
CN111742317B (zh) 2023-07-21
EP3752951B1 (en) 2023-08-23
RU2020129947A (ru) 2022-03-14
KR102607127B1 (ko) 2023-11-27
US11163887B2 (en) 2021-11-02
EP3752951A1 (en) 2020-12-23
CA3088634A1 (en) 2019-08-22
WO2019160618A1 (en) 2019-08-22
KR20200119814A (ko) 2020-10-20
AU2019220460B2 (en) 2023-07-27
JP2021513711A (ja) 2021-05-27
CN111742317A (zh) 2020-10-02
JP7299903B2 (ja) 2023-06-28
PH12020551245A1 (en) 2021-05-17
IL276465A (en) 2020-09-30
US20190251266A1 (en) 2019-08-15
IL276465B1 (en) 2023-10-01
AU2019220460A1 (en) 2020-07-23
IL276465B2 (en) 2024-02-01
ZA202004081B (en) 2021-09-29

Similar Documents

Publication Publication Date Title
BR112020013998A2 (pt) liberação de recurso dedicado para estado seguro aplicável à computação em nuvem
US11194635B2 (en) Orchestration service for a distributed computing system
US9507566B2 (en) Entropy generation for a distributed computing system
US8359415B2 (en) Multi-root I/O virtualization using separate management facilities of multiple logical partitions
TWI453597B (zh) 經由在一輸入輸出虛擬管理分割中之虛擬仲介以管理輸入輸出虛擬配接器的系統及方法
TWI754317B (zh) 用於網路裝置之最佳啟動路徑之方法和系統
US20140229948A1 (en) Insertion of management agents during machine deployment
US20100162045A1 (en) Method, apparatus and system for restarting an emulated mainframe iop
TW201502772A (zh) 虛擬基板管理控制器
US7536604B2 (en) Method and system for reconfiguring functional capabilities in a data processing system with dormant resources
KR20040098520A (ko) 입/출력 패브릭 내의 하드웨어 에러로부터의 자율 복구
US10402217B2 (en) Automatic reconfiguration of a pre-configured hyper-converged computing device
CN116069584B (zh) 将监控服务扩展到可信云运营商域中
JP2023544001A (ja) アクセラレータカードのセキュリティモードの静的構成

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]