Lỗ hổng của Sổ sức khỏe điện tử

Cập nhật: xem thêm một số chi tiết kỹ thuật.

Tôi không có thời gian viết chi tiết, nên chỉ công bố email mà tôi chia sẻ với Bộ TTTT, Bộ Y Tế và Viettel. Xin được lọc bỏ tên và email của những người đã trực tiếp liên hệ để đảm bảo riêng tư.

Tất cả các lỗ hổng đã biết đều đã được sửa. Team SSKĐT còn đang cân nhắc một số giải pháp bảo vệ riêng tư cho người dùng tốt hơn tôi mong đợi.

Dẫu vậy đề nghị đưa mã nguồn lên GitHub của tôi chưa được thực hiện.

---

On Mon, Oct 4, 2021 at 3:40 AM <đã lọc bỏ> wrote:

<đã lọc bỏ> gửi lại từ GMAIL

Dear Thái,

Sáng nay, anh Long Bộ trưởng Y tế có chuyển <đã lọc bỏ> các thông tin liên quan đến ý kiến của Thái.

Rất mong Thái có thêm ý kiến chi tiết về mặt kỹ thuật để anh em có thể nhanh chóng khắc phục các điểm yếu nếu có.

<Đã lọc bỏ> CC kèm trong email này <đã lọc bỏ> Viettel và các anh em Cục CNTT Bộ Y tế để cũng tham gia luôn. <đã lọc bỏ> sẽ giúp trao đổi và follow cụ thể về mặt kỹ thuật.

Cảm ơn Thái nhé!

---

From: ⛷ Thai Duong <thaidn@gmail.com>

Date: Mon, Oct 4, 2021 at 7:32 AM

Subject: Re: Về Bug liên quan đến Sổ Sức khoẻ điện tử và các nền tảng công nghệ chống dịch

To: <đã lọc bỏ>

Cc: <đã lọc bỏ>

Chào <đã lọc bỏ>,

Tôi mới nhận được email hôm nay.

Hệ thống Sổ sức khỏe có nhiều vấn đề, mà toàn những chuyện cơ bản như default password, IDOR, HQL Injection, path traversal.

Trước tiên, với tư cách một công dân, tôi muốn nói rằng tôi rất thất vọng với các anh. Hệ thống quan trọng vậy nhưng tôi có cảm giác chưa từng có team security nào kiểm tra đánh giá. Hệ thống có lỗi là chuyện bình thường, nhưng có lỗi nhiều và sơ đẳng như vầy thì rõ ràng là thiếu trách nhiệm.

Mong là các anh đừng tuyên bố rằng hệ thống đã có 100 chuyên gia bảo mật trao đổi đóng góp, như khi tôi chỉ ra lỗ hổng của Bluezone. Nói như vậy thật sự là một sự sỉ nhục với chuyên gia nước nhà. Team Viettel Security của <đã lọc bỏ> chắc chắn có khả năng audit hệ thống này, tại sao họ không làm thì tôi không biết.

Với đội ngũ của Việt Nam hiện tại, những lỗ hổng này không có gì khó đối với các anh chị em trong nước. Tôi tin tôi không phải là người đầu tiên phát hiện chúng. Các anh làm sao mà riết rồi không ai muốn và dám làm việc với các anh, trong khi các anh làm thì không đâu vào đâu.

Với tư cách một chuyên gia an ninh mạng, tôi gửi thông tin lỗ hổng như sau:

1/ Có rất nhiều API endpoints ở trên hai địa chỉ https://datkham-api.kcb.vn và https://api-hssk.kcb.vn không có kiểm tra quyền của người dùng, dẫn đến ai cũng có thể truy vấn thông tin của người khác. Đây là lỗi IDOR cơ bản.

2/ Tương tự như thế, rất nhiều endpoints, đặc biệt là các endpoints tìm kiếm, mắc lỗi HQL Injection. Tôi chưa test nhiều lắm phần này, nhưng tôi thấy có thể lợi dụng lỗ hổng này để vượt qua phần kiểm tra quyền trên một số endpoints.

3/ Lỗ hổng path traversal cho phép đọc file bất kỳ trên https://api-hssk.kcb.vn/patient/patient-resources/avatar?avatar=/etc/passwd và https://api-hssk.kcb.vn/patient/patient-resources/attachment?file=../etc/passwd. Lợi dụng lỗ hổng này có thể xem được cấu hình và mã nguồn của backend, từ đó có thể đi vào nhiều hệ thống khác, nhưng tôi chưa có thời gian xem.

4/ Đặc biệt: rất nhiều accounts trên https://hssk.kcb.vn sử dụng cùng một mật khẩu mặc định là Hssk@#1234 hoặc Hssk@#12345.

Người dân cần được biết thông tin của họ có khả năng bị lộ ra ngoài. Hiện tại tôi thấy thông tin Sổ sức khỏe điện tử đã bị leaked ra ở nhiều nơi, nên tôi sẽ sớm thông báo để những ai quan tâm được biết, nhưng tôi sẽ không cung cấp các chi tiết kỹ thuật.

Tôi cho các anh 7 ngày, kể từ hôm nay để sửa lỗi. Tôi sẽ công bố các chi tiết kỹ thuật vào sáng thứ hai 11/10/2021. Nếu trong thời gian này tôi phát hiện ra các anh có bất kỳ động thái nói dối, lấp liếm hay tấn công cá nhân tôi như những lần trước, tôi sẽ công bố toàn bộ thông tin. Tôi cũng sẽ công bố sớm hơn nếu tôi thấy có quá nhiều người biết đến vấn đề này. 

Nếu có cần trao đổi gì thêm thì các anh nhắn lại đây.

Thái.

Comments

Anonymous said…
Ứng dụng có bug => ông phát hiện bug thì ông báo, chờ họ fix rồi lúc đó muốn bóc phốt thì viết bài sau. Chứ với kiểu này thì chẳng khác gì chơi người ta.
P/S: Với mấy bug này thì chỉ để thỏa mãn việc hạ bệ người ra chứ về mặt kỹ thuật cũng chẳng có gì hay ho để viết bài phân tích
H said…
>P/S: Với mấy bug này thì chỉ để thỏa mãn việc hạ bệ người ra chứ về mặt kỹ thuật cũng chẳng có gì hay ho để viết bài phân tích
Chẳng có gì hay ho đâu ông, chắc anh Thái muốn ép họ fix bug cho xong thôi. Đưa lên public thì anh Thái là chịu thiệt đầu tiên.

Dù sao thì theo mình hiểu thì các nước khác cũng có thời hạn responsible disclosure 30-60 ngày ?
Anonymous said…
Bác cũng để cho người ta fix chứ bác, qua 30d rồi hãy công bố, như này chính bác đang cố tình tiết lộ thông tin dân Việt Nam chứ ai nữa
Anonymous said…
Mấy bug này lỗi Access Control List cơ bản. fix trong 1 buổi là phải xong rồi. Đợi gì mà 30-60d?
afterlastangel said…
> Ứng dụng có bug => ông phát hiện bug thì ông báo, chờ họ fix rồi lúc đó muốn bóc phốt thì viết bài sau. Chứ với kiểu này thì chẳng khác gì chơi người ta.
> P/S: Với mấy bug này thì chỉ để thỏa mãn việc hạ bệ người ra chứ về mặt kỹ thuật cũng chẳng có gì hay ho để viết bài phân tích

Đây là những lỗi nghiêm trọng rất dễ khai thác. Cách làm tốt nhất là tắt ngay server để tránh bị khai thác thêm. Các đầu API bị lỗi này chỉ cần nhìn sơ qua 1 xíu ở app là thấy. Không người này thì cũng có người khác. Quan trọng là có muốn lên tiếng không, hoặc khi lên tiếng có sức ảnh hưởng không.

Các hành vi xâm nhập đều phạm luật an ninh mạng (khoản c, d điều 19). Nên những người ở trong nước coi như đều bị khóa tay không muốn làm cũng không muốn lên tiếng.

Nếu ai đó có ý đồ xấu, cố tình khai thác, thì thật sự cũng chẳng thể nào phát hiện ngăn cản được. Ở đây chi trông chờ vào lòng tốt của con người.

Không có gì là hạ bệ ở đây.


Anonymous said…
Anh Thái ghi rõ bugs đã được sửa hết rồi, các bố lại quen thói dựng chuyện để tấn công cá nhân rồi. Để dành thời gian làm chuyện gì có ích hơn đi.
Anonymous said…
Hi a.Thái, a check cái meta og:image cho link của bài viết này nha
Nghia said…
cái mà cần vá đầu tiên là tư duy của các cấp lãnh đạo. Họ quá bảo thủ, cổ hủ, trình độ thì thấp (chủ yếu là lý luận chính trị chứ chuyên môn thì ko có, mà có thực sự biết lý luận chính trị hay ko cũng ko rõ) nhưng cái tôi thì cao. Quan sát bữa giờ thấy phản ứng của những người có liên quan đến một số vụ lỗ hổng phần mềm là thấy rõ. Hy vọng lớp trẻ sau này lên sẽ tạo ra được sự khác biệt: bớt lo "làm giàu" lại, trau dồi chuyên môn, đạo đức, cống hiến cho nhân dân nhiều hơn, tâm huyết đưa đất nước VN về đúng vị thế ở ĐNA mà đáng ra VN đang phải có. Trong thời gian đó, rất cần những người tâm huyết với quê hương, có chuyên môn cao như anh Thái là 1 điển hình. Xin cám ơn anh, trân trọng!.
Anonymous said…
> Ứng dụng có bug => ông phát hiện bug thì ông báo, chờ họ fix rồi lúc đó muốn bóc phốt thì viết bài sau. Chứ với kiểu này thì chẳng khác gì chơi người ta.
> P/S: Với mấy bug này thì chỉ để thỏa mãn việc hạ bệ người ra chứ về mặt kỹ thuật cũng chẳng có gì hay ho để viết bài phân tích

Hạ bệ ai? Ai hạ bệ? Lại đi lấy lòng tiểu nhân xong đo lòng quân tử à? Không biết đã đọc hết bài chưa.

Quen cái thói công kích cá nhân hèn hạ rồi.

> Tôi không có thời gian viết chi tiết, nên chỉ công bố email mà tôi chia sẻ với Bộ TTTT, Bộ Y Tế và Viettel. Xin được lọc bỏ tên và email của những người đã trực tiếp liên hệ để đảm bảo riêng tư. Tất cả các lỗ hổng đã biết đều đã được sửa. Team SSKĐT còn đang cân nhắc một số giải pháp bảo vệ riêng tư cho người dùng tốt hơn tôi mong đợi.Dẫu vậy đề nghị đưa mã nguồn lên GitHub của tôi chưa được thực hiện.