본문 바로가기

자료 리뷰/ISO|SAE 21434(사이버보안)

RISC-V CPU도 안전하지 않다 - RISCVuzz가 밝힌 아키텍처 보안 취약점

본 포스트는 다음 학술 문서를 기반으로 공부 목적으로 요약 및 분석하여 작성한 포스트입니다.

RISCVuzz; Discovering Architectural CPU Vulnerabilities via Differential Hardware Fuzzing


 

최근 빠르게 확산 중인 오픈소스 CPU 아키텍처 RISC-V는 유연한 확장성과 생태계 확장성 덕분에 다양한 기업이 RISC-V 기반 CPU를 개발하고 있습니다. 그러나 이 '열린 구조'는 보안 관점에서 새로운 위험을 만들고 있습니다. 바로, CPU 구현체마다 생기는 미묘한 차이와 그로 인한 보안 허점입니다.
본 학술 문서는 바로 이러한 지점을 정조준합니다. 소스코드 없이, 실제 하드웨어에서 자동으로 CPU 보안 취약점을 찾아내는 퍼징 도구를 제안하며, 우리가 RISC-V 생태계에 대해 안심할 수 없음을 보여줍니다.

🔍 RISCVuzz란?

RISCVuzz는 서로 다른 RISC-V CPU에 동일한 명령어 시퀀스를 실행하고,실행 결과의 차이점(Differences)을 자동 분석해 버그나 취약점을 탐지하는 차등 퍼징(Differential Fuzzing) 프레임워크입니다.

  • RTL 소스 없음
  • 시뮬레이터(Golden Model) 없음
  • 실제 하드웨어에서 동작

하지만, GhostWirte, DoS 취약점 등 중대 보안 문제를 수초 내 자동 탐지합니다.

⚙️ 어떻게 작동할까?

RISCVuzz는 다음과 같은 구조로 설계되었습니다 : 

  • 서버 : 명령어 시퀀스 생성, 실행 결과 수집 및 비교 분석
  • 클라이언트 : 실물 RISC-V CPU, 받은 명령어를 실행하고 상태값을 반환
  • 재현 기능 : 발견된 취약 시퀀스는 C코드로 자동 변환, 리포팅 및 분석 가능

단순한 퍼징이 아니라, 벤더 확장까지 포함한 전체 명령어 공간을 탐색할 수 있도록 설계되었고, 공유 라이브러리, 비결정적 명령어 필터링, 페이지 오류 처리 등도 자동화되어 있습니다.

🚨 발견된 취약점 사례

1. GhostWrite (C910)

  • 벡터 명령어를 통한 비권한 사용자 → 임의 물리 메모리 쓰기 가능
  • 페이지 테이블 조작 → 루트 권한 탈취, 커널 패치, M-mode 공격까지 가능
  • TLS 키 저장 영역 조작 → RSA 키 복구 실현 (2048비트, 30분 내 복호화)

2. CPU Halting 명령어 (C906, C908)

  • 특정 명령어(th.lbib, vsm.v 등) 실행 시, CPU가 정지
  • 일반 사용자 권한 또는 Docker 컨테이너에서도 발생
  • 운영체제 샌드박싱으로도 막을 수 없는 Dos

🧪 퍼징 속도 & 효율성

  • 최대 97,000 instr/s 처리 (vs. RTL 퍼저 9 instr/s)
  • 대부분 취약점은 테스트 시작 수 초 이내에 자동 탐지
  • 멀티코어 확장 시 선형 성능 증가 가능

🧯 완화 방법은?

  • GhostWrite의 경우 : 벡터 확장 비활성화로 방어 가능 → 하지만 memcpy 성능 최대 33% 하락
  • C906/C908 정지 취약점 :
    • 해당 벤더 확장 명령어 비활성화 불가
    • DoS 방어 불가 → 보드 재부팅 외 대안 없음

설계 수준에서의 취약점 제거 필요

🔍 RISCVuzz의 차별성 vs 기존 연구

접근 방식소스 코드 필요하드웨어 사용undocumented instruction 탐지벤더 확장 탐지

접근 방식 소스코드 필요 하드웨어 사용 undocumented instruction 탐지 벤더 확장 탐지
RTL 퍼저 (e.g. DifuzzRTL) 필요 ✖️ 제한적 제한적
시뮬레이터 기반 퍼저 필요 ✖️ ✖️ ✖️
RISCVuzz

RISCVuzz는 실제 배포된 칩을 대상으로 보안성 검증이 가능하다는 점에서, 사후 검증(post-silicon verification)의 새로운 기준이 될 수 있습니다.

🔚 결론: 열린 아키텍처, 열린 보안 리스크

RISC-V는 열려 있는 ISA입니다.
하지만 열려 있다는 것은 곧, 누구나 만들 수 있다는 뜻이며, 누구나 실수할 수 있다는 의미이기도 합니다.

RISCVuzz는 이 생태계의 현실을 보여줍니다:

  • RISC-V 칩은 벤더마다 ISA 구현 차이가 있고,
  • 이 차이는 사용자 권한 공격 가능성, 클라우드 침해, CPU 정지 등 심각한 보안 리스크로 이어질 수 있습니다.

앞으로 RISC-V 생태계가 더 커질수록, RISCVuzz 같은 자동화 도구는 보안 품질 확보의 필수 도구가 될 것입니다.