BadUSB 공격: USB 케이블이 키보드가 되는 방법
가방 속에서 가장 위험한 물건은 어쩌면 가장 의심스러워하는 케이블일지도 모릅니다. USB 케이블, 여분의 USB 메모리, 회의실에 누군가 두고 간 "공짜" 충전기. 모두 무해해 보입니다. 하지만 만약 그 케이블이 악성 USB 장치로 변환되어 있다면, 컴퓨터는 처음 0.5초 만에 이상한 반응을 보입니다. 케이블을 키보드로 인식하고 입력을 시작하게 만드는 것이죠.
바로 그게 핵심입니다. BadUSB는 검사할 수 있는 바이러스가 아닙니다. USB가 기본적으로 허용하는 기능을 악용하는 사이버 공격으로, 사이버 보안에서 가장 교묘한 공격 방식 중 하나입니다. 암호화폐를 보유한 사람이라면, 이러한 조용한 공격으로 지갑을 잃을 수도 있습니다. BadUSB가 어떻게 작동하는지, 왜 막기가 어려운지, 그리고 암호화폐 사용자가 왜 이 공격의 위험에 처해 있는지 자세히 알아보겠습니다.
BadUSB 공격이란 무엇이며 왜 위험한가?
3달러짜리 USB 메모리부터 웹캠까지 모든 USB 장치는 자체 펌웨어를 탑재한 초소형 마이크로컨트롤러로 작동합니다. 이 펌웨어는 컴퓨터에게 "나는 키보드입니다" 또는 "나는 저장 장치입니다"라고 알려주는 역할을 합니다. BadUSB 공격은 이 펌웨어를 변조하여 장치가 거짓 정보를 사용하도록 만듭니다. 단순히 저장 장치라고 생각했던 USB 메모리가 아무런 경고나 알림 없이 조용히 키보드나 네트워크 카드라고 재인식하게 되는 것입니다. 그러면 운영 체제는 이를 그대로 받아들입니다.
왜 그게 그렇게 중요할까요? 바로 컴퓨터가 키보드를 처리하는 방식 때문입니다. 키보드는 휴먼 인터페이스 장치(HID)이며, 모든 운영체제는 HID 입력을 완전히 신뢰합니다. 실제 사람이 키보드 위에 앉아서 실제 키를 누르고 있다고 가정하는 것이죠. 따라서 키보드로 위장한 악성 USB 장치는 이러한 신뢰를 그대로 이어받아 기계 속도로 명령어를 입력하기 시작합니다.
2014년의 경종
이 아이디어는 2014년 블랙햇 USA 컨퍼런스에서 SR Labs의 연구원인 카르스텐 놀과 야콥 렐이 무대에 올라 발표하면서 세상에 알려졌습니다. 그들의 발표 제목은 "BadUSB - 악으로 변하는 액세서리"였습니다. 평범해 보이는 드라이브가 키보드처럼 작동하도록 재프로그래밍되어 사용자가 전혀 눈치채지 못하는 사이에 컴퓨터를 장악하는 것이었죠. 몇 주 후, 애덤 코딜과 브랜든 윌슨은 더비콘에서 실제로 작동하는 익스플로잇 코드를 공개했습니다. 이것이 바로 전환점이었습니다. BadUSB는 연구실에서만 통용되던 실험적인 기술이 아니라, 주말에 시간이 있는 사람이라면 누구나 만들 수 있는 도구가 된 것입니다.
왜 패치로 해결할 수 없나요?
보안 전문가들을 여전히 불안하게 만드는 부분은 바로 이것입니다. 대부분의 USB 컨트롤러는 코드 서명이나 인증 절차 없이 새로운 펌웨어를 받아들입니다. 업데이트가 신뢰할 만한 곳에서 온 것인지 확인하는 과정이 전혀 없다는 뜻입니다. 따라서 문제는 특정 버그가 있는 프로그램을 패치해서 해결할 수 있는 것이 아니라, USB 신뢰 모델 자체에 있는 것입니다.
백신 프로그램은 파일을 검사합니다. 하지만 BadUSB는 파일이 필요하지 않습니다. 악성 행위는 펌웨어에 내장되어 있으며, 공격 자체는 단순히 키 입력만으로 이루어집니다. 디스크에 저장되는 데이터는 없으므로 악성 코드로 인식되지 않습니다. 완벽하게 패치되고 보안이 강화된 노트북조차 200달러짜리 케이블 하나에 속아 넘어가는 이유가 바로 이것입니다.

BadUSB 공격이 순식간에 어떻게 진행되는지 알아보세요
그 과정을 상상해 보세요. 케이블을 꽂으면 컴퓨터에 키보드로 인식되어 인식되고, 1~2초 안에 미리 설정해 둔 페이로드를 통해 키 입력이 시작됩니다. 사람이 이렇게 빠르게 타이핑할 수는 없죠. 그 누구도 근접하지 못합니다.
일반적인 악성코드 페이로드는 숨겨진 명령 창이나 PowerShell 프롬프트를 열고(대개 사용자가 볼 수 없는 곳에), 인터넷에서 스크립트를 다운로드하여 실행합니다. 케이블이 입력을 대신하고, 인터넷이 악성코드를 제공합니다. 사용자가 화면을 잠깐이라도 쳐다볼 땐 이미 작업이 완료된 상태입니다.
단 2초의 타이핑으로도 엄청난 일을 해낼 수 있습니다. 터미널을 열고, 보안 메시지를 닫고, 원격 접속 도구를 다운로드하여 시작 프로그램에 추가해 재부팅 후에도 실행되도록 합니다. 윈도우에서는 PowerShell 스크립트 한 줄만으로도 공격자가 소유한 서버에서 코드를 가져와 실행할 수 있습니다. 게다가 스크립트는 매우 느립니다. 특정 시간이 될 때까지 기다리거나 화면 잠금이 해제된 경우에만 실행되도록 설정할 수 있어, 키 입력이 하던 작업 중에 자연스럽게 섞여 들어갑니다. 백신 프로그램도 전혀 눈치채지 못합니다. 파일이 아니라 입력값으로 접근하기 때문입니다.
왜 이게 계속 통할까요? 간단합니다. 소프트웨어를 잠그고, 설치를 제한하고, 시중에 나와 있는 모든 스캐너를 실행할 수 있습니다. 하지만 키보드는 사용자를 나타내는 것으로 간주됩니다. 바로 이 전제 조건이 핵심이며, BadUSB는 이 전제 조건을 근본적으로 무너뜨립니다.
BadUSB에서 구입할 수 있는 도구: 고무 오리에서 플리퍼까지
수년 동안 이것은 마치 첩보 영화 속 이야기처럼 느껴졌습니다. 하지만 이제는 더 이상 그렇지 않습니다. 시중에서 판매되는 장비는 별도의 설정 없이 바로 키 입력을 주입할 수 있으며, 가격 또한 놀라울 정도로 일반적입니다.
Hak5의 USB Rubber Ducky는 전형적인 제품입니다. 플래시 드라이브처럼 생긴 이 스틱은 DuckyScript라는 간단한 언어로 작성되었으며, 바로 이런 용도로 만들어졌습니다. 입소문을 타고 인기를 얻은 휴대용 멀티툴인 Flipper Zero는 BadUSB 기능이 내장되어 있으며 약 169달러에 판매됩니다. 그리고 가장 걱정스러운 제품은 O.MG Cable인데, 이것은 드라이브가 아니라 케이블이기 때문입니다.
O.MG 케이블은 일반 애플 케이블이나 USB-C 케이블과 외관상 완전히 똑같습니다. 내부에는 무선 칩과 Wi-Fi를 통해 접속할 수 있는 웹 인터페이스가 숨겨져 있습니다. 엘리트 버전은 초당 최대 890회의 키 입력을 처리할 수 있으며, 최대 65만 개의 키 입력을 저장할 수 있는 키로거를 내장하고 있습니다. 사용하지 않을 때는 일반 케이블처럼 휴대폰을 충전하고 데이터를 전송합니다. 겉보기에는 전혀 알아차릴 수 없죠. 바로 그게 이 케이블의 핵심입니다.
| 도구 | 폼 팩터 | 주입 속도 | 무선 제어 | 대략적인 가격 |
|---|---|---|---|---|
| USB 러버 더키 | 플래시 드라이브 스틱 | 빠른 (스크립트 기반) | 아니요 | 약 60달러 |
| 플리퍼 제로 | 휴대용 다용도 도구 | 빠른 (스크립트 기반) | 제한된 | 약 169달러 |
| O.MG 케이블(엘리트) | 평범해 보이는 케이블 | 최대 890키/초 | 예 (와이파이) | 약 200달러 |
이를 이해하기 쉽게 설명하자면, 과거 정보기관에서 개발했다고 알려진 유사한 임플란트는 수만 달러에 달하는 고가였습니다. 하지만 O.MG 케이블은 근사한 저녁 식사 한 끼 가격으로 그와 비슷한 기능을 대부분 재현해냅니다. 진입 장벽이 사실상 사라진 셈입니다.
암호화폐 보유자가 BadUSB의 주요 공격 대상이 되는 이유
대부분의 글들은 기업 IT 관점에서만 다룹니다. 저는 그들이 다루지 않는 부분까지 살펴보고자 합니다. 암호화폐를 보유하고 있다면 위협 모델이 달라지고, 솔직히 말하면 더 심각해지기 때문입니다.
클립보드 교환
BadUSB 공격은 지갑을 해킹할 필요가 없습니다. 단 한 가지, 바로 클립보드를 변경하기만 하면 됩니다. 주입된 악성코드는 순식간에 클립보드 하이재커를 설치합니다. 그 후, 암호화폐 주소를 복사하여 송금할 때마다 악성코드는 슬그머니 공격자의 주소로 바꿔치기합니다. 사용자는 제대로 된 주소처럼 보이는 것을 붙여넣고 확인을 누릅니다. 그러면 돈은 낯선 사람의 지갑으로 들어가게 됩니다.
이건 이론적인 이야기가 아닙니다. 한 클립보드 하이재커는 200만 개 이상의 비트코인 주소를 감시하며 공격자 지갑으로 실시간으로 주소를 바꿔치기하는 행위를 저질렀습니다. 2024년에 발생한 '깃베놈(GitVenom)'이라는 악성코드 유포 사건에서는 가짜 코드 저장소를 이용해 주소 바꿔치기 악성코드를 배포하고 약 48만 5천 달러 상당의 비트코인을 탈취했습니다. 이 수법이 교묘한 이유는 암호화폐 주소가 길고 무작위적인 문자열이라 아무도 한 글자씩 읽지 않기 때문입니다. 처음 네 글자와 마지막 네 글자를 확인하고 일치하면 전송 버튼을 누르는 거죠. 주소 바꿔치기는 바로 그 중간, 아무도 눈여겨보지 않는 부분에 숨어 있습니다. 위험 부담도 엄청납니다. 체이나리시스(Chainalysis)에 따르면 2024년에 약 22억 달러 상당의 암호화폐가 도난당했으며, 그중 43.8%는 개인 키 유출로 인한 것이었습니다.
하드웨어 지갑이 당신을 구해줄까요?
대부분의 경우 그렇습니다. 그 이유를 명확히 설명드리겠습니다. Ledger나 Trezor 같은 하드웨어 지갑은 시드 구문을 보안 요소(Secure Element) 안에 안전하게 보관합니다. 개인 키는 그곳에서 생성되어 절대 외부로 유출되지 않습니다. 서명된 거래만 USB 케이블을 통해 전송됩니다. 따라서 악성 USB 장치가 무차별적으로 키를 입력하더라도 정상적으로 작동하는 하드웨어 지갑에서 시드 구문을 빼낼 수는 없습니다. 전체 아키텍처가 바로 그러한 시도를 차단하도록 설계되었기 때문입니다.
하지만 두 가지 심각한 허점이 있습니다. 첫 번째는 사회공학적 수법입니다. 2021년, 사기꾼들은 레저(Ledger)의 2020년 데이터 유출 사건으로 주소가 유출된 사람들에게 가짜 레저 기기를 우편으로 보냈습니다. 코인데스크(CoinDesk) 보도에 따르면, 위조 기기에는 피해자들에게 동봉된 앱에 24단어 시드 구문을 입력하라는 안내문이 동봉되어 있었습니다. 특별한 해킹 기술도 필요 없었습니다. 그럴듯한 포장과 약간의 공포심만 있으면 충분했습니다. 두 번째 허점은 공급망입니다. 크라켄(Kraken) 연구원들은 하드웨어 지갑에서 USB를 처리하는 칩(보안 요소와는 별개)이 기기가 구매자에게 도달하기 전에 변조될 수 있음을 보여주었습니다.
이 교훈은 "하드웨어 지갑은 쓸모없다"는 것이 아닙니다. 오히려 하드웨어 지갑은 올바른 도구입니다. 이 교훈의 핵심은 약점이 바로 당신에게 있다는 것입니다. 당신이 무엇을 복사하고, 무엇을 입력하고, 애초에 당신의 기기가 어디에서 왔는지에 따라 약점이 결정됩니다.

USB를 이용한 위협은 실제로 얼마나 흔한가?
BadUSB를 "흥미롭지만 드문 사례"로 분류하고 싶은 유혹이 들지만, 적어도 더 광범위한 USB 위협에 관해서는 데이터가 그렇지 않다는 것을 보여줍니다.
보안 업체 허니웰은 산업 현장에서 발견되는 악성 소프트웨어를 추적합니다. 허니웰 의 2024년 보고서에 따르면, 적발된 악성 소프트웨어 중 51%가 USB를 통해 확산되도록 설계되었으며, 이는 2019년의 9%에서 크게 증가한 수치입니다. 이러한 USB 악성 소프트웨어 중 82%는 산업 운영을 마비시킬 수 있습니다. USB는 더 이상 공격 대상이 아닌, 오히려 점점 더 위험한 공격 수단으로 자리 잡고 있습니다.
그리고 인간의 특성은 악용하기 가장 쉬운 부분입니다. 한 유명한 연구에서 일리노이 대학교 연구진은 캠퍼스 곳곳에 297개의 USB 드라이브를 흩어 놓았습니다. 사람들은 그것들을 집어 들고 몇 분 안에 첫 번째 USB 드라이브를 꽂았습니다. 호기심이 공격자의 일을 무료로 대신해 주는 셈입니다.
| 발견 | 수치 | 원천 | 년도 |
|---|---|---|---|
| USB를 통해 확산되는 OT 사이트 악성코드 | 51% (2019년 9%에서 상승) | 허니웰 | 2024 |
| 해당 USB 악성 프로그램은 운영을 방해할 수 있습니다. | 82% | 허니웰 | 2024 |
| 개인키 유출로 암호화폐가 도난당했습니다. | 22억 달러 / 43.8% | 체인 분석 | 2024 |
| 떨어뜨린 USB 드라이브가 꽂히는 경우 | 절반 정도는 몇 분 안에 | 일리노이 대학교 | 2016 |
여기서 한 가지 솔직한 주의사항을 말씀드리겠습니다. FBI와 FCC는 2023년에 공항과 쇼핑몰 충전소에서 발생하는 "주스 재킹(juice jacking)"에 대해 공개적으로 경고했습니다. 이러한 경고는 예방 차원이었고, 실제로 확인된 대규모 사례는 아직 공개되지 않았습니다. 하지만 그들이 지적한 취약점, 즉 데이터 전송도 가능한 충전 포트는 BadUSB가 악용하는 바로 그 부분입니다. 모든 공항에 함정이 설치된 케이블이 있다는 것이 중요한 게 아닙니다. 중요한 것은 동일한 USB 포트가 같은 핀을 통해 전원과 데이터를 동시에 전송한다는 점입니다. 따라서 점검할 수 없는 포트는 완전히 신뢰할 수 없다는 것입니다.
BadUSB 공격을 방지하고 암호화 데이터를 보호하는 방법
좋은 소식은 무엇일까요? BadUSB 공격 예방은 대부분 저렴하고 습관 개선만으로 가능합니다. 고가의 소프트웨어보다는 새로운 습관 하나만 있으면 충분합니다.
- 직접 구매하지 않았거나 완전히 신뢰할 수 없는 USB 장치나 케이블은 절대 연결하지 마세요. 컨퍼런스에서 받은 기념품, 주차장에서 주운 외장 하드, 빌린 케이블 등은 모두 위험 요소입니다. 마치 낯선 사람의 주사바늘처럼 조심스럽게 다루세요.
- 공공장소에서 충전할 때는 "USB 콘돔"이라고도 불리는 USB 데이터 차단기를 휴대하세요. 이 장치는 데이터 핀을 물리적으로 차단하고 전력만 통과시켜 USB 포트를 통한 데이터 유출(juice jacking)이나 키 입력 주입(keystroke injection)을 모두 차단합니다.
- 특히 암호화폐 거래의 경우, 승인하기 전에 하드웨어 지갑 화면에서 수신 주소를 정확히 확인하는 것이 중요합니다. 이 습관 하나만으로도 클립보드 스왑 공격을 막을 수 있습니다. 신뢰할 수 있는 기기에 표시된 주소와 악성코드가 삽입한 주소가 일치하지 않기 때문입니다.
- 하드웨어 지갑은 제조사에서 직접 구매하고, 제3자 판매업체나 모르는 사람에게서 구매하지 마세요. 또한 예고 없이 갑자기 나타난 기기는 절대 신뢰하지 마세요.
- 엔드포인트 측면에서는 USB 장치 제어, HID 화이트리스트 및 엔드포인트 관리 도구를 사용하여 인식되지 않는 키보드의 연결을 완전히 차단할 수 있습니다. 개인 기기에서는 Apple의 "액세서리 연결 허용" 메시지 표시 또는 Android의 잠금 시 USB 끄기 설정과 같은 기능을 통해 동일한 문제를 해결할 수 있습니다.
이것들은 전혀 특별한 것이 아닙니다. 길거리에서 낯선 사람이 건네주는 음식을 먹지 않는 것과 같은 디지털 시대의 상식일 뿐입니다.
BadUSB와 USB 보안에 대한 핵심 요약
BadUSB는 너무나 평범하기 때문에 오히려 섬뜩합니다. 제로데이 취약점도, 천재적인 기술도 필요 없습니다. 그저 케이블은 그저 케이블일 뿐이고 키보드는 사용자를 대변한다는 5달러짜리 가정에 불과합니다. 하지만 그 가정은 틀렸고, 이제 그 가정이 틀렸음을 증명하는 장비는 당신이 충전 중인 스마트폰만큼이나 비쌉니다.
암호화폐 보유자에게 필요한 해결책은 편집증이 아니라 규율입니다. 컴퓨터가 아닌 기기 화면에서 주소를 확인하세요. 하드웨어는 직접 구매하세요. 그리고 다음에 누군가 당신이 가져오지 않은 케이블을 건네준다면, 그 케이블이 무엇을 입력하는지 생각해 보세요. 오늘 당신이 아무 생각 없이 연결했던 것은 무엇이었을까요?