자바스크립트만으로 원격 Rowhammer 공격 구현
초록
이 논문은 캐시 플러시 명령어 없이 순수 메모리 접근만으로 DRAM의 Rowhammer 현상을 유발할 수 있음을 보인다. 캐시 교체 정책을 정밀히 분석·조합해 빠른 캐시 축출(eviction) 전략을 만들고, 이를 자바스크립트 코드에 적용해 웹 페이지 방문자들의 컴퓨터에서 원격으로 비트 플립을 일으킨다. 실험 결과 최신 DDR3·DDR4 모듈에서도 성공했으며, 기존 소프트웨어·하드웨어 방어책을 무력화한다.
상세 분석
본 연구는 기존 Rowhammer 공격이 필수적으로 사용해 온 clflush 명령어를 완전히 배제하고, 순수 메모리 읽기·쓰기 연산만으로 DRAM 셀 간 전자 간섭을 유발하는 방법을 제시한다. 이를 위해 저자들은 최신 인텔 CPU의 복잡한 캐시 교체 정책을 체계적으로 탐색하였다. 캐시 라인 축출을 위해서는 ‘동일 집합(congruent) 주소’를 찾아야 하는데, 물리 주소와 캐시 슬라이스 매핑을 역공학한 결과를 활용해 주소 집합을 자동 생성한다. 이후 접근 패턴을 설계하는데, 단순히 n+1개의 주소를 순차 접근하는 전통적 방법은 포스트‑Sandy Bridge 아키텍처에서 낮은 축출 효율을 보인다. 저자들은 오프라인 단계에서 파라미터 공간(집합 크기, 접근 순서, 반복 횟수 등)을 전면 탐색해 최적의 ‘eviction strategy’를 도출하고, 이를 온라인 단계에서 실시간으로 적용한다. 특히 동적 eviction set과 동적 접근 패턴을 결합한 방법은 사전 지식이 전혀 없는 원격 시스템에서도 높은 성공률을 보인다.
이러한 캐시 축출 메커니즘을 자바스크립트 환경에 옮기기 위해, 대용량 배열을 이용해 OS가 페이지를 대형 페이지(2 MiB)로 매핑하도록 유도하고, 물리 주소의 일부를 추정한다. 이후 두 개의 물리적으로 인접한 DRAM 행을 찾아 고주파수로 교차 접근·축출함으로써 인접 행에 전하 누설을 일으킨다. 비트 플립이 감지되면, 페이지 테이블을 조작하거나 원격 코드 실행을 시도하는 기존 Rowhammer 활용 기법을 그대로 적용한다.
실험에서는 노트북부터 데스크톱, 다양한 DDR3·DDR4 모듈까지 8가지 하드웨어 구성을 테스트했으며, 모두에서 64 ms 이하의 기본 리프레시 주기에서도 비트 플립을 재현했다. 특히 클라우드 환경이나 가상 머신에서도 동일한 공격이 가능함을 입증하였다. 기존 방어책인 clflush 금지, 메모리 할당 무작위화, 페이지 테이블 보호 등은 이 공격에 전혀 효과가 없으며, 하드웨어 수준의 리프레시 주기 감소이나 BIOS 업데이트만이 근본적인 해결책으로 제시된다.
결과적으로, 캐시 교체 정책을 정밀히 모델링하고 자동화된 eviction 전략을 도출함으로써, 소프트웨어만으로도 DRAM 물리적 결함을 원격에서 악용할 수 있음을 증명한다. 이는 웹 브라우저라는 가장 널리 배포된 실행 환경을 통해 대규모 공격이 가능함을 의미하며, 메모리 보안 패러다임에 중대한 변화를 요구한다.
댓글 및 학술 토론
Loading comments...
의견 남기기