최근 한 연구 프로젝트(skitter-creek-bath-salts)가 AMD Family 16h 프로세서의 DRAM 주소 변환 방식을 재배선하여 운영체제 커널조차 접근할 수 없는 보호된 메모리 영역을 읽고 쓸 수 있음을 시연했습니다. 이는 물리 주소를 감시하는 기존의 메모리 보호 장벽을 우회하는 새로운 하드웨어 공격 기법으로, 시스템의 가장 깊숙한 곳에 숨겨진 민감한 정보에 접근할 수 있는 가능성을 보여줍니다.
이 프로젝트의 핵심은 AMD Family 16h CPU의 DRAM 컨트롤러(DCT)에 있는 'bank-swizzle-mode' 비트 하나를 변경하는 것입니다. 이 비트를 조작하면 물리 주소와 실제 DRAM 칩 내부의 좌표(bank, row, column 등) 간의 매핑이 달라지게 됩니다. CPU, 펌웨어, 칩셋의 메모리 보호 장치들은 물리 주소만을 기준으로 작동하기 때문에, 그 아래 계층에서 DRAM 좌표 매핑이 바뀌어도 이를 인지하지 못합니다. 연구팀은 이 방식으로 Platform Security Processor(PSP), System Management Mode(SMM)의 SMRAM, CPU 코어의 C6 상태 저장 영역, 그리고 심지어 CPU 마이크로코드(microcode) 사본까지 추출하는 데 성공했습니다. 특히 C6 상태 저장 영역에 있는 마이크로코드 사본은 수정 후 코어가 유휴(idle) 상태에서 복귀할 때 다시 로드되도록 조작할 수도 있습니다.
이 연구는 단순히 AMD Family 16h에 국한되지 않고, 인텔(Intel), ARM, RISC-V 등 다른 아키텍처에서도 유사한 메모리 파이프라인 구조가 존재한다는 점에서 광범위한 의미를 가집니다. SEV, SGX, TDX, TrustZone과 같은 다양한 보안 기술들이 DRAM에 보호 영역을 설정하지만, 이들 모두 최종 DRAM 주소 변환 계층 위에 존재합니다. 따라서 이 계층을 조작하는 방식은 기존의 소프트웨어 및 펌웨어 기반 보안 메커니즘을 무력화할 수 있는 잠재력을 가집니다. 이는 하드웨어 수준의 취약점이 얼마나 깊고 광범위하게 영향을 미칠 수 있는지 다시 한번 상기시키며, 미래 시스템 보안 설계에 대한 근본적인 재고를 요구합니다.