DRAM 스크램블링으로 CPU 보안 기능 전체 해제
원제: Spaghettifying DRAM
왜 중요한가
CPU 보안 기능의 물리적 기반인 DRAM 주소 변환 취약성을 실증적으로 공개해, 펌웨어 및 하드웨어 보안 설계에 대한 재검토를 촉구하는 사례다.
보안 연구자 xoreaxeaxeax가 GitHub에 'skitter-creek-bath-salts'를 공개했다. AMD Family 16h CPU를 대상으로 DRAM 컨트롤러의 주소 변환 레지스터를 조작해 PSP(Platform Security Processor), SMM(System Management Mode), C6 DRAM, CPU 마이크로코드 등 보호 영역 전체를 해제하는 기법을 시연했다.
공개된 리포지토리 'skitter-creek-bath-salts'는 DRAM 컨트롤러의 물리 주소 변환 레이어를 조작하는 방식으로 플랫폼 메모리를 스크램블링한다. 이를 통해 커널에서도 보이지 않는 DRAM 카브아웃(carveout) 등 보호된 메모리 영역을 노출시킨다.
주요 타깃은 AMD Family 16h 세대 CPU다. 해당 세대는 DRAM 컨트롤러의 변환 레지스터가 데이터시트에 문서화되어 있고, 이 레지스터가 잠금 처리되지 않는다는 사실이 명시되어 있다. 17h 이후 세대에서는 관련 정보가 데이터시트에서 삭제되어 있다.
이 기법으로 해제 가능한 보안 기능은 ▲PSP(Platform Security Processor) ▲SMM(System Management Mode) ▲C6 DRAM ▲CPU 마이크로코드 등이다. 주소 변환이 무너지면 이를 기반으로 구축된 보안 프리미티브도 함께 붕괴된다.
연구자는 "이번 구현은 AMD Family 16h에 특화되어 있지만, 메모리 계층 하단의 변환 구조는 ARM, RISC-V 등 다른 아키텍처에도 공통적으로 존재한다"고 밝혔다. 리포지토리에는 분석 데이터, 예제, 커널 및 유저스페이스 코드가 포함되어 있다.