← 최신 논문
💻 computer science

Remote-Timer-as-a-Service: Efficient Microarchitectural Leakage in the Cloud with Remote Timers

이 논문은 동적 프로세스 격리(DyPrIs)를 포함한 Cloudflare Workers의 기존 스펙터(Spectre) 공격 대응책이 원격 미세구조적 누출에 대해 불충분함을 입증하며, 저자들이 원격 타이머와 증폭 기술을 활용하여 JWT 토큰을 훨씬 더 빠른 속도로 탈취하는 데 성공함에 따라 Cloudflare가 해당 취약점을 완화하기 위해 하드웨어 지원 메모리 격리 및 V8 샌드박싱을 구현하게 되었다는 점을 보여준다.

원저자: Martin Schwarzl, Haocheng Xiao, Albert Pedersen, Sam Ainsworth, Nigel Topham

게시일 2026-08-19
📖 6 분 읽기🧠 심층 분석

원저자: Martin Schwarzl, Haocheng Xiao, Albert Pedersen, Sam Ainsworth, Nigel Topham

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

현대 디지털 환경에서 우리의 방대한 온라인 활동은 멀리 떨어진 중앙 집중형 데이터 센터가 아니라, 우리와 훨씬 가까운 곳에 위치한 서버에서 이루어집니다. 에지 컴퓨팅(edge computing)이라고 알려진 이 방식은 웹사이트와 애플리케ชัน이 근처에서 데이터를 처리함으로써 거의 즉각적으로 반응할 수 있게 해줍니다. 이러한 속도를 가능하게 하기 위해 클라우드플레어(Cloudflare)와 같은 기업들은 동일한 물리적 컴퓨터에서 수천 개의 서로 다른 고객 프로그램을 동시에 실행합니다. 그들은 각 고객에게 격리된 별도의 컴퓨터를 제공하는 대신, 하나의 커다로 된 소프트웨어 환경을 공유함으로써 이를 수행합니다. 이 설계는 매우 효율적이지만, 독특한 취약점을 만들어냅니다. 만약 한 프로그램이 다른 프로그램의 메모리를 엿볼 수 있다면, 비밀번호나 비밀 키와 같은 민감한 정보를 훔칠 수 있기 때문입니다. 수년 동안 보안 전문가들은 컴퓨터가 정보를 처리하는 방식의 미세하고 보이지 않는 지연을 이용해 다른 프로그램이 보유한 데이터를 추측하는 '스펙터(Spectre)' 공격이라 불리는 특정 유형의 트릭에 대해 우려해 왔습니다.

클라우드플레어와 에든버러 대학교의 연구진은 이러한 이론적 위험이 매우 실질적이고 실제적인 위험임을 최근 입증했습니다. 그들은 이러한 트릭을 막기 위해 클라우드플레어가 마련한 엄격한 보안 규칙에도 불구하고, 악의적인 프로그램이 인터넷을 통해 이벤트의 타이밍을 관찰함으로써 비밀을 훔칠 수 있음을 보여주었습니다. 연구팀은 정교한 기술의 조합을 사용하여 시스템의 방어 체계를 우회할 수 있을 만큼 충분히 정밀하게 시간을 측정할 수 있음을 증证明했습니다. 그들은 동일한 머신에서 실행 중인 피해자 프로그램으로부터 비밀 디지털 토큰을 추출하는 데 성공했으며, 이는 이전의 어떤 시도보다 수백 배 더 빨랐습니다. 이 발견은 회사가 사용자 보호를 위해 소프트웨어 기반의 경고에서 하드웨어 기반의 장벽으로 보안 아키텍처를 전면 개편하도록 만들었습니다.

이야기는 이 에지 컴퓨터들이 어떻게 구축되는지에서 시작됩니다. 초당 수백만 건의 요청을 처리하기 위해, 클라우드플레어는 단일 프로세스(모든 활성 프로그램을 담고 있는 커다란 컨테이너) 내부에서 많은 다양한 고객 스크립트를 실행합니다. 이는 각 프로그램이 자신만의 별도 상자 안에서 실행되던 과거의 시스템과는 다릅니다. 이러한 공유 방식은 모든 것을 더 빠르게 만들지만, 한 스크립트가 이웃의 메모리를 읽을 방법을 찾아낸다면 그 이웃이 하는 모든 일을 볼 수 있다는 것을 의미합니다. 이를 방지하기 위해 클라우드플레어는 몇 가지 안전 조치를 도입했습니다. 그들은 프로그램이 읽을 수 있는 시계(clock)를 동결하여 시간을 정밀하게 측정하는 것을 차단했습니다. 또한 프로그램이 메모리를 공유하거나 여러 스레드를 동시에 실행하는 능력을 제거했습니다. 추가로, 그들은 '동적 프로세스 격리(Dynamic Process Isolation)'라는 감시 시스템을 설치하여 스크립트의 행동을 모니터링했습니다. 만약 스크립트가 시간을 너무 자주 측정하려는 것처럼 의심스러운 행동을 하면, 시스템은 해당 스크립트를 공유 프로세스에서 쫓아내어 자신만의 격리된 상자에 넣습니다.

연구진은 이러한 방어책이 정말 충분한지 테스트하기로 했습니다. 그들은 문제의 핵심인 '시간'부터 해결했습니다. 시스템이 일반적인 작업 중에는 시계를 동결했기 때문에, 공격자들은 외부에서 시간을 측정할 방법이 필요했습니다. 그들은 웹소켓(WebSockets)이라는 기능을 사용할 수 있다는 것을 발견했는데, 이는 프로그램이 서버와 지속적인 연결을 유지할 수 있게 해주는 기능입니다. 이 연결을 통해 메시지를 주고받음으로써, 메인 프로그램이 바쁜 와중에도 작동하는 원격 타이머를 만들 수 있었습니다. 그들은 이 실험을 실험실이 아닌 실제 운영 환경에서 테스트했으며, 약 1밀리초(ms)의 해상도로 시간을 측정할 수 있다는 것을 발견했습니다. 이것이 느리게 들릴 수도 있지만, 공격을 시작하기에는 충분했습니다.

다음 과제는 시그널을 번잡한 인터넷 환경 속에서도 들릴 만큼 크게 만드는 것이었습니다. 단 하나의 비밀 비트 정보는 불과 몇 나노초의 지연만을 발생시키는데, 이는 그들의 원격 타이머로 측정하기에는 너무 작은 수치입니다. 연구팀은 '증폭(amplification)'이라는 기술을 사용했습니다. 시끄러운 방에서 속삭임을 들으려고 할 때, 상대방에게 똑같은 말을 계속 반복해 달라고 요청하거나 소리를 울리게 하는 장치를 사용하는 것과 같습니다. 연구진은 아주 작은 지연을 수천 번 반복하여 그 효과를 쌓아 올림으로써, 총 지연 시간이 몇 밀리초까지 커지도록 만드는 장치를 구축했습니다. 이를 통해 '예'와 '아니오'라는 답변 사이의 차이를 실제 네트워크의 지터(jitter)와 노이즈 속에서도 감지할 수 있을 만큼 크게 만들었습니다.

신뢰할 수 있는 타이머와 시그널 증폭 방법을 갖춘 연구팀은 실제 데이터 탈취에 착수했습니다. 그들은 컴퓨터가 알아차리지 못하게 하면서 비밀을 드러내도록 컴퓨터를 속이는 방법이 필요했습니다. 그들은 컴퓨터가 다음에 무엇을 해야 할지 예측하고, 확신이 들기 전에 미리 작업을 시작하는 '추측 실행(speculative execution)' 방식을 사용했습니다. 만약 예측이 틀리면 컴퓨터는 보통 그 작업을 폐기합니다. 그러나 연구진은 컴퓨터가 그 작업의 흔적을 캐시(cache, 작고 빠른 메모리 영역)에 남기도록 만드는 방법을 찾아냈습니다. 코드를 정교하게 배치함으로써, 그들은 컴퓨터가 특정 비밀 데이터를 읽도록 유도할 수 있었습니다. 비록 컴퓨터가 나중에 자신의 예측이 틀렸음을 깨닫고 작업을 중단하더라도, 데이터를 읽는 행위 자체가 캐시에 흔적을 남겨 나중에 해당 위치에 접근할 때 시간이 더 오래 걸리게 만들었습니다. 이 접근 시간을 측정함으로써, 그들은 비밀 데이터가 읽혔는지 여부를 알 수 있었습니다.

연구진은 이 요소들을 결-합하여 전체 공격 체인을 완성했습니다. 먼저, 그들은 클라우드플레어 시스템의 'Durable Objects'라는 특수 기능을 사용하여 악의적인 스크립트가 일반적인 시간 제한에 걸려 중단되지 않고 몇 시간 동안 계속 실행되도록 했습니다. 이를 통해 피해자와 동일한 공유 프로세스에 머무를 수 있었습니다. 그다음, 원격 타이머와 증폭 장치를 사용하여 피해자 데이터의 메모리 주소를 유출했습니다. 데이터의 위치를 파악한 후, 그들은 두 번째 장치를 사용하여 실제 비밀(이 테스트에서는 인증에 사용되는 디지털 토큰)을 읽어냈습니다. 그들은 이 과정을 비트 단위로 반복하여 전체 비밀을 재구성했습니다.

결과는 놀라웠습니다. 실제 운영 환경에서 연구팀은 초당 최대 12비트의 속도로 데이터를 훔칠 수 있었습니다. 이는 시간당 약 120비트 정도에 불애했던 이전의 시도들에 비해 엄청난 발전입니다. 공격은 정확했으며, 비밀 비트를 99% 이상의 확률로 정확히 식설정했습니다. 결정적으로, 이 공격은 감시 시스템을 회피하는 데 성공했습니다. 연구진은 원격 타이머와 장기 연결을 사용하는 방식이 탐지 시스템을 혼란스럽게 만든다는 것을 발견했습니다. 시스템은 스크립트가 특정 내부 카운터에 얼마나 자주 접근하는지를 보고 악성 여부를 판단했지만, 이들의 공격 타이밍은 해당 카운터들을 정상적으로 보이게 만들었습니다. 스크립트가 실행되는 동안 작업을 끝내지 않았기 때문에, 시스템이 스크립트를 격리하기 전에 데이터를 탈취할 수 있었습니다.

이 발견은 하드웨어 수준의 트릭을 막기 위해 소프트웨어에만 의존하는 것이 얼마나 근본적인 결함이 있는지를 강조했습니다. 시계를 동결하고 행동을 모니터링하는 등의 클라우드플레어 보안 조치는 적절한 도구를 갖춘 숙련된 공격자를 막기에 충분하지 않았습니다. 이 시연에 대응하여 클라우드플레어는 일련의 새로운 방어책을 구현했습니다. 그들은 프로그램이 메모리에 접근하는 방식을 제한하는 샌드박스를 도입하여, 프로그램이 자신의 영역 밖을 보려고 해도 이웃의 비밀에 도달할 수 없도록 데이터 주변에 울타리를 쳤습니다. 또한 일반적인 행동이 아닌 공격의 특정 패턴을 포착하도록 탐지 방법을 개선했습니다. 마지막으로, 가장 중요한 것은 하드웨어 기반의 격리 시스템을 배포한 것입니다. 이 시스템은 컴퓨터 자체의 물리적 능력을 사용하여 각 고객의 데이터를 별도의 방에 가둠으로써, 설령 한 프로그램이 침입을 시도하더라도 하드웨어 자체가 그 시도를 차단하도록 보장합니다.

이 연구는 고속 컴퓨팅의 세계에서 효율성과 보안이 종종 서로 충돌한다는 사실을 강력하게 상기시켜 줍니다. 이러한 시스템의 속도와 유연성의 한계를 밀어붙임에 따라, 새로운 취약점은 필연적으로 나타납니다. 연구진은 단순히 버그를 찾은 것이 아니라, 공유 시스템을 소프트웨어 체크로 보호하려는 전략 전체가 현대의 정교한 공격 앞에서는 불충분하다는 것을 보여주었습니다. 해결책은 하드웨어로 강제된 경계로의 전환을 요구했으며, 이는 때때로 비밀을 지키는 유일한 방법은 소프트웨어가 넘을 수 없는 벽을 세우는 것임을 증명했습니다. 이 연구는 에지 컴퓨팅이 놀라운 속도와 편의성을 제공하지만, 매초 흐르는 방대한 양의 민감한 데이터를 보호하기 위해서는 더 높은 수준의 물리적 보안이 필요함을 확인시켜 줍니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →