i.MX 8M / TRUSTZONE

OP-TEE 메모리 격리: 설정과 실제 접근 경로를 함께 봅니다

Linux가 접근을 거부했다고 해서 Secure World 메모리가 하드웨어에서 격리된 것은 아닙니다.

한 보드의 관찰을 제품군 전체로 넓히지 않습니다

2026년 6월 sigma star의 연구는 i.MX8M Mini EVK와 OP-TEE 4.1.0 구성을 출발점으로 삼았습니다. TZC가 비활성화된 경우와, DDR alias가 넓게 열린 region0으로 빠지는 경우를 구분했습니다. 모든 i.MX 8M 보드가 같은 상태였다는 뜻은 아닙니다.

연구 원문: 관찰한 구성과 두 격리 실패 경로

Linux의 제한과 버스 접근 제어는 다른 경계입니다

STRICT_DEVMEM이나 Device Tree의 no-map은 정상 커널이 접근·매핑을 다루는 정책입니다. 커널 자체가 침해된 위협 모델에서는 이 정책만으로 물리 메모리 접근을 막았다고 볼 수 없습니다. Secure World로 전환하는 호출이 성공했다고 해서 DDR 전체가 보호되는 것도 아닙니다.

분기와 관측 지점을 나눈 자체 개념도
  1. Linux 정책: 허용한 매핑과 접근인가?

  2. TZC 영역: 실제 버스 주소가 어느 규칙에 맞는가?

  3. 기본 영역과 alias: 우회 주소에도 같은 보호가 남는가?

이 도식은 점검 질문을 나눈 것입니다. 실제 보드의 주소나 공격 절차가 아니며, 보안 시험 결과도 아닙니다.

세 변경은 서로 다른 일을 합니다

OP-TEE의 31bb491은 i.MX8MQ·MM·MN·MP 구성에서 CFG_TZC380을 강제합니다. 설정이 바뀌었다고 해서 장치에서 실행 중인 펌웨어에 반영된 것은 아니므로 따로 확인해야 합니다.

OP-TEE 31bb491: TZC380 구성

TF-A의 9bf1480은 i.MX8MM·MN·MP 파일에서 넓게 허용하던 region0 설정을 제거합니다. 검토한 변경 파일 목록에 i.MX8MQ는 없으므로 이 커밋의 적용 범위를 네 제품 모두로 쓰지 않습니다.

TF-A 9bf1480: 이전 단계의 region0 설정 제거

OP-TEE의 443c581은 CFG_INSECURE가 아닌 i.MX8M 구성에 CFG_TZASC_REGION0_SECURE를 강제하고, region0 검증이 실패하면 panic합니다. 검증 코드를 추가한 것이지, 잘못된 이전 펌웨어 설정을 자동 수리하는 코드는 아닙니다.

OP-TEE 443c581: region0 검증과 실패 처리

출하 이미지에서 확인할 증거

SoC 변형·보드 리비전, 부트로더·TF-A·OP-TEE의 정확한 소스와 설정, 실제 적재 이미지의 해시를 함께 남깁니다. 버전 이름만 비교하면 공급업체의 backport나 별도 설정을 놓칠 수 있습니다.

점검 결과에는 정상 주소의 보호뿐 아니라 alias와 기본 영역을 확인했는지 적습니다. 기기의 보안 상태를 바꾸거나 비밀 메모리를 읽는 시험은 이 글에서 수행하지 않았습니다. 여기서는 공개 연구의 범위와 수정 코드의 역할을 대조했습니다.