블루본(Blueborne) 해킹, 블루투스 취약점을 이용한 공격

모든 블루투스 기기 위험

블루본(blueborne)이란 블루투스(Bluetooth)의 취약점을 악용해 기기의 제어권을 획득하는 공격 방법을 말합니다. 2017년 9월에 공개되었고 윈도, 맥, 안드로이드, 리눅스, IoT 등 블루투스를 이용하는 모든 운영체제에서 취약점이 발견됐습니다. PC, 스마트폰 뿐만 아니라 AI스피커 같은 IoT 기기도 표적이 될 수 있습니다.

블루본을 발견한 Armis사에 따르면,
• 기기를 통제하여 임의의 코드를 실행(Remote Code Execution).
• 중간자 공격(MItM, Man-In-the-Middle)에 이용하여 블루투스를 통한 통신 내용 가로채기.
• 블루투스를 통하여 스스로 퍼지는 블루투스 웜으로 유포.
등이 대표적인 공격 방법입니다. 그러나 블루투스 기능은 높은 권한으로 실행되기 때문에 꼭 위의 내용에 한정되지는 않습니다.

페어링 필요없어

원래 블루투스는 '탐색 가능'모드에서만 다른 기기에 보여지고, '페어링'이 돼야만 데이터 송수신이 가능합니다. 그런데 블루투스 신호를 훔쳐보는(스니핑, sniffing) 도구에 의해 탐색가능 모드 여부에 관계없이 블루투스 주소가 노출되고, 운영체제의 취약점으로 인해 페어링 없이도 블루투스 연결이 이루어져 임의의 코드를 실행할 수 있습니다. 결국 피해자가 아무런 행동을 하지 않아도, 알아채지도 못하게 기기를 조작할 수 있습니다.

안드로이드 블루투스 권한

Windows, Mac, 아이폰 등은 업데이트가 잘 되기 때문에 큰 문제가 없습니다. 업데이트 상황이 엉망인 안드로이드 진영이 가장 문제이므로 좀 자세히 보겠습니다.

Armis에서 제작한 안드로이드 스마트폰 해킹 시연입니다.


처음 블루본이 알려졌을 때, 화면 잠금이 해제돼야 하기 때문에 피해자가 알아챌 수 있다거나 강력한 잠금 설정으로 막을 수 있다는 얘기가 해외 전문 매체나 포럼에서 나온 적이 있습니다. 그러나 이건 오해입니다.

화면이 잠겨 있어도 블루투스만 켜져 있으면 페어링됩니다. 시연에서 화면이 켜진 것은 카메라 촬영을 위해서이지, 기존 저장돼 있는 사진을 빼내는 것은 화면을 켜지 않아도 가능합니다. 블루투스는 데이터 송수신 권한이 있기 때문입니다.

안드로이드 개발자용 문서에 따르면, Bluetooth API는 다음과 같은 권한을 갖습니다.
• 다른 블루투스 기기 스캔
• 페어링된 블루투스 기기에 대한 로컬 블루투스 어댑터 쿼리
• RFCOMM 채널 설정
• 서비스 검색을 통해 다른 기기에 연결
• 기기 간 데이터 전송 및 수신
• 다중 연결 관리

카메라 촬영을 위해 화면을 켠 것은, 블루투스가 다른 앱을 실행하는 권한이 없기 때문입니다. 영상을 잘 보면 촬영 시 마우스 포인터가 움직이는 것을 볼 수 있습니다. 블루투스 기기에는 키보드, 마우스 같은 입력 장치가 있으므로, 해커는 이를 가장하여 피해자의 스마트폰에 연결한 다음, 가상의 마우스를 움직여 카메라 앱을 실행한 것입니다.

이 점은 국내 보안업체인 에스엔티웍스의 박찬웅 연구원의 설명에서도 알 수 있습니다(참고자료 3).


"블루투스 권한으로는 특정 바이러스를 실행할 수 없기 때문에 상당히 까다로운 문제였다. 상당기간 연구 끝에 스마트폰 내에서 무선마우스 포인트를 생성해 냈고 이를 통해 파일을 넣었다 뺐다 할 수 있다는 것을 증명하게 됐다 또 원격에서 마우스 포인트를 이용해 사진 촬영도 가능하다."

이처럼 피해자 모르게 기기를 조작하고 파일을 탈취할 수 있습니다. 다만 블루투스를 통하여 악성코드를 퍼뜨리는 것은 쉽지 않아 보입니다. 블루투스를 통해 악성코드를 전송할 수는 있어도 그걸 설치하거나 실행하려면 피해자의 행위가 있어야 하기 때문입니다.

현실화 여부는 지켜봐야

잠재적으로 큰 위협이 될 수 있지만 아직까지는(2017.10 현재) 실제 상황에서 큰 문제가 되지 않고 있습니다. 블루투스의 통신가능 거리(10미터 정도) 내에 있어야 하는 점, 스피어피싱 등 더 효율적인 공격 수단이 많다는 점 등을 이유로 현실화 가능성에 의문을 표하는 전문가도 있습니다. 현재로선 해커 입장에서 볼 때, 가성비 좋은 공격 방법은 아닌 것으로 생각됩니다.

2018년 4월 현재 exploit code 샘플들은 나와 있지만 in the wild하게, 즉 테스트 환경이 아닌 실전 상황에서 성공적으로 exploit했다는 증거는 없는 상태입니다.

대응책은 다음과 같습니다.

운영체제 업데이트

취약점을 이용하는 공격인 만큼 소프트웨어를 최신 상태로 유지하는 것이 근본적인 해결책입니다. 주요 운영체제 공급사는 패치 배포를 완료했습니다. 다만 안드로이드와 리눅스는 여러 버전이 혼재해 있어 업데이트가 어려운 경우가 있습니다.

좋은 백신 프로그램 이용

블루본을 비롯해 취약점을 악용하는 공격은 사전에 악성코드의 설치를 필요로 하지는 않습니다. 그러나 그 취약점을 탐색, 이용한다는 의미에서의 악성코드 exploit code는 필요하며, 이 지점에서 Anti-malware 프로그램으로 요격이 가능합니다. 참고로 악성코드에서 실질적인 악성 행위를 하는 부분 또는 국면을 payload(탄두)라고 합니다.

지금의 유명 백신들은 단순히 디스크의 파일만을 검사하는 것이 아니라 메모리, 레지스트리, 네트워크 트래픽까지 감시합니다.

특히나 안드로이드 사용자는 보안 패치가 적시에 적용되기가 쉽지 않으므로, 백신의 중요성은 더욱 크다고 할 수 있습니다.

실전에선 어떨지 모르겠지만 McAfee, Symantec, Zimperium 같은 보안회사들은 자사 솔류션이 블루본을 요격할 수 있다고 주장하고 있습니다.

블루투스 끄기(?)

대부분의 뉴스에 이렇게 나오고, 평소 이 기능을 잘 쓰지 않는 분이라면 아예 꺼버리는 게 속 편할 수 있겠지요. 그러나 블루투스의 편리성을 알고 자주 쓰는 사람에겐 수시로 껐다 켰다 하는 게 참 귀찮을꺼 같네요. 현재 위협의 정도와 사용의 편의성을 저울질해서 판단할 문제라 생각합니다.


참고 자료
  1. 블루투스의 심각한 위험, "블루본"의 이해
  2. BlueBorne – Bluetooth’s airborne influenza
  3. 스마트폰과 IoT 기기, 블루투스 취약점 해킹공격 국내서 입증
  4. Exploits (exploit malware 개념)
  5. What is the detection mechanism for a BlueBorne attack or vulnerability? 
  6. 블루투스 - Android developers

댓글

이 블로그의 인기 게시물

마이크로소프트 4K 무선 디스플레이 어댑터(MS WDA 3) 리뷰

와이파이(Wi-Fi) 보안 설정

엑셀 필터 상태에서 복사와 잘라내기