Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
GoTEE-example — GoTEE - aplicação de exemplo | Kitploit
Ferramentas/GitHubGitHub/usbarmory/gotee-example
Segurança de Sistemas EmbarcadosForensia de MemóriaDepuradoresVirtualização para SegurançaSegurança de Hardware
GitHubusbarmory/gotee-example

GoTEE-example

GoTEE - aplicação de exemplo

Ver Repositório
17524há 7 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Introdução

O framework GoTEE implementa a instanciação concorrente de unikernels baseados em TamaGo em modos privilegiado e não privilegiado, interagindo entre si através do modo monitor e chamadas de sistema personalizadas.

Com essas capacidades, o GoTEE implementa um Ambiente de Execução Confiável (TEE) baseado em TamaGo, trazendo segurança de memória, conveniência e capacidades da linguagem Go para execução bare metal no ARM TrustZone Secure World ou nos ambientes de execução supervisor do RISC-V.

O GoTEE pode supervisionar Trusted Applets freestanding baseados em Go, Rust ou C puros, que implementam a API GoTEE, bem como qualquer sistema operacional capaz de executar no ARM TrustZone Normal World ou no RISC-V S-mode, como Linux.

Recursos

  • Contextos de execução isolados para ARM User mode, TrustZone Normal World ou RISC-V Supervisor Mode

  • Lockstep suave oportunista para detecção de falhas

  • API para implementação de Trusted OS (Syscall, JSON-RPC e manipuladores de exceção)

Documentação

Go Reference

A documentação principal, que inclui um tutorial, pode ser encontrada na wiki do projeto.

A documentação da API do pacote pode ser encontrada em pkg.go.dev.

Hardware suportado

A tabela a seguir resume os SoCs e placas atualmente suportados.

SoCPlacaPacote SoCPacote da placa
NXP i.MX6ULZUSB armory Mk IIimx6ulusbarmory/mk2
NXP i.MX6ULLMCIMX6ULL-EVKimx6ulmx6ullevk
SiFive FU540QEMU sifive_ufu540qemu/sifive_u

Exemplo de aplicação

Na nomenclatura de TEE, o unikernel privilegiado é normalmente referido como Trusted OS, enquanto o não privilegiado representa um Trusted Applet.

O exemplo do GoTEE demonstra a operação concorrente de unikernels Go atuando como Trusted OS, Trusted Applet e Main OS.

[!WARNING] O Main OS pode ser qualquer SO "rico" (ex.: Linux); o TamaGo é simplesmente usado para um exemplo autocontido. O mesmo se aplica ao Trusted Applet, que pode ser qualquer aplicação bare metal capaz de executar em modo de usuário e implementar a API GoTEE, como programas freestanding em C ou Rust.

Um exemplo em Rust pode ser usado substituindo trusted_applet_go por trusted_applet_rust ao compilar.

A combinação de exemplo Trusted OS/Applet realiza testes básicos da execução concorrente de três unikernels TamaGo em diferentes níveis de privilégio:

  • Trusted OS (ARM: modo sistema da TZ Secure World, RISC-V: M-mode)
  • Trusted Applet (ARM: modo usuário da TZ Secure World, RISC-V: S-mode)
  • Main OS (ARM: modo sistema da TZ Normal World, RISC-V: S-mode)

O Main OS cede o controle com uma chamada de monitor.

O Trusted Applet dorme por 5 segundos antes de tentar ler a memória do Trusted OS, o que aciona uma exceção tratada pelo supervisor, que encerra o Trusted Applet.

A interface syscall do GoTEE é implementada para comunicação entre o Trusted OS e o Trusted Applet.

Quando iniciado no USB armory Mk II, a aplicação de exemplo fica acessível via SSH através de Ethernet over USB (protocolo ECM, suportado em hosts Linux e 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

>

O exemplo pode ser iniciado com o comando gotee, que instancia o Main OS duas vezes para demonstrar o comportamento antes e depois de as restrições da TrustZone estarem em vigor usando periféricos de hardware reais.

Além disso, o comando linux pode ser usado para instanciar a imagem base USB armory Debian como Main OS não seguro.

[!NOTE] Apenas versões da imagem base USB armory Debian >= 20211129 são suportadas para operação não segura.

gotee

O exemplo também pode ser executado sob emulação QEMU.

Baixar ferramenta