USB 스피커가 직접 만지지 않아도 PC를 감염시키는 방법
출처: Ars Technica
펌웨어를 교체 이미지로 바꿔 스피커의 LED 디스플레이에 “patched”라는 단어만 표시하도록 성공한 뒤, 연구자는 해커가 또 무엇을 할 수 있을지 궁금해졌다. 그래서 그는 Katana V2X를 구동하던 오픈 소스 운영 체제인 FreeRTOS에 주목했다. 이 OS에는 스피커가 인간 인터페이스 디바이스(HID)로 동작하도록 하는 일련의 HID 기능이 포함돼 있었으며, HID는 키보드, 마우스, 웹캠 등을 포함하는 분류이다. 스피커는 볼륨 조절이나 재생·일시정지와 같은 제한된 HID만 구현했으며, 그 외에는 거의 지원하지 않았다.
연구자는 스피커의 USB 디스크립터 세트를 변경할 수 있다는 사실을 발견했다. USB 디스크립터 세트는 USB 또는 블루투스로 연결된 주변기기의 기능을 장치에 알리는 보고서와 같은 역할을 한다. 그는 기존 디스크립터 세트에 스피커를 키보드로 보고하는 두 번째 디스크립터를 추가할 수 있었다. 그런 다음 펌웨어에 이미 포함돼 있던 코드를 이용해 키 입력을 전송하는 과정을 간소화했다.
이 모든 것이 Moorats에게 아이디어를 주었다: “내 장치를 이용해 스피커에 명령을 보내고, 그 명령을 HID를 통해 연결된 PC로 전달하면 어떨까?” 몇 차례의 시행착오 끝에 그는 가능하다는 것을 확인했다. 수요일에 공개된 블로그 게시물에서 그는 다음과 같이 적었다:
모든 과정을 연결해 보니, 나는 전혀 페어링하지 않은 스피커에 완전히 원격으로, 무선으로 맞춤형 펌웨어를 업로드할 수 있었다. 이 펌웨어는 재부팅 후 플래시되고, 재부팅 후
echo pwned명령을 입력하고 실행한다.

크레딧:
Rasmus Moorats
실제 공격 시나리오에서는 powershell.exe를 여는 키스트로크를 실행하거나, 실제 악성 일회성 명령을 붙여넣을 수 있겠지만, 개념 증명으로서는 이것만으로 충분했다. 실제 공격자는 정상 모드와 복구 모드 모두에서 펌웨어 업데이트 루틴을 비활성화시켜, 악성 펌웨어를 장치에서 삭제하거나 향후 패치하는 것을 불가능하게 만들 가능성이 크다.
게다가 스피커는 절전 모드에서도 블루투스가 항상 켜져 있어 이를 끄는 명확한 방법이 없다.
스피커와 USB 연결 장치가 상호 작용하기 전에 반드시 챌린지‑응답 인증 절차를 성공적으로 마쳐야 한다. 이 핸드쉐이크는 소프트웨어가 부팅될 때마다 자동으로 수행되므로 해커에게는 보통 문제가 되지 않는다. 다만 Katana V2X 앱이 연결된 장치에서 열려 있지 않은 경우와 같이 특정 상황에서는 이 절차가 필수 조건이 된다.