상세 컨텐츠

본문 제목

네트워크 요청을 통해 DRAM Rowhammer 버그를 악용하는 Nethammer 공격

국내외 보안동향

by 알약(Alyac) 2018. 5. 18. 16:34

본문

Nethammer—Exploiting DRAM Rowhammer Bug Through Network Requests


지난 주, Throwhammer라 명명 된 첫 번째 네트워크 기반의 원격 Rowhammer 공격인 Throwhammer에 대해 설명한 바 있습니다. 이는 원격 직접 메모리 접근 (RDMA) 채널을 이용해 네트워크 카드를 통해 DRAM에 존재하는 알려진 취약점을 악용합니다.


그리고 지금, 또 다른 연구팀이 네트워크 요청을 처리하는 도중에 캐싱 되지 않은 메모리나 flush instruction을 이용해 시스템을 공격하는데 사용될 수 있는 두 번째 네트워크 기반의 원격 Rowhammer 기술을 발견했습니다.


Rowhammer는 최신 세대의 DRAM 칩에 존재하는 심각한 문제로, 반복적으로 메모리 행에 접근하여 인접 행에 “비트 뒤집기”를 야기시켜 공격자가 메모리 내의 컨텐츠를 변경할 수 있게 됩니다.


이 문제는 공격자의 권한을 커널 수준까지 상승 시키고 취약한 시스템에서 원격으로 코드를 실행하기 위해 다양한 방법으로 악용되어 왔습니다. 하지만, 공격자는 피해자의 기기에 접근이 가능해야만 했습니다.


그러나 Nethammer라 명명 된 새로운 Rowhammer 공격 기술은 패킷을 처리하는데 사용 되는 메모리에 지속적으로 write, rewrite를 함으로써 타겟 시스템에서 임의의 코드를 실행하는데 사용될 수 있습니다. 이는 공격자와 피해자 사이의 네트워크 연결이 빠른 곳에서만 가능합니다.


이로 인해 동일한 메모리 위치 집합으로의 메모리 접근 수가 너무 높아지기 때문에, DRAM에 에러를 유발시켜 DRAM의 비트값을 의도치 않게 뒤집게 되어 메모리 변형이 일어납니다.


이렇듯 데이터 변형이 일어나면, 공격자가 피해자의 시스템에 접근 권한을 얻도록 조작될 수 있게 됩니다.


“Rowhammer 공격을 실행하려면, 메모리 접근이 주메모리에서 직접 제공되어야 합니다. 그러므로, 공격자는 데이터가 캐시에 저장 되어 있지 않은지 확인이 필요합니다.”


캐싱은 공격을 어렵게 하기 때문에, 연구원들은 Rowhammer 공격에 필요한 메모리 셀에서의 행 충돌을 야기시키기 위해 캐시를 우회해 DRAM을 직접적으로 공격하는 방법을 고안했습니다.


연구원들은 아래 3가지 우회 기법으로 Nethammer를 테스트했습니다.


- 패킷을 수신할 때 마다 주소를 플러시(및 재로드)하는 커널 드라이버

- 빠른 캐시 제거를 위한 Intel CAT이 장착 된 Intel Xeon CPU

- ARM 기반 모바일 기기의 캐싱 되지 않은 메모리 


연구원들은 위 3개 시나리오가 모두 가능한 것을 보여주었습니다.


연구원들은 실험 시 타겟 시스템에 매 350ms마다 최대 500 Mbit/s의 UDP 패킷 스트림을 보내는 방식으로 비트플립을 유도할 수 있었습니다.


Nethammer 공격 기법은 일반적인 Rowhammer 공격과 달리 어떠한 공격 코드도 필요로 하지 않기 때문에(시스템에 공격자가 제어하는 코드가 없음), 대부분의 방어 대책으로는 이를 막을 수 없습니다.


Rowhammer는 컴퓨터 하드웨어의 결점을 악용하기 때문에, 소프트웨어 패치로는 이 문제를 완벽히 해결할 수 없습니다. 연구원들은 Rowhammer 공격은 실존할 뿐만 아니라, 실제로 심각한 피해를 입힐 가능성이 있다고 밝혔습니다.


이 공격에 대한 자세한 내용은 [PDF]에서 확인하실 수 있습니다 .



https://arxiv.org/pdf/1805.04956.pdf



관련글 더보기

댓글 영역