AMD Family 16h의 잠기지 않는 DRAM 주소 변환 레지스터를 겨냥한 'Spaghettifying DRAM' 코드 공개
- GitHub 저장소는 AMD Family 16h CPU에서 개발·시험한 DRAM 조작 연구를 공개했으며, 이 세대는 DRAM 컨트롤러의 주소 변환 레지스터를 문서화하고 잠글 수 없다고 적힌 마지막 세대임
- 소개된 기법은 ring 0 권한으로 DRAM 컨트롤러 설정을 바꿔 CPU와 ring 0에도 보이지 않도록 격리된 메모리 영역을 건드리는 것을 목표로 함
- AMD Family 17h 이후 문서는 해당 변환 레지스터 정보를 빼고 있어, 후속 세대 적용 여부는 자료만으로 확인되지 않음
- 저장소에는 kernel, userspace, analysis, data, examples 디렉터리와 Makefile, 사용 문서가 있으며 공개 시점에는 초기 커밋 1개로 구성됨
Hacker News opinions
이건 batteringram.eu에서 보인 동적 메모리 별칭 공격을 소프트웨어만으로 만질 수 있게 한 버전처럼 보임. 원래 RAM 버스는 속도와 신호 무결성 때문에 손댈 수 없다고 여겼는데 그 장벽을 우회한 셈임.
연구 자체는 대단해 보이는데, 설명문에 AI를 쓴 흔적이 너무 거슬림. 같은 말을 계속 바꿔 쓰는 식이라 읽기 피곤했음.
나는 AI라고 단정하진 않았음. "Foo is the bar" 같은 문장 구조는 글 전체의 이상한 분위기와는 맞아 보이더라.
Black Hat 발표가 정말 기대됨. Christopher Domas는 저수준 연구를 설명하는 솜씨가 좋았고, 예전의 Psychological Warfare in Reverse Engineering이나 MoVfuscator 발표도 인상 깊었음.
Domas가 Intel에 간 뒤 한동안 조용했는데 이걸 들고 돌아온 건 반가움. 며칠 전에도 다른 연구를 공개했다는 링크가 올라왔더라.
영향받는 시스템에서는 ring 0 루트가 원래 음수 링 영역에 숨긴 것까지 거의 전부 접근하는 건가? AMD Family 16h 외 CPU에도 적용되는지가 가장 궁금함.
컨트롤러 주소 변환 레지스터를 알면 적용 가능해 보임. README도 Family 16h가 이 레지스터를 문서화했고 잠글 수 없다고 명시한 마지막 세대라서 그곳에서 개발하고 시험했다고 함.
DCT 스위즐링은 원래 왜 필요한 기능인지 궁금함.
스위즐링이 없으면 2차원 배열을 특정 스트라이드로 훑을 때 접근이 한 채널의 한 뱅크에 몰릴 수 있음. 주소 분포를 섞어서 그런 불운한 접근 패턴을 줄이는 용도고, 반대로 미세 벤치마크로 패턴을 추론하면 물리 ASLR을 깨는 연구도 가능해 보임.
진짜 질문은 KVM 탈출이 되는지, 마이크로코드나 다른 방식으로 고칠 수 있는지임. 그리고 실제로 재현되는지도 봐야 함.
일반적인 하이퍼바이저라면 가상화용으로 설계된 레지스터 외에 하드웨어 제어 레지스터를 게스트에 직접 노출하지 않을 것 같음. 그걸 노출하면 게스트가 하이퍼바이저와 사실상 같은 권한을 갖게 되니까.
물리 DRAM에 접근할 수 있으면 어차피 이런 건 다 할 수 있는 거 아닌가? 비특권 사용자가 DRAM 컨트롤러 레지스터에 쓰기 권한이 있을 리도 없고, 위협 모델이 잘 안 잡힘.
이건 물리 DRAM 접근이 필요한 게 아니라 전부 소프트웨어로 하는 거임. ring 0만 있으면 CPU나 ring 0에서도 안 보이게 막아둔 영역, 보안 프로세서가 가리려는 영역까지 건드릴 수 있다는 주장임.
투명한 전체 메모리 암호화가 있으면 물리 DRAM을 직접 만져도 막히는데, 이 기법은 그와 다른 문제임.
Jaguar는 2013년 아키텍처인데, 최신 CPU에서 실제로 되는지는 불명확함. Zen 3의 메모리 컨트롤러 레지스터 기준 주소가 다르다는 메모 말고는 새 세대 지원 근거가 안 보임.
Zen은 UMC라는 다른 메모리 컨트롤러 IP를 쓰고 AGESA와 PSP가 부팅 때 설정함. 현대 Zen에 이 공격이 통할지는 AMD만 확실히 말할 수 있을 듯함.
자기 컴퓨터의 소유자라면 원래 이 정도 접근권한은 있어야 한다고 봄. 다만 Xbox나 PlayStation 쪽은 ring 0을 얻은 뒤 방어선이 크게 열릴 수 있으니 신경 쓰일 만함.