안녕하세요, 개발자 여러분! 오늘은 최근 많은 주목을 받고 있는 TEESimulator라는 오픈소스 프로젝트에 대해 소개해보려고 합니다. 이 프로젝트는 Android의 Trusted Execution Environment(TEE)를 소프트웨어적으로 시뮬레이션하는 강력한 도구로, 특히 키 인증(key attestation)과 관련된 문제를 해결하는 데 큰 도움을 줍니다. 여러분이 안드로이드 개발이나 보안에 관심이 있다면 이 프로젝트가 어떻게 유용한지 알아보세요!
TEESimulator란?
TEESimulator는 하드웨어 기반의 TEE 환경을 소프트웨어적으로 완벽하게 시뮬레이션하는 시스템 모듈입니다. 이는 키 인증을 통해 애플리케이션이 안전하고 수정되지 않은 장치에서 실행되고 있는지를 확인할 수 있도록 하는 보안 메커니즘을 우회하는 것을 목표로 합니다.
주요 기능 및 특징
- 하드웨어 기반 인증 우회: TEESimulator는 키 인증을 우회할 수 있는 도구를 제공하여, 루팅된 장치나 수정된 장치에서의 테스트를 가능하게 합니다.
- 상태 기반 에뮬레이션: 실제 TEE의 응답을 패치하는 대신, 가상 키를 소프트웨어 환경 내에서 생성하고 관리합니다. 이를 통해 완벽한 일관성을 보장합니다.
- 아키텍처 간섭: 저수준의 Binder IPC 호출을 훅킹하여 요청을 투명하게 소프트웨어 기반 시뮬레이터로 리디렉션합니다.
- 100% 오픈소스: GPLv3 라이센스를 통해 항상 무료로 이용할 수 있으며, 누구나 코드를 감사하고 사용할 수 있습니다.
- 모듈 플래시: Magisk, KernelSU 또는 APatch를 통해 이 모듈을 플래시한 후 재부팅합니다. 이는 TrickyStore 및 그 파생 버전을 대체합니다.
- (선택사항) keybox.xml 파일 추가:
/data/adb/tricky_store/keybox.xml경로에 하드웨어 기반의 keybox.xml 파일을 배치합니다. 이는 시뮬레이터의 암호화된 "신뢰의 뿌리"를 제공합니다. - (선택사항) 타겟 패키지 설정:
/data/adb/tricky_store/target.txt파일에서 타겟 패키지를 맞춤 설정합니다. - (선택사항) 보안 패치 레벨 설정:
/data/adb/tricky_store/security_patch.txt파일에서 시뮬레이션된 보안 패치 레벨을 조정합니다. - 즐기기!: 모든 구성 파일은 모니터링되며 저장 즉시 적용됩니다.
!→ 강제 생성 모드: 완전한 소프트웨어 기반 가상 키를 생성합니다.?→ 강제 리프 해킹 모드: 실제 TEE 키를 생성하지만 인증서가 가로채져 수정됩니다.- 기호 없음 → 자동 모드: 모듈이 장치에 가장 적합한 모드를 선택합니다.
- Android 보안에 관심이 있는 개발자
- 루팅된 기기에서 애플리케이션의 보안 기능을 테스트하고자 하는 개발자
- 하드웨어 보안 메커니즘을 우회하는 방법을 연구하는 보안 전문가
설치 및 구성 방법
TEESimulator를 사용하기 위해서 다음과 같은 단계를 따르면 됩니다:
keybox.xml 구성 예제
keybox.xml 파일은 시뮬레이터의 마스터 암호화 신원을 제공합니다. 아래는 그 예제입니다:
<?xml version="1.0"?>
<AndroidAttestation>
<Keybox DeviceID="...">
<Key algorithm="ecdsa|rsa">
<PrivateKey format="pem">...</PrivateKey>
<CertificateChain>...</CertificateChain>
</Key>
</Keybox>
</AndroidAttestation>
모드 및 키박스 구성 (target.txt)
TEESimulator는 두 가지 주요 모드에서 작동합니다. 사용자는 각 패키지별로 시뮬레이션 모드와 keybox.xml 파일을 제어할 수 있습니다.
다음은 설정 예제입니다:
# 아래 두 앱은 기본 keybox.xml을 사용합니다.
[demo_keybox.xml]
com.example.app1
com.example.app2
실무 활용 시나리오
TEESimulator는 보안 테스트와 애플리케이션 개발에 매우 유용합니다. 예를 들어, 루팅된 Android 기기에서 앱의 보안 기능을 테스트하고자 할 때, TEESimulator를 통해 하드웨어 키 인증을 우회하고 애플리케이션이 다양한 보안 시나리오에 제대로 반응하는지를 검증할 수 있습니다. 또한, 개발 중에 시뮬레이터를 사용하여 보안 취약점을 찾아내고 해결할 수 있는 기회를 제공합니다.
비슷한 도구와 비교
TEESimulator와 유사한 도구로는 TrickyStore와 TrickyStoreOSS가 있지만, TEESimulator는 보다 강력한 소프트웨어 기반 에뮬레이션 기능을 제공합니다. TrickyStore는 주로 패치된 키를 사용하지만 TEESimulator는 완전한 소프트웨어 기반 키 생성 및 관리가 가능하다는 점에서 차별화됩니다.
추천 대상
TEESimulator는 다음과 같은 개발자들에게 추천합니다:
이 프로젝트에 대해 더 알고 싶다면, GitHub에서 TEESimulator를 직접 확인해보세요: TEESimulator GitHub 링크
이 글을 통해 TEESimulator의 매력과 활용법에 대해 잘 이해하셨기를 바랍니다. 여러분의 개발 여정에 도움이 되길 바랍니다!