OBJETIVO
O objetivo é implementar ou adaptar um hypervisor type-1, utiizando a arquitetura ARM/RISC-V, capaz de trabalhar com VMs rodando GPOS (LInux, Windows, FreeBSD) e RTOS (FreeRTOS). Além disso, é de interesse que o mesmo seja de código aberto e capaz de ser customizado para para ser utilizado como uma ferramenta de debugging e engenharia reversa através de técnicas de Virtual Machine Introspection (VMI) .
PROBLEMA
O problema central de virtualizar um RTOS é que estamos lidando com “nested schedulers”, ou seja, o Host tem um task scheduler, enquanto que o Guest tem outro *task scheduler. *Os dois schedulers estão aninhados, portanto, o scheduler do Host interfere no agendamentos das tarefas do Guest, fazendo com que estas não ocorram em “real time”.
![[Untitled 1093.png|https://pt.slideshare.net/xen_com_mgr/real-time-support-for-xen]]
![[Untitled 1094.png|https://www.researchgate.net/publication/341747201_Real-time_virtualization_with_Xvisor]]
Virtual Machine Instrospection (VMI) é uma técnica onde o software virtualizador, chamado de “Hypervisor”, é utilizado como ferramenta de monitoramento de comportamento malicioso. O sistema operacional que deseja-se inspecionar, roda como uma VM. O hypervisor tem acesso à todas as operações críticas que o sistema operacional tenta executar: exception handlers, syscalls, interrupts, memory-access, registers r/w, memory w/r/x. Dessa maneira, é possível monitorar e responder aos incidentes em tempo real, de forma stealth.
![[Untitled 1095.png|https://www.researchgate.net/figure/Architecture-of-virtual-machine-introspection_fig1_290303308]]
O VMI ainda precisa de pesquisa e validação quando tratado sobre as arquiteturas ARM/RISC-V. O fato é que VMI é um conceito criado com base nas funcionalidades das extensões de virtualização das arquiteturas (x64, ARM, RISC-V), mas não é trabalhado por elas diretamente. Isso significa que para cada arquitetura, recursos de virtualização diferentes devem ser explorados para viabilizar o VMI, necessitando de pesquisa e teste.
SOLUÇÃO
HYPERVISOR
A maioria dos processadores modernos possuem as extensões de virtualização implementadas, exemplo:
RTOS SCHEDULING
RT-Xen is an open-source virtualization platform for systems integration and cloud computing with real-time performance guarantees. The RT-Xen project extends Xen, a widely used open-source virtual machine manager, to support virtual machines with real-time performance requirements. RT-Xen features a compositional real-time scheduling framework that bridges the gap between virtualization technology and real-time scheduling theory for predictable real-time computing on virtualized platforms.
https://sites.google.com/site/realtimexen/publications
VIRTUAL MACHINE INSTROSPECTION
Hooking de uma Syscall utilizando VMI. Nesse caso específico o trapping está sendo feito através da modificação das permissões RWX da SVC Vector Table.
![[Untitled 1096.png|https://link.springer.com/chapter/10.1007/978-3-030-57878-7_17]]