Skip to main content

Bluezone

Các lỗ hổng nghiêm trọng trong ứng dụng Bluezone

Thứ Hai 27, Tháng Tư 2020

     

Kính mời bạn đọc xem một bài viết của FB ThaiDN ngày 24/4/2020. Phía bênh vực Bluezone đã phản hồi tại đây và được ThaiDN trả lời tại đây

Bluezone là gì

Bluezone là một ứ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ùngBluezone 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

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.

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).

Thứ Hai 27, Tháng Tư 2020

     

Kính mời bạn đọc xem một bài viết của FB ThaiDN ngày 24/4/2020. Phía bênh vực Bluezone đã phản hồi tại đây và được ThaiDN trả lời tại đây

Bluezone là gì

Bluezone là một ứ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ùngBluezone 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

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.

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).

Comments

Popular posts from this blog

Bài viết của Thích Đu Đỉnh

Xin chào anh chị em CK. Lâu rồi em chưa bốc phét, chém gió với mọi người. Tuy em off khá là lâu, nhưng em rất vui vì có rất nhiều anh chị em, cả sếp T.A inb hỏi thăm, cảm ơn tất cả tình cảm của mọi người dành cho em, nay em lại ngoi lên 1 chút để chia sẻ với mọi người 1 số quan điểm sau cuộc họp FOMC vừa qua, cũng có thể liên quan đến 1 số dữ liệu trước đó nữa. Bài viết này em nghĩ sẽ khá là dài, hi vọng mọi người sẽ đọc hết bài viết này vì nó rất có thể ảnh hưởng đến quyết định đầu tư của mọi người trong những tháng cuối năm 2024 và thậm chí, sẽ kéo dài qua tới năm 2025.... Rốt cuộc sau 4 năm thì Fed mới cắt giảm lãi suất, rất nhiều chuyên gia Phố Wall, các thống đốc Fed đã nghỉ hưu, các thành viên FOMC cũng lên tiếng về việc này và thậm chí cả cựu chủ tịch Fed xưa cũ đều đưa ra thông điệp là Fed nên cắt 0.25% là tốt cho thị trường. Ở các cuộc họp FOMC trước đây, Fed luôn điều hướng thị trường bằng việc cho chúng ta thấy được gần như chắc chắn Fed sẽ cắt hoặc tăng lãi suất lên bao nhi...

CUỘC ÁM SÁT HOÀNG GIA

Tư liệu lịch sử. Bài khá dài, bạn đừng đọc nếu không chịu được chuyện chém giết dã man. ... Gần 1 năm sau CM10 Nga, đặc vụ Cheka (tiền thân của NKVD và KGB sau này) đã hạ sát vợ chồng Sa hoàng cùng 5 con, người nhỏ tuổi nhất là hoàng tử Alexei 14 tuổi vốn mắc chứng bệnh không đông máu. Cùng bị giết là 4 người thân cận của họ. Sau những cuộc điều tra công phu và dựa vào cả hồi ức của một số sát nhân, toàn cảnh vụ ám sát gia đình Sa hoàng đã được dựng lại. Xin đưa lại như tài liệu tham khảo cho các bạn nào quan tâm lịch sử. . 1. Ngày 14/7/1918, Yakov Yurovsky chỉ huy trưởng Cheka tại nhà giam Ipatiev thuộc tỉnh Yekaterinburg đã có trên tay kế hoạch cuối cùng cho cuộc hành quyết gia đình Sa hoàng và thủ tiêu tang chứng, với sự tham gia của Piotr Ermakov, chính ủy tiểu đoàn công nhân tình nguyện Verkh-Isetsk khét tiếng. Ngày 16/7, lãnh đạo Soviet Ural Goloschyokin và Safarov gửi mật điện lên Moskva lúc 6 giờ chiều, và Yurovsky kể lại y nhận được mật điện chuẩn y vụ hành quyết lúc 7 giờ tố...

PI IS NOT FREE MONEY

Đôi lời gởi tới các bạn Pioneers, Vốn dĩ mình đã ở ẩn từ lâu từ sau vụ PNG , Trang Trại Pi Nodes , CVG 314k vừa ngu vừa ngáo quá thắng thế thành công tẩy não cộng đồng Pioneers và khiến cộng đồng luôn mang tư duy Pi lên sàn phải có giá cao để bán ( xả ) Pi để lấy tiền tiêu nên kể từ đó đến giờ 2 năm mình chọn ở ẩn và chẳng quan tâm tới các cộng đồng ngáo đá nữa . Nay có một thằng em FB hỏi thăm về Pi và mang hy vọng Pi có trong danh sách Quỹ Dự Trữ Chiến Lược Kỹ Thuật Số ( Strategic Crypto Reserver - SCR ) của Tổng Thống Trump ngày 7 tháng 3 sắp tới nên mình có đôi đều phải nói rõ cho các bạn hiểu . Thứ nhất : Quỹ Dự Trữ Chiến Lược Kỹ Thuật Số là sáng kiến mang lại cho Dân Mỹ , giúp trả nợ công và đặt nước Mỹ là trên hết , nên các bạn đừng có mơ tưởng hay tư tưởng ăn bám vào tiền thuế của dân Mỹ như nhóm PNG , CVG . Nước Mỹ bây giờ không còn như ngày xưa luôn lo chuyện bao đồng rồi nhận lại là sự phản bội của các nước được nước Mỹ giúp . Nước Mỹ bây giờ là nước Mỹ của DÂN MỸ ! Pi Netw...