Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
GoTEE — Entorno de Ejecución de Confianza en Go (TEE) | Kitploit
Herramientas/GitHubGitHub/usbarmory/gotee
Seguridad de Sistemas EmbebidosVirtualización de SeguridadSeguridad de Hardware
GitHubusbarmory/gotee

GoTEE

Entorno de Ejecución de Confianza en Go (TEE)

Ver Repositorio
1521323hace 3 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Introducción

El framework GoTEE implementa la instanciación concurrente de unikernels basados en TamaGo en modos privilegiado y no privilegiado, que interactúan entre sí a través del modo monitor y llamadas al sistema personalizadas.

Con estas capacidades GoTEE implementa Entornos de Ejecución de Confianza (TEE) basados en TamaGo, aportando la seguridad de memoria de Go, su conveniencia y sus capacidades a la ejecución en metal desnudo dentro del Secure World de ARM TrustZone o de los Entornos de Ejecución de Supervisor de RISC-V.

GoTEE puede supervisar Trusted Applets independientes basados en Go, Rust o C puros, que implementan la API de GoTEE, así como cualquier sistema operativo capaz de ejecutarse en el Normal World de ARM TrustZone o en el modo S de RISC-V, como Linux.

Características

  • Contextos de ejecución aislados para el modo Usuario de ARM, TrustZone Normal World o el Modo Supervisor de RISC-V

  • Soft lockstep oportunista para detección de fallos

  • API para implementación de Trusted OS (manejadores de Syscall, JSON-RPC y excepciones)

Documentación

Go Reference

La documentación principal, que incluye un tutorial, se puede encontrar en la wiki del proyecto.

La documentación de la API del paquete se puede encontrar en pkg.go.dev.

Hardware compatible

La siguiente tabla resume los SoC y placas actualmente compatibles.

SoCPlacaPaquete del SoCPaquete de la placa
NXP i.MX6ULZUSB armory Mk IIimx6ulusbarmory/mk2
NXP i.MX6ULLMCIMX6ULL-EVKimx6ulmx6ullevk
SiFive FU540QEMU sifive_ufu540qemu/sifive_u

Aplicación de ejemplo

En la nomenclatura de TEE, al unikernel privilegiado se le suele denominar Trusted OS, mientras que el no privilegiado representa un Trusted Applet.

El ejemplo de GoTEE demuestra el funcionamiento concurrente de unikernels Go que actúan como Trusted OS, Trusted Applet y Main OS.

[!WARNING] El Main OS puede ser cualquier sistema operativo «rico» (p. ej., Linux); TamaGo se usa simplemente para un ejemplo autónomo. Lo mismo aplica al Trusted Applet, que puede ser cualquier aplicación de metal desnudo capaz de ejecutarse en modo usuario e implementar la API de GoTEE, como programas C o Rust independientes.

Se puede usar un ejemplo en Rust reemplazando trusted_applet_go por trusted_applet_rust al compilar.

La combinación de ejemplo Trusted OS/applet realiza pruebas básicas de ejecución concurrente de tres unikernels TamaGo en diferentes niveles de privilegio:

  • Trusted OS (ARM: modo sistema TZ Secure World, RISC-V: modo M)
  • Trusted Applet (ARM: modo usuario TZ Secure World, RISC-V: modo S)
  • Main OS (ARM: modo sistema TZ Normal World, RISC-V: modo S)

El Main OS cede el control mediante una llamada al monitor.

El Trusted Applet duerme durante 5 segundos antes de intentar leer memoria del Trusted OS, lo que dispara una excepción gestionada por el supervisor que termina el Trusted Applet.

La interfaz de syscall de GoTEE está implementada para la comunicación entre el Trusted OS y el Trusted Applet.

Cuando se lanza en la USB armory Mk II, la aplicación de ejemplo es accesible por SSH mediante Ethernet sobre USB (protocolo ECM, compatible con hosts Linux y 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

>

El ejemplo se puede lanzar con el comando gotee, que genera el Main OS dos veces para demostrar el comportamiento antes y después de que las restricciones de TrustZone estén en vigor usando periféricos de hardware reales.

Adicionalmente, el comando linux se puede usar para generar la imagen base Debian de USB armory como Main OS no seguro.

[!NOTE] Solo se admiten versiones >= 20211129 de la imagen base Debian de USB armory para operación no segura.

gotee

Descargar herramienta