Cảnh báo: lỗ hổng nghiêm trọng trong ứng dụng Bluezone
Cập nhật 3/8/2020: Bluezone đã sửa lỗi! Xem https://vnhacker.blogspot.com/2020/08/cap-nhat-ve-bluezone.html.
Cập nhật 31/7/2020: bài này được viết từ hồi tháng 4/2020. Sau đó đội ngũ phát triển Bluezone đã có những chỉnh sửa để khắc phục các lỗ hổng liệt kê ở đây. Tuy vậy tôi vẫn chưa thấy họ công bố chính thức cách họ làm (cụ thể là cách họ tạo và thay đổi mã Bluezone ID). Tôi không biết mã nguồn mà họ đã công bố trên GitHub có phải là mã nguồn mới nhất hay không, nên nếu muốn đánh giá lại phải reverse engineering khá mất thời gian. Cuối tuần này tôi sẽ dành thời gian coi và sẽ gửi thông báo sau.
Tóm tắt
Bluezone là ứng dụng truy vết tiếp xúc, giúp cảnh báo nếu bạn đã ở gần người nhiễm COVID-19. Ứng dụng này do Chính phủ Việt Nam phát hành và được thực hiện bởi các doanh nghiệp công nghệ số Việt Nam gồm: Memozone, VNPT, MobiFone và BKAV. Ngày 18/4/2020 VnExpress dẫn lời Bộ trưởng Nguyễn Mạnh Hùng:
Bluezone là bước tiến mới, có tính đột phá trong việc sử dụng công nghệ để phòng chống dịch bệnh. Đột phá ở chỗ, chính quyền không thu thập thông tin người dân [...] người dân có thể giám sát phần mềm mình đang dùng có an toàn không. Chúng ta không phải quốc gia đầu tiên dùng giải pháp này, nhưng phần mềm Việt Nam giải quyết được cơ bản các lỗi của các phần mềm trước đó.
Trong kết luận tại cuộc họp Thường trực Chính phủ về phòng, chống dịch COVID-19 ngày 23/4/2020, Thủ tướng Nguyễn Xuân Phúc cũng đã yêu cầu “khẩn trương đánh giá [...] ứng dụng Bluezone”. Tôi thấy vui mừng khi Chính phủ Việt Nam quan tâm đến quyền riêng tư của người dân. Sẵn có chút nghề trong người, thông qua một người bạn, tôi đã ngỏ ý trực tiếp với BKAV sẽ giúp họ đánh giá an ninh, nhưng cho đến nay chưa nhận được phản hồi. Ngày 24/4/2020, sau khi thấy ứng dụng Bluezone cho Android được đưa lên Google Play, tôi đã tải về coi thử.
Bằng cách dịch ngược mã phần mềm, tôi đã phát hiện nhiều lỗ hổng nghiêm trọng ảnh hưởng đến sự an toàn và riêng tư của người dùng. Tại thời điểm tôi viết những dòng này, đã có gần 10.000 người đăng ký sử dụng Bluezone và con số này tăng lên rất nhanh, chỉ riêng hôm nay đã tăng gấp 3 lần. Tôi muốn gửi lời cảnh báo đến tất cả mọi người, ai đã lỡ cài thì nên gỡ bỏ, còn ai chưa cài thì không nên cài.
Tôi đã gửi toàn bộ thông tin chi tiết về lỗ hổng đến BKAV. Tôi đề nghị BKAV và các đơn vị phát triển Bluezone tạm ngừng phát hành sản phẩm này. Thay vì tìm cách sửa chữa giải pháp hiện thời, tôi đề nghị sử dụng lại các giải pháp mở đã được thiết kế và kiểm định bởi những chuyên gia có uy tín. Giải pháp mở tốt nhất hiện tại là DP3T của Châu Âu.
Nếu việc phát triển Bluezone diễn ra trên một không gian mở như GitHub (mạng xã hội của lập trình viên), những vấn đề này đã sớm được phát hiện. Tôi đề nghị nhóm phát triển Bluezone ngay lập tức chuyển tất cả mã nguồn, tài liệu và đưa việc phát triển Bluezone lên GitHub.
Các quốc gia khi phát triển giải pháp truy vết tiếp xúc đều tham khảo ý kiến của các chuyên gia. Tôi thấy ứng dụng Bluezone có rất nhiều lỗ hổng sơ đẳng, chứng tỏ việc thiết kế và triển khai không có sự tham gia của những chuyên gia về an ninh mạng và riêng tư. Tôi đề nghị Chính phủ Việt Nam tổ chức đánh giá và phản biện độc lập trước khi giới thiệu với người dân một ứng dụng nhạy cảm như Bluezone.
Cách thức hoạt động của Bluezone
Nguồn: https://bluezone.vn
|
Tóm tắt những lỗ hổng nghiêm trọng
1/ Bluezone sử dụng sóng Bluetooth để phát và thu mã số ngẫu nhiên. Thay vì liên tục thay đổi mã số ngẫu nhiên như các giải pháp của Singapore, Châu Âu hay Google/Apple, mỗi người sử dụng Bluezone chỉ có một mã số duy nhất, gọi là mã ID Bluezone. Người sử dụng không thể thay đổi mã số này, trừ khi xóa và cài lại ứng dụng. Cách làm không giống ai này khiến người sử dụng có thể bị theo dõi, bị lộ thông tin vị trí, hành trình, đã gặp ai, có bị nhiễm hay phơi nhiễm hay không.
2/ Ngoài việc không thay đổi mã ID Bluezone, ứng dụng Bluezone cũng không thay đổi địa chỉ Bluetooth của thiết bị. Nếu không thay đổi địa chỉ Bluetooth người dùng sẽ bị theo dõi và lộ bị lộ thông tin vị trí, hành trình, đã gặp ai, có bị nhiễm hay phơi nhiễm hay không. Đây cũng làm một cách làm không giống ai, vì các giải pháp của Châu Âu, Singapore hay Google/Apple đều nhấn mạnh phải thay đổi địa chỉ Bluetooth.
Cập nhật 24/4/2020 7:30PM: chỗ này không công bằng với Bluezone vì muốn thay đổi địa chỉ Bluetooth thì cần sự hỗ trợ của hệ điều hành và phần cứng. Để an toàn, mã ID Bluezone và địa chỉ Bluetooth phải được đổi cùng lúc. Trên một số dòng điện thoại Android, nếu ứng dụng khởi động lại quá trình gửi quảng cáo qua Bluetooth thì địa chỉ Bluetooth sẽ thay đổi, nhưng chuyện này còn phụ thuộc vào nhà sản xuất điện thoại. Còn trên iOS hiện giờ tôi không biết có cách nào không. API mới mà Google/Apple sắp phát hành vào tháng 5 năm nay hi vọng sẽ tự động hóa việc này, các ứng dụng truy vết như Bluezone có thể dùng lại mà không cần quan tâm đến vấn đề này nữa.
Cập nhật 24/4/2020 7:30PM: chỗ này không công bằng với Bluezone vì muốn thay đổi địa chỉ Bluetooth thì cần sự hỗ trợ của hệ điều hành và phần cứng. Để an toàn, mã ID Bluezone và địa chỉ Bluetooth phải được đổi cùng lúc. Trên một số dòng điện thoại Android, nếu ứng dụng khởi động lại quá trình gửi quảng cáo qua Bluetooth thì địa chỉ Bluetooth sẽ thay đổi, nhưng chuyện này còn phụ thuộc vào nhà sản xuất điện thoại. Còn trên iOS hiện giờ tôi không biết có cách nào không. API mới mà Google/Apple sắp phát hành vào tháng 5 năm nay hi vọng sẽ tự động hóa việc này, các ứng dụng truy vết như Bluezone có thể dùng lại mà không cần quan tâm đến vấn đề này nữa.
3/ Mã ID Bluezone quá ngắn, dễ dẫn đến trùng mã. Tổng số lượng mã ngẫu nhiên là ở khoảng 36^6, tức lớn hơn 2^31 một chút. Theo nghịch lý ngày sinh, chỉ cần 2^16 người đăng ký sử dụng, tức là khoảng 65 ngàn người, thì sẽ có hai người có mã ID Bluezone trùng nhau với xác suất cao. Khi đó, nếu một trong hai người bị nhiễm (phơi nhiễm), người kia cũng sẽ bị tính là nhiễm (phơi nhiễm)!
4/ Thuật toán tạo mã ID Bluezone rất dễ đoán. Chỉ cần biết thời điểm bạn đăng ký sử dụng app, người khác có thể đoán được mã ID của bạn. Tôi có thể tính được mã ID Bluezone của tất cả người dùng. Nếu bị lộ mã ID Bluezone, người dùng có thể bị kẻ xấu quy kết là đã nhiễm bệnh hoặc phơi nhiễm, dẫn đến bị cách ly, mặc dù hoàn toàn khỏe mạnh.
5/ Khi chạy app Bluezone lần đầu tiên, Bluezone đăng ký để nhận tin nhắn từ máy chủ BKAV qua dịch vụ Firebase Cloud Messaging. Quá trình đăng ký dựa vào ID Bluezone, nhưng vì ID Bluezone có thể bị đoán trước, kẻ xấu có thể dễ dàng đăng ký để nhận mã ID Bluezone của tất cả người dùng, hoặc của một nhóm người dùng. Khi đó tất cả tin nhắn mà máy chủ BKAV gửi xuống người dùng đều sẽ bị lộ.
6/ Ứng dụng Bluezone Android yêu cầu người dùng cấp quyền truy cập thông tin vị trí, hình ảnh, tài liệu lưu trên điện thoại. Bluezone không cần sử dụng những thông tin này để thực hiện truy vết. Nhóm phát triển ứng dụng nên gỡ bỏ những yêu cầu này.
Cập nhật 3PM 24/4/2020: Bluezone phải yêu cầu người dùng cấp quyền truy cập thông tin vị trí vì Android bắt buộc (nguồn). Đây là một tính năng privacy của Android, vì thông qua Bluetooth có thể định vị vị trí của người dùng. Cảm ơn bạn Triệu Minh Khôi đã chỉ ra (nhưng không hiểu sao lại xóa comment rồi àh đã post còm mới rồi). Bluezone yêu cầu quyền đọc và ghi external storage, đây là nơi Android lưu hình ảnh, tài liệu. Bạn Triệu Minh Khôi có nói sở dĩ Bluezone làm vậy là vì muốn backup các ID Bluezone đã thu thập được. Tôi nghĩ không nên backup thông tin nhạy cảm ra external storage, vì đây là nơi ai cũng có thể đọc.
Cập nhật 8:30PM 24/4/2020: Tôi đã xác nhận Bluezone ghi xuống external storage những ID Bluezone và địa chỉ của các thiết bị mà nó đã thấy. Tất cả các ứng dụng khác trên cùng điện thoại có thể đọc được dữ liệu này và qua đó có thể biết được người dùng đã gặp ai, ở đâu, vào lúc nào. Các ứng dụng này cũng có thể xóa hay ngụy tạo dữ liệu để khiến người dùng bị false positive (không bị phơi nhiễm nhưng bị quy là có) và false negative (bị phơi nhiễm nhưng tưởng là không).
Cập nhật 3PM 24/4/2020: Bluezone phải yêu cầu người dùng cấp quyền truy cập thông tin vị trí vì Android bắt buộc (nguồn). Đây là một tính năng privacy của Android, vì thông qua Bluetooth có thể định vị vị trí của người dùng. Cảm ơn bạn Triệu Minh Khôi đã chỉ ra (
Cập nhật 8:30PM 24/4/2020: Tôi đã xác nhận Bluezone ghi xuống external storage những ID Bluezone và địa chỉ của các thiết bị mà nó đã thấy. Tất cả các ứng dụng khác trên cùng điện thoại có thể đọc được dữ liệu này và qua đó có thể biết được người dùng đã gặp ai, ở đâu, vào lúc nào. Các ứng dụng này cũng có thể xóa hay ngụy tạo dữ liệu để khiến người dùng bị false positive (không bị phơi nhiễm nhưng bị quy là có) và false negative (bị phơi nhiễm nhưng tưởng là không).
Để hiểu rõ tác hại của những vấn đề này, xin tham khảo phân tích an ninh và riêng tư cho các giải pháp truy vết tiếp xúc của DP3T.
Chi tiết lỗ hổng
Toàn bộ thông tin chi tiết về tất cả lỗ hổng đã được chuyển cho BKAV và sẽ được công bố rộng rãi sau 7 ngày nữa. Thời gian biểu này tuân theo chính sách công bố lỗ hổng bảo mật của Google, nhưng xin lưu ý tôi làm việc này hoàn toàn trên danh nghĩa cá nhân, với tư cách một người Việt Nam, không liên quan gì đến nơi tôi làm việc.
(Xem phản hồi của Bluezone)
Lịch sử thay đổi
(3AM 24/4/2020) Công bố báo cáo.
(3PM 24/4/2020) Điều chỉnh lại một chỗ chưa chính xác, giải thích tại sao Bluezone phải cần quyền truy cập thông tin vị trí mặc dù không dùng đến vì đây là yêu cầu của Android. Cảm ơn bạn Triệu Minh Khôi đã chỉ ra chỗ sai này.
(24/4/2020 7:30PM) Thêm một đoạn giải thích hiện giờ Bluezone không thể tự thay đổi địa chỉ Bluetooth mà phải phụ thuộc vào hệ điều hành và phần cứng.
(8:30PM 24/4/2020) Thêm một lỗ hổng mới: Bluezone lưu dữ liệu thu thập được vào external storage, đây là phần bộ nhớ mà các app khác cài trên cùng điện thoại có thể thoải mái đọc/ghi.
(Xem phản hồi của Bluezone)
Lịch sử thay đổi
(3AM 24/4/2020) Công bố báo cáo.
(3PM 24/4/2020) Điều chỉnh lại một chỗ chưa chính xác, giải thích tại sao Bluezone phải cần quyền truy cập thông tin vị trí mặc dù không dùng đến vì đây là yêu cầu của Android. Cảm ơn bạn Triệu Minh Khôi đã chỉ ra chỗ sai này.
(24/4/2020 7:30PM) Thêm một đoạn giải thích hiện giờ Bluezone không thể tự thay đổi địa chỉ Bluetooth mà phải phụ thuộc vào hệ điều hành và phần cứng.
(8:30PM 24/4/2020) Thêm một lỗ hổng mới: Bluezone lưu dữ liệu thu thập được vào external storage, đây là phần bộ nhớ mà các app khác cài trên cùng điện thoại có thể thoải mái đọc/ghi.
Comments
Nguồn lực của BKAV thực sự rất yếu, nhân lực phần lớn toàn mấy bạn kỹ sư mới ra trường. Để làm những việc quan trọng và có ý nghĩa đối với đất nước như thế này cần những đơn vị có nguồn lực mạnh. Ko phải chỉ tải Open source về demo là xong.
Việt Nam hiện tại đã có nhiều đơn vị, công ty có đủ khả năng để thực hiện công việc như thế này. Cộng với một đội ngủ chuyên gia sẵn sàng hỗ trợ nếu phát triển trên cộng đồng mở.
Mong phía nhà nước cân nhắc lại cũng như BKAV tự xem lại mình. Thanks.
Mình cũng vừa down trưa nay, chưa xem được bao nhiêu.
Về hình ảnh, âm thanh, tài liệu: mình có check trong phần quyền truy cập ở điện thoại thì nó chỉ ghi là "Lưu trữ" thôi, chứ nó không đòi cấp quyền là media, hình ảnh, tài liệu giống như các app Facebook, Zalo... Khi vào Bluezone có thông báo cấp quyền "ảnh và bộ nhớ" là cách diễn giải mặc định của android chứ thực tế Bluezone ko cần cấp quyền media. Quyền truy cập "bộ nhớ" thì app nào chẳng dùng đến, để các app còn backup dữ liệu lưu trên máy nữa chứ, tại sao với Bluezone thì nó lại là vấn đề nhỉ? Chẳng hạn bây giờ nếu app ko cấp quyền cho "bộ nhớ", user xóa app, mà user đó bị nhiễm bệnh, thế là mất hết dữ liệu để so sánh à?
Nhiêu đây thấy bác còn hơi non nớt, không biết toàn bộ bài viết này đáng tin?
Về hình ảnh, âm thanh, tài liệu: tôi đã có giải thích thêm.
Tôi nghĩ bạn có thể nói chuyện bình thường mà không cần tấn công cá nhân.
Nhưng điều mình muốn nói ở đây là việc yêu cầu truy cập đâu có là vấn đề, đặc biệt với một app về sức khỏe. Trong khi rất nhiều app hiện nay đòi truy cập đủ thứ? Đúng không?
Bluezone không cần sử dụng external storage. Như tôi đã nói ở trên, việc backup dữ liệu ra external storage sẽ khiến dữ liệu đó bị lộ ra cho tất cả các app cài trên điện thoại.
>Nhưng điều mình muốn nói ở đây là việc yêu cầu truy cập đâu có là vấn đề, đặc biệt với một app về sức khỏe. Trong khi rất nhiều app hiện nay đòi truy cập đủ thứ? Đúng không?
Tôi đồng ý là nhiều app cũng yêu cầu như vậy, nhưng có một nguyên tắc trong bảo mật là least privilege principle, nếu mình có thể làm được việc mà không cần yêu cầu cấp thêm quyền thì không nên yêu cầu cấp thêm quyền làm gì.
Nếu người dùng xóa app, Bluezone nên tôn trọng riêng tư của người dùng, không nên tự ý chép dữ liệu ra external storage. Tôi hiểu có một conflict of interest ở dây, nếu người ta bị bệnh mà cố tình xóa app. Tôi không có phương án hoàn hảo, nhưng tôi vẫn tin mỗi người sẽ làm đúng trách nhiệm của mình trong xã hội. Hơn nữa, nếu người dùng biết Bluezone sẽ lưu dữ liệu lại ngay cả khi app đã bị xóa thì tôi nghĩ người ta sẽ có thể lý do để không sử dụng Bluezone.
Bạn nhắc đi nhắc lại chuyện "non nớt", tôi nghĩ là không cần thiết. Chúng ta đang có một cuộc nói chuyện kỹ thuật ở đây. Tôi có non nớt như thế nào không liên quan đến cuộc nói chuyện này. Nếu những vấn đề khác mà tôi chỉ ra cũng có chỗ sai sót, bạn có thể tập trung vào đó. Đó là cách dễ nhất để discredit tôi nếu bạn muốn.
Tôi đã gửi thông tin rồi. Chỗ tôi ghi sai là một chi tiết rất nhỏ, không ảnh hưởng gì đến báo cáo của tôi. Tôi nghĩ chúng ta có thể move on qua những chỗ khác mà bạn đã tìm thấy. Còn nếu chưa thấy chỗ nào sai nữa thì cũng không nên ghi là "nhiều chỗ".
Còn với toàn bộ bài viết này chỉ có ý nghĩa tham khảo và phỏng đoán, bởi những vấn đề sơ đẳng nhất tác giả còn chưa nắm chắc. Đó là "lỗ hổng" của tác giả, dẫn tới toàn bộ bài viết không còn giá trị. Có thể sẽ giá trị với Bkav, với Chính phủ.
Nhưng dường như tác giả có vẻ tự tin với trình độ của mình và đánh giá thấp Chính phủ, Bộ 4T và nhóm phát triển ứng dụng gồm Bkav, VNPT, Mobifone...
Không thể hiểu tư duy đột phá của Bluezone?
1- Email thư mời đóng góp như bố người ta. Nếu không vì có lời mời của Một Ông Anh thì mình cũng kệ cbn luôn.
2- Yêu cầu 3 quyền: Storage Permission, Phone Và Location nhưng không giải tgichs rõ ràng. Store để làm gì khi xóa mịa cái thư mục Bluezone thì vẫn chạy (thực tế thư mục đó lưu database backup và file log txt). Phone Permission để truy cập contact người dùng làm gì? Riêng con Location thì do yêu cầu từ Android 6.0 thì mới cho BLE scanning.
3- Nếu bạn chỉ cho app truy cập location khi mở app thì chức năng contact tracing có thể vứt zó vì có quét được đâu? Còn lúc nào cũng mở thì ahihi, tốn pin chết luôn. Xuyên tường thoải mái và vẫn nhận các máy khác. Tuy nhiên việc tách ở gần và ở xung quanh sẽ giải quyết tức thời câu chuyện 2m hay 5m.
4. Bluezone có thiết kế riêng một chữ ký theo tên của MIC nên câu chuyện middleman tráo gói tin là có thể tạm thời ok. Mình đã test dựng 1 firewall chặn giữa thì api không hoạt động. Và rất kỳ lạ, khi đó app nhảy về chế độ beta với 300 bluezoner, hahaha - quá đột phá
5- Clear data một phát lại như mới - như vậy hiệu quả cảnh báo sẽ có thể tèo nếu thực sự bạn có tiếp xúc F0 nhưng đã lỡ/cố tình thay đổi bluezone ID. Mình đánh ra khâu BA chỗ này tê
6- Cảm giác để công Bluezone chạy ngầm và lúc nào cũng thò mặt trên notification bar là rất khó chịu. Độ tiêu hao pin thì nhỏ.
7- Chưa public Whitepaper, Chưa công bốk mã nguồn, Không đưa ra thời điểm sẽ thực hiện việc này. Chả khác mịa gì vụ bán Bphone mạ vàng ở Dubai. Sự minh bạch và nhất quán đã gây ra sự phản cảm của cộng đồng.
8- Mình đã Gỡ và không dùng nữa cho tới khi Bluezone thực hiện cam kết tuân thủ việc công bố thông tin minh bạch.
Nói thật là cũng muốn ủng hộ ContactTracing App Việt lắm nhưng mà... Điều quan trọng là SỰ TIN TƯỞNG PHẢI DỰA VÀO TÍNH MINH BẠCH thay vì QUĂNG BOM THẢ THÍNH :-(
Tinh năng:
- Cứ vào Clear Data thì smartphone của bạn sẽ lại có một mã bluezone ID mới. Điều đó nghĩa là khi bạn cài lại app thì lại có 1 Contact ID mới và các dữ liệu lịch sử tiếp xúc lại thay đổi :)
- Mất kết nối Internet hoặc có lỗi với apibz thì bạn về chơi bản Beta với 300 bluezoner ngay
- 2 điện thoại Android để cách nhau 3m nhưng báo bạn tiếp xúc gần
- Sẽ kiểm tra xuyên tường và Android tiếp cận iPhone thế nào...
Liên quan:
1- Quảng cáo chéo cho một sản phẩm cộng đồng - Header không phù hợp: Covid mà lại quảng bá Phần mềm diệt Virus phổ biến nhất VN. Sau khi report thì đã có update sửa.
2- Nói không truy xuất dữ liệu người dùng, tại sao lại cần quyền truy cập Phone Contact? Về Location thì có thể hiểu do yêu cầu của Google API BLE Scanning từ các máy Android 6.0 - tuy nhiên liệu có phải khuyến cáo khách quan với người dùng lo ngại dữ liệu?
3- Về cơ chế không lấy dữ liệu thì con APIBZ trỏ về server BKAV làm gì? Lại thêm tracker Firebase?
Nói chung, sự e ngại về tính minh bạch là điều cản trở lớn nhất cho sản phẩm này :-(
Update: Mình dùng thử Mobile Security Framework để check thì thấy một đống thứ thú vị trong này. Bạn nào thích đọc full report thì đây: https://drive.google.com/open?id=1sWZWXCYlRKkzW8a9-goYI_XLWT9ybX0y
4- Trong đó chả hiểu một số persmission bị Marked cũng như các issue mô tả trong Manifest Analysis.
+ com.mic.bluezone.permission.C2D_MESSAGE: Allows cloud to device messaging & Allows the application to receive push notifications.
+android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS: Permission an application must hold in order to use (Tốn pin phải biết)
+ android.permission.ACCESS_COARSE_LOCATION & android.permission.ACCESS_FINE_LOCATION: Access coarse location sources, such as the mobile network database, to determine an approximate phone location, where available. Malicious applications can use this to determine approximately where you are. Access fine location sources, such as the Global Positioning System on the phone, where available. Malicious applications can use this to determine where you are and may consume additional battery power.
5- Đặc biệt, không hiểu sao permission còn cả đống Huawei, Oppo, HTC, Sony Ericssion, Solid (majeur launcher) Launcher làm quái gì nữa?
com.sonyericsson.home.permission.BROADCAST_BADGE
com.sonymobile.home.permission.PROVIDER_INSERT_BADGE
me.everything.badger.permission.BADGE_COUNT_READ
me.everything.badger.permission.BADGE_COUNT_WRITE
com.oppo.launcher.permission.WRITE_SETTINGS
com.oppo.launcher.permission.READ_SETTINGS
com.majeur.launcher.permission.UPDATE_BADGE
com.huawei.android.launcher.permission.WRITE_SETTINGS
com.huawei.android.launcher.permission.READ_SETTINGS
com.huawei.android.launcher.permission.CHANGE_BADGE
com.htc.launcher.permission.READ_SETTINGS
com.htc.launcher.permission.UPDATE_SHORTCUT
6- Ngoài ra còn Tracker từ Google Firebase...
com.google.android.gms.gcm.GcmReceiver
com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher
com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver
com.cpmsmobileapp.BootStartReceiver
io.invertase.firebase.messaging.ReactNativeFirebaseMessagingReceiver
com.learnium.RNDeviceInfo.RNDeviceReceiver
com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver
com.google.firebase.iid.FirebaseInstanceIdReceiver
com.google.android.gms.measurement.AppMeasurementReceiver
com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver
Sẽ ngâm cứu tiếp bạn TraceTogether của Singapore xem sao... Bác nào thích thì tự deploy cái Mobile Security Framework này lên Docker mà nghịch https://github.com/MobSF/Mobile-Security-Framework-MobSF
>2- Nói không truy xuất dữ liệu người dùng, tại sao lại cần quyền truy cập Phone Contact?
Ý bạn là cái permission android.permission.READ_PHONE_STATE? Phát hiện hay đó! Theo Android thì permission này cho phép Bluezone:
Allows read only access to phone state, including the phone number of the device, current cellular network information, the status of any ongoing calls, and a list of any PhoneAccounts registered on the device.
Tôi đồng ý là Bluezone nên bỏ. Bạn có muốn đưa phát hiện này vào báo cáo của tôi hay là bạn sẽ liên hệ riêng với bên BKAV?
[1] https://developer.android.com/reference/android/Manifest.permission#READ_PHONE_STATE
dolphin: phần lớn thông tin trong bài này là do reverse engineering mà ra. Tuần sau tôi sẽ tổ chức một buổi livestream chỉ cách RE Android app với ví dụ là Bluezone.
https://whitehat.vn/threads/phan-tich-cac-van-de-lien-quan-den-bluezone.13534/
unknown this unknown that :D
=> em có cài Bluezone nhưng ko phải đăng ký hay nhận sms lần đầu j cả anh giải thích chỗ này dc ko.
Bluezone tự động đăng ký với máy chủ BKAV để nhận tin nhắn qua dịch vụ Firebase Cloud Messaging, không phải SMS. Tôi đã viết lại cho rõ hơn.
https://thanhnien.vn/tai-chinh-kinh-doanh/tro-chuyen-voi-nguoi-viet-ung-dung-truy-vet-dich-covid-19-1213112.html
Em đọc qua bài này thì có vẻ như Bluezone sẽ sử dụng một kiểu hệ thống truy vết tập trung tại nguồn chính.
"Giải pháp này không xâm phạm đến quyền riêng tư vì các số điện thoại chuyển thành mã định danh, lưu trong điện thoại người sử dụng, chỉ khi F0 phát lên trung tâm xử lý, mã định danh mới chuyển thành số điện thoại để gửi tin nhắn cảnh báo cho các đối tượng bị nghi lây nhiễm."
=> phải chăng số điện thoại cũng được ghi nhận. Thậm chí họ còn có thể truy tới F2 như quảng bá. Vậy là không khác TraceTogether là mấy về cách tiếp cận, Tuy nhiên, không hiểu tại sao mà lại để ID không thay đổi; thiệt khó hiểu.. về quyền riêng tư thì SGP và VN tiếp cận hẳn là sẽ hơi khác Âu Mỹ.. nhg VN lại giải thích như họ rất tôn trọng quyền riêng tư..
Còn về tính "ưu việt" hay mà giải được bài toán mà các nước khác đang bó tay có vẻ như là họ muốn đề cập về vấn đề chạy ngầm của iOS. và cách tiếp cận của họ là sử dụng 1 chiếc điện thoại Android/hoặc iOS ở chế độ foreground làm gateway để scan và cập nhật cho những thiết bị iOS đang chạy background còn lại...
Không biết có phải là trả lời chính thức của team Bluezone không nhỉ? Vì tôi gửi email cho họ 2 lần rồi, họ chỉ nói là có nhận được email, chứ chưa có phản hồi chính thức. Không phải phản hồi chính thức tôi nghĩ trả lời sẽ mất thời gian thêm thôi, không giải quyết được gì.
- Mình thấy có một số comment ở trên nói là: App nào mặc định cũng có quyền truy cập bộ nhớ -> ĐÚNG nhưng mặc định chỉ được truy cập bộ nhớ của app đó (app data) còn muốn truy cập bộ nhớ dùng chung (External Storage/Media) thì cần phải xin quyền nhé!!!
- Việc app chỉ xin quyền BLE nhưng bắt buộc phải xin cả quyền Location về cơ bản không vấn đề gì vì đó là Policy của Android nhưng vấn đề ở đây mà chúng ta cần quan tâm là app này có dùng đến quyền đó (truy cập được vị trí của user) để làm gì khác không? Nếu không (như họ nói là không dùng đến) thì trách nhiệm của chúng ta là verify điều đó và public result !
- Theo mình không đồng ý quan điểm: việc truy cập ví trí hay data đâu có là vấn đề !!! (các app khác hiện nay vẫn đòi truy cập đủ thứ đó thôi) -> nó sẽ rất có vấn đề với 1 app của CP và sẽ public cho hàng chục triệu người dân sử dụng và nó có thể bị kẻ xấu lợi dụng nếu có lỗ hổng !!!
Chính xác. Vả lại việc Bluezone lưu lại ghi xuống external storage những Bluezone ID và địa chỉ của các thiết bị mà nó đã thấy cũng rất tai hại. Các app khác trên điện thoại có thể nhét vào đó ID của người bị bệnh, khiến người không phơi nhiễm vẫn bị cách ly, hoặc xóa bớt ID, khiến người phơi nhiễm không biết mình đã bị phơi nhiễm.
>- Việc app chỉ xin quyền BLE nhưng bắt buộc phải xin cả quyền Location về cơ bản không vấn đề gì vì đó là Policy của Android nhưng vấn đề ở đây mà chúng ta cần quan tâm là app này có dùng đến quyền đó (truy cập được vị trí của user) để làm gì khác không? Nếu không (như họ nói là không dùng đến) thì trách nhiệm của chúng ta là verify điều đó và public result!
Đồng ý. Nói cho rõ, tôi chưa thấy Bluezone truy vấn thông tin vị trí. Tôi nghĩ là họ không sử dụng thông tin này.
- "Lỗ hổng nghiêm trọng"? Anh dựa vào đâu để đánh giá những những cái mà anh gọi là lỗ hổng là nghiêm trọng? Trong khi thế giới họ đánh giá mức độ nghiêm trọng của một lỗ hổng qua nhiều tiêu chí khác nhau, chẳng hạn các tiêu chí về khả năng khai thác, về phạm vi ảnh hưởng,... và đây dường như không phải là công việc của người đưa ra báo cáo lỗ hổng. Các vấn đề được anh đề cập thậm chí còn đang được tranh luận và anh chưa hề đưa ra được các bằng chứng nào (chẳng hạn về cách thức và mức độ phức tạp để khai thác).
- Anh thường xuyên đề cập đến việc cách làm của Bluezone là "không giống ai", và cho rằng việc họ không làm theo "đề nghị không sai mà chỉ thừa" của anh là một lỗ hổng nghiêm trọng (mục 1, 2). Anh không hề đưa ra các phân tích hay giải thích cho khẳng định của mình: nếu mỗi người sử dụng Bluezone chỉ có một mã số duy nhất,... thì "người sử dụng có thể bị theo dõi, bị lộ thông tin vị trí,...". Đây không giống cách làm của một chuyên gia hay một người có kinh nghiệm, có uy tín, ít nhất là như tôi kỳ vọng (tôi không cho rằng cái không giống này của anh là một lỗ hổng).
- Việc nhầm lẫn mà nhiều người cho rằng là "non tay", là "thiếu hiểu biết" về những kiến thức mà mọi người đều biết của anh là nghiêm trọng. Nếu thực sự có kinh nghiệm thì chắc chắn anh sẽ không gặp phải những sai lầm cơ bản như thế này trong báo cáo này, từ đó đưa ra những khuyến nghị không tin cậy.
- Sau khi nhận ra các nhầm lẫn của mình, anh tiếp tục đưa ra ý kiến về các vấn đề liên quan, như: "Tất cả các ứng dụng khác trên cùng điện thoại có thể đọc được dữ liệu này và qua đó có thể biết được người dùng đã gặp ai, ở đâu,...". Đây tiếp tục là một sai lầm. Liệu có phải tất cả các ứng dụng khác trên cùng điện thoại đều có quyền truy cập external storage hay không? Nếu có thì việc có một ứng dụng có mục đích xấu như anh mô tả trên điện thoại có phải là lỗi của Bluezone? Liệu một ứng dụng đọc được dữ liệu mà Bluezone lưu trên external storage thì có chắc nó có thể hiểu hoặc suy ra các thông tin nhạy cảm hay không? Cho dù câu trả lời là có hoặc không, việc không đưa ra các phân tích lại một lần nữa khẳng định mức độ hiểu biết và chuyên nghiệp của anh về vấn đề này.
- Trong một bình luận, anh có đề cập tới least privilege principle, vậy theo anh có cách làm nào khác? tại sao anh không liệt kê và đề xuất cho họ (câu gợi ý), liệu họ có thể làm được việc theo cách mà anh nói? Và anh có biết tới nguyên tắc đầy đủ, hợp lý trong đảm bảo an toàn thông tin, trong đó đề cập đến việc không có an toàn tuyệt đối, đến rủi ro ở mức chấp nhận được, đến chi phí...?
- Rất may mắn, với những lo ngại của anh, Việt Nam đang có các phương pháp phi chính tắc trong đảm bảo an toàn thông tin, như giáo dục, cưỡng chế,.. thông qua các phương tiện như Luật an toàn thông tin mạng, Luật an ninh mạng,... Các ràng buộc này sẽ góp phần bảo vệ thông tin của người dùng. Điều này chắc anh đã nắm được. Hơn nữa, anh cũng tin rằng "mỗi người sẽ làm đúng trách nhiệm của mình trong xã hội". Vậy mình đâu còn điều gì phải lo lắng nữa, phải không anh?
- Anh có đề cập đến giải pháp của nước này, nước nọ, vậy chắc anh cũng biết đến các lỗ hổng theo như anh là nghiêm trọng trong các ứng dụng này, chẳng hạn như có yêu cầu quyền truy cập vị trí,.. anh đã báo cáo cho họ chưa? Nếu chưa, anh còn do dự điều gì?
- Trong tình hình dịch bệnh như hiện nay, các đội ngũ phát triển phần mềm đang tích cực phát triển các giải pháp hỗ trợ cho công tác phòng chống dịch bệnh, còn anh, anh đang "rảnh quá", vậy thay vì cố gắng đưa ra các phán xét rồi chờ phản hồi, tại sao anh không đề xuất giải pháp để hoàn thiện ứng dụng quan trọng và thiết yếu này? Anh cố gắng chứng minh ứng dụng có lỗ hổng, rồi chờ 7 ngày gì đó, để rồi làm gì? Biết đâu sau 7 ngày, người đáng lẽ sẽ ghi nhận lỗ hổng cho anh lại chết vì dịch bệnh do không cài Bluezone?
From KMA.
học KMA thiệt hả bạn? mấy cái lập luận của bạn đọc mà thấy chán
Thiết nghĩ anh Thái không nên nói "tôi nghĩ" mà hãy demo thực hiện lỗ hổng của app ngay bây giờ, không cần chờ sau 7 ngày đâu.
Bạn không hiểu nguyên tắc 7 ngày à!
Theo tôi được biết thì nó đại loại như sau:
Khi phát hiện lỗ hỏng "nên/cần" báo báo trực tiếp tới bên phát triển. Nếu trong vòng 7 ngày họ không phản hồi hoặc không có động thái vá lỗi hoặc các hành động xử lý cần thiết thì chúng ta mới nên công bố lỗ hổng rộng rãi -> bạn hiểu vì sao không? Vì nguyên tắc cần cho bên phát triển thời gian fix lỗi trước khi lỗ hổng bị khai thác bởi những kẻ xấu nếu chúng đọc được các báo cáo rõ ràng về lỗ hổng và cách triển khai
Viết dài, viết dai mà viết dại quá. Viết rõ lắm rồi quên luôn cái mục đích của app Bluzone luôn :)). Bỏ qua quyền riêng tư thì làm app theo dõi chống dịch quá đơn giản và đã có sẵn rồi đấy
Thứ nhất, thông tin mà anh ấy đưa ra thậm chí còn không đáng tin cậy do không hề có chứng minh và phải đính chính liên tục, nhưng anh ấy lại tự gắn nhãn đây là các lỗ hổng nghiêm trọng rồi khuyến nghị mọi người không nên cài ứng dụng.
Thứ hai, tôi không phủ nhận quyền riêng tư, việc đảm bảo quyền riêng tư trong một ứng dụng như Bluezone là cần thiết. Nếu ứng dụng đang thực sự có lỗ hổng, anh ấy có thể cho mọi người thấy anh ấy có thể thu thập được những gì từ đó, thay vì áp dụng một quy trình mà theo tôi là không có ý nghĩa trong bối cảnh này. Khi đó, mọi người có thể tự nhận thấy được nguy cơ và đội ngũ phát triển cũng buộc phải cải thiện sản phẩm.
Những gì anh ấy đã làm theo tôi chỉ thành công trong việc khuyến nghị mọi người gỡ hoặc không cài ứng dụng (cái mà anh ấy liên tục nhắc tới) chứ không giúp cho việc khiến cho đội ngũ phát triển nhận ra và khắc phục lỗ hổng trong ứng dụng nếu có (mục đích của công bố lỗ hổng).
Thứ nhất: Đây là ý kiến của tôi và tôi không rõ là bạn có hiểu hay cố tình ko hiểu những cái lỗi a Thái đưa ra vừa qua, nó rất rõ ràng và chi tiết rồi mà các bạn đọc xong rồi cố tình lập lờ qua vấn đề khác và đi giải thích rất vòng vo. Tôi cũng ko rõ là các bạn phát triển app bluezone có tiếp nhận và thay đổi hay không, rất có thể các bạn cũng vì áp lực phải đưa ra sản phẩm nhanh nhất có thể hoặc nhiều nguyên nhân ko nằm trong khả năng phạm trù kĩ thuật...Tôi không biết bạn là khán giả như tôi hay nằm trong đội ngũ phát triển app (hi vọng là không). Tôi nghĩ mọi người ai cũng ghi nhận những nổ lực của đội ngũ phát triển app. Tuy nhiên vấn đề lớn nhất là phải chứng minh được khả năng ẩn danh và bảo vệ dữ liệu riêng tư thì app chưa làm được và đi ngược lại xu thuế so với thế giới họ đang làm (phát ngẫu nhiên ID thay vì ID cố định.
Thứ hai: Ý kiến cá nhân của bạn cho rằng "Nếu ứng dụng đang thực sự có lỗ hổng, anh Thái có thể cho mọi người thấy anh ấy có thể thu thập được những gì từ đó,". Tôi nghĩ điều này không cần thiết và mất thời gian vô ích. Tôi thấy A Thái và có một số bạn đã đưa ra rất chi tiết rồi và ko cần phải thu thập thứ gì thêm nữa để chứng minh điều gì nữa, mất thời gian của họ.
Cuối cùng thì tôi nghĩ những gì A Thái khuyên mọi người tại phiên bản này thì không nên xài app Bluezone là hoàn toàn đúng. Nếu suy nghĩ cố chấp đi theo con đường cũ và không thay đổi thì liệu rằng sau này vài triệu người dùng app có bị lộ thông tin riêng tư và khi đó ai là chịu trách nhiệm...Dù sao đi nữa tôi rất ủng hộ team đã phát triên app bluezone và hi vọng họ thay đổi quan điểm và cập nhật lên version mới như những gì a Thái đã góp ý.
Lưu ý: Đây là ý kiến cá nhân, mọi người hoàn toàn có thể góp ý nhưng trên tinh thần trao đổi chứ góp ý theo kiểu quy chụp vòng vo.
https://github.com/BluezoneGlobal/bluezone-app
Adua acong
Thì PR (pull request) trên github đi nào
Cheers
Uốn lưỡi đi nhóc con.
Không PR thì issue POC đi
Chưa tham gia cái P0 nào cũng khó nói
Cheers
Hãy mở mắt ra mà nhìn cho rõ, người nông dân làm ruộng thì không cần biết bán tạp hoá là như thế nào. Ngược lại, người bán tạp hoá thì có thể bán gạo nhưng không cần biết phải làm ra hạt gạo như thế nào? Tương tự, đừng có kêu hàng lãnh đạo đất nước đi xuống làm công nhân và nông dân.
Cũng như vậy, người phân tích về security không cần phải biết viết code, cũng không cần phải nhọc lòng cãi nhau với đồ thiếu hiểu biết. Và vì thế họ không thể, cũng không cần phải tạo PR hay viết PoC.
Đã dốt thì đừng có nát giùm...
Nói xỏ xiên gì vậy cà
Không đọc hay viết code đố tìm được bug trong những dự án thế này đấy =)) nông dân với cả thành thị.
Hi vọng 1 ai đó dùng Wycheproof fuzz được những issue hay ho, từ đấy sẽ thấy Tink hay ho
@Zic: Cái issue mà Thái liệt kê ở đây không khó tìm ra.
Tôi dùng Android, bất cứ app nào mà yêu cầu quyền storage là lập tức từ chối, trừ khi trước đó nó nói "tiếp theo sẽ yêu cầu storage, ứng dụng này cần storage để xyz".
Cái vụ BLE với Location này nọ cũng không khó, cả tháng nay báo chí tại Úc cứ ra rả về chuyện thông tin cá nhân. Họ đưa lên cả báo bình dân về Bluetooth và Location data, nên tôi không nghĩ nó là cái gì khó hiểu.
Mặc dù tôi biết là không có gì mới, nhưng vẫn phải tôn trọng Thái vì đã viết lại có hệ thống, và nhiều vấn đề khác nữa.
Tức là, bạn đừng nghĩ là nhưng vấn đề này là khó nhận ra, người dùng bình thường cũng sẽ biết (trừ khi họ bị che mắt bằng báo chí, luôn miệng nói "không có gì đâu", mà không có phản biện).
Tất nhiên, tôi nghĩ Thái là người giỏi, biết code và code giỏi (cũng có thể tôi sai, haha). Nhưng điều đó không có nghĩa là ai đó được xỉa xói "Các chiên giá thay vì chém gió tung giời". Đây không phải là "chém gió", mà có thể coi là một công trình nghiên cứu hoàn chỉnh, và rất thiện nguyện chia sẻ cho cộng đồng. Đến lượt cộng đồng, có thể chấp nhận nó hoặc loại bỏ nó. Nhưng không được quyền đòi hỏi thêm.
Tôi muốn nhấn mạnh, Thái nghiên cứu source code, Thái viết báo cáo gửi cho đội ngũ phát triển, Thái chia sẻ cho cộng đồng,... Tất cả đều là hành động chủ động của cậu ấy, mà không nhận bất cứ sự ghi nhận công lao nào của các bên liên quan. Tôi thấy không ai có thể ép cậu ấy nữa. Hãy cảm ơn vì cậu ấy đã hoàn thành việc phân tích của mình.
Cho nên, bạn đừng bao giờ yêu cầu Thái (hoặc người khác) phải đóng góp vào source code. That's non sense!
Commit trên đó từ khi initial commit đến hiện tại đều rất ít, mặc dù đã hơn 24h trôi qua. Và tôi nghĩ trong vài ngày tới cũng sẽ có rất ít commit. Điều này chứng tỏ đó là một shadow repo mà thôi, tức là project chính mà đội ngũ phát triển làm là ở chỗ khác, nằm ở private repo của họ. Còn cái công bố ra thì chỉ là để cho thiên hạ được chiêm ngưỡng thôi.
Vì vậy tôi không chắc là những PR/issue có tâm ở đó được đội ngũ phát triển đón nhận nhiệt tình và cầu thị.
Vả lại, một người cầu thị thì lúc nào họ cũng cầu thị, dù cho người góp ý viết vào issue hay gửi email hay viết lên blog. Chỉ có người thiếu cầu thị mới đòi hỏi "góp ý phải đúng quy trình" mà thôi.
Chưa 1 từ mentation thai.dn trong comment mà lại nghỉ xỉa xói thai.dn?
Cheers.
Ngoài ra, ý của bạn có phải là bạn xỉa xói cả Thái và tất cả người khác?
Nếu thế thì xin lỗi bạn, tôi thật sự chỉ nghĩ bạn xỉa xói 1 người, ai ngờ bạn xỉa xói tất cả mọi người.
xỉa bạn luôn đó, có thấy mentation @mathe không? haha
tính ganh đua của bạn có vẻ rất CAO. bạn có muốn thi đua kko? tính từ thời điểm 2:59:20 AM (GMT) xem ai issue được nhiều trên github kia? rồi đánh giá tiếp?
Cheers.
Mình thường không đánh giá được bạn giỏi hay không, chắc là bạn giỏi. Mình chỉ đánh giá những câu nói của bạn đã nói, tức là quá khứ, vốn là thứ không sửa được nữa.
Còn nếu bạn giúp họ tạo các issue tốt, mình sẽ lại ủng hộ bạn.
Nói lại cho rõ, đối với mình 2 chuyện này không liên quan. Mình chỉ đâm thẳng vào câu nói xỉa xói của bạn đã nói, còn chuyện bạn sẽ đóng góp như thế nào thì khi nào mình thấy mình sẽ hoan nghênh sau.
Thứ nữa là Google trả rất cao cho những người phát hiện ra lỗi. Thậm chí còn khuyến khích mọi người tìm lỗi hộ. Trong khi Bluezone thì không thèm trả lời email báo lỗi. Họ đã khinh người, thì cũng sẽ bị xem thường lại mà thôi.
Cuối cùng, bạn không nên xài Android vì đúng là nó có nhiều lỗi (mà theo mình thì ko cố tình vi phạm như Bluezone), bạn cũng không nên xài iPhone vì nó cũng có nhiều lỗi khác. Tôi không chắc có cái gì không có lỗi không...
Công bằng mà nói, tôi nghĩ nếu Thái phát hiện lỗi gì nghiêm trọng của Android mà team Android cứng đầu không chịu trả lời email report, thì cậu ấy vẫn sẽ khuyên mọi người đừng xài Android mà thôi. Tiếc là chưa tìm ra lỗi nghiêm trọng thôi...
Vì team Bluezone không chính thức "tổ quốc ghi công" đóng góp của bạn, tôi muốn ghi lại đây để mọi người biết.
Sau đây là phần trích từ bài viết của anh:
"Tóm tắt những lỗ hổng nghiêm trọng
1/ Bluezone sử dụng sóng Bluetooth để phát và thu mã số ngẫu nhiên. Thay vì liên tục thay đổi mã số ngẫu nhiên như các giải pháp của Singapore, Châu Âu hay Google/Apple, mỗi người sử dụng Bluezone chỉ có một mã số duy nhất, gọi là mã ID Bluezone. Người sử dụng không thể thay đổi mã số này, trừ khi xóa và cài lại ứng dụng. Cách làm không giống ai này khiến người sử dụng có thể bị theo dõi, bị lộ thông tin vị trí, hành trình, đã gặp ai, có bị nhiễm hay phơi nhiễm hay không.
=> Phần mềm đã sử dụng mã ID random, sẽ thay đổi ngẫu nhiên sau khoảng thời gian nhất định (có thể 10~15' gì đó)
2/ Ngoài việc không thay đổi mã ID Bluezone, ứng dụng Bluezone cũng không thay đổi địa chỉ Bluetooth của thiết bị. Nếu không thay đổi địa chỉ Bluetooth người dùng sẽ bị theo dõi và lộ bị lộ thông tin vị trí, hành trình, đã gặp ai, có bị nhiễm hay phơi nhiễm hay không. Đây cũng làm một cách làm không giống ai, vì các giải pháp của Châu Âu, Singapore hay Google/Apple đều nhấn mạnh phải thay đổi địa chỉ Bluetooth.
=> Phần mềm đã sử dụng mã ID random
Cập nhật 24/4/2020 7:30PM: chỗ này không công bằng với Bluezone vì muốn thay đổi địa chỉ Bluetooth thì cần sự hỗ trợ của hệ điều hành và phần cứng. Để an toàn, mã ID Bluezone và địa chỉ Bluetooth phải được đổi cùng lúc. Trên một số dòng điện thoại Android, nếu ứng dụng khởi động lại quá trình gửi quảng cáo qua Bluetooth thì địa chỉ Bluetooth sẽ thay đổi, nhưng chuyện này còn phụ thuộc vào nhà sản xuất điện thoại. Còn trên iOS hiện giờ tôi không biết có cách nào không. API mới mà Google/Apple sắp phát hành vào tháng 5 năm nay hi vọng sẽ tự động hóa việc này, các ứng dụng truy vết như Bluezone có thể dùng lại mà không cần quan tâm đến vấn đề này nữa.
=> Tôi không rõ BlueZone sử dụng API mà Google/Apple phát triển hay dùng API tự tạo. Tuy nhiên tôi vẫn ủng hộ cách làm sử dụng API riêng như TraceTogether của Singapore, vì nó cho phép Bộ Y tế can thiệp cũng như truy xuất thông tin định dạng này.
3/ Mã ID Bluezone quá ngắn, dễ dẫn đến trùng mã. Tổng số lượng mã ngẫu nhiên là ở khoảng 36^6, tức lớn hơn 2^31 một chút. Theo nghịch lý ngày sinh, chỉ cần 2^16 người đăng ký sử dụng, tức là khoảng 65 ngàn người, thì sẽ có hai người có mã ID Bluezone trùng nhau với xác suất cao. Khi đó, nếu một trong hai người bị nhiễm (phơi nhiễm), người kia cũng sẽ bị tính là nhiễm (phơi nhiễm)!
=> Tôi không rõ ý này lắm tuy nhiên với mã ID 11 ký tự và 3 ký tự cuối không hiển thị trực tiếp thì chắc là cũng đủ???
4/ Thuật toán tạo mã ID Bluezone rất dễ đoán. Chỉ cần biết thời điểm bạn đăng ký sử dụng app, người khác có thể đoán được mã ID của bạn. Tôi có thể tính được mã ID Bluezone của tất cả người dùng. Nếu bị lộ mã ID Bluezone, người dùng có thể bị kẻ xấu quy kết là đã nhiễm bệnh hoặc phơi nhiễm, dẫn đến bị cách ly, mặc dù hoàn toàn khỏe mạnh.
=>Anh có thể kiểm tra lại thông tin này với phần mềm mới
6/ Ứng dụng Bluezone Android yêu cầu người dùng cấp quyền truy cập thông tin vị trí, hình ảnh, tài liệu lưu trên điện thoại. Bluezone không cần sử dụng những thông tin này để thực hiện truy vết. Nhóm phát triển ứng dụng nên gỡ bỏ những yêu cầu này.
=> Hiện app đang yêu cầu 2 quyền: Location và Storage. Các yêu cầu trên đã được các dev hiển thị thông báo lý do cần thiết phải có nên tôi nghĩ có thể bỏ qua.