Bằng chứng máy chủ Bluezone có thể âm thầm lấy dữ liệu của người dùng

Tôi vừa đưa lên https://github.com/thaidn/bluezone hướng dẫn để những lập trình viên và những ai quan tâm có thể tận mắt chứng kiến cách máy chủ Bluezone có thể âm thầm lấy lịch sử tiếp xúc của tất cả người dùng Bluezone. Xin nhấn mạnh là tất cả, bất kể người đó có từng tiếp xúc với F nào hay không.

Tóm lại máy chủ có toàn quyền quyết định lấy dữ liệu bất kỳ lúc nào mà không cần có sự đồng ý của người dùng. Có thể máy chủ sẽ không bao giờ làm vậy, nhưng câu hỏi là làm sao chúng ta có thể kiểm tra được nếu họ không cam kết và không cung cấp thông tin cách họ làm trên máy chủ?

Xem thêm thảo luận ở đây.

Comments

Pan said…
Cảm ơn Thái. Mình có nghe về Bluezone khá lâu nhưng lúc đó mình cũng có cảm giác thực sự không tin tưởng cho lắm. Một giải pháp cộng đồng như này mà mãi mới quyết định là nguồn mở và thực sự họat động chưa giống một dự án nguồn mở lắm mặc dù đã công bố lên github. Sau khi đọc các bài phản biện của Thái mình mới thấy cảm giác của mình là có cơ sơ.
Theo suy nghĩ của cá nhân mình những lỗi hiện tại là hoàn toàn năng lực yếu kém của công ty thiết kế phát triển sản phẩm và tư vấn.
Tất nhiên trách nhiệm là của bộ TT, nhưng chắc trong giai đoạn tập trung chống dịch này bộ cũng không có request gì thêm ngoài việc yêu cầu 1 hệ thống có thể truy vết và bảo mật. Có nghĩa là công ty đó có toàn quyền quyết định về họat động của hệ thống.
THeo mình biết ở VN có nhóm các công ty về nguồn mở, bạn có thể gửi những phản biện của mình về đó, hoặc kết hợp cùng nhiều người có uy tín nữa đưa vẫn đề này ra để nhiều người cùng biết tới.
Severus said…
Em thấy trong request có OTP nhưng trong file txt của anh không có và response khi fake số otp thế nào. Nếu về mặt triển khai thì lỗi không nhận otp và không paired với số phone để liên lạc trong trường hợp cần khai báo xác minh. Anh có thể mở issue cho cái này được không?
Trường hợp F1 trở đi, flow đúng ra nên là Bộ Y Tế nhắn tin tới số người này, yêu cầu gửi contact lên server mới đúng phải không anh.
Cảm ơn về PoC của anh. Nhưng em đọc code ngoài gửi contact F1 F2 từ phía app không cần otp thì action gửi F0 bắt buộc có otp, nếu có bug ở đây thì bug đó phải là không kiểm tra otp lẫn số phone paired với otp đó, có thể dẫn tới server nhận sai thông tin F0 và history.
Tomorrow said…
Thằng nào chả cam kết ko lấy, rồi có lấy hay ko đến lúc bị phanh phui mới rõ. Fb là ví dụ :))

Nhưng nói chung nếu có lợi cho nước nhà thì cài thôi, dữ liệu của mình cũng ko có j quan trọng, đến FaceApp còn cài nữa là hehe
Thai Duong said…
Severus: muốn upload dữ liệu của F0 thì phải có OTP. OTP này do máy chủ gửi xuống, nằm trong cái lệnh YeuCauGuiLichSu, xem [1]. Trong ví dụ của tôi, request upload dữ liệu sẽ không được server chấp nhận, vì OTP là do tôi tự chế ra. Nhưng nếu chính máy chủ thật gửi lệnh YeuCauGuiLichSu thì nó sẽ có OTP đúng và upload request sẽ được chấp nhận.

Tương tự như vậy muốn upload dữ liệu của F1 hoặc F2 thì phải có một parameter gọi là FindGUID. FindGUID cũng được gửi kèm trong cái lệnh KiemTraLichSuTiepXuc [2].

>Cảm ơn về PoC của anh. Nhưng em đọc code ngoài gửi contact F1 F2 từ phía app không cần otp thì action gửi F0 bắt buộc có otp, nếu có bug ở đây thì bug đó phải là không kiểm tra otp lẫn số phone paired với otp đó, có thể dẫn tới server nhận sai thông tin F0 và history.

Bug này, nếu có, không liên quan đến mục tiêu demo. Mục tiêu demo là để chứng minh máy chủ có thể kích hoạt client tự động gửi dữ liệu.

[1] https://github.com/thaidn/bluezone/blob/master/notify.py#L19
[2] https://github.com/thaidn/bluezone/blob/master/notify.py#L42
Kun said…
Trong giai đoạn này tính mạng con người quan trọng hơn không chưa cần chú ý đến cái tiểu tiết. Sau dịch đưa ra thông tin này thì tốt hơn. Nếu người quan tâm về chính trị chắc ai cũng đoán được điều này.
Thênh Thang said…
Tui quan tâm đến an toàn tính mạng con người hơn. Facebook, Instagram,... Nó còn biết về bạn nhiều gấp ngàn lần cái bluzone nhỏ xíu này.
Cao Phong said…
Cảm ơn sự quan tâm và đánh giá khách quan của bạn cho sản phẩm, mình tin là nó sẽ hữu ích cho đội ngũ phát triển để hoàn thiện sản phẩm, nhà nước để hoàn thiện quy chế và người dùng để ra quyết định
Tui thấy trong app Bluezone trên Android có nút "Nhập mã xác thực" trong trang "Giới thiệu".
Nhờ Thái giải thích giùm có phải rằng:
- khi server Bluezone gửi YeuCauGuiLichSu kèm theo OTP đến phone thì đồng thời gửi OTP qua SMS đến phone, user sẽ nhận được đúng OTP đó qua SMS VÀ user phải bấm nút "Nhập mã xác thực" để gõ OTP mới nhận vào app, sau đó app sẽ gửi history đi.
Nếu như vậy thì không ÂM THẦM.
Ngược lại nếu ÂM THẦM thì nút "Nhập mã xác thực" dùng để làm gì?
Unknown said…
tuy không ở vn nhưng những đóng góp của anh thái trong công cuộc chống dịch này không thua kém 1 ai cả
Tanu said…
Lỡ gáy trên báo quốc doanh rồi thì phải làm sao:

Ứng dụng Bluezone hoạt động theo mô hình phân tán nên dữ liệu hoàn toàn do người dùng quản lý. Do vậy, giả sử khi hệ thống Bluezone bị tấn công, hacker không có được toàn bộ dữ liệu của người dân. Đơn giản là vì hệ thống không hề lưu trữ dữ liệu người dùng.

https://tuoitre.vn/co-che-van-hanh-thu-thap-thong-tin-cua-bluezone-nhu-the-nao-20200809091515527.htm
Thai Duong said…
Lê Hồng Bội: app có hai chỗ để gửi lịch sử của F0 lên. Chỗ mà bạn thấy là một. Chỗ đó người dùng tự nhập OTP (tôi đoán là gửi qua SMS). Chỗ mà tôi làm trong demo là hai. Chỗ này không cần người dùng nhập gì cả.

Tanu: đúng là không thể tin nổi.
Pan said…
Gửi 1 số bạn sức khỏe là trên hết.
Việc Facebook, Google lấy thông tin của các bạn là do các bạn chập nhận điều khoản để sử dụng dịch vụ của họ. Họ là công ty, không đại diện cho chúng ta (và họ đã bị chính chính quyền Mỹ đưa ra điều trần đó thôi).
Trường hợp Bluezone thì khác chúng ta cài đặt vì lợi ích của quốc gia nhưng kèm theo đó chúng ta có sự cam kết của chính phủ với các policy đi kèm. Tuy nhiên những policy đó hoàn toàn không đúng. Mà việc không tuân thủ policy đó không chỉ ảnh hưởng tới uy tín quốc gia mà thậm chí gây hại cho cả một chiến dịch đúng đắn và ảnh hưởng cá nhân.
Ví dụ: giả mạo F0, F1, theo dõi người dùng ảnh hưởng cá nhân từ app, thậm chí hệ thống server bị tấn công thay đổi kết quả, xóa đi kết quả ... và nhiều vấn đề khác.
Chúng ta hoàn toàn loại bỏ được điều đó, tại sao chúng ta không làm. Với năng lực của nhiều cá nhân và các tập thể tài năng khác hoàn toàn có thể làm tốt và cùng đóng góp. Tại sao việc này lại chỉ là 1 công ty (hình như là BK...) có quyền kiểm soát. Trong khi chúng ta kêu gọi toàn đất nước và toàn dân cùng tham gia.
Chúng ta không biết về bảo mật nhưng ít nhất nên hiểu về chính sách phía sau.
Những người phản biện bạn THái rất đang quý, đó mới là cách để đất nước tiến lên.
Vân said…
Tóm lại là chương trình có thể âm thầm thu thập những loại dữ liệu gì của người dùng ạ?
Unknown said…
Không liên quan lắm nhưng đang xem TV thấy anh Thái tham gia chương trình Giọng Ải Giọng Ai. :D
Alex Nguyen said…
Anh Quảng là phó chủ tịch AIC là đệ chị Nhàn ko đơn giản đâu các bác đừng dại đụng vào
Anonymous said…
https://moh.gov.vn/tin-lien-quan/-/asset_publisher/vjYyM7O9aWnX/content/tap-huan-va-khai-thac-su-dung-phan-mem-bluezone-truc-tuyen

Nếu ở bước 2 và bước 3 có 1 thứ gọi là "mã khai báo" hay là OTP theo nội dung trao đổi trong post này

Thì tại bước 5 lại không hề đề cập gì tới việc nhập mã.

Đây có thể gọi là "âm thầm lấy dữ liệu của người dùng" được không?
huuviet said…
App nào mới ra cũng có lỗi này lỗi kia, nhất là các lỗi về bảo mật. Như các bạn khác nó vấn đề sk là quan trọng, mình xin nhấn mạnh thêm là vấn đề sức khỏe cộng động là quan trọng. Vì bệnh này ko phải chỉ 1 mình bạn chịu mà nhiều người liên quan. Mình thì nghĩ vẫn nên cài vì cái lợi chung và trước mắt (cho chống dịch). Các chuyên gia IT phát hiện các lỗi về bảo mất thì vẫn tiếp tục đóng góp ý kiến và hy vọng CP sẽ ghi nhận và sử chữa. Như version mới nhất họ đã lắng nghe mà.
Zic said…
@huuviet: Thằng Thái nó dựa hơi Bluezone, BBC để làm mọi người chú ý tới nó thôi. Nó thực ra là thằng vớ vẩn thôi
KKK said…
@Zic: Mất dạy
Trong một diễn biến mới, vnexpress vừa cho đăng tải nội dung này: https://vnexpress.net/nguoi-da-nang-cai-bluezone-nhieu-nhat-viet-nam-4144124.html

Nếu việc đăng ký bluezone chỉ dùng số dtdd thì cơ quan chủ quản cần phải có thông tin người dùng đăng ký với nhà mạng để biết được vị trí nơi ở của họ hoặc là bluezone thu thập location trong điện thoại và gửi về cho máy chủ?
Kha Nguyen said…
Cái post này chứng minh nhận định của anh Thái là sai nhé: https://imgur.com/a/4miLR00

=))))))
Tester said…
@Kha Nguyen bên đấy làm ăn cẩu thả nhỉ. Không dùng version mới nhất thì phải check xem có cái bug nào nghiêm trọng không. Cái cve này từ bao giờ rồi, ai làm lif**** cũng biết hết. Mà lịch sử của nó từ nhiều năm trước cũng toàn bị mấy cái bug sơ đẳng. Fix xong lại bị bypass. Mình mà làm portlet là bao giờ cũng phải chuẩn bị tinh thần nếu dùng thằng này.

Zic đâu về bảo chủ của mày xử lý đi kìa.
seanxluong said…
Ơ không phải Zic làm Google ở Úc à? =))
Zic said…
T liên quan éo gì BZ.
Quan điểm xây mới khó , phá thì dễ nha mấy con giời
Thằng nào cổ suý phá giơ tay tao xem nào?
Tester said…
@Zic quan điểm chạy web với quyền root là thấy quan điểm có vấn đề rồi :))) mày giỏi lấy hộ t root của cái blogspot này phát.
Với trình độ bảo mật của cty B thì người ta nghi ngờ là chuyện bình thường.
Zic said…
@Tester: quan điểm của mày khác quam điểm của tao. root hay không root khác éo gì nhau. Ngân hàng mở cửa sáng chiều không khóa, mày vào húp hộ t phát.
Tester said…
@Zic tao sai rồi zic ạ :( Lúc trước t bảo mày làm ở cty B. Nhưng giờ mới nhận ra 1 điều, dù có là cty B cũng k thể nào có 1 đứa nhân viên khôn như m được. Làm sao mà m có thể khôn như vậy được hả zic =)))
Hôm nay chú m suýt làm team appsec ở cty tao cười vỡ bụng r đấy. thật là nguy hiểm :(
mathe said…
Nhiều lúc comment mà lại sợ Thái block tiếp, rõ khổ. Nhưng mà nhiều lúc nhìn mấy đứa ngu méo chịu nổi.

Hacker mà lấy được quyền root, chẳng khác nào ngân hàng mà bị chôm hết chìa khóa (bao gồm luôn cả chìa khóa két sắt) và bị cúp điện (bao gồm cả nguồn dự phòng). Đứa nào thử đưa tất cả chìa khóa của ngân hàng và tắt hết điện với camera xem thử tao có làm gỏi hết đống tiền trong đó không? Đan Mạch cái bọn óc thiểu năng...
Zic said…
2 thằng trên mày không nghĩ đấy là cái honeypot để tóm cổ chúng mài ?

btw, t éo liên quan gì tới cty A B C gì cả, nên đừng có nhạy cảm mà trích dẫn ý tao đăng lên twitter, hay NY nha
mathe said…
Quan trọng gì chuyện đó. Điểm đáng nói là bọn làm Bluezone đã dở rồi, lại còn lén lút dùng nick giả để chửi người khác, mà còn không thừa nhận. Bao nhiêu đó đủ làm trò cười cho thiên hạ rồi... Bait hay không cũng méo khác mấy.
Zic said…
@mathe Thế mài hư quá , nghĩ ai cũng như tao cả mày. t đoán bọn làm BZ éo có thời gian ngủ lấy đâu đi clone giống mày
mathe said…
Đã như thế, lại còn nói xuyên tạc mà thiếu bằng chứng nữa chứ. =)))
Tester said…
@Zic cty B chuyên gia bị 1day rce (Nday thì đúng hơn) nhưng mãi vẫn không chừa. không riêng gì bluezone mà còn rất nhiều site khác của B đã được report nhiều lần trong quá khứ. bounty thì đúng là không thể tin nổi. chắc ngang ngửa bounty của viettel chia cho 10 :) làm đàng hoàng thì đã không sinh ra mấy cái bug sơ đẳng như này.
tình hình dịch đang cấp bách, bluezone không phát triển từ open source để đảm bảo chất lượng và thời gian mà cứ thích sáng tạo lại cái bánh xe. sáng tạo lại thì cũng tốt thôi, nhưng làm không bằng 1 góc của người ta. nhìn cái đống code trên github mà không ngửi nổi. lỗi thì tùm lum. không làm được thì để người khác làm. app để chống dịch chứ không phải để đánh bóng tên tuổi.

còn cái bug kia bên B đã fix rồi. ngồi đó mà honeypot.
Zic said…
@tester: mày tự chửi chính mày ? =))
Tester said…
@Zic ngu lâu dốt bền quá em ạ. chú tưởng anh là ông thái à :))
Zic said…
@tester: mày mới là ngu, script kiddo lôi mấy cái nday có sẵn chạy đòi bounty =))))) ko thấy nhục hả con
Tester said…
This comment has been removed by the author.
Tester said…
@Zic không phải anh, giờ người ta săn bounty chục k$ của msft, google, fb... chứ ai rảnh đi săn bounty cho cty B :)) mà chú nghĩ nday là có sẵn poc cho chú chạy à :) a giao task phân tích 1day và viết poc cho mấy đứa sinh viên thực tập, chúng nó shodan hay tìm ở đâu ra mấy site của B, thế là đâm phát chết luôn :)) đến chịu. Không bounty nó lại deface cho phát thì bách nhục. Mà căn bản cty B tài chính cũng hạn hẹp nên cũng thông cảm :)) đâu mạnh như bên V này hay V nọ đâu :))))))))
Zic said…
@tester: mày nói vậy tao nghĩ bounty với mày đang ở mức khái niệm. Mượn câu của thằng THẾ: ếch ngồi đáy giếng hay thùng rỗng kêu to
thanh phan said…
@Teste Ngừng thôi bạn, phần cmt rác qúa
https://m.plo.vn/ban-doc/cuc-tin-hoc-hoa-giai-dap-thac-mac-ve-bluezone-932459.html
Cục chính thức xác nhận rằng có những trường hợp hệ thống lấy dữ liệu từ máy người dùng mà không cần sự đồng ý: người dùng bị nghi là nhiễm virus.
Kha Nguyen said…
Chào anh Bội, lâu lắm rồi không gặp anh... Để em giải thích lại vài luận điểm của Cục theo góc nhìn khác:

> Hiện nay đã có quy chế quy định rõ về vấn đề này và các giải pháp kỹ thuật kèm theo trên cơ sở quy định của pháp luật hiện hành về an toàn thông tin và an ninh mạng.

Câu này có nghĩa là: Nếu Chính quyền VN làm đúng theo quy định, nếu team Bluezone làm đúng theo quy định, nếu hacker đã và sẽ hack vào server Bluezone cũng làm đúng theo quy định,... thì dữ liệu của người dùng sẽ không bị khai thác.

> Máy chủ không lưu trữ mọi dữ liệu lịch sử tiếp xúc cũng như ID của người dùng. Dữ liệu tiếp xúc sẽ chỉ được phục vụ cơ quan y tế khi có sự đồng ý của người dùng hoặc trong trường hợp người dùng là ca nghi nhiễm.

Câu này cũng có nghĩa là: Máy chủ không lưu trữ mọi dữ liệu, chỉ lưu trữ những dữ liệu mà server muốn lưu trữ thôi. Tập hợp "muốn" có thể bằng với tất cả dữ liệu của tất cả người dùng, cũng có thể chỉ là một phần nhỏ. Một khi server đã "muốn" thì máy của người dùng không có cách nào khác ngoài việc giao nộp toàn bộ dữ liệu.

Điểm mấu chốt của cuộc tranh luận này là ở chỗ:
- Một bên nói "cứ để cửa mở, tui không muốn bước vào nhà thì nhà sẽ không bị đột nhập đâu"
- Một bên lại nói "cần phải khóa chặt cửa, để không ai bước vào nhà bất kể họ có muốn hay không"

Anh Thái và "đồng bọn" tin vào cái số 2, trong khi Cục trả lời theo hướng số 1. Em nghĩ là Cục vẫn chưa giải thích thỏa đáng vấn đề.
@Kha
Trong vụ này, phe nhà nước cần sự hợp tác của dân mà vẫn cư xử như cha thiên hạ, không minh bạch, tiết lộ nhỏ giọt.
Mặc dù Bluezone để một cửa để server âm thầm lấy dữ liệu từ client là cần thiết trong những trường hợp người cầm phone không hợp tác, nhưng việc không công khai từ đầu đã làm cho nhiều người nghi ngờ.
Dù sao thì cũng nên cài app này vì những thông tin mà app thu thập không có hại gì cho tui và đa số dân chúng.
Kha Nguyen said…
Dạ, em theo trường phái minh bạch. Chỉ cần nói rõ "Bluezone có thể thu thập tất cả dữ liệu của tất cả người dùng, nhằm mục đích chống dịch hiệu quả", thì còn chấp nhận được. Còn liên tục dùng báo chí để tung hỏa mù theo kiểu "Bluezone muốn thì làm được, nhưng mà nó không dám đâu" thì lại quá chán.