윈도와 오피스 정품 인증기를 오픈소스로 개발하는 매스그레이브(MASSGRAVE) 연구팀이 윈도 10 이후 CLiP(Client Licensing PlatformP) 시스템 취약점인 키홀(Keyhole) 존재를 밝혔다. 이 취약점은 시스코 탈로스(Cisco TALOS)에 의해 마이크로소프트에 보고되어 이미 수정됐다.
CLiP는 주로 마이크로소프트 스토어 앱 DRM 구현과 윈도 정품 인증 통합을 목적으로 한 시스템으로 사용자가 마이크로소프트 스토어에서 윈도 디지털 라이선스를 구매할 수 있게 하기 위한 것이다.
연구팀은 이 중 윈도 8 스토어 라이선스나 정규 티켓, 제품 키를 디지털 라이선스로 이전하는 클립업(ClipUp) 파일 내에 암호화되지 않은 상태로 ECDSA 키가 저장되어 있는 것을 발견했다. 이 키는 본래 마이크로소프트 스토어에 전송되는 임시 라이선스에 서명하기 위한 것이었지만 이 키를 사용하면 정규 마이크로소프트 제품과 마찬가지로 XML 라이선스에 서명할 수 있게 됐다.
그리고 라이선스 관리를 수행하는 ClipSvc가 이 XML 라이선스를 수용할 수 있었기 때문에 사용자 모드 수준 보안 검사를 우회할 수 있었다고 한다. 더구나 커널 모드 드라이버인 ClipSp에서 서명 블록 이후에 추가된 데이터가 적절히 검사되지 않아 서명 후 라이선스 정보를 변경하는 게 가능했다. 이로 인해 공격자는 정규 라이선스를 변경하고 새로운 라이선스를 생성할 수 있게 된다.
연구팀은 이 취약점을 이용해 실제로 마이크로소프트 스토어에서 정규 무료 앱을 설치하고 그 과정에서 트래픽을 캡처해 라이선스를 가로챈 뒤 XML 파일로 패키지화해 윈도를 정품 인증하는 데 성공했다고 보고했다.
윈도 오픈소스 정품 인증기를 개발하는 매스그레이브에게는 이 발견된 취약점이 환영받을 만한 것이었지만 같은 취약점을 시스코 탈로스가 보고했기 때문에 곧바로 수정됐다고 한다. 따라서 매스그레이브 연구팀은 이 키홀에 관한 연구 결과를 공개하는 게 공정하다고 판단했다고 한다.
한편 매스그레이브 연구팀에 따르면 ClipSp 코드는 복사 & 붙여넣기된 부분이 많아 품질이 낮다고 한다. 그 중에서도 그 대부분은 엑스박스 원(Xbox One) 보안 프로세서 코드에서 전용된 것으로 엑스박스 원 쪽에도 비슷한 버그가 존재했다고 한다. 관련 내용은 이곳에서 확인할 수 있다.