Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
GoTEE — Environnement d'exécution de confiance (TEE) en Go | Kitploit
Outils/GitHubGitHub/usbarmory/gotee
Sécurité des Systèmes EmbarquésVirtualisation de SécuritéSécurité Matérielle
GitHubusbarmory/gotee

GoTEE

Environnement d'exécution de confiance (TEE) en Go

Voir le dépôt
1521321il y a 3 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Introduction

Le framework GoTEE implémente l'instanciation concurrente d'unikernels basés sur TamaGo en modes privilégié et non privilégié, interagissant entre eux via le mode moniteur et des appels système personnalisés.

Grâce à ces capacités, GoTEE implémente un environnement d'exécution de confiance (TEE) basé sur TamaGo, apportant la sécurité mémoire, la commodité et les capacités de Go à l'exécution bare metal dans le monde sécurisé ARM TrustZone ou les environnements d'exécution superviseur RISC-V.

GoTEE peut superviser des Trusted Applets autonomes en Go, Rust ou C pur, implémentant l'API GoTEE, ainsi que tout système d'exploitation capable de fonctionner dans le monde normal ARM TrustZone ou en mode S RISC-V, comme Linux.

Fonctionnalités

  • Contextes d'exécution isolés pour le mode utilisateur ARM, le monde normal TrustZone ou le mode superviseur RISC-V

  • Soft lockstep opportuniste pour la détection de fautes

  • API pour l'implémentation d'un Trusted OS (gestionnaires Syscall, JSON-RPC et d'exceptions)

Documentation

Go Reference

La documentation principale, qui comprend un tutoriel, est disponible sur le wiki du projet.

La documentation de l'API du paquet est disponible sur pkg.go.dev.

Matériel pris en charge

Le tableau suivant résume les SoC et cartes actuellement pris en charge.

SoCBoardSoC packageBoard package
NXP i.MX6ULZUSB armory Mk IIimx6ulusbarmory/mk2
NXP i.MX6ULLMCIMX6ULL-EVKimx6ulmx6ullevk
SiFive FU540QEMU sifive_ufu540qemu/sifive_u

Exemple d'application

Dans la nomenclature TEE, l'unikernel privilégié est communément appelé Trusted OS, tandis que celui non privilégié représente un Trusted Applet.

L'exemple GoTEE démontre le fonctionnement concurrent d'unikernels Go agissant comme Trusted OS, Trusted Applet et OS principal.

[!WARNING] L'OS principal peut être n'importe quel OS « riche » (par exemple Linux) ; TamaGo est simplement utilisé pour un exemple autonome. Il en va de même pour le Trusted Applet, qui peut être n'importe quelle application bare metal capable de fonctionner en mode utilisateur et d'implémenter l'API GoTEE, comme des programmes C ou Rust autonomes.

Un exemple Rust peut être utilisé en remplaçant trusted_applet_go par trusted_applet_rust lors de la compilation.

La combinaison Trusted OS/applet de l'exemple effectue des tests de base de l'exécution concurrente de trois unikernels TamaGo à différents niveaux de privilège :

  • Trusted OS (ARM : mode système TZ Secure World, RISC-V : M-mode)
  • Trusted Applet (ARM : mode utilisateur TZ Secure World, RISC-V : S-mode)
  • OS principal (ARM : mode système TZ Normal World, RISC-V : S-mode)

L'OS principal rend la main avec un appel moniteur.

Le Trusted Applet dort pendant 5 secondes avant de tenter de lire la mémoire du Trusted OS, ce qui déclenche une exception gérée par le superviseur qui met fin au Trusted Applet.

L'interface syscall GoTEE est implémentée pour la communication entre le Trusted OS et le Trusted Applet.

Lorsqu'elle est lancée sur l'USB armory Mk II, l'application d'exemple est accessible via SSH par Ethernet over USB (protocole ECM, pris en charge sur les hôtes Linux et macOS) :

$ ssh [email protected]
tamago/arm • TEE security monitor (Secure World system/monitor)

allgptr                                          # memory forensics of applet goroutines
csl                                              # show config security levels (CSL)
csl             <periph> <slave> <hex csl>       # set config security level (CSL)
dbg                                              # show ARM debug permissions
exit, quit                                       # close session
gotee                                            # TrustZone example w/ TamaGo unikernels
help                                             # this help
linux           <uSD|eMMC>                       # boot NonSecure USB armory Debian base image
lockstep        <fault %>                        # tandem applet example w/ fault injection
peek            <hex offset> <size>              # memory display (use with caution)
poke            <hex offset> <hex value>         # memory write   (use with caution)
reboot                                           # reset device
sa                                               # show security access (SA)
sa              <id> <secure|nonsecure>          # set security access (SA)
stack                                            # stack trace of current goroutine
stackall                                         # stack trace of all goroutines

>

L'exemple peut être lancé avec la commande gotee qui génère deux instances de l'OS principal pour démontrer le comportement avant et après l'application des restrictions TrustZone à l'aide de périphériques matériels réels.

De plus, la commande linux peut être utilisée pour générer l'image de base USB armory Debian en tant qu'OS principal non sécurisé.

[!NOTE] Seules les versions de l'image de base USB armory Debian >= 20211129 sont prises en charge pour le fonctionnement non sécurisé.

Télécharger l’outil