로우해머 공격이란? GPU 메모리 해킹의 모든 것

로우해머(Rowhammer) 공격은 메모리 반도체에 반복적으로 접근해 데이터를 조작하는 하드웨어 해킹 기법입니다. 최신 엔비디아 GPU까지 위협하는 이 공격의 원리와 작동 방식, 그리고 우리가 알아야 할 대응책을 쉽게 설명합니다.

소프트웨어 버그는 패치로 끝난다. 근데 메모리 반도체 자체에 구멍이 있다면? 로우해머(Rowhammer) 공격이 딱 그 케이스다. 코드를 고치는 게 아니라, 물리적인 하드웨어를 ‘속여서’ 데이터를 바꿔버리는 방식이다. 최근 보안 연구에서 이 공격이 다시 수면 위로 올라왔는데, 이번엔 엔비디아 GPU까지 타깃이 됐다.

로우해머, 이름이 곧 원리다

로우해머는 메모리의 특정 행(row)을 망치(hammer)로 두드리듯 반복해서 접근하는 공격이다. 컴퓨터 메인 메모리로 쓰이는 DRAM(Dynamic Random-Access Memory)은 미세한 축전기에 전하를 저장해서 데이터를 기록한다. 셀이 격자 형태로 촘촘하게 박혀 있는 구조다.

공격자는 특정 메모리 주소 행을 아주 짧은 시간 동안 수십만 번 이상 읽어들인다. 말 그대로 한 지점을 계속 두드리는 거다. 그 ‘진동’이 인접한 다른 행에 전달된다. 결국 옆 셀의 전하가 미세하게 흔들리면서 저장된 데이터가 0에서 1로, 1에서 0으로 바뀐다. 이걸 ‘비트 플립(bit flip)’이라고 부른다. 딱 한 비트짜리 오류처럼 보이지만, 그게 시스템 권한 전체를 넘겨주는 열쇠가 된다.

왜 하필 GPU 메모리인가

기존 로우해머 공격은 CPU가 관리하는 시스템 메인 메모리를 노렸다. 공격 무대가 GPU로 옮겨간 건 필연적인 수순이다. GPU에 탑재되는 GDDR(Graphics Double Data Rate) 메모리는 일반 DRAM보다 대역폭이 훨씬 넓고, 집적도도 극단적으로 높다.

데이터를 빠르고 빽빽하게 처리해야 하는 구조 특성상, GDDR 메모리 셀 간격은 그만큼 좁다. 로우해머 ‘진동’ 효과가 더 쉽게, 더 넓게 퍼지는 환경이 만들어지는 거다. Ars Technica가 전한 바에 따르면 ‘GDDRHammer’나 ‘GeForge’ 같은 공격 기법들이 이미 GPU 메모리 취약점을 집중 공략하고 있다.

GDDRHammer: GPU를 발판 삼아 CPU까지

GPU 로우해머가 더 위험한 이유는 공격 경로 자체가 다르기 때문이다. 단계별로 보면 이렇다.

  • 1단계: GPU에서 악성 코드 실행
    공격자는 그래픽 렌더링이나 연산 작업으로 위장한 코드를 GPU에서 돌린다.
  • 2단계: GDDR 메모리 해머링
    GPU 내부에서 특정 GDDR 메모리 영역에 로우해머 공격을 가해 인접 셀에 비트 플립을 만들어낸다.
  • 3단계: 시스템 메모리 직접 변조
    핵심이 여기다. GPU는 DMA(Direct Memory Access)를 통해 CPU를 거치지 않고 시스템 메인 메모리에 바로 접근하는 권한이 있다. GPU 메모리에서 유발된 비트 플립이 이 DMA 경로를 타고 시스템 메모리의 페이지 테이블 엔트리 같은 핵심 데이터를 건드리게 된다.
  • 4단계: 권한 상승
    시스템 메모리의 핵심 데이터가 조작되면 끝이다. 공격자는 자기 프로그램에 관리자(root) 권한을 박아 넣고 시스템 전체를 손에 넣는다.

GPU가 입구였고, 목적지는 처음부터 CPU 영역이었던 셈이다. GPU 코드 실행 자체가 의심받지 않는다는 점에서 이 경로는 꽤 교묘하다.

내 PC도 위험한가

솔직히 말하면, 일반 PC 사용자가 당장 이 공격에 노출될 가능성은 낮다. 하드웨어 기반 공격은 실행 조건이 까다롭다. 공격 코드를 로컬 시스템에서 직접 돌려야 하고, 타깃 메모리 구조에 대한 정밀한 정보도 필요하다. 아무 PC에나 원격으로 날리는 식이 아니다.

실질적으로 위험한 건 클라우드 환경이다. 여러 사용자가 GPU 자원을 공유하는 클라우드 컴퓨팅 환경이나 데이터센터에서, 한 가상머신(VM) 사용자가 하드웨어 취약점을 이용해 다른 VM이나 호스트 시스템 전체를 뚫는 시나리오가 훨씬 현실적이다. AI 연산 수요가 폭발하면서 GPU 클라우드 자원을 공유하는 케이스가 급증했는데, 공격 표면도 같이 넓어지고 있다.

대응책은 있나

패치 하나로 끝나는 소프트웨어 버그와 다르다. 근본적인 해결책은 메모리를 만드는 단계에서 나올 수밖에 없다.

  • ECC 메모리: 오류 정정 코드(Error-Correcting Code) 메모리는 비트 플립을 감지하고 수정하는 기능이 내장되어 있다. 로우해머에 대한 가장 직접적인 방어책인데, 주로 서버나 워크스테이션에 쓰이고 일반 소비자용 PC에는 아직 드물다는 게 아쉬운 부분이다.
  • TRR (Target Row Refresh): 메모리 컨트롤러가 특정 행에 접근이 비정상적으로 몰리면, 인접한 행을 강제로 ‘리프레시’해서 전하 손실을 막는 방어 기술이다. 최신 메모리에는 대부분 탑재되어 있다. 근데 새로운 공격 기법들은 이 TRR을 우회하는 방법까지 연구된 상태다. 이 싸움은 아직 끝나지 않았다.
  • 제조사 펌웨어 업데이트: GPU나 메인보드 제조사가 메모리 리프레시 주기를 조정하거나 비정상 접근 패턴을 감시하는 펌웨어를 배포하면 일부 완화 여지가 있다. 시스템 업데이트를 미루지 말아야 하는 이유가 여기에도 있다.

장기적으로는 반도체 설계 단계부터 물리적 간섭 효과를 줄이는 새로운 공정 기술이 필요하다. 현재 방어 기술들은 결국 전부 사후 대응에 가깝다.

보안의 무대가 하드웨어 안으로 들어왔다

로우해머 공격이 보여주는 건 단순하다. 사이버 보안의 싸움이 운영체제나 앱 레벨에서 끝나지 않는다는 것. 실리콘의 물리적 한계, 전자의 움직임까지 이제 보안의 영역으로 들어왔다. GPU가 AI 연산의 핵심 칩으로 자리 잡으면서, 동시에 더 매력적인 공격 타깃이 됐다. 공격자 입장에서는 당연한 선택이다.

앞으로의 보안은 코드만 보는 게 아니라 하드웨어의 미세한 물리적 특성까지 고려해야 한다. 반도체 업계와 보안 업계 모두에게 새로운 숙제가 생긴 거다.

출처: Ars Technica

테크가이드팀

테크가이드팀

Home-In-One 테크가이드팀은 IT 기기 비교, 소프트웨어 추천, 트러블슈팅 가이드 등 실용적인 기술 콘텐츠를 제작합니다. 초보자도 쉽게 따라할 수 있는 단계별 가이드를 지향합니다.