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.