x

이메일로 만나보는 스타트업 가이드

투자, 행사, 정부사업 등 스타트업 생태계 소식을 이메일로 편하게 받아보세요.

보안 연구자가 칩 동작 원리를 조사할 때는 대부분 윈도나 맥OS, 리눅스 같은 범용 OS를 사용한다. 하지만 이들 OS는 일상적인 사용을 목적으로 설계되어 있어 칩 내부 동작을 정확히 측정하지 못하는 경우가 있다. 이에 MIT 연구팀이 칩 내부 구조를 연구하기 위한 독자 OS인 프랙털(Fractal)을 개발했다.

스펙터(Spectre)나 멜트다운(Meltdown) 같은 칩 내재 취약점은 전 세계 사용자와 기업에 큰 영향을 미친다. 이 때문에 보안 연구자는 캐시나 메모리 관리, 분기 예측 등 칩 내부 구조를 정확히 측정해 어떤 공격이 실행 가능한지 파악하려 한다.

칩 내부 구조를 파악할 때는 윈도·맥OS·리눅스 등 OS 핵심 부분인 커널을 재작성해 테스트를 수행한다. 하지만 이들 OS는 어디까지나 일상 사용을 위해 설계되어 있어 테스트 중에도 임의로 메모리 영역을 관리하거나 프로세스 스케줄링을 설정·해제하거나 처리 인터럽트를 발생시키는 경우가 있다. 이로 인해 본래 측정을 위해 일정하게 유지되어야 할 조건 자체가 변화한다는 문제가 지적되고 있다.

이에 MIT 연구팀은 칩 연구를 목적으로 처음부터 새로 작성한 OS(커널)인 프랙털을 개발했다. 프랙털이 지닌 특징은 다른 파라미터를 크게 변경하지 않고도 서로 다른 권한 수준에서 테스트를 실행할 수 있다는 것.

범용 OS에서는 시스템 자체가 권한 수준이나 주소 공간, 스케줄링을 관리해 모든 측정에 영향을 미친다. 프랙털은 사용자 프로세스 메모리 내에 배치되면서 커널 권한으로 실행되는 외부 커널 스레드를 활용해 백그라운드 노이즈가 거의 없는 테스트 환경을 구현했다.

연구팀은 실제로 프랙털을 사용해 애플이 개발한 독자 칩 M1을 조사했다. 조사 초점은 CPU가 다음에 실행될 가능성이 있는 코드를 예측하는 데 사용하는 분기 예측에 맞춰졌다. 분기 예측은 성능에 있어 중요하지만 사이드채널(side-channel) 공격에 악용될 수 있으며 실제로 스펙터와 멜트다운 원인이 되기도 했다.

M1에는 CSV2라고 불리는 ARM 보안 기능이 탑재되어 있으며 이는 특정 권한 수준에서 실행 중인 코드가 다른 권한 수준에서의 투기적 실행(speculative execution)을 유도하는 걸 방지하기 위한 것이다. MIT 연구팀은 조사를 통해 이 보호 기능이 간접 분기 예측 실행 단계에서 유효하게 작동함을 확인했다.

하지만 CPU는 보호 기능이 동작하기 전에 잠재적 타깃을 명령 캐시에 페치하고 있다는 사실도 밝혀졌다. 이 페치는 사이드채널을 통해 관측 가능하며 사용자 코드가 권한 수준을 넘어 커널이 캐시에 불러오는 내용에 영향을 줄 수 있다는 것이다.

연구팀은 또 아이폰이나 아이패드 등에 탑재된 애플 실리콘이 팬텀 투기(phantom speculation)라는 오예측 현상을 보인다는 사실도 발견했다. 팬텀 투기에서는 일반 명령이 CPU에 의해 분기로 잘못 해석되어 프로그램이 요청하지 않은 투기적 동작이 유발될 수 있다고 한다. MIT 연구팀은 이미 조사 결과를 애플에 공개했다.

연구팀은 프랙털을 단일 프로젝트가 아닌 인프라스트럭처로 설계해 다른 보안 연구자도 프랙털을 활용해 테스트할 수 있도록 했다. 프랙털은 x86_64·ARM64·RISC-V를 지원하며 연구자가 익숙하게 사용하는 표준 도구 포팅 버전도 제공된다. 관련 내용은 이곳에서 확인할 수 있다.

뉴스 레터 구독하기

Related Posts

Next Post