O2 VoLTE, 통화 한 번으로 모든 고객 위치 추적 가능
(mastdatabase.co.uk)- 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을 모두 끄면 위치 노출 부분은 완화된다고 정정됨
댓글과 토론
Hacker News 의견들
-
2025년 3월 26~27일에 O2 CEO와 보안 사고 메일 주소로 이 동작과 개인정보 위험을 알렸는데도 답변도 변화도 없었다는 건 정말 형편없음
왜 Virgin Media 주소가 최선의 연락처에 가까운지도 의문이고, https://www.o2.co.uk/.well-known/security.txt는 404가 아니라 200을 반환해야 함
이런 상황에서 공개하는 건 문제 없다고 보지만, NCSC가 특정 조건에서 이런 사안을 다룰 수 있고 조직과 소통도 더 잘할 수 있지 않을까 싶음- 이건 실제로 우리 쪽 실수임
연락한 메일은 @virginmedia.co.uk가 아니라 @virginmediao2.co.uk였고, 글에 오타가 있었음
정정해서 업데이트하겠음 - 개인정보 처리방침에는 GDPR 요건 때문에 여러 메일 주소가 올라와 있음
예를 들어 DPO@o2.com 같은 곳은 누군가 보고 있을지도 모름
https://www.o2.co.uk/termsandconditions/privacy-policy
- 이건 실제로 우리 쪽 실수임
-
O2에는 예전엔 책임 있는 공개용 주소가 있었지만 몇 년 전에 없앴음
오래전에 거기서 일할 때 보안팀은 훌륭했는데, 작년에 어떤 문제로 메일을 보냈을 땐 그 사람들이 전부 사라져 있었음- O2 내부의 관련 팀이 실제로 통보받았다는 건 알고 있지만, 결과적으로 조치가 없었거나 충분하지 않았던 것으로 보임
-
이 사안에서 정말 흥미로운 점은, 대부분의 관할권에서는 아마 해킹으로도 분류되지 않을 가능성이 크다는 것임
데이터가 네트워크에서 정상 사용 중 자발적으로 전송되고 있음
어떤 시스템도 개인정보를 드러내도록 속인 게 아니며, 그런 행위는 해킹이 사소하더라도 불법인 경우가 많음
URL에&reveal_privat_data=true같은 걸 붙이는 것만으로도 접근 권한이 없는 데이터에 접근하려는 명확한 의도가 있어 불법으로 볼 수 있지만, 이 경우엔 그런 것도 없음- 그래도 이건 데이터 유출이고, 규제가 영국에 있다면 즉시 감독기관에 신고해야 하며 신고하지 않으면 벌금 등이 따르는 사안임
- 영국의 Computer Misuse Act가 얼마나 넓게 적용되는지 잘 모르는 것 같음
-
무서운 부분은 이게 이론적인 버그가 아니라는 점임
글에서도 나오듯 다른 영국 통신사들은 이미 해결한 구현상의 게으름이고, LTE 도입 때부터 ECI 유출은 지적돼 왔음
https://arxiv.org/abs/2106.05007—and 같은 논문도 있고, 공개 기지국 데이터베이스가 있으면 자동 위치 매핑도 사소한 일임- 이걸 써오던 보안기관에서 뭘 하라고 지시하길 기다리며 패닉에 빠져 있을 가능성이 있음
-
통화 발신자가 통화 제어 메시지, 즉 SIP를 어떻게 볼 수 있었는지도 매우 궁금함
이런 메시지는 단말과 기지국, MME 사이에서 암호화된 GRE 터널 안에 들어가는 것 아닌가? GRE 터널 암호화를 풀 수 있다면 엄청난 구멍일 텐데, 아마 원글 작성자가 자기 기기에서 분석을 돌려서 가능한 것 같기도 함
그래도 암호화 전 페이로드가 보인다는 점은 놀라움- 글 편집자임
Qualcomm 칩이 들어간 많은 Android 기기는 USB로 모뎀 진단 포트를 노출할 수 있어서 루팅된 기기조차 필요 없음
다만 노트북을 들고 돌아다니는 것보다 기기에서 루팅된 NSG를 쓰는 편이 훨씬 쉬움
모뎀 진단 포트를 켠 뒤 Scat(https://github.com/fgsect/scat)을 쓰면 네트워크와 주고받는 모든 신호 트래픽을 볼 수 있을 정도로 간단함 - 루팅된 Android 휴대폰과 Network Signal Guru라는 앱을 쓰고 있음: https://play.google.com/store/apps/details?id=com.qtrun.Quic...
적어도 무료 버전 앱은 뭔가를 “복호화”하는 것 같지는 않지만, 루트 권한과 모뎀 접근 권한이 있어서 이런 로그를 읽을 수 있음
대역을 끄거나 특정 기지국에 고정하려는 시도도 가능해서, 전용 4G/5G 라우터처럼 모바일 데이터를 주 인터넷 회선으로 쓰려는 경우 유용함 - 많은 통신사는 VoLTE용 SIP 신호가 P-CSCF에서 종료되는 IPsec 전송을 쓰도록 설정하지만, 대부분 또는 전부는 IPsec을 무결성 보호용으로만 설정함
- 말하려던 건 GRE가 아니라 GTP 터널인 것 같음
GTP 터널은 eNodeB와 코어 네트워크 사이에 있고, IPsec 안에서 동작할 때만 보호됨 - 수정: GTP임
- 글 편집자임
-
O2가 이제 문제가 해결됐다고 주장함: https://www.ispreview.co.uk/index.php/2025/05/o2-uk-fixes-vo...
- 제출된 글은 오늘 아침 업데이트됐음
“O2가 이메일로 연락해 이 문제가 해결됐다고 확인해 줬다. 직접 검증했고, 취약점은 해결된 것으로 보인다”는 내용임 - 성명에서 “엔지니어링 팀이 몇 주 동안 수정안을 작업하고 테스트해 왔다”고 했음
이렇게 민감한 데이터를 담은 데이터베이스가 그런 기간 동안, 그것도 아무에게도 알리지 않은 듯한 상태로 의도적으로 무방비로 방치됐다고 상상해 보라
ICO가 이걸 어떻게 처리할지 흥미로울 것임
- 제출된 글은 오늘 아침 업데이트됐음
-
꽤 심각한 문제로 보임
휴대폰을 루팅하고 NSG를 설치한 뒤 이 정보를 보는 건 어렵지 않음
O2는 영국 최대 이동통신망이기도 하고 정부와 계약도 맺고 있음
답을 안 한 건 실망스럽지만 놀랍지는 않음
O2는 내부가 엉망인 것 같고, 매장에서 누가 바로 고칠 수 없는 일은 해결에 오래 걸림
예를 들어 번호 이동 오류 같은 것들임
시스템은 낡아 보이고, 일부 사용자층은 아직 VoLTE를 못 쓰며, 새 5G SA는 음성을 지원하지 않고 n28에 지나치게 의존하는 듯해 많은 경우 느림
CTO는 보통 데이터 성능에서 최악인 네트워크임에도 “허영 지표에서 벗어나자”고 블로그에 씀
[0] https://news.virginmediao2.co.uk/leaving-the-vanity-metrics-...- EU 로밍 요금을 안 받는 이유가 사실은 과금할 시스템이 없어서가 아닐까 하는 생각이 들기 시작함
-
O2가 아직도 어떻게 영업을 계속하는지 모르겠음
압도적으로 최악의 네트워크고, 처참한 백홀 상황의 Three조차 더 나음
EE 유심과 함께 O2 유심을 갖고 있는 유일한 이유는 Priority 티켓과 O2 행사장 내부 신호 때문임- 5G Standalone 네트워크에 접근할 수 있으면 훨씬 나아졌음
다만 새 유심과 호환 휴대폰이 필요하고, 체감 차이는 완전히 다름
- 5G Standalone 네트워크에 접근할 수 있으면 훨씬 나아졌음
-
O2망을 쓰는 giffgaff는 O2 물리망 위에 자체 서비스 구현을 쓰기 때문에 영향을 받지 않는다고 주장함
사실일 수도 있지만, 지금은 같은 회사 소유라는 걸 알고 있어서 통합 가능성이 커 보이니 좀 의심스러움
giffgaff 유심으로 이걸 재현해 보는 사람이 있다면 결과를 알고 싶음- Telefónica가 오래전부터 소유해 왔음
기억하기로 Telefónica는 2006년에 O2를 인수했고, 2009년에 Giffgaff를 새 브랜드로 출시했음 - giffgaff 네트워크에서 테스트해 봤고, 실제로 영향이 있음
어떻게 다른 결론에 도달했는지 모르겠음
- Telefónica가 오래전부터 소유해 왔음
-
VoLTE를 끄면 완화할 수 있을까? iPhone 11에서는 끄는 문서를 온라인에서 봤는데, 내 iPhone 15에는 그 옵션이 없음
- “4G Calling을 꺼도 이 헤더가 노출되는 것을 막지 못하며, 기기가 연결 불가 상태가 되면 내부 헤더는 마지막으로 연결됐던 셀과 그 시점이 얼마나 전인지 계속 드러낸다”고 되어 있음
그래서 효과가 없을 것 같음 - O2 UK의 짜증나는 점 중 하나는 오래된 선불 고객에게는 VoLTE를 지원하지 않고 월정액 고객에게만 지원한다는 것인데, 지금은 오히려 그게 약간 다행스럽기도 함
- “4G Calling을 꺼도 이 헤더가 노출되는 것을 막지 못하며, 기기가 연결 불가 상태가 되면 내부 헤더는 마지막으로 연결됐던 셀과 그 시점이 얼마나 전인지 계속 드러낸다”고 되어 있음