Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
GoTEE — Go 신뢰 실행 환경 (TEE) | Kitploit
도구/GitHubGitHub/usbarmory/gotee
Embedded Systems SecuritySecurity VirtualizationHardware Security
GitHubusbarmory/gotee

GoTEE

Go 신뢰 실행 환경 (TEE)

저장소 보기
15213233개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

소개

GoTEE 프레임워크는 TamaGo 기반 유니커널을 권한(privileged) 및 비권한(unprivileged) 모드로 동시에 인스턴스화하며, 각 유니커널은 모니터 모드와 커스텀 시스템 콜을 통해 서로 상호작용합니다.

이러한 기능을 통해 GoTEE는 TamaGo 기반 TEE(Trusted Execution Environment)를 구현하여, ARM TrustZone Secure World 또는 RISC-V Supervisor Execution Environment 내 베어 메탈 실행에 Go의 메모리 안전성, 편의성 및 기능을 제공합니다.

GoTEE는 GoTEE API를 구현하는 순수 Go, Rust 또는 C 기반 프리스탠딩 Trusted Applet뿐만 아니라, Linux처럼 ARM TrustZone Normal World 또는 RISC-V S-모드에서 실행할 수 있는 모든 운영 체제도 감독할 수 있습니다.

기능

  • ARM 사용자 모드, TrustZone Normal World 또는 RISC-V Supervisor Mode를 위한 격리된 실행 컨텍스트

  • 장애 감지를 위한 기회적 소프트 락스텝

  • Trusted OS 구현을 위한 API (Syscall, JSON-RPC 및 예외 처리기)

문서

Go Reference

튜토리얼을 포함한 주요 문서는 프로젝트 위키에서 확인할 수 있습니다.

패키지 API 문서는 pkg.go.dev에서 확인할 수 있습니다.

지원 하드웨어

다음 표는 현재 지원되는 SoC와 보드를 요약합니다.

SoC보드SoC 패키지보드 패키지
NXP i.MX6ULZUSB armory Mk IIimx6ulusbarmory/mk2
NXP i.MX6ULLMCIMX6ULL-EVKimx6ulmx6ullevk
SiFive FU540QEMU sifive_ufu540qemu/sifive_u

예제 애플리케이션

TEE 용어에서 권한이 있는 유니커널은 일반적으로 Trusted OS라고 하며, 권한이 없는 유니커널은 Trusted Applet을 나타냅니다.

GoTEE 예제는 Trusted OS, Trusted Applet 및 Main OS로 동작하는 Go 유니커널의 동시 실행을 보여줍니다.

[!WARNING] Main OS는 Linux 등 '리치(rich)' OS라면 무엇이든 될 수 있으며, TamaGo는 단지 자체 완결형 예제를 위해 사용됩니다. Trusted Applet도 마찬가지로, 사용자 모드에서 실행되고 GoTEE API를 구현할 수 있는 모든 베어 메탈 애플리케이션이 될 수 있으며, 예를 들어 프리스탠딩 C 또는 Rust 프로그램이 있습니다.

빌드 시 trusted_applet_go를 trusted_applet_rust로 대체하면 Rust 예제를 사용할 수 있습니다.

예제의 Trusted OS/애플릿 조합은 서로 다른 권한 수준에서 세 개의 TamaGo 유니커널이 동시에 실행되는 것을 기본적으로 테스트합니다:

  • Trusted OS (ARM: TZ Secure World system mode, RISC-V: M-mode)
  • Trusted Applet (ARM: TZ Secure World user mode, RISC-V: S-mode)
  • Main OS (ARM: TZ Normal World system mode, RISC-V: S-mode)

Main OS는 모니터 콜로 제어권을 반환합니다.

Trusted Applet은 5초간 대기한 후 Trusted OS 메모리 읽기를 시도하며, 이로 인해 슈퍼바이저가 처리하는 예외가 발생하여 Trusted Applet이 종료됩니다.

Trusted OS와 Trusted Applet 간 통신을 위해 GoTEE syscall 인터페이스가 구현되어 있습니다.

USB armory Mk II에서 실행하면 예제 애플리케이션은 Ethernet over USB(ECM 프로토콜, Linux 및 macOS 호스트 지원)를 통해 SSH로 접근할 수 있습니다:

$ 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

>

예제는 gotee 명령으로 실행할 수 있으며, 실제 하드웨어 주변장치를 사용하여 TrustZone 제한이 적용되기 전과 후의 동작을 보여주기 위해 Main OS를 두 번 생성합니다.

또한 linux 명령을 사용하여 USB armory Debian 베이스 이미지를 비보안(Non-secure) 메인 OS로 실행할 수 있습니다.

[!NOTE] 비보안 운영은 USB armory Debian 베이스 이미지 릴리스 20211129 이상만 지원됩니다.

gotee

예제는 QEMU 에뮬레이션에서도 실행할 수 있습니다.

[!NOTE] 에뮬레이션 실행은 QEMU가 TrustZone/PMP를 완전히 지원하지 않으므로 부분적인 테스트만 수행합니다.

도구 다운로드