6 research outputs found
Arm TrustZone: evaluating the diversity of the memory subsystem
Dissertação de mestrado em Engenharia Eletrónica Industrial e ComputadoresThe diversification of the embedded market has led the once single-purpose built embedded
device to become a broader concept that can accommodate more general-purpose solutions,
by widening its hardware and software resources. A huge diversity in system resources and
requirements has boosted the investigation around virtualization technology, which is becoming
prevalent in the embedded systems domain, allowing timing and spatial sharing of hardware and
software resources between specialized subsystems. As strict timing demands imposed in realtime
virtualized systems must be met, coupled with a small margin for the penalties incurred
by conventional software-based virtualization, resort to hardware-assisted solutions has become
indispensable.
Although not a virtualization but security-oriented technology, Arm TrustZone is seen by many
as a reliable hardware-based virtualization alternative, with the low cost and high spread of
TrustZone-enabled processors standing as strong arguments for its acceptance. But, since Trust-
Zone only dictates the hardware infrastructure foundations, providing SoC designers with a range
of components that can fulfil specific functions, several key-components and subsystems of this
technology are implementation defined. This approach may hinder a system designer’s work, as
it may impair and make the portability of system software a lot more complicated.
As such, this thesis proposes to examine how different manufacturers choose to work with
the TrustZone architecture, and how the changes introduced by this technology may affect the
security and performance of TrustZone-assisted virtualization solutions, in order to scale back
those major constraints. It identifies the main properties that impact the creation and execution
of system software and points into what may be the most beneficial approaches for developing
and using TrustZone-assisted hardware and software.A recente metamorfose na área dos sistemas embebidos transformou estes dispositivos,
outrora concebidos com um único e simples propósito, num aglomerado de subsistemas prontos
para integrar soluções mais flexíveis. Este aumento de recursos e de requisitos dos sistemas
potenciou a investigação em soluções de virtualização dos mesmos, permitindo uma partilha
simultânea de recursos de hardware e software entre os vários subsistemas. A proliferação destas
soluções neste domínio, onde os tempos de execução têm de ser respeitados e a segurança é
um ponto-chave, tem levado à adoção de técnicas de virtualização assistidas por hardware.
Uma tecnologia que tem vindo a ser utilizada para este fim é a Arm TrustZone, apesar de
inicialmente ter sido desenvolvida como uma tecnologia de proteção, dado a sua maior presença
em placas de médio e baixo custo quando comparada a outras tecnologias. Infelizmente, dado
que a TrustZone apenas fornece diretrizes base sobre as quais os fabricantes podem contruir
os seus sistemas, as especificações da tecnologia divergem de fabricante para fabricante, ou
até entre produtos com a mesma origem. Aliada à geral escassez de informação sobre esta
tecnologia, esta característica pode trazer problemas para a criação e portabilidade de software
de sistema dependente desta tecnologia.
Como tal, a presente tese propõe examinar, de uma forma sistematizada, de que forma diferentes
fabricantes escolhem implementar sistemas baseados na arquitetura TrustZone e em que
medida as mudanças introduzidas por esta tecnologia podem afetar a segurança e desempenho
de soluções de virtualização baseadas na mesma. São identificadas as principais características
que podem influenciar a criação e execução de software de sistema e potenciais medidas para
diminuir o seu impacto, assim como boas práticas a seguir no desenvolvimento na utilização de
software e hardware baseados na TrustZone
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
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
Secure and safe virtualization-based framework for embedded systems development
Tese de Doutoramento - Programa Doutoral em Engenharia Electrónica e de Computadores (PDEEC)The Internet of Things (IoT) is here. Billions of smart, connected devices are proliferating
at rapid pace in our key infrastructures, generating, processing and exchanging
vast amounts of security-critical and privacy-sensitive data. This strong connectivity
of IoT environments demands for a holistic, end-to-end security approach, addressing
security and privacy risks across different abstraction levels: device, communications,
cloud, and lifecycle managment.
Security at the device level is being misconstrued as the addition of features in a
late stage of the system development. Several software-based approaches such as
microkernels, and virtualization have been used, but it is proven, per se, they fail in
providing the desired security level. As a step towards the correct operation of these
devices, it is imperative to extend them with new security-oriented technologies
which guarantee security from the outset.
This thesis aims to conceive and design a novel security and safety architecture
for virtualized systems by 1) evaluating which technologies are key enablers for
scalable and secure virtualization, 2) designing and implementing a fully-featured
virtualization environment providing hardware isolation 3) investigating which "hard
entities" can extend virtualization to guarantee the security requirements dictated by
confidentiality, integrity, and availability, and 4) simplifying system configurability
and integration through a design ecosystem supported by a domain-specific language.
The developed artefacts demonstrate: 1) why ARM TrustZone is nowadays a reference
technology for security, 2) how TrustZone can be adequately exploited for
virtualization in different use-cases, 3) why the secure boot process, trusted execution
environment and other hardware trust anchors are essential to establish and
guarantee a complete root and chain of trust, and 4) how a domain-specific language
enables easy design, integration and customization of a secure virtualized
system assisted by the above mentioned building blocks.Vivemos na era da Internet das Coisas (IoT). Biliões de dispositivos inteligentes
começam a proliferar nas nossas infraestruturas chave, levando ao processamento
de avolumadas quantidades de dados privados e sensíveis. Esta forte conectividade
inerente ao conceito IoT necessita de uma abordagem holística, em que os riscos
de privacidade e segurança são abordados nas diferentes camadas de abstração:
dispositivo, comunicações, nuvem e ciclo de vida.
A segurança ao nível dos dispositivos tem sido erradamente assegurada pela inclusão
de funcionalidades numa fase tardia do desenvolvimento. Têm sido utilizadas diversas
abordagens de software, incluindo a virtualização, mas está provado que estas
não conseguem garantir o nível de segurança desejado. De forma a garantir a correta
operação dos dispositivos, é fundamental complementar os mesmos com novas tecnologias
que promovem a segurança desde os primeiros estágios de desenvolvimento.
Esta tese propõe, assim, o desenvolvimento de uma solução arquitetural inovadora
para sistemas virtualizados seguros, contemplando 1) a avaliação de tecnologias
chave que promovam tal realização, 2) a implementação de uma solução de virtualização
garantindo isolamento por hardware, 3) a identificação de componentes
que integrados permitirão complementar a virtualização para garantir os requisitos
de segurança, e 4) a simplificação do processo de configuração e integração da solução
através de um ecossistema suportado por uma linguagem de domínio específico.
Os artefactos desenvolvidos demonstram: 1) o porquê da tecnologia ARM TrustZone
ser uma tecnologia de referência para a segurança, 2) a efetividade desta tecnologia
quando utilizada em diferentes domínios, 3) o porquê do processo seguro de inicialização,
juntamente com um ambiente de execução seguro e outros componentes de
hardware, serem essenciais para estabelecer uma cadeia de confiança, e 4) a viabilidade
em utilizar uma linguagem de um domínio específico para configurar e integrar
um ambiente virtualizado suportado pelos artefactos supramencionados
Embedded-systems-oriented virtualization framework with functionality farming
Tese de Doutoramento em Engenharia Eletrónica e de ComputadoresUm: O uso de um hipervisor como kernel de separação em arquiteturas integradas está a ser
considerado, visto que, um hipervisor não só proporciona separação temporal e espacial, mas
também compatibilidade com software legacy. No entanto, nos dias de hoje, a maior parte dos
hipervisores baseiam-se em paravirtualização ou dependem de hardware high-end; ambas as
abordagens não cumprem os requisitos dos sistema embebidos críticos para a segurança. A
paravirtualização, por um lado, não proporciona compatibilidade total com software legacy, sendo
necessária a sua modificação e adaptação a uma interface especifica do hipervisor utilizado.
Hardware high-end, por outro lado, apesar de proporcionar compatibilidade total com software
legacy, dá origem a sistemas de grande dimensão, de elevado peso, com elevado consumo de
energia, de elevado custo, etc. Nesta tese, a capacidade da virtualização completa em hardware lowend
para resolver as limitações dos hipervisores existentes é investigada. Para isso, um hipervisor
baseado em virtualização completa em hardware low-end é descrito e é apresentada uma avaliação
da sua performance e do espaço ocupado em memória.
Dois: Métodos de desenvolvimentos convencionais não são capazes de acompanhar os requisitos
dos sistemas embebidos críticos para segurança de hoje em dia. Nesta tese: (a) é apresentada uma
abordagem baseada em modelos já existente, mais especificamente, geração de código baseada em
modelos; (b) são descritas as modificações aplicadas a um compilador de modelos já existente por
forma a que este suporte novas capacidades; e (c) é apresentada uma avaliação sobre a capacidade
da geração de código baseada em modelos de reduzir o esforço de engenharia quando comparada
com abordagens convencionais.
Três: A maior parte dos sistemas operativos de hoje em dia seguem uma arquitetura monolítica; esta
arquitetura, no entanto, está associada a fraca confiabilidade, baixa segurança, esforço de
certificação elevado, bem como baixa previsibilidade e escalabilidade. Para colmatar estes
problemas, as soluções propostas na literatura apenas contornam a origem do problema, i.e., a
elevada dimensão do kernel numa arquitetura monolítica, e não o resolvem diretamente. Nesta tese,
functionality farming é proposto para atacar a origem do problema. Functionality farming apenas,
no entanto, depende de um esforço de engenharia significativo. Visto isto, esta tese também
apresenta FF-AUTO, uma ferramenta capaz de realizar functionality farming de forma semiautomática.
Por último, esta tese demonstra como functionality farming é capaz de melhorar o
design e a performance de um kernel já existente, e demonstra também como FF-AUTO permite uma
redução significativa do esforço de engenharia.First, the use of a hypervisor as the separation kernel on integrated architectures has been
considered, as it not only provides time and space partitioning, but it also provides compatibility
with legacy software. Nowadays, most hypervisors, however, either rely on paravirtualization or
depend on high-end hardware, both of which do not fulfill the requirements of safety-critical
embedded systems. Paravirtualization does not provide complete legacy compatibility as it requires
legacy software to be modified to fit a hypervisor-specific interface. High-end hardware, on the
other hand, even though it provides complete legacy compatibility, it leads to large system size,
weight, power consumption, cost, etc. In this thesis, the feasibility of low-end hardware full
virtualization to address the limitations of existing hypervisors is investigated. For that, a hypervisor
based on low-end hardware full virtualization is described and an evaluation of its performance and
footprint is presented.
Second, conventional development methods are unable to keep up with the requirements of
nowadays and future safety-critical embedded systems. In this thesis: (a) an existing model-driven
engineering approach to address the limitations of conventional development methods is presented;
more specifically, a model-driven code generation approach; (b) the modifications applied to an
existing model compiler in order for it to support new features are described; and (c) an evaluation
of whether or not a model-driven code generation approach leads to lower engineering effort when
compared to a conventional approach is presented.
Third, most operating systems, nowadays, follow a monolithic architecture; this, however, leads to
poor reliability, weak security, high certification effort, as well as poor predictability and scalability.
To address this problem, the solutions proposed in the literature just work around the source of the
problem, i.e., the large size of the kernel in a monolithic architecture, and do not address it directly.
In this thesis, functionality farming is proposed to tackle the source of the problem. Functionality
farming alone, however, depends on a significant engineering effort. To address this problem, this
thesis also presents FF-AUTO, a tool which performs functionality farming semi-automatically. At
last, this thesis demonstrates how functionality farming is able to improve the design and the
performance of an existing kernel, as well as how FF-AUTO enables a significant reduction of the
required engineering effort
Self-secured devices: securing shared device access on TrustZone-based systems
Dissertação de mestrado em Engenharia Eletrónica Industrial e ComputadoresWith the advent of the Internet of Things (IoT), security emerged as a significant
requirement in the embedded systems development. Attacks against embedded
systems infrastructures have been increasing, because security is being
misconstrued as the addition of features to the system in a later stage of the system
development. A new change in the way that systems are being developed is
needed, to start guaranteeing security from the outset.
ARM Trustzone is a hardware technology that adds significant value to the
security picture. TrustZone promotes hardware as the initial root of trust and
has been gaining particular attention in the embedded space due to the massive
presence of ARM processors into the market. TrustZone technology splits the
hardware and software resources into two worlds - the secure world, dedicated
to the secure processing, and the non-secure world for everything else. A lot of
research has been done around TrustZone technology, ranging from efficient and
secure virtualization solutions to trusted execution environments (TEE). Both
cases, despite targeting different applications with different requirements, consolidate
multiple virtual environments into the same platform and necessarily need to
share resources among them. Currently, hardware devices on TrustZone-enabled
system-on-chips (SoC) can only be configured as secure or non-secure, which means
the dual-world concept of TrustZone is not spread to the devices itself. With this
direct assignment method both worlds are unable to use the same device unless
it is entirely duplicated, significantly increasing overall hardware costs. Existing
shared device access on TrustZone-based architectures have been shown to negatively
impact the overall system in terms of security and performance, besides
often come with associated engineering effort or substantial hardware costs.
This thesis proposes the concept of self-secured devices, a novel approach for
shared device access in TrustZone-based architectures. Self-secured devices extend
the TrustZone dual-world concept to the inner logic of the device by splitting
the device’s hardware logic into a secure and non-secure interface. The
implemented solution was deployed on LTZVisor, an open-source and in-house
lightweight TrustZone-assisted hypervisor, and the achieved results are encouraging,
demonstrating that we increase the security properties of the system for an
acceptable cost in terms of hardware.Com o advento da Internet das Coisas (IoT), começaram a surgir mais preocupações
relativas à segurança no desenvolvimento de sistemas embebidos. Os
ataques contra infraestruturas deste tipo de sistemas têm vindo a aumentar exponencialmente,
dado que a segurança tem vindo a ser reforçada através da adição
de várias funcionalidades ao invés de ser considerada desde a fase inicial de desenvolvimento
do sistema.
ARM TrustZone, é um exemplo de uma tecnologia de hardware que veio contribuir
significativamente para o panorama de segurança. A tecnologia TrustZone
promove o hardware como base inicial de segurança, tendo vindo a ganhar particular
relevância em soluções de sistemas embebidos devido à presença massiva dos
processadores ARM no mercado. A tecnologia TrustZone separa todos os recursos
de software e hardware em dois ambientes de execução diferentes, os quais são
denominados de mundo seguro, onde é realizado todo o processamento seguro, e o
mundo não seguro para tudo o resto. Esta tecnologia já foi alvo de bastante investigação
e tem sido explorada na implementação de soluções seguras de virtualização
ou até mesmo ambientes seguros de execução (TEE). Apesar de ambos os casos
visarem diferentes aplicações com diferentes requisitos, ambos consistem em consolidar
vários ambientes virtuais numa só plataforma e inerentemente necessitam
de partilhar recursos entre os mesmos. Contudo, atualmente, os dispositivos em
system-on-chips (SoC) habilitados com TrustZone podem somente ser configurados
como seguros ou não seguros, o que significa que o conceito de duplo ambiente
de execução da TrustZone não está estendido aos próprios dispositivos. Com este
método de atribuição direta, ambos os mundos não podem utilizar simultaneamente
o mesmo dispositivo a não ser que o mesmo seja duplicado, aumentando
significativamente os custos de hardware. Atualmente, os métodos existentes de
acesso a dispositivos partilhados em sistemas com TrustZone demonstram ter um
impacto negativo no sistema em termos de segurança, desempenho e por vezes
requerem um grande esforço de engenharia ou custos de hardware excessivos.
Esta tese propõe desenvolver o conceito de dispositivos self-secured, um novo
método de acesso a dispositivos partilhados em sistemas com TrustZone. Estes
dispositivos estendem o conceito da TrustZone à logica interna dos dispositivos,
dividindo a sua lógica numa interface segura e não segura. A solução implementada
foi integrada no LTZVisor, um hipervisor em código aberto e de baixo overhead
assistido por TrustZone, demonstrando que a segurança do dispositivo partilhado
é assegurada com reduzidos custos de hardware