2 điểm bởi GN⁺ 2025-05-18 | 1 bình luận | Chia sẻ qua WhatsApp
  • Phát hiện dịch vụ VoLTE (4G Calling) của O2 UK gửi đi thông tin vị trí của đầu bên kia cuộc gọi cùng với mã định danh thiết bị
  • Trong các bản tin tín hiệu IMS có chứa thông tin nhạy cảm như IMSI, IMEI, Cell ID nên có thể dễ dàng bị nhận từ bên ngoài
  • Thông qua dữ liệu crowdsourcing công khai như cellmapper.net, có thể dùng những thông tin này để xác định vị trí chính xác
  • Lỗ hổng này áp dụng với mọi khách hàng O2, khiến ai cũng có thể trở thành mục tiêu tấn công
  • Người dùng hay khách hàng thông thường không có cách nào riêng để ngăn việc rò rỉ thông tin này

Giới thiệu

  • Voice over LTE (VoLTE) là công nghệ cho phép thực hiện cuộc gọi thoại trên mạng di động bằng giao thức nền tảng Internet
  • IP Multimedia Subsystem (IMS) dùng cho VoLTE có thể phát sinh rủi ro bảo mật do tính phức tạp và các vấn đề tương tác giữa thiết bị với nhau
  • Mỗi nhà mạng có thể tự chọn cách cấu hình máy chủ IMS và triển khai dịch vụ, nên nếu cấu hình sai có thể dẫn tới rò rỉ dữ liệu
  • Tài liệu này phân tích một trường hợp O2 UK đã thực sự gây ra các lo ngại bảo mật như vậy

Tình trạng dịch vụ IMS/VoLTE của O2 UK

  • Ngày 27/3/2017, O2 UK bắt đầu cung cấp dịch vụ IMS đầu tiên mang tên 4G Calling, đem lại chất lượng thoại tốt hơn và môi trường sử dụng dữ liệu tốt hơn trong khi gọi
  • Tác giả đã sử dụng ứng dụng Network Signal Guru (NSG) trên một chiếc Google Pixel 8 đã root để đo chất lượng cuộc gọi
  • Do giới hạn của ứng dụng, tác giả trực tiếp phân tích các bản tin tín hiệu IMS thô để kiểm tra chi tiết thông tin được trao đổi trong cuộc gọi

Vấn đề của các bản tin tín hiệu

  • Không giống các nhà mạng khác, các phản hồi tín hiệu IMS của O2 UK chứa thông tin rất chi tiết và dài
  • Cùng với thông tin máy chủ IMS/SIP, phiên bản, lỗi và log debug, còn có các header nhạy cảm như sau
    • Hai cặp IMSI, hai cặp IMEI
    • Cellular-Network-Info: mạng của bên nhận, mã khu vực vị trí, Cell ID, v.v.
  • Kết quả đối chiếu IMSI, IMEI và Cell ID trong bản tin cho thấy thông tin của đầu bên kia cuộc gọi (người nhận) cũng được đính kèm

Theo dõi vị trí qua Cell ID

  • Khi giải mã header Cellular-Network-Info, sẽ lộ ra nhà mạng của bên nhận, mã vùng vị trí (LAC) và Cell ID
  • Cell ID đó có thể được nhập vào các dịch vụ như cellmapper.net để xác định chính xác vị trí trạm phát sóng
  • Ở các khu vực mật độ cao như thành phố, vùng phủ của trạm phát sóng có thể hẹp dưới 100m², nên có thể xác định vị trí tương đối rất chính xác
  • Trên thực tế, phương pháp này vẫn hoạt động ngay cả khi khách hàng O2 đang roaming ở nước ngoài, cho phép xác định vị trí tới cả khu trung tâm đô thị
  • Những thông tin này bị lộ trên mọi thiết bị O2 có thể gọi qua IMS mà không cần thiết bị hay quy trình đặc biệt nào

Yêu cầu cải thiện

  • O2 cần loại bỏ các header nhạy cảm (thông tin vị trí và thiết bị) khỏi các bản tin IMS/SIP để bảo vệ quyền riêng tư và sự an toàn của khách hàng
  • Các header phục vụ debug cũng cần bị vô hiệu hóa vì có thể dẫn tới rò rỉ thông tin không cần thiết
  • Việc những header như vậy hiển thị trên thiết bị đầu cuối nằm ngoài lõi mạng là không hợp lý
  • Việc O2 không có kênh báo cáo nội bộ cho các vấn đề bảo mật là một vấn đề nghiêm trọng so với các nhà mạng khác (ví dụ: EE)

Kết luận

  • Khách hàng O2 có nguy cơ bị theo dõi tới mức vị trí chính xác nếu đối phương chỉ cần có kiến thức cơ bản về mạng di động
  • Ngay cả khi người dùng tắt 4G Calling, việc lộ thông tin nhạy cảm vẫn không bị ngăn chặn nên không thể tự bảo vệ
  • Kể cả khi thiết bị không kết nối mạng, thông tin về cell đã kết nối lần cuối và thời điểm kết nối vẫn còn xuất hiện trong các bản tin IMS
  • Trong các ngày 26~27/3/2025, tác giả đã nhiều lần gửi email cho người phụ trách bảo mật và CEO của O2 để thông báo sự việc và mức độ rủi ro, nhưng không có phản hồi hay cải thiện đáng kể nào

Tham khảo

Lịch sử chỉnh sửa

  • Tính đến 23:40 ngày 18/5/2025, đã sửa lỗi ghi sai địa chỉ email báo cáo bảo mật của O2 trong bài viết ban đầu (virginmedia.co.uk→virginmediao2.co.uk)

1 bình luận

 
GN⁺ 2025-05-18
Ý kiến Hacker News
  • Đã gửi email cho O2 vào ngày 26 và 27 tháng 3 năm 2025 để thông báo về hành vi này và rủi ro quyền riêng tư, nhưng đến giờ vẫn chưa có phản hồi hay thay đổi nào, cách xử lý này thực sự đáng thất vọng, việc địa chỉ Virgin Media lại là đầu mối liên hệ gần nhất cũng khá khó hiểu, và việc https://www.o2.co.uk/.well-known/security.txt trả về 404 thay vì 200 cũng là một vấn đề, trong tình huống như thế này thì việc công khai cũng có thể hiểu được, nhưng cũng khiến người ta tự hỏi liệu một cơ quan như NCSC có thể truyền đạt vấn đề này tốt hơn hay không
    • Thực ra đã ghi sai địa chỉ email, lẽ ra phải dùng @virginmediao2.co.uk của Virgin Media O2, nhưng lại gõ nhầm thành @virginmedia.co.uk, phần này sẽ được đính chính trong bài viết
    • Có nhiều địa chỉ email trong chính sách bảo mật (yêu cầu bắt buộc theo GDPR), ví dụ như DPO@o2.com, nên có lẽ bên đó sẽ có người kiểm tra, xem https://www.o2.co.uk/termsandconditions/privacy-policy
  • Trước đây O2 từng có địa chỉ email cho việc tiết lộ thông tin có trách nhiệm, nhưng vài năm trước đã bỏ đi, ngày xưa đội bảo mật của họ thực sự rất giỏi, nhưng khi gửi mail về một vấn đề vào năm ngoái thì mọi thứ dường như đã biến mất
    • Có khả năng đội ngũ liên quan trong O2 thực ra đã được thông báo, nhưng либо không có hành động gì, либо xử lý chưa đầy đủ
  • Lỗi lần này không chỉ là một lỗi mang tính lý thuyết, mà là vấn đề phát sinh do sự cẩu thả trong khâu triển khai, và là chuyện mà các nhà mạng khác ở Anh đã xử lý rồi, ngay từ giai đoạn đầu triển khai LTE, vấn đề rò rỉ ECI đã được bàn tới, và nhờ cơ sở dữ liệu cột phát sóng mở thì việc tự động ánh xạ vị trí cũng rất dễ, tham khảo bài báo liên quan (https://arxiv.org/abs/2106.05007)
  • Điều thực sự thú vị là theo đa số góc nhìn pháp lý, việc này có thể không bị xếp là hacking, vì dữ liệu đó là thông tin được mạng tự nguyện gửi đi một cách bình thường, chứ không phải do đánh lừa hệ thống để lấy dữ liệu trái phép, ví dụ như thêm "&reveal_privat_data=true" vào URL thì rõ ràng có chủ đích và sẽ là bất hợp pháp, nhưng trường hợp này thì không phải vậy
    • Tuy vậy, đây vẫn là một vụ rò rỉ dữ liệu, và ở những nơi có quy định liên quan như Anh, nó có thể trở thành lý do phải báo ngay cho cơ quan quản lý hoặc bị phạt
    • Xét việc phạm vi của Computer Misuse Act rất rộng, đây không hẳn là chuyện có thể xem nhẹ như người ta tưởng
  • Rất tò mò là người khởi tạo cuộc gọi đã xem được các bản tin điều khiển cuộc gọi (ví dụ: SIP) bằng cách nào, tôi cứ nghĩ những bản tin này nằm trong đường hầm GRE được mã hóa giữa điện thoại và trạm gốc (MME), nếu ai đó đã giải được mã hóa của đường hầm GRE thì đó sẽ là một lỗ hổng bảo mật cực lớn, có lẽ OP làm được vì đang phân tích trên chính thiết bị của mình, nhưng dù vậy việc nhìn thấy payload trước khi mã hóa vẫn rất đáng ngạc nhiên
    • Tôi là biên tập viên của bài viết, hầu hết thiết bị Android dùng chip Qualcomm đều có tùy chọn phơi bày cổng chẩn đoán modem qua USB nên không cần root, tôi thích dùng NSG đã root hơn vì tiện hơn nhiều so với việc phải mang theo laptop, nếu dùng Scat(https://github.com/fgsect/scat) cùng với việc bật cổng chẩn đoán modem thì có thể xem toàn bộ lưu lượng tín hiệu
    • Tôi đang dùng điện thoại Android đã root và ứng dụng Network Signal Guru(https://play.google.com/store/apps/details?id=com.qtrun.QuickTest), bản miễn phí thực ra không "giải mã" gì cả, nhưng với quyền root và quyền truy cập modem thì có thể đọc được các log này, bạn cũng có thể tắt một số băng tần hoặc ép máy chỉ kết nối với một trạm gốc nhất định, khá tiện khi dùng cho mục đích dữ liệu
    • Nhiều nhà mạng đúng là cấu hình tín hiệu SIP cho VoLTE bằng truyền tải IPsec kết thúc ở P-CSCF, nhưng đa số (hoặc tất cả) chỉ cấu hình IPsec để đảm bảo tính toàn vẹn
    • Sửa lại: không phải GRE mà là GTP
    • Có lẽ ý là đường hầm GTP, đường hầm GTP hoạt động giữa enodeb và mạng lõi, và chỉ được bảo vệ khi nằm bên trong IPSEC
  • Thật khó hiểu là O2 vẫn còn duy trì được hoạt động kinh doanh, họ tệ hơn hẳn các mạng khác, thậm chí còn kém hơn cả Three dù Three có vấn đề backhaul rất nặng, lý do duy nhất tôi còn giữ SIM O2 là vì vé Priority và sóng để dùng tại các địa điểm biểu diễn của họ
    • Nếu bạn kết nối được vào mạng 5G Standalone thì trải nghiệm sẽ tốt hơn rất nhiều, chỉ là cần SIM mới và điện thoại tương thích, cảm nhận khác biệt rất rõ
  • Tôi nghĩ đây là vấn đề khá nghiêm trọng, việc root điện thoại và cài NSG để xem loại thông tin này không hề khó, O2 cũng là nhà mạng di động lớn nhất ở Anh và còn có hợp đồng với chính phủ, việc họ không trả lời thì đáng thất vọng nhưng cũng không ngoài dự đoán, nội bộ O2 đang khá hỗn loạn, những thứ không giải quyết được ở cửa hàng thì sửa rất lâu (ví dụ lỗi chuyển mạng giữ số), hệ thống cũng cũ kỹ, một số khách hàng vẫn chưa dùng được VoLTE, 5G SA thì không hỗ trợ gọi thoại và lại phụ thuộc quá nhiều vào n28 nên thường chậm, CTO thì viết blog theo kiểu "bỏ qua các chỉ số phù phiếm và tập trung vào điều quan trọng" nhưng chất lượng dữ liệu thì lúc nào cũng đội sổ, xem blog liên quan (https://news.virginmediao2.co.uk/leaving-the-vanity-metrics-behind-and-focusing-on-what-matters-customer-experience/)
    • Tôi bắt đầu tự hỏi liệu lý do họ không thu phí roaming EU có phải vì họ không có hệ thống tính cước hay không
  • Không rõ có thể ngăn vấn đề này bằng cách tắt VoLTE hay không, tôi đã tìm được cách tắt trên iPhone 11 nhưng trên iPhone 15 thì không thấy tùy chọn đó
    • Ngay cả khi tắt 4G Calling (VoLTE), các header kiểu này vẫn bị lộ, và ngay cả khi thiết bị đã tắt nguồn thì vị trí ô sóng cuối cùng được kết nối và thời điểm tương ứng vẫn bị lộ, nên không có tác dụng
    • O2 UK không hỗ trợ VoLTE cho khách hàng trả trước PAYG kiểu cũ, chỉ hỗ trợ cho khách hàng theo gói cước, giờ nghĩ lại thì điều đó lại thành ra là may mắn
  • Tôi không biết gì về IMS, nhưng tự hỏi liệu có phải phải giữ cuộc gọi đủ lâu thì debug header mới được gửi hay không, kiểu như theo dõi cuộc gọi trong phim gián điệp, nếu vậy thì có thể tránh bằng cách đơn giản là không bắt máy số lạ không, tất nhiên nếu người quen gọi từ số của họ thì vẫn lộ như thường
    • Đây là loại thông tin mà mạng đã biết từ trước cả khi cuộc gọi được kết nối, có lẽ vì đó là header dùng để debug nên nó cần thiết cả trong các tình huống cuộc gọi không kết nối được, nếu hiểu đúng thì ngay cả khi thiết bị đã tắt, thông tin về ô sóng được dùng lần cuối vẫn có thể được cung cấp
    • IMS về cơ bản chỉ là lõi SIP + nhiều gateway + hạ tầng LTE nền tảng (ví dụ: eNodeB, PCRF, v.v.), nên các bản tin tín hiệu ở đây đơn giản là bản tin SIP, nếu các header này cũng xuất hiện trong các bản tin như SIP 180 Ringing thì thông tin có thể bị lộ ngay cả khi không nhấc máy, giải thích này dựa trên kinh nghiệm từng triển khai IMS thực tế ở nhà mạng
  • Không biết O2 NZ có gặp vấn đề này không, tôi vừa chuyển sang đó tuần trước ở Úc vì roaming không giới hạn và gọi VoLTE
    • Có lẽ vấn đề này chỉ áp dụng với O2 UK mà thôi