AMD가 2019년부터 지난 해까지 시장에 공급한 라이젠·에픽(EPYC)·스레드리퍼 등 젠2(Zen 2) 아키텍처 기반 각종 프로세서에 숨은 보안 문제가 드러났다.
내부 저장장치인 레지스터(Register)를 제대로 초기화하지 못해 다른 프로그램이 비밀번호나 암호화 키 등을 엿볼 수 있다는 사실이 4년만에 밝혀진 것이다.
이 문제를 처음 발견한 구글 프로젝트 제로 팀 소속 보안 전문가인 타비스 오만디(Tavis Ormandy)는 이 보안 문제에 '젠블리드'(Zenbleed)라는 이름을 붙였다.
AMD는 이 문제가 공개된 24일(현지시간) 2세대 에픽 프로세서용 보안 업데이트 등을 공개하며 진화에 나섰다. 그러나 일반 소비자용 데스크톱PC·노트북용 라이젠 프로세서용 업데이트는 일러도 오는 11월경에나 제공될 예정이다.
■ 64비트 정형화 된 데이터 이외에 256비트 레지스터 내장
현대 x86/x64 프로세서 내부에서 연산에 필요한 데이터를 담는 저장장치인 레지스터(Register)는 대부분 64비트 명령어와 데이터, 주소값만 담아둘 수 있다.
그러나 영상이나 음성 등 대용량 데이터 처리 요구가 커지면서 실제로는 128비트, 256비트 처리를 위한 레지스터도 프로세서 안에 내장되어 있다.
AMD가 개발자를 대상으로 발간한 'AMD64 아키텍처 프로그래머즈 매뉴얼'에 따르면, 현행 라이젠·에픽 프로세서는 64비트 범용 레지스터(GPR) 16개 이외에 256비트 데이터를 담는 레지스터 16개(YMM0-YMM15), 128비트 데이터용 레지스터 16개(XMM0-XMM15)를 포함하고 있다.
■ "YMM 레지스터 지우는 명령어 구현 미흡...비밀번호 등 유출 우려"
타비스 오만디와 AMD는 24일(미국 현지시간) "젠2 아키텍처 기반 라이젠·에픽 등 프로세서에 내장된 256비트 YMM 레지스터 처리시 초기화 문제로 일부 데이터가 노출될 수 있는 문제가 발견됐다"고 밝혔다.
타비스 오만디는 "256비트 YMM 레지스터는 실제로는 대용량 데이터 뿐만 아니라 C언어에서 글자 갯수를 세거나(strlen), 문자열을 비교하고(strcmp), 메모리 내 데이터를 복사하는(memcpy) 함수 처리 등에도 널리 쓰인다"고 설명했다.
이어 "YMM 레지스터 내부의 데이터를 지우는 'vzeroupper' 명령어가 YMM 레지스터 전체가 아닌 일부만 지우기 때문에, 가상머신이나 샌드박스, 컨테이너, 프로세스 등 어떤 수단을 활용해도 지워지지 않은 데이터 중 일부를 엿볼 수 있다"고 지적했다.
또 "매우 단순한 작업으로 코어 하나의 레지스터에 저장된 데이터를 초당 30KB(킬로바이트)씩 빼돌릴 수 있었다. 이는 각종 로그인시 암호화 키와 비밀번호를 엿볼 수 있는 빠른 속도"라고 덧붙였다.
■ AMD, "젠2 기반 프로세서, 특정 상황에서 문제 발생"
타비스 오만디는 이 문제에 '젠블리드'라는 이름을 붙였다. AMD 역시 이 문제에 '프로세스간 정보 유출'(Cross-Process Information Leak, AMD-SB-7008)이라는 이름을 붙였다.
AMD는 24일(미국 현지시간) 공개한 보안 공지에서 "젠2 기반 프로세서 내부 레지스터가 특정한 상황에서 '0'을 제대로 기록하지 못한다"고 설명했다.
이어 "이는 현재 실행되는 프로세스 이외에 다른 프로세스가 YMM 레지스터에 저장된 데이터에 접근할 수 있게 하며, 공격자가 민감한 정보에 접근할 수 있도록 한다"고 설명했다.
AMD는 또 "구글 제로 이니셔티브 팀이 발견한 보안 문제를 실제로 악용한 사례는 현재까지 보고되지 않았다"고 설명했다.
■ 젠2 기반 모든 프로세서 해당...2세대 에픽 우선 패치
AMD에 따르면 해당 문제를 안고 있는 프로세서는 다음과 같다. 사실상 젠2 아키텍처 기반으로 만들어진 거의 모든 프로세서가 해당된다.
▲ 서버용 에픽 2세대 (개발명 '로마')
▲ 데스크톱PC용 라이젠 3000 시리즈 (개발명 '마티스')
▲ 데스크톱PC용 그래픽 내장 라이젠 4000 시리즈 (개발명 '르누아르')
▲ 라이젠 스레드리퍼 3000 시리즈 (개발명 '캐슬피크')
▲ 라이젠 스레드리퍼 프로 3000WX 시리즈 (개발명 '캐슬피크' WS SP3)
▲ 노트북용 그래픽 내장 라이젠 5000 시리즈 (개발명 '루시엔')
▲ 노트북용 그래픽 내장 라이젠 4000 시리즈 (개발명 '르누아르')
▲ 노트북용 라이젠 7020 시리즈 (개발명 '멘도시노')
AMD는 이 중 서버용 에픽 2세대 프로세서의 마이크로코드(0x0830107A)와 AGESA 펌웨어(RomePI 1.0.0.H)를 가장 먼저 서버 업체에 공급했다.
그러나 일반 서버 뿐만 아니라 마이크로소프트 애저, 아마존 웹서비스 등 주요 클라우드 서비스 업체가 이를 적용하는 데는 상당한 시일이 걸릴 전망이다.
AMD는 일반 소비자용 라이젠 프로세서의 업데이트 제공 시점을 오는 11월 경으로 잡았다. 그러나 메인보드 제조사, PC 제조사 등이 해당 업데이트를 검증하고 배포하는 데도 적지 않은 시간이 걸린다.
관련기사
- AMD, 가격 낮춘 라이젠 프로세서 연이어 투입2023.07.07
- AMD, AI 가속 기능 내장 '라이젠 7040HS' 공급 개시2023.06.15
- AMD, 생성형 AI 가속 위한 인스팅트 MI300X GPU 공개2023.06.14
- AMD, 클라우드 겨냥 서버용 CPU '4세대 에픽 97X4' 공개2023.06.14
마이크로소프트 등이 '젠블리드'를 우회할 수 있는 윈도 운영체제 업데이트를 제공하지 않는 한, 해당 문제를 안은 프로세서 탑재 PC는 당분간 잠재적인 위험에 노출된 셈이다.
과거 인텔도 2018년 스펙터, 멜트다운 등 유사한 문제를 해결하기 위해 각종 펌웨어와 마이크로코드 패치 등을 업데이트했지만 완전한 배포까지 상당한 시간이 걸렸다. 또 문제 해결을 위한 펌웨어 적용시 일부 프로세서가 오작동하는 문제가 일어나기도 했다.