상세 컨텐츠

본문 제목

컴퓨터 메모리에서 민감 데이터를 탈취하는 RAMBleed 공격 발견

국내외 보안동향

by 알약(Alyac) 2019. 6. 12. 11:03

본문

RAMBleed Attack Can Steal Sensitive Data From Computer Memory


연구원들이 컴퓨터 메모리에 저장된 데이터의 보안에 영향을 미치는 새로운 취약점을 발견했습니다. 


이들은 해당 취약점을 이용하여 일반 사용자 권한으로 OpenSSH 서버에서 서명 키를 추출해내는데 성공했습니다.


RAMBleed라 명명된 이 공격은 Rowhammer 취약점을 기반으로 하며, ECC(error-correcting code) 기능이 있는 RAM의 경우에도 사용될 수 있습니다.


Rowhammer는 RAM에 저장된 정보를 격리하는 실험 연구를 통해 시작되었습니다. 


※ Rowhammer 취약점이란?


D 램이 점점 더 고집적화될수록 메모리 구조 상 내부 영역들 간 간섭현상이 발생할 가능성이 높아지는데, 이때, 해커가 RAM의 특정 영역에 반복적으로 접근하는 악성코드를 통해 메모리 상태가 변경되어 비트 값이 0 -> 1 또는 1-> 0으로 바뀌는 비트 플리핑(bit flipping)을 유발한다. 공격자는 이를 통해 관리자 권한을 확보할 수 있으며, 메모리 읽기 및 쓰기가 가능해진다.


▶ Rowhammer 취약점 상세설명 바로가기

소프트웨어를 이용하여 하드웨어에 영향을 미칠 수 있는 Row Hammer 취약점


메모리 모듈이 물리적으로 작아지고 저장 공간은 커짐에 따라, 내부 셀 사이의 공간은 더욱 좁아졌습니다. 


이로써 메모리 비트의 전하를 변경할 수 있는 전기적 간섭에 대한 성공 가능성이 생겼습니다.


연구원들은 2014년 발행된 논문에서 동일한 주소를 반복적으로 읽을 경우 근처에 있는 데이터가 손상되어 저장된 데이터를 변경시킬 수 있다는 비트 플리핑(Bit flipping)에 대해 밝혔습니다.


비트 플리핑(Bit flipping)이란?


동일한 메모리 행(row)에 반복적인 접근(hammering) 과정을 통하여 전기 방해가 일어나면서, 해당 메모리 행에 인접해 있는 메모리 행에 영향을 미치는 현상이다.


▶ 비트 플리핑(Bit flipping) 관련 논문 바로가기

Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors


정보를 변경하는 대신 읽는 RAMBleed


RAMBleed도 Rowhammer와 동일한 법칙을 사용하지만, 메모리의 정보를 변경하는 대신 메모리 정보를 읽는다는 차이점이 있습니다.


이는 데이터를 탈취하는데 더욱 적합하며, Rowhammer 공격과는 달리 메모리 ECC로 예방하기 어렵다는 특징이 있습니다.


전문가는 RamBleed 공격은 ECC 메커니즘을 통해 모든 비트 플립이 수정되더라도, ECC 메모리의 메모리 보안을 깨트릴 수 있다고 전했습니다.


연구원들은 RAMBleed 공격의 비트 플리핑은 공격자가 접근할 수 없는 타깃 비트의 위아래 비트 방향 및 값에 따라 달라진다고 밝혔습니다.


공격자는 피해자의 비트 값을 알아내기 위해, 메모리를 매핑하고 메모리 페이지에서 타깃 비트와 동일한 오프셋에 있는 플립 가능한 비트를 찾아야 합니다.


[그림 1] 양방향 RAMBleed

<이미지 출처: https://www.documentcloud.org/documents/6150180-RamBleed-attack-CVE-2019-0174.html>


RAMBleed는 CVE-2019-0174로 등록되었으며 기본 점수는 10점 만점에 3.8점을 받았습니다.


이 취약점은 DDR3 RAM 환경에서 테스트되었지만, 연구원들은 DDR4의 경우에도 동일한 취약점이 동작할 것이라고 밝혔습니다. 


실제로 Rowhammer 기반 비트 플립은 DDR4 환경에서 시연된 적이 있습니다.


인텔은 Rowhammer 방식의 공격에 저항할 수 있는 DRAM 모듈이 대부분이 포함되어 있다며, 해당 기능을 사용하라고 조언했습니다.


RAMBleed 방어 가능성


TEE(Trusted Execution Environment) 기능이 활성화된 프로세서를 사용하는 시스템에서는 RAMBleed 공격을 예방할 수 있습니다.


인텔의 SGX(Software Guard Extensions), ARM의 TrustZone, AMD의 SEV(Secure Encrypted Virtualization)와 같은 TEE 기능은 하드웨어 기반 메모리 암호화를 제공합니다.


또한, RAMBleed와 같은 메모리 읽기 유형의 공격 위험을 줄이기 위해 메모리에서 암호화 키를 플러시 할 수도 있습니다.

 

RAMBleed 공격은 새로 고침 간격(기본 설정 64ms)이 최소 1번 남아있어야 작동이 가능하기 때문에, 공격자가 기밀 데이터를 읽을 수 있는 확률을 감소시킬 수 있습니다.


이 새로운 Rowhammer 기반 공격은 "RAMBleed: Reading Bits in Memory Without Accessing Them"라는 논문에 자세히 설명되어 있습니다.


출처:

https://www.bleepingcomputer.com/news/security/rambleed-attack-can-steal-sensitive-data-from-computer-memory/

관련글 더보기

댓글 영역