알림

※ 뉴스레터를 발행합니다. 다양한 글을 좀 더 빨리 읽으시려면, 구독해 주세요. '구독'은 글 쓰는 데 큰 힘이 됩니다. 감사합니다!

Saturday, April 10, 2021

블루투스(Bluetooth) 공격 기법


    • 블루투스 기술


    블루투스(Bluetooth)는 1994년에 에릭슨이 최초로 개발한 디지털 통신 기기를 위한 개인 근거리 무선 통신 산업 표준이다. 자세한 스펙과 설명은 위키 페이지를 참조하고, 이 블로그 글에서는 블루투스 기술에 대한 요약과 함께 블루투스를 이용한 해킹에 관해 설명한다.

    ✓ 클래스에 따라 도달 거리가 0.5m~100m 다르지만, 보통 10m(미터) 이내의 초단거리에서 저전력 무선 연결에 쓰인다.

    ✓ 주파수는 ISM 대역인 2.402~2.480 GHz, 총 79개 채널을 쓴다. 
    ISM이란 산업, 과학, 의료용으로 할당된 주파수 대역으로, 아마추어 무선, 2.4GHz 무선랜, 블루투스가 이 ISM 대역을 사용한다.

    ✓ 여러 시스템과 같은 주파수 대역을 이용하기 때문에 시스템 간 전파 간섭이 생길 우려가 있는데, 이를 예방하기 위해 블루투스는 주파수 호핑(Frequency Hopping) 방식을 취한다.
    주파수 호핑이란 많은 수의 채널을 특정 패턴에 따라 빠르게 이동하며 패킷(데이터)을 조금씩 전송하는 기법이다. 블루투스는 할당된 79개 채널을 1초당 1600번 호핑한다.

    ✓ 이 호핑 패턴이 블루투스 기기 간에 동기화되어야 통신이 이루어진다. 
    블루투스는 기기 간 마스터(Master)슬레이브(slave) 구성으로 연결되는데, 마스터 기기가 생성하는 주파수 호핑에 슬레이브 기기를 동기화시키지 못하면 두 기기 간 통신이 이루어지지 않는다. 이로 인해 다른 시스템의 전파 간섭을 피해 안정적으로 연결될 수 있게 된다. 참고로 하나의 마스터 기기에는 최대 7대의 슬레이브 기기를 연결할 수 있다.

    ✓ 블루투스 버전 별 최대 데이터 전송 속도는 아래와 같다.
    버전 연도 최대 전송 속도
    1.0, 1.0B + BR (Basic Rate) 1999 768 Kbps
    1.1 2002 768 Kbps
    1.2 2003 1 Mbps
    2.0 (2.1) + EDR (Enhanced Data Rate) 2004 3 Mbps
    3.0 + HS (High Speed) 2009 24 Mbps
    4.0 + LE (Lower Power, aka Bluetooth Smart), 4.1 2010 24 Mbps
    4.2 2014 24 Mbps
    5.0 2016 48 Mbps


    • 블루투스 공격 기법


    ▶ 블루재킹(Bluejacking)

    블루스패밍(Bluespamming)이라고도 하며, 스팸처럼 익명으로 블루투스 사용자에게 메시지를 보내는 기법이다. 귀찮은 존재긴 하지만 보안에 큰 위협을 가하지는 않는다.

    ▶ 블루스나핑(Bluesnarfing)

    블루투스의 취약점을 이용하여 장비의 임의 파일에 접근하는 공격으로 모바일 기기에 저장된 일정표, 전화번호, 이메일, 문자메시지 등에 접근하는 방법이다.

    ▶ 블루버깅(Bluebugging)

    블루투스 장비 간의 취약한 연결 관리를 악용한 공격으로 공격 장치와 공격 대상 장치를 연결하여 공격 대상 장치에서 임의의 동작을 실행하는 공격이다.

    희생자의 휴대폰을 원격 조종해 통화내용을 엿듣는 해킹 방법으로 치명적인 피해를 야기할 수 있다. 이 기술을 이용하려면 타겟과 10m 이내에 있어야 가능하다.


    • 블루투스 공격 도구


    ▶ 레드팽(RedFang)

    숨겨진 블루투스 기기를 찾아내는 PoC 애플리케이션으로 무차별 대입을 통해 피해자의 블루투스 MAC 주소를 추측한다.

    ▶ 블루스니프(BlueSniff)

    검색 가능하고 숨겨진 블루투스 기능이 활성화된 장치를 찾는 간단한 유틸리티다.

    ▶ BT스캐너(BTScanner)

    무차별 대입 스캔, 반경 내 블루투스 기기 식별, 스캔 결과 내보내기 및 결과 정렬을 수행할 수 있는 블루투스 스캔 프로그램이다.

    ▶ 블루버그(BlueBugger)

    블루투스가 활성화된 모바일 기기의 보안 취약점을 이용하는 도구. 연락처와 통화 목록을 다운로드하고 공격자 모바일에서 SMS 메시지를 보내고 읽을 수 있게 해준다.



    • 블루투스 취약점


    ▶ BlueBorne (2017)

    ✓ 이 취약점은 안드로이드, iOS, 윈도우, 리눅스, 사물 인터넷 기기 등 약 53억대 이상의 기기에 영향을 미치는 것으로 나타났다.
    ✓ 블루본(BlueBorne)은 공격자가 블루투스가 활성화되어 있는 장치에 페어링하지 않아도 장치를 제어할 수 있는 공격 형태다.
    ✓ 공격자는 피해자의 장치 블루투스가 활성화된 상태로, 가까운 위치에 있기만 하면 된다.
    ✓ 아래와 같은 8개의 CVEs가 IoT 보안회사 아미스 랩(Armis Labs)에 의해 발견되었다.
     - 안드로이드: RCE (CVE-2017-0781, CVE-2017-0782), Information leak (CVE-2017-0785), MITM (CVE-2017-0783)
     - iOS: RCE (CVE-2017-14315)
     - 윈도우: MITM (CVE-2017-8628)
     - 리눅스: Information leak (CVE-2017-1000250), RCE (CVE-2017-1000251)


    * 관련 기사


    ▶ KNOB (2019)

    CVE-2019-9506이라고 불리는 이 취약점은 '암호화 키 협상 프로토콜'이 두대의 장비에 보안 연결을 할때 두대의 블루투스 BR/EDR 디바이스가 암호화 키를 위한  앤트로피 값을 선택하는 방식에서 나타난다.
    ✓ KNOB(Key Negotiation of Bluetooth) 공격이라고 불리는 이 취약점은 원격 공격자가 가까운 거리에서 타깃 디바이스에 연결된 두 디바이스 사이에 암호화된 블루투스 트래픽을 조작하거나 감시하거나  가로채는 것이 가능하다.
    ✓ KNOB 공격을 완화하기 위해 Bluetooth 사양 관리자는 장치 제조업체와 소프트웨어 공급 업체가 BR/EDR 연결에 최소 7옥텟의 암호화 키 길이를 적용 할 것을 강력히 권장했다.


    USENIX Security '19 - The KNOB is Broken: Exploiting Low Entropy in the Encryption Key

    * 관련 기사


    ▶ BIAS (2020.3)

    ✓ 이 취약점(CVE-2020-10135)은 코드네임 BIAS(Bluetooth Impersonation AttackS)로 명명되었으며, Bluetooth BR/EDR, Bluetooth Classic 등으로 불리고 있는 블루투스 프로토콜의 클래식 버전에 영향을 준다.
    ✓ 암호화 연결을 생성하기 위해서는 두 개의 블루투스 기기를 페어링할 때 링크 키를 사용해야 하는데, 기기와 물리적으로 근접한 무단 공격자는 이전에 페어링(연결된) 기기를 위조하여 링크 키 없이도 인증할 수 있다.
    ✓ BIAS와 KNOB를 조합한다면 공격자가 블루투스 클래식 기기가 안전 인증 모드에서 동작한다고 하더라도 인증을 깰 수 있다.

    * 관련 기사


    ▶ BLURtooth (2020.7)

    ✓ 이 취약점은 블러투스(BLURtooth)라고 불리며, CVE-2020-15802라는 번호가 붙었다.
    ✓ 이 취약점을 익스플로잇 할 경우 인증을 통과하지 못한 공격자들이 페어링 된 장비들 간 통신 내용을 바꾸거나 엿들을 수 있다.
    ✓ 블루투스 4.0~5.0 버전의 페어링 과정을 ‘교차 전송 키 파생(Cross-Transport Key Derivation, CTKD)’이라고 부르는데, 이것의 구현 방법과 취약점에 밀접한 관련이 있다.

    ※ 블러투스 취약점과 관련된 블루투스 프로토콜에는 두 가지 유형이 있다.
    1) 블루투스 클래식(Bluetooth Classic) : 블루투스 Basic Rate / Enhanced Data Rate(BR/EDR)이라고도 불린다. 좀 더 오래된 유형이다.
    2) 블루투스 로우 에너지(Bluetooth Low Energy) : 줄여서 BLE라고도 하며 클래식보다 새로운 유형의 프로토콜이다.
    BR/EDR은 주로 오디오 관련 애플리케이션들에 사용되고, BLE는 웨어러블 장비들에서 보다 많이 나타난다.

    * 관련 기사

    ▶ BLESA (2020.9)

    ✓ 블레사는 퍼듀대학의 연구원들이 블루투스 저전력(BLE)에서 취약점을 발견했다. (CVE-2020-9770)
    ✓ 블레사(BLESA)는 BLE 스푸핑 공격(BLE Spoofing Attacks)의 준말로, 블루투스 연결이 재차 성립되는 과정에서 발동된다.
    ✓ 전 세계 수십억 대의 사물인터넷 장비에 영향을 줄 만한 것이며, 안드로이드 장비들은 거의 대부분 이 취약점에 노출된 채 사용되고 있다.
    ✓ 공격자들은 재연결 시 필요한 인증 과정을 BLESA를 통해 우회해 표적으로 삼은 장비에 접근해서 가짜 데이터를 보낼 수 있다.
    ✓ 문제는 BLE가 애드버타이징 패킷(advertising packet)을 항상 평문으로 전송하고, 장비 간 재연결이 이뤄질 때 인증이 필수가 아닌 경우가 많은 것.


    WOOT '20 - BLESA: Spoofing Attacks against Reconnections in Bluetooth Low Energy

    * 관련 기사


    ▶ BleedingTooth (2020.10)

    ✓ 구글과 인텔이 리눅스 블루투스 프로토콜인 블루지(BlueZ)에서 고위험군에 속하는 취약점을 발견했다. 
    ✓ 블루지는 리눅스 기반 사물인터넷(IoT) 장비들에 탑재된 블루투스 기능을 구현하는 데 있어 핵심적인 요소 중 하나다.
    ✓ 구글에 의하면 리눅스 커널 5.9 이전 버전의 경우 블리딩투스(BleedingTooth) 취약점에 노출되어 있다고 한다.
    ✓ 블리딩투스 취약점의 가장 큰 특징은 피해자가 링크를 클릭하거나 파일을 열지 않아도 되는 ‘제로 클릭 공격’이 가능하다는 점이다.
    CVE-2020-12351 (high), CVE-2020-12352 (medium), CVE-2020-24490 (medium)


    * PoC 익스플로잇 영상 - BleedingTooth: Linux Bluetooth Zero-Click Remote Code Execution

    * 관련 기사


    • 블루투스 해킹 대응 방안


    ① 블루투스이 필요할 때만 연결하고 사용하지 않을때는 블루투스를 OFF 합니다.
    패치가 나와 업데이트했더라도 평소에 필요할 때만 블루투스 기능을 켜는 것은 좋은 습관입니다.  보안 측면에서 공격 표면(Attack Surface)를 줄이고, 스마트폰은 배터리를 아낄 수 있는 추가 장점도 있습니다.

    특히 리눅스의 경우, 커널 5.9 이전 버전의 경우 블리딩투스(BleedingTooth) 취약점에 노출되어 있습니다. 커널 패치가 어려운 경우가 많으니 블루투스를 사용하지 않는 경우 disable 하기를 권장합니다.

    * 참고:

    ② 블루투스 연결 시 페어링 요청을 보내는 디바이스를 정확히 확인하고, 신뢰할 수 있는 경우에만 승인합니다.

    ③ 시스템이나 모바일 장치의 펌웨어나 소프트웨어를 항상 패치하여 최신 상태로 유지합니다.
    최신 버전의 소프트웨어를 유지하는 것은 사이버보안에서 가장 중요합니다.


    함께 읽어보면 좋은 관련 글: 무선(Wi-Fi) 네트워크 보안 및 취약점



    No comments:

    Post a Comment