드라이브를 포맷하고 백신 검사까지 돌렸습니다. 깨끗하게 나왔으니 이제 꽂아도 안전하겠죠?
여기에 함정이 있습니다. 애초에 검사할 것이 없었습니다. **배드유에스비(BadUSB)**의 위험한 부분은 파일이 아니었습니다. 그것은 이 장치가 컴퓨터에게 "나는 무엇이다"라고 알려주는 칩 안에 들어 있습니다. 그리고 그 칩은 자신을 키보드라고 주장할 수 있습니다.

배드유에스비는 장치가 자기 정체를 정한다
USB 포트에 무언가를 꽂으면, 그 장치는 스스로를 소개하며 자기 유형을 선언합니다 — 저장장치, 키보드, 웹캠. 운영체제는 그 말을 그대로 받아들입니다. 그런데 이 정체는 장치의 컨트롤러 펌웨어 안에 들어 있고, 이 펌웨어는 다시 쓰일 수 있습니다. 그렇게 개조되거나 처음부터 그렇게 만들어진 장치는 같은 USB 모양을 하고도 "나는 키보드입니다"라고 선언합니다. SRLabs의 Karsten Nohl 팀이 2014년 블랙햇에서 이를 실제로 증명했습니다.[1]
신뢰를 얻은 뒤에 하는 일
컴퓨터가 이 장치를 키보드로 받아들이는 순간, 장치는 사람이 도저히 낼 수 없는 속도로 명령을 입력하기 시작합니다 — 터미널을 열고, 외부에서 페이로드를 내려받습니다. 시중에 나와 있는 키 입력 주입 도구들이 수년째 해온 일입니다. 클릭할 것도, 열어볼 파일도 없습니다. 다만 이 명령은 지금 로그인한 사용자 권한으로 조용히 실행됩니다. 관리자(root) 권한이 아니라 사용자 권한이며, 완전한 장악까지는 한 단계가 더 필요합니다. 그래도 그 명령은 사용자인 나로서, 소리 없이 돌아갑니다.
백신은 파일을 검사합니다. 배드유에스비의 위험은 파일이 아니라 장치가 자신을 무엇이라고 선언하는지에 있습니다. 그래서 파일 검사는 틀린 도구가 아니라 다른 층을 보는 도구입니다. '검사 통과'만으로는 부족합니다.
이렇게 하면 당하지 않습니다
- 출처를 알 수 없거나 주운 USB는 절대 꽂지 마세요.
- 내가 통제하지 않는 포트나 케이블로 충전할 때는 데이터 차단기를 쓰세요. 전원은 통과시키되 USB 데이터 선을 물리적으로 끊어주는 값싼 어댑터('USB 콘돔')입니다. 충전은 되지만 데이터도, 키 입력도 건너오지 못합니다.
- 엔드포인트 장치 제어, 즉 USB 허용목록을 켜세요. 장치가 무엇이 될 수 있는지를 제한해, 저장장치용 USB가 갑자기 키보드로 행세하지 못하게 막습니다.
- '검사 통과'는 필요조건일 뿐 충분조건이 아닙니다. 검사를 한 번 통과했다는 사실이 곧 보안 체계가 갖춰졌다는 뜻은 아닙니다.
주차장에서 USB를 하나 주우셨나요? 컴퓨터에 꽂지 마세요.
참고 자료
- Karsten Nohl, Sascha Krißler, Jakob Lell (SRLabs). "BadUSB — On Accessories That Turn Evil." Black Hat USA 2014. https://www.blackhat.com/us-14/briefings.html#badusb-on-accessories-that-turn-evil