신뢰 실행 환경(TEE) 안에서 AI 돌리기

English version: Running AI Inside a Trusted Execution Environment

프로세서 다이 위 빛나는 금고 안에 봉인된 AI 모델과 데이터 크리스털 — 방패 밖에서 눈과 손이 차단된 모습

지난 글에서는 AI 보안을 모델 쪽에서 봤다. 생성형·에이전틱 AI가 제 답변으로 정보를 흘리는 문제, 그리고 그걸 막는 소프트웨어 차원의 방어(워터마킹, 비가역 학습, 제로트러스트) 이야기였고, 이번엔 조금 다른 시각의 보안접근 방법을 살펴 본다. 모델이 활용되는 인프라, 특히 추론을 돌리는 기능이 내 통제 밖 어딘가에 놓이는 엣지·임베디드 AI 쪽이다. 여기서는 ‘AI가 뭐라고 답하느냐’보다, ‘AI가 도는 동안 그 모델과 데이터를 누가 훔쳐볼 수 있느냐’가 문제이며, 하드웨어에서의 보안 제공 방법의 검토가 필요하게 될 것이다.

다양한 암호 기법들이 데이터 저장과 통신에 적용되고 있다. 이러한 기법들의 활용을 통하여, 이제 데이터는 저장돼 있을 때(암호화된 디스크)와 오갈 때(TLS)의 보안은 높은 수준을 달성하고 있고, 관련된 규정이나 가이드라인도 많이 제공되고 있다. 예를 들어 개인정보의 경우 암호화된 형태로 저장되어야 한다. 그렇다면, 데이터가 ‘쓰이는 중’에는 어떨까? 암호화되어 저장되어 있던 데이터는 복호화된 후 평문 상태로 메모리에 로드된다. 이때 평문은 그 메모리를 읽을 권한이 있는 것이라면 읽을 수 있게 된다. 운영체제, 하이퍼바이저, 옆방 테넌트, 그 서버를 소유한 클라우드 운영자까지, 메모리 덤프로 모델의 구조나 파라미터를 파악할 수 있는 상황이 발생할 수 있다.

신뢰 실행 환경(TEE)은 바로 이 세 번째 상태를 하드웨어로 막아 보자는 발상이다. 그리고 AI에서는 매우 중요한 보안이슈가 된다. AI에서 제일 값진 것, 그러니까 모델 가중치와 입력 데이터가 곧 GPU가 돌아가는 동안 평문으로 메모리에 올라가 있게 되면 누구나 이 값진 데이터를 가져갈 수 있다. 이 글은 그 TEE 안에서 AI를 돌리는 이야기다. 왜 그렇게까지 하고 싶은지, 그리고 지금의 하드웨어의 제약과 이를 해결하기 위한 연구 동향을 가볍게 살펴 보았다.

TEE(Trusted Encrypted Environment)?

TEE는 프로세서가 따로 떼어 내 지켜 주는 격리 구역이다. 보안이 필요한 데이터를 사용하기 위해 메모리의 특정영역을 할당하고, 이 메모리에 있는 내용은 암/복호화의 대상이며, 접근 권한이 없는 프로세스는 접근할 수 없다. 실제 구현 방법 따라 엔클레이브, 시큐어 월드, 컨피덴셜 VM 등 다양한 이름으로 불리고 있고, 그 구현의 실체도 조금씩 다르지만, 궁극적 목표인 그 안의 코드와 데이터의 보안은 동일하게 제공한다. 그 중 하나는 기밀성. 바깥에서는 아무도 그 메모리를 못 읽는다. 자기보다 권한이 높은 소프트웨어라도 예외가 아니다. 다른 하나는 무결성. 밖에서 몰래 손대는 게 안 되고, 손대면 들킨다. 요즘 칩은 이 메모리를 하드웨어가 통째로 암호화하니, DRAM 버스에 프로브를 꽂아 들여다봐도 암호문만 보인다. 대신 믿어야 할 대상이 바뀐다. 소프트웨어 스택 전체를 믿는 대신, 딱 한 줄만 지켜 주면 되는 CPU 제조사를 믿는 셈이다.

여기에 두 가지가 더 붙어야 비로소 쓸 만해진다. 하나는 증명(attestation). 환경이 원격의 상대에게 “나는 이 벤더의 진짜 TEE고, 지금 내 안에서 도는 코드의 해시는 정확히 이 값이다”라고 내보이는 절차다. 상대는 이 증거를 확인하고 나서야 비밀을 넘긴다. 다른 하나는 봉인(sealing). 암호 키를 하드웨어와 코드의 측정값에 묶어 두는 건데, 그러면 같은 기계에서 같은 코드만 그 데이터를 다시 열 수 있다. 현장에서 마주칠 이름은 대략 셋이다. ARM TrustZone(시큐어/노멀 월드로 가르는 방식, 스마트폰과 엣지 어디에나 있다), Intel SGX(작은 프로세스 엔클레이브인데 요즘은 VM 단위 TDX 쪽으로 무게가 옮겨 갔다), 그리고 AMD SEV-SNP(암호화되고 증명되는 VM).

이 기술들은 결국 두 갈래로 갈린다. 프로세스 하나를 지키는 TEE와, 하이퍼바이저 위에서 VM 전체를 지키는 TEE 하이퍼바이저(컨피덴셜 VM)다.

  TEE (엔클레이브) TEE 하이퍼바이저 (컨피덴셜 VM)
지키는 대상 앱의 일부 — 엔클레이브 게스트 VM 전체
대표 기술 Intel SGX, ARM TrustZone Intel TDX, AMD SEV-SNP, ARM CCA
신뢰 기반(TCB) 작다 — 엔클레이브 코드만 크다 — 게스트 OS + 앱
호스트 OS는 못 믿음, 앱이 알아서 하이퍼바이저 못 믿음, 하드웨어+모니터가 격리
앱 손질 대개 다시 짜거나 분리 그대로 이식(lift-and-shift)
보호 메모리 작다 (예전엔 ~100 MB) VM 전체 RAM (GB급)
AI엔? 모델이 안 들어감 기밀 AI의 현실적인 출발점

어느 쪽을 고르느냐가 뒤에 나올 이야기, 특히 메모리 문제를 거의 다 결정한다. 일단 여기까지만 알아 두자. 나머지는 이 안에 모델을 진짜로 넣으려 할 때 벌어지는 일이다.

왜 AI에서 TEE가 관심의 대상이 되고 있을까?

이유는 간단하다. 호스트가 들여다볼 수 없는 곳에서 모델을 돌리고 싶은 거. 그래서 모델의 구조나 파라미터를 지정된 사람들이 아니면 볼 수 없게 하는 거.

  • 모델·가중치 탈취. 학습된 가중치가 곧 재산이다. 그런데 남의 기계, 그러니까 클라우드 서버든 내가 손댈 수 없는 온프렘 장비든 root를 쥔 내부자든, 거기서는 메모리에서 통째로 복사해 갈 수 있다. TEE를 쓰면 경계 안을 뺀 어디서나 가중치가 암호문으로 남는다.
  • 학습 데이터·멤버십 추출. 공격자가 학습 데이터를 되살리거나, 특정 기록이 학습셋에 있었는지 알아내려 든다. 모델과 그 입출력을 기밀로 묶으면 노려볼 틈이 줄긴 한다. 다만 솔직히, TEE가 지키는 건 ‘돌아가는 바탕’이지 ‘질문을 던지는 창구’가 아니다. 정상적으로 질문을 던지는 사람은 여전히 모델을 캐낼 수 있으니, 이건 모델 자체를 손보는 방어(비가역 학습, 워터마킹, 출력 필터링)와 같이 써야지 그걸 대신하진 못한다.
  • 입력·프롬프트 프라이버시. 의료·금융·산업 현장의 입력이 추론 서버를 운영하는 쪽에서도 못 읽도록 구성할 수 있다.
  • 증명으로 얻는 무결성. 지금 돌고 있는 게 바로 그 모델, 그 코드가 맞다는 걸 입증할 수 있다. 몰래 바꿔치기했거나 백도어를 심은 가중치가 아니라는 뜻이다.

이걸 하나로 꿰는 그림이 기밀 추론(confidential inference)이다. 요즘은 기밀 학습까지 넘본다. 모델 주인과 데이터 주인이 증명으로 서로의 TEE를 확인한 뒤에야, 한쪽은 가중치를 다른 쪽은 데이터를 어느 호스트도 못 읽는 환경 안으로 들여보낸다. 이론이 아니라 이미 돌아가고 있다. 클라우드 사업자들은 기밀 GPU VM을 팔고, ‘모델을 서비스로’ 파는 업체는 끝까지 안 까 보이는 가중치를 서빙하며, 병원들은 컨피덴셜 VM 안에서 기록을 모아 공동 모델을 만든다. 요즘 대형 소비자 AI 백엔드도 증명된 기밀 컴퓨팅에 기대어, 운영자조차 이용자의 요청을 못 읽게 해 둔다.

TEE 하드웨어의 제약

TEE는 AI를 위해서 설계된 기술은 아니다. 이미 컴퓨팅에서의 보안 관련 기술로 오래 전부터 개발 및 사용되고 있었다. 예를 들어 부팅에서의 Secure Boot 등이 활용되어서 실제로 컴퓨터에 대한 보안을 담당해 오고 있다. 실제 컴퓨터를 사용하는 입장에서 TEE는 조금 부담스러운 영역인 게 사실이다. 특정 메모리 영역이나 컴퓨팅 자원을 사전에 할당해 둬야 하고, 메모리에서의 암/복호화가 필요하기 때문에 불필요하게 이 영역을 활용하는 건 시스템 성능의 저하를 가져올 수 있다. 그래서 지금가지의 TEE는 곡 필요한 부분에 대한 보호에 집중하고 있었고, 시스템의 부하를 최소화 하는 데 그 목적 중 하나가 포함되어 있다. 이렇다 보니, 점점 방대해지고 있는 AI 모델들을 돌리기에는 하드웨어 제약 사항이 꽤 높은 수준이 되었다.

엔클레이브가 너무 작다. 옛날 CPU 엔클레이브가 지켜 주는 메모리는 많아야 100 MB 남짓이었다. 요즘 모델은 기가바이트 단위다. 애초에 안 들어가고, 작은 엔클레이브에 가중치를 넣었다 뺐다 페이징하면 못 참을 만큼 느려진다. VM 단위 TEE(TDX, SEV-SNP)가 VM 메모리를 통째로 지키면서 이 천장 하나는 치웠지만, 그래도 여전히 CPU 쪽 이야기다.

TEE는 CPU용으로 개발/ 운영되고 있으며, GPU에서의 보호는 아직 진행 중. AI는 GPU에서 돌아간다. 그런데 얼마 전까지 GPU는 신뢰 경계 바깥에 통째로 나와 있었다. 그래서 둘 중 하나를 골라야 했다. 모델을 CPU TEE에 넣고 GPU 가속을 포기하거나(실전 모델엔 못 쓸 만큼 느리다), 데이터를 못 믿을 GPU로 넘기고 애초에 TEE를 쓴 이유인 기밀성을 버리거나.

CPU와 GPU를 잇는 데도 공짜가 아니다. NVIDIA의 컨피덴셜 컴퓨팅(Confidential Computing)은 Hopper H100부터 GPU를 경계 안으로 끌어들였다. GPU가 기밀 모드로 암호화된 메모리 위에서 돌고, CPU의 컨피덴셜 VM과 GPU 사이 PCIe를 건너는 데이터도 암호화되며, GPU 자체도 증명할 수 있다. 증명된 H100에 컨피덴셜 VM(TDX나 SEV-SNP)을 붙이면 CPU와 GPU를 아우르는 통짜 TEE가 된다. 문제는 바로 그 PCIe 구간이다. 데이터가 CPU TEE 안의 바운스 버퍼를 거쳐 암호화된 다음 GPU로 복사되니, 호스트와 GPU 사이를 자주 오갈수록 비용이 붙는다. 크고 연산이 무거운 모델이면 오버헤드가 크지 않은데, 작은 모델이나 왔다 갔다가 잦은 파이프라인이면 성능 저하에 대한 고려도 필요하다.

하나의 신뢰 경계 안의 컨피덴셜 VM(CPU)과 증명된 GPU가 자물쇠로 잠긴 암호화 채널로 연결되고, 신뢰되지 않는 호스트는 경계 밖에서 차단된 구조

최근 연구 토픽들

그래서, TEE는 피할 수 없는 상황인 데, 하드웨어 제약을 어떻게 극복할 수 있을까에 대한 연구들이 최근 많이 진행되고 있다. Intel의 경우 SGX 등에서 VM 기반 TEE를 지원하고 있고, Nvidia 도 Jetson 등 임베디드 플랫폼에서의 TEE 지원을 개시하고 있으나 아직 대용량 모델들을 직접 운영하기에는 여러 가지 문제가 있다. 특히 서버급 CPU들을 제외하고는 TEE 기능을 삭제하고 있는 Intel, Blackwell 계열임에도 사용에 제약을 가지는 Nvidiai Jetson Thor, TEE의 활용 자체에 제한을 두고 있는 Apple M series 칩 등 아직 하드웨어에서 전적인 지원을 기대하기는 어렵기 때문에, 다양한 소프트웨어적 기법들이 함께 연구되고 있다.

  • CPU-TEE와 GPU, 메모리를 어떻게 맞물릴까. 엔클레이브는 작고 CPU 쪽인데 모델과 연산은 GPU에 있다. 둘 다에서 최대치를 뽑는 건 보안 문제이면서 동시에 자원 최적화 문제다. 민감한 부분은 보호된 채로 두고 무거운 연산은 가속으로 돌리도록 모델을 나눠서 배치하고, 암호화된 CPU↔GPU 트래픽은 최대한 줄여서 성능의 저하를 최소화하는 방법에 대한 연구들.
  • 어느 계층을 가릴까. 모델을 통째로 TEE에 넣는 게 제일 간단하지만 제일 비싸고, 실제 모델을 통째로 넣을 수 있는 하드웨어도 아직은 부족하다. 그렇다면 위의 예처럼 모델의 특정 부분을 TEE에서 운용하는 방안을 활용해야 할 건 데, 방대한 모델의 구조에서 어떤 부분을 TEE에 넣어야 보호효과가 가징 클 지에 대한 고민들이 진행되고 있다. 일반적인 CNN의 경우 MLP 파트를, transformer 기반 모델의 경우 Q,V 등의 연산들을 TEE에서 운용하는 방안들이 제시되고 있으나 아직 많은 새로운 방안들을 고려해 볼 여지가 있다고 보인다.
  • 하드웨어 하한은 진짜로 있다. 기밀 GPU 추론을 하려면 컨피덴셜 컴퓨팅을 지원하는 데이터센터 GPU(Hopper의 H100/H200, 또는 Blackwell의 B100/B200/GB200)에 컨피덴셜 VM을 지원하는 CPU가 있어야 한다. 그 이전 세대(Ada, Ampere)에는 이 기능이 없다. 그리고 아키텍처 세대가 같다고 되는 게 아니다. Jetson Thor는 Blackwell 세대 GPU로 만들어졌는데도 이걸 못 한다. 컨피덴셜 컴퓨팅은 NVIDIA의 데이터센터용 개별 GPU와 그 플랫폼에 들어간 기능이지, CC용 하드웨어 보안 엔진도 펌웨어도 증명 경로도 없는 Jetson/임베디드 SoC 라인의 기능이 아니기 때문이다. Thor는 엣지 로보틱스를 노린 물건이지 증명된 기밀 추론을 노린 물건이 아니다. ‘Blackwell이잖아’가 GB200처럼 TEE를 만들어 주진 않는다.

어느 것도 아직은 완벽한 대안을 제시하지는 못히자만, AI 운용에서의 모델 보안에 대한 요구는 명확하다. 산업 현장의 AI 적용이 갈수록 빨라지는 흐름을 보면, 앞으로 AI에서의 정보보호는 점점 더 중요한 자리를 차지할 것이고, TEE에 대한 요구도 그만큼 계속 커질 수밖에 없다. TEE는 ‘쓰이는 중’인 AI 데이터에 하드웨어로 된 보안 도구를 하나 더 더해줄 수 있다.

참고 문헌

  1. Florian Tramèr, Dan Boneh, Slalom: Fast, Verifiable and Private Execution of Neural Networks in Trusted Hardware, ICLR 2019 — 민감한 연산은 CPU TEE 안에 두고 무거운 선형 계층은 더 빠른(하지만 못 믿을) 보조 프로세서로 넘기는 방식. CPU-TEE ↔ GPU 분할의 초기 사례다.
  2. Stavros Volos, Kapil Vaswani, Rodrigo Bruno, Graviton: Trusted Execution Environments on GPUs, USENIX OSDI 2018 — 최초의 연구용 GPU TEE. 오버헤드 대부분이 GPU를 오가는 트래픽 암호화에서 나온다는 점이 본문의 CPU↔GPU 비용 이야기와 그대로 겹친다.
  3. Ziqi Zhang 외, No Privacy Left Outside: On the (In-)Security of TEE-Shielded DNN Partition for On-Device ML, IEEE S&P 2024 — 일부 계층만 TEE로 가리는 게 생각보다 까다롭다는 걸 보이고 TEESlice를 제안한다. ‘어느 계층을 가릴까’와 바로 직결된다.
  4. NVIDIA, Confidential Compute on NVIDIA Hopper H100 (백서) — 컨피덴셜 컴퓨팅을 지원하는 최초의 GPU인 H100. 온다이 신뢰 기반, GPU 증명, 그리고 암호화된 CPU↔GPU 바운스 버퍼를 다룬다.
공유 LinkedIn X Facebook 이메일