테크레시피

TPM, HW 해킹해 데이터에 액세스 가능하다?

TPM(Trusted Platform Module)은 보안 기능을 제공하기 위해 메인보드에 내장된 칩으로 윈도에 탑재된 데이터 암호화 기능인 비트로커(Bitlocker)에 활용된다. 하지만 하드웨어를 직접 해킹해 TPM 키를 훔치고 비트로커로 보호되는 장치 데이터에 액세스할 수 있다고 보안 기업 SCRT가 보고했다.

TPM은 메인보드에 직접 내장되거나 CPU에 따로 추가된 칩이며 장치 운영체제, 펌웨어가 변조되지 않았는지 확인하고 암호화 키를 안전하게 보관하는 역할을 담당하고 있다. 윈도 데이터 암호화 기능인 비트로커는 일반적으로 TPM 내부에 볼륨 마스터 키를 저장하고 있지만 SCRT 보안팀은 TPM을 해킹해 보호된 데이터에 액세스하는 방법을 실험했다.

연구팀이 실험에 사용한 건 레노버 씽크패드 L440이다. TPM은 장치가 부팅될 때 다양한 시스템 속성을 확인해 부팅 시퀀스가 바뀌지 않았는지 확인하고 성공적으로 확인되면 볼륨 마스터 키를 해제하고 CPU로 전송하며 디스크 암호화를 해제해 운영체제 로딩을 시작한다.

이 볼륨 마스터 키를 CPU에 송신하는 프로세스에 있어서 TPU는 LSP(Low Pin Count) 버스 등 저대역폭 디바이스를 CPU에 접속하는 버스를 이용해 신호를 보내고 있다. 연구팀은 이런 버스 전송속도가 느리기 때문에 하드웨어를 해킹해 볼륨 마스터 키 신호를 감지하고 악의적으로 장치 로컬 작업을 결합할 수 있다고 주장한다.

연구팀은 먼저 TPM 칩을 수동으로 찾는 것으로 씽크패드 L440 커버를 제거해 메인보드를 노출시켰다. 그러자 트랙패드 아래에 P24JPVSP라는 라벨이 붙은 칩을 발견했고 이게 LCP 버스를 이용하는 ST33TPM12LPC라는 TPM 칩일 것으로 봤다.

볼륨 마스터 키를 취득하려면 이 가운데 LAD0, LAD1, LAD2, LAD3, LFRAME, LCLK 신호가 필요하지만 핀 간격은 불과 0.65mm 밖에 안되기 때문에 신호를 측정하는 프로브를 직접 납땜하는 건 상당히 어렵다. 또 LCLK 신호가 누락되는 문제도 있었다고 말했다.

다행히 연구팀은 검은 테이프로 덮여 있는 LCP 디버그 패드를 발견할 수 있었기 때문에 직접 TPM 칩에 납땜하는 것보다 간단하게 신호를 측정할 수 있게 됐다. 하지만 역시 LCLK 신호가 디버그 패드에 접속되어 있지 않았기 때문에 연구팀은 온라인상에서 메인보드 회로도를 판매하는 웹사이트에 요금을 지불해 씽크패드 L440 회로도를 입수했다고 한다. 그 결과 아무 것도 접속되어 있지 않은 디버그 패드가 존재해 납땜을 해 LCLK 신호를 디버그 패드에 송신할 수 있는 걸 알았다고 한다.

연구팀은 LCLK 신호를 디버그 패드에 보내기 위해 납땜을 하고 적절한 디버그 패드에 프로브를 납땜했다. 이어 LPC 신호를 훔치는 기기인 스니퍼와 연결해 디바이스를 기동시키고 깃허브에 공개된 LPC 스니퍼를 이용해 TPM에서 LCP 버스를 통해 CPU로 전송되는 볼륨 마스터 키 신호를 받았다. 여러 번 측정으로 감지된 볼륨 마스터 키 값은 완벽하지는 않은 스니퍼 연결에 따른 것으로 보이는 편차가 있었지만 측정을 반복해 비교적 용이하게 올바른 값을 추정할 수 있었다고 한다.

연구팀은 실제로 획득한 볼륨 마스터 키를 이용해 비트로커 보호를 피하고 로컬 디스크를 복합화할 수 있다고 말한다. 그 결과 저장된 파일 액세스, 조절, 로컬 암호 데이터베이스를 훔치거나 멀웨어로 머신에 백도어를 작성하는 등 조작이 가능하게 된다고 한다.

이번 공격은 디바이스를 파괴하지 않고 DIY 스토어에서 구입 가능한 툴을 이용해 며칠 만에 실행할 수 있다고 한다. 연구팀은 최신 윈도11이 요구하는 TPM 2.0에선 TPM 스니핑이 기술적으로 방지된다고 하지만 다른 물리적 공격에 노출될 위험은 남아 있다고 주장하고 있다. 관련 내용은 이곳에서 확인할 수 있다.

추천기사