컨테이너

[Paper Review] BlueShield (2) - 성공적인 스푸핑 공격 감지 시스템 본문

Research/Paper

[Paper Review] BlueShield (2) - 성공적인 스푸핑 공격 감지 시스템

어항 2022. 3. 20. 17:56
반응형

 

이번 글에선 BLE 기기의 스푸핑 공격 감지를 위한 BlueShield 시스템의 구조와 디자인을 자세히 알아보겠습니다. 이전 글에 BLE 보안의 취약성과 BlueShield의 필요성이 정리되어 있습니다. 이 분야에 대해 자세히 공부하고 싶으신 분들은 아래 링크를 참고하시면 좋을 것 같습니다.

 

 

[Paper Review] BlueShield (1) - BLE 보안의 취약점

이번에 리뷰할 논문은 "BlueShield: Detecting Spoofing Attacks in Bluetooth Low Energy Networks" 입니다. BlueShield: Detecting Spoofing Attacks in Bluetooth Low Energy Networks | USENIX Open Access Me..

ahang.tistory.com

 

 


 

광고 패턴 (Advertising Pattern)

BlueShield는 광고 패턴별로 스푸핑 공격을 감지하는 절차가 다릅니다. 다양한 목적으로 사용되는 BLE 디바이스들은 아래와 같은 두 가지 광고 패턴을 가집니다. 

 

  • Intermittent Advertising Pattern
    • BLE 디바이스와 사용자가 연결되었을 때, 광고 패킷의 방송이 중단됩니다.
  • Persistant Advertising Pattern
    • BLE 디바이스와 사용자가 연결됐음에도 불구하고 광고 패킷을 방송합니다.

 

 


 

시스템 구조 (System Architecture)

 

 

BlueShield의 시스템 구조는 위와 같습니다. Profiling Phase와 Monitoring Phase를 통해 스푸핑 공격을 감지하고 사용자에게 알람을 보냅니다. 각 단계의 자세한 내용을 아래에서 다루겠습니다.

 

 


Profiling Phase

 

 

 

Profiling Phase에선 사용자 BLE 디바이스의 정보를 기록합니다. 기록된 정보는 스푸핑 공격을 당했을 때 수신된 공격자의 광고 패킷과 기록된 정보를 비교하여 스푸핑 공격 여부를 판단하는데 사용됩니다. Device ID, Name, MAC Address, Advertising Data는 광고 패킷을 통해 얻을 수 있습니다. Advertising Pattern은 사용하는 BLE 기기의 광고 패턴 특성입니다. 마지막으로 Lower Bound of INT는 광고 패킷을 수집하는 Collector가 패킷을 수신받는 시간 간격의 하한값입니다.

 

Advertising Interval (INT)은 수신된 광고 패킷의 시간 간격으로 아래와 같이 구할 수 있습니다.

 

$$ INT = P_t - P_{t-1} $$

 

$ P_t $는 현재 광고 패킷이 수신된 시간이고, $ P_{t-1} $은 이전 광고 패킷이 수신된 시간입니다. 만약 스푸핑 공격을 당하는 상황이라면 Collector는 사용자 BLE 디바이스의 광고 패킷뿐만 아니라 공격자의 것도 수신받게 됩니다. 따라서 INT의 값도 이전보다 비이상적으로 줄어들게 되겠죠. 아래 Monitoring Phase에서 이러한 INT의 특성을 이용하여 스푸핑 공격 여부를 검사합니다. 이때 스푸핑 공격 여부를 확인하기 위해 기준이 되는 값이 Lower Bound of INT로 아래와 같이 구합니다.

 

$$ Lower\ Bound\ of\ INT = P_{min} - 10ms $$

 

$ P_{min} $은 이전부터 지금까지 계산된 INT 중 가장 작은 값입니다. 현재 계산된 INT이 Lower Bound of INT보다 작다면 스푸핑 공격으로 간주됩니다.

 

 


 

Monitoring Phase

 

 

BlueShield의 Monitoring Phase는 위 그림과 같이 세 개의 Collector를 사용합니다. BLE의 광고 패킷은 37, 38, 39 세 개의 채널에서 방송됩니다. 각각의 Collector는 서로 다른 3개의 채널에서 광고 패킷을 수신받습니다. 이때 공격자는 Collector들이 수신받는 채널을 알고 있다면, 공격자의 광고 패킷을 사용자의 것처럼 속여 손쉽게 Collector를 속일 수 있습니다. 이러한 스푸핑 공격을 예방하기 위해 Randomized Channel Switching을 사용합니다. 

 

Randomized Channel Switching

 

 

Randomized Channel Swithching은 각각의 Collector가 광고 패킷을 수신받는 채널을 랜덤으로 바꿉니다. 이때 채널은 Lower Bound of INT보다 빠른 속도로 바뀝니다. 따라서 공격자는 특정 Collector가 몇 번의 채널에서 광고 패킷을 받고 있는지 쉽게 알 수 없습니다. 또한 세 Collector는 각각 다른 좌표에 위치하므로 수신받는 광고 패킷의 Received Signal Strength (RSS)가 다릅니다. 따라서 공격자가 방송하는 광고 패킷의 Received Signal Strength Indicator (RSSI)가 세 개의 Collector 모두를 속이는 것은 거의 불가능에 가깝습니다.

 

Runtime Selective Inspection

 

 

위 Randomized Channel Swithching을 사용하여 Collector에서 수집된 광고 패킷들은 Physical Feature Inspection으로 스푸핑 공격을 감지합니다. BlueShield에서 검사에 사용되는 Physical Feature는 INT, RSSI, Carrier Frequency Offset (CFO)입니다.

 

  • Advertising Interval (INT)
    • 방송하는 광고 패킷의 시간 간격
  • Received Signal Strength Indicator (RSSI)
    • 수신된 무선 신호에 존재하는 전력 측정 값
  • Carrier Frequency Offset (CFO)
    • RF회선의 결함으로 인해 송신된 신호의 지정 반송 주파수와 실제 반송파 주파수 간에 발생하는 불일치 Offset

 

Persistent Advertising Pattern을 가지는 기기와 Intermittent Advertisin Pattern을 가지는 기기가 광고 모드일 경우 INT 검사만으로도 유효한 스푸핑 공격 감지가 가능합니다. 하지만 Intermittent Advertisin Pattern을 가지는 기기가 연결 모드일 경우 CFO와 RSSI 검사로 스푸핑 공격을 감지합니다.

 

 

INT Inspection은 Profiling Phase에서 다뤘던 내용과 같은 방법으로 스푸핑 공격을 감지합니다. CFO와 RSSI 검사의 경우 사용자 BLE 기기가 연결되기 전 수집되었던 CFO, RSSI를 바탕으로 유효한 정상 범위를 계산합니다 (그림의 Lookback Window에서 계산됩니다). 이후 공격자가 공격을 시도하기 위해 사용자에게 스푸핑 된 광고 패킷을 전송한다면 BLE 디바이스와 연결이 끊깁니다. 그리고 BLE 디바이스는 다시 광고 모드로 돌아와 광고 패킷을 방송합니다. 이때 Observation Window에서 Collector는 사용자의 BLE 디바이스가 송신하는 광고 패킷뿐만 아니라 공격자의 광고 패킷도 같이 수집되므로 이전에 계산된 CFO, RSSI의 정상 범위를 벗어날 확률이 높습니다. 이때 정상 범위에서 벗어난 값이 수신되었을 때 스푸핑 공격으로 간주합니다.

 

다음 글에선 BlueShield의 성능 평가와 개인적으로 생각하는 한계점에 대해 다뤄보겠습니다.

반응형
Comments