- O2 UK의 4G Calling/WiFi Calling 구현에서 발신자가 수신자의 위치 추정에 쓸 수 있는 IMS/SIP 헤더를 받는 문제가 있었고, 이 노출은 여러 달 동안 모든 O2 고객에게 영향을 줌
- IMS 신호 메시지는 O2의 IMS/SIP 서버인 Mavenir UAG, 버전, 디버그 정보, 오류 메시지와 함께 발신자·수신자의 IMSI·IMEI 및 수신자
Cellular-Network-Info를 포함함 Cellular-Network-Info의utran-cell-id-3gpp값을 PLMN, Location Area Code, Cell ID로 나눈 뒤 Cellmapper 같은 공개 기지국 데이터와 대조하면 수신자의 대략적 위치를 찾을 수 있음- 도시에서는 가로등 등에 설치된 small cell이 좁은 영역을 담당해 위치 추정 정확도가 크게 올라가며, 해외 로밍 중인 O2 고객도 코펜하겐 도심으로 특정할 수 있었음
- 4G Calling과 WiFi Calling을 모두 끄면 위치 노출은 막을 수 있지만 IMEI와 IMSI 노출은 IMS 등록 상태와 무관하게 남아 있어, O2가 관련 헤더를 IMS/SIP 메시지에서 제거해야 함
IMS 통화에서 새어 나온 위치 단서
- Voice over LTE(VoLTE)는 IP Multimedia Subsystem(IMS) 표준을 사용해 모바일 네트워크에서 인터넷 기반 프로토콜로 음성 통화를 처리함
- IMS 구현은 복잡하고 기기 의존성이 커서, 과거에는 VoLTE와 WiFi Calling을 쓰기 위해 특정 펌웨어가 필요한 기기도 있었음
- 모바일 네트워크는 IMS 서비스를 어떻게 구현하고 어떤 설정을 사용할지 선택하며, 휴대전화는 해당 서버와 직접 통신함
- 이 구조에서는 서버를 최신 상태로 유지하고, 설정이 불필요한 데이터 노출로 이어지지 않게 관리할 책임이 모바일 네트워크에 있음
O2 UK 4G Calling을 확인하던 과정
- O2 UK는 2017년 3월 27일 첫 IMS 서비스인 4G Calling을 출시함
- 통화 품질을 개선하고, 통화 중 3G로 내려가지 않아 데이터 경험을 개선하는 서비스였음
- 조사자는 O2로 이동한 뒤 4G/WiFi Calling에서 어떤 음성 코덱이 지원되는지 확인하려고 함
- 루팅된 Google Pixel 8에서 Network Signal Guru(NSG) 를 사용해 다른 O2 고객의 4G VoLTE 호환 기기로 전화를 걸었음
- 최신 Google Pixel의 Samsung 모뎀에서 NSG 버그가 있어 VoLTE 섹션에 현재 통화 코덱이 자동 표시되지 않았고, 대신 기기와 네트워크 사이의 원시 IMS 신호 메시지를 확인함
IMS/SIP 메시지에 포함된 민감한 헤더
- 네트워크 응답은 다른 네트워크에서 보던 것과 달리 매우 상세하고 길었음
- 메시지에는 O2가 사용하는 IMS/SIP 서버인 Mavenir UAG와 버전 번호가 포함됨
- 통화 정보를 처리하는 C++ 서비스에서 문제가 생겼을 때의 오류 메시지와 기타 디버그 정보도 함께 노출됨
- 특히 메시지 하단 근처에 다음 유형의 헤더가 들어 있었음
P-Mav-Extension-IMSI: IMSI 2개P-Mav-Extension-IMEI: IMEI 2개Cellular-Network-Info: 수신자 셀 정보
- IMSI와 IMEI를 조사자의 기기 정보와 비교한 결과, 발신자뿐 아니라 통화 수신자의 IMSI와 IMEI도 포함돼 있었음
Cellular-Network-Info로 위치를 계산하는 방식
Cellular-Network-Info값 앞부분인3GPP-E-UTRAN-FDD는 셀 데이터가 4G, 공식 명칭으로 E-UTRAN FDD에 해당함을 나타냄- 이어지는
utran-cell-id-3gpp값은 3부분으로 나뉨- 처음 5~6자리는 수신자의 네트워크 PLMN
- 다음 4문자는 수신자의 Location Area Code(LAC)이며 16진수
- 마지막 7문자는 수신자의 Cell ID이며 16진수
- 마지막 섹션은 데이터의 나이를 초 단위로 나타냄
- 기기가 현재 네트워크에 연결돼 있지 않거나 신호가 없거나 WiFi Calling에 의존할 때 존재함
- 예시 메시지에서는 수신자가 O2 네트워크
234-10에 연결돼 있고, LAC0x1003, Cell ID0x7a60773에 있으며, Google Pixel 9과 O2 SIM을 사용한다고 계산할 수 있었음
공개 기지국 데이터와 결합한 위치 추정
- Cell ID는 Cellmapper의 cell ID calculator에 넣어 해당 사이트 ID를 계산할 수 있음
- 이후 Cellmapper 지도에서 해당 사이트를 찾아 통화 시점의 매크로 셀을 확인할 수 있음
- 매크로 셀은 비교적 넓은 커버리지를 가지지만, 밀집 도시 지역은 작은 셀을 많이 사용함
- small cell은 가로등에 직접 설치되는 경우가 있음
- 각 사이트가 100㎡ 만큼 작은 영역을 커버할 수 있음
- 해외 로밍 중인 다른 O2 고객에게도 같은 공격을 테스트했고, 덴마크 코펜하겐 도심으로 특정할 수 있었음
- 조사자의 기기는 네트워크에 특수한 동작을 하지 않았고, 단지 기기로 전송된 정보를 볼 수 있게 해줬을 뿐임
- IMS, 즉 4G Calling 또는 WiFi Calling으로 전화를 거는 O2 기기는 통화 수신자의 지리적 위치 추정에 사용할 수 있는 정보를 받을 수 있음
O2가 제거해야 할 헤더와 사용자가 할 수 있는 완화
- O2는 고객의 개인정보와 안전을 보호하기 위해 강조된 헤더들을 모든 IMS/SIP 메시지에서 제거해야 함
- 디버그 헤더도 비활성화하는 편이 논리적임
- 네트워크 코어 외부의 어떤 기기도 이런 헤더를 볼 이유가 없음
- 디버그 헤더가 추가 정보를 의도치 않게 유출할 가능성이 있음
- 경쟁사 EE는 BT responsible disclosure 경로를 제공하지만, O2에는 이런 잠재적 공격 벡터를 보고할 명확한 에스컬레이션 경로가 부족함
- 2025년 3월 26일과 27일 O2의 CEO Lutz Schüler와
securityincidents@virginmediao2.co.uk로 이 동작과 개인정보 위험을 알리는 이메일을 보냈지만, 응답이나 동작 변화는 없었음 - 4G Calling과 WiFi Calling을 모두 끄면 위치 노출 부분은 효과적으로 막을 수 있음
Cellular-Network-Info헤더는 수신자 기기가 응답할 때만 전송됨- IMEI와 IMSI 노출은 IMS 등록 상태와 무관하게 계속 발생함
- 2025년 5월 27일 수정에서, 원래는 위치 노출을 완화할 방법이 없다고 했지만 IMS 신호와 기기 헤더 전송 방식을 더 확인한 뒤 4G Calling과 WiFi Calling을 모두 끄면 위치 노출 부분은 완화된다고 정정됨