김보안의 블로깅
  • 🏠 Home
  • 📚 Project
    • Blockchain
      • 🎦 PickMe
      • 🎦 IoTC
      • 🎦 Blackchain
      • 📃 Gemology
      • 🎦 PickMe
      • 🎦 PickMe
    • AI
      • 👋 A.I. Dream Reader
      • 🎦 A.I. Dream Reader
    • Security
      • 🎦 SNAC
    • Education
      • 🎦 Smart Lecture
  • 🤸‍♂ Hobby
    • Music
      • Violin
      • Guitar
      • Piano
      • Drum
    • Flower
      • Flower Certificate
    • Sport
      • Ski
      • Skateboard
      • Golf
      • Boxing

2017년 9월 13일 수요일

블루본 (BlueBorne) - Bluetooth 취약점과 탐지(Detector) 앱 분석

 SecureKim     오후 3:50     리눅스, 블루본, 안드로이드, 애플, 앱, 윈도우, 취약점, 타이젠, blueborne, bluetooth, cve, detector, iOS, Security, vulnerability     2 comments   



이 글이 국내에서는 BlueBorne 에 대한 최초의 포스팅이 될 것 같다.


먼저 BlueBorne 에 대해서 알아보고,


Armis 社의 BlueBorne Detector 앱을 열어서 


어떤식으로 Detect 하는지 확인해 본다.






BlueBorne 이란?

Armis security 에서 17년 9월 12일 
8가지 Bluetooth 취약점 Collection 인 BlueBorne 을 발표 했다.

Bluetooth 관련 프로세스는 모든 OS에서 높은 권한을 갖고 있기 때문에
해당 프로세스를 exploit 하는데 성공한다면 자연히 디바이스의 통제권을 얻을 수 있다고 볼 수 있다.

Blueborne 은 악의적인 기기와 연결되어 있지 않아도 되고, 검색 가능 모드가 아니어도 상관 없는데다 Android, Linux, Windows, iOS 등 거의 모든 컴퓨터, 모바일기기, IoT 제품에 적용된다.

즉, Blueborne는 블루투스 기능을 갖고있는 약 80억개의 Device 에 적용되어 스펙트럼이 매우 넓으면서도 공격 성공시 막강한 권한을 갖게 되는 것이다.


BlueBorne Collection의 CVE 목록은 다음과 같다.


ㆍAndroid
 CVE-2017-0781 : Remote Code Execution Vulnerability #1
 CVE-2017-0782 : Remote Code Execution Vulnerability #2
 CVE-2017-0783 : The Bluetooth Pineapple in Android Man in The Middle attack
 CVE-2017-0785 : Information Leak Vulnerability

ㆍLinux
 CVE-2017-1000250 : Information leak vulnerability
 CVE-2017-1000251 : Linux kernel RCE vulnerability

ㆍWindows
 CVE-2017-8628 : The Bluetooth Pineapple in Windows – Man in The Middle attack

ㆍiOS
 CVE-2017-14315 : Apple Low Energy Audio Protocol RCE vulnerability



위의 CVE-2017-8628(Windows) 과 CVE-2017-0783(Android) 내용을 보면 같은 취약점인걸 알 수 있다.

왜 그럴까?

사실상 블루투스 프로토콜은 구현 하기가 어렵기 때문에,
벤더들은 대부분 프로토콜 가이드라인 대로 하나씩 구현 하게 된다.
(Wifi 스펙은 450p 인데 블루투스 스펙은 무려 2822p)
즉, 대부분 취약점이 발견되었을 때 다른 플랫폼에서도 동일하게 발견 되는 것이다.

더 자세한 정보는 armis 공식 홈페이지의 blueborne 소개 자료를 확인해 보면 된다.

아직까지 관련 보안 패치는 올라오지 않았는데 무시무시한 영상들이 올라와있다.


Demo : Android 





Demo : Windows






Demo : Linux







패치가 나오기 전까지는 bluetooth 를 꺼놓는게 좋을 것으로 보이며, 

리눅스인 경우 CONFIG_CC_STACKPROTECTOR 를 적용해 빌드하면 그나마 CVE-2017-1000251 를 DoS 정도로 완화 할 수 있다.



BlueBorne Detector


또한 pastebin 에 blueborne detector 로 추정되는 소스코드의 일부가 올라와 있어서 찾아보았는데 이미 detector 앱이 나와있었다.

코드 일부 :  https://pastebin.com/RhN6mkqd
앱 : 

https://play.google.com/store/apps/details?id=com.armis.blueborne_detector


Detector 는 확인 결과 두가지 기능으로 이루어져 있다.

1. 자신의 모바일 기기가 BlueBorne 에 안전한지 본다.


해당 함수는 isVulnerable 인데, 내용이 별로 없다.

Smali Code - VulnerabilityUtils.smali


.method public static isVulnerable()Z
.locals 4

.prologue

...... 생략 .......

.line 34
.end local v0 # "securityPatchDate":Ljava/util/Date;
:cond_1
invoke-static {}, Lcom/armis/blueborne_detector/VulnerabilityUtils;->getSecurityPatchDate()Ljava/util/Date;

move-result-object v0

.line 35
.restart local v0 # "securityPatchDate":Ljava/util/Date;
if-eqz v0, :cond_2

sget-object v2, Lcom/armis/blueborne_detector/VulnerabilityUtils;->SAFE_DATE:Ljava/util/Date;

invoke-virtual {v0, v2}, Ljava/util/Date;->before(Ljava/util/Date;)Z

...... 생략 ......


위와 같이 직접 공격을 해보고 취약한지 보는건 아니고
단순히 패치 날짜를 보고 판단하게 된다.


2. 내 주변 Bluetooth 기기들이 안전한지 확인




이 기능은 매우 실망 스러웠다.

Mac 주소를 엄청나게 하드코딩 해둔 뒤
제조사를 파악하고
그 제조사의 이름에 따라 Risk 한지 아닌지를 파악한다.

그림에 High Risk 라고 나오는건 MAC 주소가
24:4B:03 으로 시작되므로 아래 하드코딩된 정보에 따라
취약하다고 판단하게 된다.

Smali Code - Manuf.smali

const-string v3, "24:4B:03"

aput-object v3, v1, v2

const/16 v2, 0x77



Armis가 취약하다고 판단하는 제조사는 Apple 부터 시작해서 ZTE 까지 거의 모든 제조사이다. 

즉, 이름이나 MAC 주소로 제조사가 판단되면 무조건 취약하다고 하는 건데

이딴식(?)으로 만든 이유에 대해

1. 구체적인 POC 를 공개하기 싫어서 (공개되면 큰일이긴 함)
2. 만들기 귀찮아서... 

등의 추측을 하고 있다.



결론적으로, 추후 패치가 나올지는 모르겠지만
현재는 Vulnerability Detector 가 아니라 그냥 Manufacturer Detector 라고 볼 수 있겠다.




  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
이메일로 전송BlogThis!X에 공유Facebook에서 공유
최근 게시물 이전 게시물 홈

댓글 2개:

  1. cs2021년 5월 19일 오후 12:43

    최근에 blueborne scanner 를 깔아볼까 생각하고 있었는데, 스캐너를 그렇게 만들어뒀다니..
    좋은 정보 감사합니다

    답글삭제
    답글
    1. SecureKim2022년 9월 15일 오전 11:04

      넵 ㅎㅎ 방문 감사합니다.

      삭제
      답글
        답글
    2. 답글
댓글 추가
더 로드하기...

페이지

  • 홈
  • Hobby

Categories

  • AI
  • AWS
  • Blockchain
  • Hardware
  • Javascript
  • Node.js
  • Plasma
  • Security
  • Study
  • Video
  • android
  • mysql
  • review
  • windows

Popular Posts

  • 회사 프록시와 인증서에 고통받는 그대를 위한 글 (Bash, Gradle, Python, wget, nodejs(npm), apt-get, cURL, git, yarn, androidStudio)
    대기업에 입사하면 장단점이 있는데, 단점 중에 하나가 회사에서 프록시를 사용하여 트래픽 감시를 하므로 프록시 설정을 해주어야 한다는 점 입니다. 특히, 회사에서는 https 트래픽도 감시를 하므로 인증서도 설정해 주어야 합니다. 그런데 문...
  • 다빈치리졸브로 영상의 음성 보정 (잡음 노이즈 없애기)
      잡음 없애는 방법 1. 음악 쪽 들어가서 음악에서 소스 우클릭 - Normalize Audio Levels 2. 우측의 Mixer에서 Dynamics 더블클릭, Effects아래 +누르고 Metering에 Meter 그럼 아래처럼 나오는데  Gat...
  • 블랙보드 강의 녹화 영상 다운로드 가능한 방법 (노설치)
    별도의 설치도 필요 없고 아주 쉽습니다. 구글 크롬브라우저 에서 블랙보드 녹화 영상에  다운로드 가능한 메뉴가 나오게 하는 코드입니다.  먼저 블랙보드 강의자료에 입장하고, 재생 버튼을 클릭 하지 않은 상태로 F12 를 입력합니다. 재생을 클릭하지 마...

Blog Archive

  • ►  2024 (2)
    • ►  11월 (2)
  • ►  2023 (2)
    • ►  10월 (1)
    • ►  1월 (1)
  • ►  2022 (10)
    • ►  12월 (1)
    • ►  11월 (3)
    • ►  9월 (1)
    • ►  8월 (1)
    • ►  6월 (2)
    • ►  3월 (2)
  • ►  2021 (9)
    • ►  12월 (3)
    • ►  11월 (1)
    • ►  6월 (1)
    • ►  5월 (2)
    • ►  4월 (2)
  • ►  2020 (12)
    • ►  10월 (1)
    • ►  9월 (2)
    • ►  7월 (1)
    • ►  6월 (1)
    • ►  5월 (5)
    • ►  4월 (1)
    • ►  2월 (1)
  • ►  2019 (14)
    • ►  10월 (2)
    • ►  7월 (1)
    • ►  3월 (4)
    • ►  2월 (2)
    • ►  1월 (5)
  • ►  2018 (14)
    • ►  12월 (2)
    • ►  11월 (4)
    • ►  10월 (1)
    • ►  8월 (2)
    • ►  5월 (4)
    • ►  1월 (1)
  • ▼  2017 (12)
    • ►  10월 (2)
    • ▼  9월 (9)
      • [Kisa] 암호의 이해와 키 관리 실무 - IOT 보안
      • [Kisa] 암호의 이해와 키 관리 실무 - FIDO
      • [Kisa] 암호의 이해와 키 관리 실무 - 4일차 암호와 금융 보안
      • [Kisa] 암호의 이해와 키 관리 실무 - 3일차 정보보안 Compliance
      • [Kisa] 암호의 이해와 키 관리 실무 - 3일차 PKI 관련 표준 - PKCS
      • [Kisa] 암호의 이해와 키 관리 실무 - 2일차 PKI와 관련 표준의 이해
      • [Kisa] 암호의 이해와 키 관리 실무 - 1일차 (암호학의 기초)
      • Cloud Sec 2016 관람 후기
      • 블루본 (BlueBorne) - Bluetooth 취약점과 탐지(Detector) 앱 분석
    • ►  5월 (1)
  • ►  2016 (8)
    • ►  10월 (2)
    • ►  8월 (1)
    • ►  6월 (1)
    • ►  1월 (4)
  • ►  2015 (6)
    • ►  12월 (3)
    • ►  10월 (1)
    • ►  6월 (1)
    • ►  5월 (1)
  • ►  2014 (10)
    • ►  11월 (1)
    • ►  9월 (1)
    • ►  7월 (1)
    • ►  6월 (1)
    • ►  5월 (3)
    • ►  4월 (1)
    • ►  3월 (2)
  • ►  2013 (28)
    • ►  12월 (3)
    • ►  11월 (6)
    • ►  10월 (6)
    • ►  9월 (6)
    • ►  8월 (1)
    • ►  7월 (3)
    • ►  6월 (3)

구독

글
Atom
글
댓글
Atom
댓글

로드 중입니다...

각오

직접 해보지 않은 것은 포스팅 하지 않겠습니다.

Copyright © 김보안의 블로깅 | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates