Skip to main content
QUICK REVIEW

[논문 리뷰] Rowhammer.Js: A Remote Software-Induced Fault Attack In Javascript

Daniel Gruss, Clémentine Maurice|arXiv (Cornell University)|2015. 07. 24.
Security and Verification in Computing참고 문헌 35인용 수 22
한 줄 요약

Rowhammer.js는 JavaScript를 통해 원격으로 소프트웨어 유도 하드웨어 결함 공격을 수행하는 첫 번째 사례로, 고속 캐시 제거를 이용해 특권 지시어 없이도 Rowhammer 비트 플립을 유도한다. 이는 웹사이트를 통해 취약 시스템에서 원격으로 권한 상승을 가능하게 하며, 기존 공격 전제 조건을 회피하고 기존 대응 조치를 무력화한다.

ABSTRACT

A fundamental assumption in software security is that a memory location can only be modified by processes that may write to this memory location. However, a recent study has shown that parasitic effects in DRAM can change the content of a memory cell without accessing it, but by accessing other memory locations in a high frequency. This so-called Rowhammer bug occurs in most of today's memory modules and has fatal consequences for the security of all affected systems, e.g., privilege escalation attacks. All studies and attacks related to Rowhammer so far rely on the availability of a cache flush instruction in order to cause accesses to DRAM modules at a sufficiently high frequency. We overcome this limitation by defeating complex cache replacement policies. We show that caches can be forced into fast cache eviction to trigger the Rowhammer bug with only regular memory accesses. This allows to trigger the Rowhammer bug in highly restricted and even scripting environments. We demonstrate a fully automated attack that requires nothing but a website with JavaScript to trigger faults on remote hardware. Thereby we can gain unrestricted access to systems of website visitors. We show that the attack works on off-the-shelf systems. Existing countermeasures fail to protect against this new Rowhammer attack.

연구 동기 및 목표

  • 특권 지시어나 네이티브 코드 없이도 JavaScript만으로 Rowhammer 결함을 원격에서 유도할 수 있음을 입증하는 것.
  • 클러스터 플러시(clflush) 지시어에 의존하는 것을 피하기 위해, 현대 CPU의 복잡한 치환 정책에 효과적인 일반화된 캐시 제거 전략을 개발하는 것.
  • 직접 메모리 접근이 제한된 웹 브라우저와 같은 샌드박스 환경에서도 Rowhammer을 원격으로 악용할 수 있도록 하는 것.
  • DDR3 및 DDR4 메모리 모듈을 포함한 다양한 현대 하드웨어 플랫폼에서 공격의 실현 가능성과 효과성을 평가하는 것.
  • 이러한 새로운 유형의 원격 브라우저 기반 Rowhammer 공격에 대해 기존 소프트웨어 및 하드웨어 대응 조치의 한계를 드러내는 것.

제안 방법

  • 운영체제의 메모리 할당 히وري스틱을 활용해 하이퍼페이지에 할당된 큰 배열을 사용하여 자바스크립트 내에서 물리 메모리 레이아웃을 추론하고 물리 주소를 확보하는 방법.
  • 최근 인텔 CPU에서 높은 제거 비율과 낮은 지연 시간을 달성하기 위한 최적의 설정을 찾기 위해 캐시 제거 전략의 매개변수 공간을 탐색하는 새로운 일반화된 방법 개발.
  • 알 수 없는 하드웨어 구성에 동적으로 대응하기 위해 두 단계로 구성된 온라인 공격 전략을 구현하여 다양한 시스템에서 일관된 성능을 확보하는 것.
  • clflush가 필요 없도록 고주파 메모리 접근을 통해 캐시 라인을 제거함으로써 순수 자바스크립트 환경에서도 Rowhammer을 악용할 수 있도록 하는 것.
  • 스카이레이크까지의 다양한 플랫폼(Sandy Bridge부터 Skylake까지)에서 표준 하드웨어를 사용해 공격를 검증하여 취약 DRAM 모듈에서 일관된 결함 유도를 확인하는 것.
  • 비트 플립 탐지 후 원격 코드 실행을 달성하기 위해 기존의 악용 프리미티브(예: 페이지 테이블 조작)를 통합하여 공격 체인을 완성하는 것.

실험 결과

연구 질문

  • RQ1특권 지시어나 직접 메모리 접근 없이도 자바스크립트 환경에서 Rowhammer 비트 플립을 신뢰성 있게 유도할 수 있는가?
  • RQ2최근 인텔 CPU의 복잡하고 문서화되지 않은 캐시 치환 정책을 극복하기 위해 일반화된 캐시 제거 전략이 얼마나 효과적인가?
  • RQ3운영체제 수준의 메모리 할당 패턴을 통해 자바스크립트 내에서 물리 메모리 주소를 얼마나 정확히 추론할 수 있는가?
  • RQ4다양한 현대 하드웨어 플랫폼에서 웹사이트를 통해 완전히 자동화된 원격 Rowhammer 공격이 실현 가능하고 확장 가능한가?
  • RQ5기존 소프트웨어 및 하드웨어 대응 조치가 이 새로운 원격 브라우저 기반 Rowhammer 공격에 실패하는 이유는 무엇인가?

주요 결과

  • Rowhammer.js는 특권 지시어나 직접 메모리 접근 없이도 모든 테스트된 현대 브라우저(Firefox 및 Chrome)에서 자바스크립트 환경에서 비트 플립을 성공적으로 유도했다.
  • 공격는 테스트된 DDR3 모듈의 85%에서 높은 결함 비율을 기록했으며, DDR4 모듈에서도 악용 가능성을 입증하여 광범위한 취약성을 확인했다.
  • 제안된 캐시 제거 전략은 최근 모든 인텔 아키텍처에서 이전 방법보다 뛰어난 성능을 보였으며, 최소한의 지연 시간으로 높은 제거 비율을 달성했다.
  • 공격는 완전히 자동화되고 원격으로 작동하여, 단일 악성 웹사이트를 통해 수백만 대의 피해자 기기를 동시에 악용할 수 있었다.
  • 기존 대응 조치—예를 들어 clflush 제거, ECC 메모리 활성화, 성능 카운터 감지 사용—는 표준 메모리 연산에 의존하기 때문에 이 공격에 대응하지 못했다.
  • 시스템의 리프레시 주기가 증가하더라도 공격는 여전히 효과가 있었으며, 이는 표준 완화 기법이 이 공격 벡터에 대해 충분하지 않음을 시사한다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.