5 research outputs found
A TrustZone-assisted hypervisor supporting dynamic partial reconfiguration
Dissertação de mestrado em Engenharia Eletrónica Industrial e ComputadoresTraditionally, embedded systems were dedicated single-purpose systems characterised
by hardware resource constraints and real-time requirements. However,
with the growing computing abilities and resources on general purpose platforms,
systems that were formerly divided to provide different functions are now merging
into one System on Chip. One of the solutions that allows the coexistence
of heterogeneous environments on the same hardware platform is virtualization
technology, usually in the form of an hypervisor that manage different instances
of OSes and arbitrate their execution and resource usage, according to the chosen
policy.
ARM TrustZone has been one of the technologies used to implement a virtualization
solution with low overhead and low footprint. µRTZVisor a TrustZoneassisted
hypervisor with a microkernel-like architecture - is a bare-metal embedded
hypervisor that relies on TrustZone hardware to provide the foundation to implement
strong spatial and temporal isolation between multiple guest OSes.
The use of Partial Reconfiguration allows the designer to define partial reconfigurable
regions in the FPGA and reconfigure them during runtime. This allows
the system to have its functionalities changed during runtime using Dynamic Partial
Reconfiguration (DPR), without needing to reconfigure all the FPGA. This
is a major advantage, as it decreases the configuration overhead since partial bitstreams
are smaller than full bitstreams and the reconfiguration time is shorter.
Another advantage is reducing the need for larger logic areas and consequently
reducing their power consumption.
Therefore, a hypervisor that supports DPR brings benefits to the system. Aside
from better FPGA resources usage, another improvement that it brings, is when
critical hardware modules misbehave and the hardware module can be replaced.
It also enables the controlling and changing of hardware accelerators dynamically,
which can be used to meet the guest OSes requests for hardware resources as the
need appears. The propose of this thesis is extending the µRTZVisor to have a
DPR mechanism.Tradicionalmente, os sistemas embebidos eram sistemas dedicados a uma única
tarefa e apenas limitados pelos seus requisitos de tempo real e de hardware. Contudo,
como as plataformas de uso geral têm cada vez mais recursos e capacidade
de processamento, muitos dos sistemas que executavam separadamente, passaram
a apenas um sistema em plataforma recorrendo à tecnologia de virtualização, normalmente
como um hipervisor que é capaz de gerir múltiplos sistemas operativos
arbitrando a sua execução e acesso aos recursos da plataforma de acordo com uma
politica predefinida.
A tecnologia TrustZone da ARM tem sido uma das soluções implementadas
sem ter grande impacto na performance dos sistemas operativos. µRTZVisor é um
dos hipervisores baseados na TrustZone para implementar um isolamento espacial
e temporal entre múltiplos sistemas operativos, sendo que defere de outras uma
vez que é de arquitectura microkernel.
O uso de Reconfiguração Parcial Dinâmica (RPD) permite ao designer definir
várias regiões reconfiguráveis no FPGA que podem ser dinamicamente reconfiguradas
durante o período de execução. Esta é uma grande vantagem, porque reduz
os tempos de reconfiguração de módulos reconfiguráveis uma vez que os seus bitstreams
são mais pequenos que bitstreams para a plataforma toda. A tecnologia
também permite que nos FPGAs não sejam necessárias áreas lógicas tão grandes,
o que também reduz o consumo de energia da plataforma.
Um hipervisor que suporte RPD traz grandes benefícios para o sistema, nomeadamente
melhor uso dos recursos de FPGA, implementação de aceleradores em
hardware dinamicamente reconfiguráveis, e tratamento de falhas no hardware. Se
houverem módulos que estejam a demonstrar comportamentos inesperados estes
podem ser reconfigurados. O uso de aceleradores reconfiguráveis permite que o
hardware seja adaptável conforme a necessidade destes pelos diferentes sistemas
operativos. A proposta desta dissertação é então estender o µRTZVisor para ter
a capacidade de usar módulos reconfiguráveis por RPD
Hardware IPC for a TrustZone-assisted Hypervisor
Dissertação de mestrado em Engenharia Eletrónica Industrial e ComputadoresIn this modern era ruled by technology and the IoT (Internet of Things),
embedded systems have an ubiquitous presence in our daily lives. Although they
do differ from each other in their functionalities and end-purpose, they all share the
same basic requirements: safety and security. Whether in a non-critical system
such as a smartphone, or a critical one, like an electronic control unit of any
modern vehicle, these requirements must always be fulfilled in order to accomplish
a reliable and trust-worthy system.
One well-established technology to address this problem is virtualization. It
provides isolation by encapsulating each subsystem in separate Virtual-Machines
(VMs), while also enabling the sharing of hardware resources. However, these
isolated subsystems may still need to communicate with each other. Inter-Process
Communication is present in most OSes’ stacks, representing a crucial part of
it, which allows, through a myriad of different mechanisms, communication be-
tween tasks. In a virtualized system, Inter-Partition Communication mechanisms
implement the communication between the different subsystems referenced above.
TrustZone technology has been in the forefront of hardware-assisted security
and it has been explored for virtualization purposes, since natively it provides sep-
aration between two execution worlds while enforcing, by design, different privi-
lege to these execution worlds. LTZVisor, an open-source lightweight TrustZone-
assisted hypervisor, emerged as a way of providing a platform for exploring how
TrustZone can be exploited to assist virtualization. Its IPC mechanism, TZ-
VirtIO, constitutes a standard virtual I/O approach for achieving communication
between the OSes, but some overhead is caused by the introduction of the mech-
anism. Hardware-based solutions are yet to be explored with this solution, which
could bring performance and security benefits while diminishing overhead.
Attending the reasons mentioned above, hTZ-VirtIO was developed as a way
to explore the offloading of the software-based communication mechanism of the
LTZVisor to hardware-based mechanisms.Atualmente, onde a tecnologia e a Internet das Coisas (IoT) dominam a so-
ciedade, os sistemas embebidos são omnipresentes no nosso dia-a-dia, e embora
possam diferir entre as funcionalidades e objetivos finais, todos partilham os mes-
mos requisitos básicos. Seja um sistema não crítico, como um smartphone, ou
um sistema crítico, como uma unidade de controlo de um veículo moderno, estes
requisitos devem ser cumpridos de maneira a se obter um sistema confiável.
Uma tecnologia bem estabelecida para resolver este problema é a virtualiza-
ção. Esta abordagem providencia isolamento através do encapsulamento de sub-
sistemas em máquinas virtuais separadas, além de permitir a partilha de recursos
de hardware. No entanto, estes subsistemas isolados podem ter a necessidade de
comunicar entre si. Comunicação entre tarefas está presente na maioria das pilhas
de software de qualquer sistema e representa uma parte crucial dos mesmos. Num
sistema virtualizado, os mecanismos de comunicação entre-partições implementam
a comunicação entre os diferentes subsistemas mencionados acima.
A tecnologia TrustZone tem estado na vanguarda da segurança assistida por
hardware, e tem sido explorada na implementação de sistemas virtualizados, visto
que permite nativamente a separação entre dois mundos de execução, e impondo
ao mesmo tempo, por design, privilégios diferentes a esses mundos de execução. O
LTZVisor, um hypervisor em código-aberto de baixo overhead assistido por Trust-
Zone, surgiu como uma forma de fornecer uma plataforma que permite a explo-
ração da TrustZone como tecnologia de assistência a virtualização. O TZ-VirtIO,
mecanismo de comunicação do LTZVisor, constitui uma abordagem padrão de
E/S virtuais, para permitir comunicação entre os sistemas operativos. No entanto,
a introdução deste mecanismo provoca sobrecarga sobre o hypervisor. Soluções
baseadas em hardware para o TZ-VirtIO ainda não foram exploradas, e podem
trazer benefícios de desempenho e segurança, e diminuir a sobrecarga.
Atendendo às razões mencionadas acima, o hTZ-VirtIO foi desenvolvido como
uma maneira de explorar a migração do mecanismo de comunicação baseado em
software do LTZVisor para mecanismos baseados em hardware
A TrustZone-assisted secure silicon on a co-design framework
Dissertação de mestrado em Engenharia Eletrónica Industrial e ComputadoresEmbedded systems were for a long time, single-purpose and closed systems, characterized
by hardware resource constraints and real-time requirements. Nowadays, their functionality is
ever-growing, coupled with an increasing complexity and heterogeneity. Embedded applications
increasingly demand employment of general-purpose operating systems (GPOSs) to handle operator
interfaces and general-purpose computing tasks, while simultaneously ensuring the strict
timing requirements. Virtualization, which enables multiple operating systems (OSs) to run on
top of the same hardware platform, is gaining momentum in the embedded systems arena,
driven by the growing interest in consolidating and isolating multiple and heterogeneous environments.
The penalties incurred by classic virtualization approaches is pushing research towards
hardware-assisted solutions. Among the existing commercial off-the-shelf (COTS) technologies for
virtualization, ARM TrustZone technology is gaining momentum due to the supremacy and lower
cost of TrustZone-enabled processors.
Programmable system-on-chips (SoCs) are becoming leading players in the embedded systems
space, because the combination of a plethora of hard resources with programmable logic
enables the efficient implementation of systems that perfectly fit the heterogeneous nature of
embedded applications. Moreover, novel disruptive approaches make use of field-programmable
gate array (FPGA) technology to enhance virtualization mechanisms.
This master’s thesis proposes a hardware-software co-design framework for easing the economy
of addressing the new generation of embedded systems requirements. ARM TrustZone is
exploited to implement the root-of-trust of a virtualization-based architecture that allows the execution
of a GPOS side-by-side with a real-time OS (RTOS). RTOS services were offloaded to hardware,
so that it could present simultaneous improvements on performance and determinism. Instead
of focusing in a concrete application, the goal is to provide a complete framework, specifically tailored
for Zynq-base devices, that developers can use to accelerate a bunch of distinct applications
across different embedded industries.Os sistemas embebidos foram, durante muitos anos, sistemas com um simples e único
propósito, caracterizados por recursos de hardware limitados e com cariz de tempo real. Hoje
em dia, o número de funcionalidades começa a escalar, assim como o grau de complexidade
e heterogeneidade. As aplicações embebidas exigem cada vez mais o uso de sistemas operativos
(OSs) de uso geral (GPOS) para lidar com interfaces gráficas e tarefas de computação de
propósito geral. Porém, os seus requisitos primordiais de tempo real mantém-se. A virtualização
permite que vários sistemas operativos sejam executados na mesma plataforma de hardware.
Impulsionada pelo crescente interesse em consolidar e isolar ambientes múltiplos e heterogéneos,
a virtualização tem ganho uma crescente relevância no domínio dos sistemas embebidos.
As adversidades que advém das abordagens de virtualização clássicas estão a direcionar estudos
no âmbito de soluções assistidas por hardware. Entre as tecnologias comerciais existentes, a
tecnologia ARM TrustZone está a ganhar muita relevância devido à supremacia e ao menor custo
dos processadores que suportam esta tecnologia.
Plataformas hibridas, que combinam processadores com lógica programável, estão em crescente
penetração no domínio dos sistemas embebidos pois, disponibilizam um enorme conjunto
de recursos que se adequam perfeitamente à natureza heterogénea dos sistemas atuais. Além
disso, existem soluções recentes que fazem uso da tecnologia de FPGA para melhorar os mecanismos
de virtualização.
Esta dissertação propõe uma framework baseada em hardware-software de modo a cumprir
os requisitos da nova geração de sistemas embebidos. A tecnologia TrustZone é explorada para
implementar uma arquitetura que permite a execução de um GPOS lado-a-lado com um sistemas
operativo de tempo real (RTOS). Os serviços disponibilizados pelo RTOS são migrados
para hardware, para melhorar o desempenho e determinismo do OS. Em vez de focar numa
aplicação concreta, o objetivo é fornecer uma framework especificamente adaptada para dispositivos
baseados em System-on-chips Zynq, de forma a que developers possam usar para acelerar
um vasto número de aplicações distintas em diferentes setores
VirtIO infrastructure for a static partition hypervisor: VirtIO-Net
Dissertação de mestrado em Engenharia Eletrónica Industrial e ComputadoresO uso de sistemas embebidos tem crescido exponencialmente em indústrias como a automóvel ou
aeronáutica. Isto tem levado a um aumento na complexidade dos sistemas, onde é necessário consolidar
várias camadas de software com diferentes níveis de criticidade numa única plataforma de hardware.
Para aumentar a segurança destes sistemas, a indústria tem-se focado na tecnologia de virtualização,
uma vez que a mesma permite a integração e o isolamento dos vários subsistemas. Recorrendo a um
hipervisor é possível partilhar os recursos de hardware entre múltiplas máquinas virtuais (VMs). No
entanto, os hipervisores tradicionais não foram desenhados para garantir os requisitos de tempo-real e
de segurança. Por este motivo, hipervisores de particionamento estático, como o Jailhouse, que alocam
os recursos de hardware estaticamente para as VMs em tempo de design, têm ganho cada vez mais
protagonismo. Porém, o Jailhouse depende do Linux para iniciar e gerir as VMs, criando alguns problemas
de tempo-real e segurança. Assim sendo, o nosso grupo de investigação focou-se em desenvolver o
hipervisor Bao. O Bao implementa uma camada minimalista de software e não tem qualquer dependência
de bibliotecas externas. A implementação atual do Bao dá acesso pass-through aos periféricos, não sendo
possível a partilha de dispositivos.
O trabalho desenvolvido nesta dissertação consiste no desenvolvimento de uma infraestrutura que
permite a partilha de dispositivos utilizando VirtIO. Esta infraestrutura deve ser genérica e deve ser com patível com as front-ends já existentes. A infraestrutura do VirtIO é implementada numa máquina virtual
dedicada (service guest), cuja função é gerir as múltiplas virtqueues que permitem transmitir e receber
dados de outras VMs que utilizam VirtIO. Ao contrário das soluções existentes, nesta dissertação, as back ends do VirtIO são implementadas não no hipervisor, mas numa VM, resultando numa TCB reduzida para
o sistema. A segunda parte da dissertação foca-se em implementar duas drivers back-end, i.e., uma para
o VirtIO-console e outra para o VirtIO-net. A primeira driver é uma driver simples e é utilizada essencial mente para garantir a validação adequada da interface implementada. A segunda é mais complexa, mas
é essencial para qualquer hipervisor moderno.The use of embedded systems has grown exponentially in industries such as the automotive or aero nautics. This led to an increase in the complexity of systems where it is necessary to consolidate several
layers of software with different levels of criticality onto a single hardware platform.
To enhance the security of these systems, industry has been shifting towards virtualization, as the
technology enables the safe integration and isolation of the various sub-systems. By leveraging a hypervisor
it is possible to share hardware resources between multiple Virtual Machines (Virtual Machine (VM)s).
However, traditional hypervisors were not designed to meet real-time and security requirements. For this
reason, static partitioning hypervisors, such as Jailhouse, that statically allocate hardware resources to
VMs at design time, have gained increasing attraction. However, Jailhouse depends on Linux to boot and
manage VMs, which creates some issues for real-time, safety, and security. Under this light, our research
group has designed and implemented Bao. Bao is a very thin layer of self-contained software, not having
any external dependency. Bao’s current implementation gives pass-through access to peripherals and
device sharing is not possible.
The work developed in this dissertation is the implementation of an infrastructure that allows device
sharing using Virtual Input Output (VirtIO). This infrastructure is generic and must be compatible with the
existing front-ends. VirtIO’s infrastructure is implemented in a dedicated virtual machine (service guest),
whose aim is to manage the multiple virtqueues that allow transmitting and receiving data from the other
VMs that use VirtIO. Unlike existing solutions, in our case, the VirtIO’s back-ends are not implemented in
the hypervisor but in a VM, resulting in a reduced Trusted Computing Base (TCB) for the overall system.
The second part of the dissertation focuses on implementing two back-end drivers, i.e., one for VirtIO console and another for VirtIO-net. The first driver is a simple driver, so it is used essentially to guarantee
the proper validation of the implemented interface. The second one is more complex but is essential to
any modern hypervisor
Enabling system survival across hypervisor failures
Dissertação de mestrado em Engenharia Eletrónica Industrial e ComputadoresEmbedded system’s evolution is notorious and due to the complexity growth,
these systems possess more general purpose behaviour instead of its original single
purpose features. Naturally, virtualization started to impact this matter. This
technology decreases the hardware costs since it allows to run several software
components on the same hardware. Although virtualization begun as a pure software
layer, many companies started to provide hardware solutions to assist it.
Despite ARM TrustZone technology being a security extension, many developers
realized that it was possible to use this extension to support development
of hypervisors. With TrustZone, hypervisors can ensure one of the most important
features in virtualization: isolation between guests. However, this hardware
technology revealed some vulnerabilities and since the whole system is TrustZone
dependent, the virtualization can be compromised.
To address this problem, this thesis proposes an hybrid software/hardware
mechanism to handle failures of TrustZone-based hypervisors. By using the processor’s
abort exceptions and hash keys, this project detects system malfunctions
caused by imperfect designs or even deliberate attacks. Additionally, it provides
a restoration model by checkpoints which allows a system recovery without major
throwbacks. The implemented solution was deployed on TrustZone-based LTZVisor,
an open-source and in-house hypervisor, and the revealed results are appealing.
With a 6.5% memory footprint increase and in the worst case scenario, an
increment of 23% in context switching time, it is possible to detect secure memory
invasions and recover the system. Despite of the hypervisor memory footprint
increment and latency addition, the reliability and availability that the system
bring to the LTZVisor are unquestionable.A evolução dos sistemas embebidos é notória e, devido ao aumento da sua complexidade,
estes sistemas cada vez mais possuem um comportamento de propósito
geral, em vez das suas características originais de propósito único. Naturalmente,
a virtualização começou a ter impacto sobre este meio, uma vez que permite executar
vários componentes de software no mesmo hardware, diminuindo os custos de
hardware. Embora a virtualização tenha começado como uma camada de software
pura, muitas empresas começaram a fornecer soluções de hardware para auxiliá-lo.
Apesar da TrustZone ter sido projetada pela ARM para ser uma extensão
de segurança, muitos desenvolvedores perceberam que era possível usá-la para
suporte ao desenvolvimento de hipervisores. Com a TrustZone, os hipervisores
podem garantir uma das premissas mais importantes da virtualização: isolamento
entre hóspedes. No entanto, esta tecnologia de hardware revelou algumas vulnerabilidades
e, sendo todo o sistema dependente da TrustZone, a virtualização pode
ficar comprometida.
Para solucionar o problema, esta tese propõe um mecanismo híbrido de software/
hardware para lidar com as falhas em hipervisores baseados em TrustZone.
Usando as excepções do processador e chaves de hash, este projecto detecta defeitos
no sistema causados por imperfeições no design e também ataques intencionais.
Além disso, este fornece um modelo de restauração por pontos de verificação,
permitindo uma recuperação do sistema sem grandes retrocessos. A solução foi
implementada no LTZVisor, um hipervisor em código aberto e desenvolvido no
ESRG, sendo que os resultados revelados são satisfatórios. Com um aumento de
6,5% da memória usada e um incremento, no pior caso, de 23% no tempo de
troca de contexto, é possível detectar invasões de memória segura e recuperar o
sistema. Apesar do incremento de memória do hypervisor e da adição de latência,
a confiabilidade e a disponibilidade que o sistema oferece ao LTZVisor são
inquestionáveis