Quét 7,25 triệu kho mã trên Gitee: phát hiện 26.400 thông tin đăng nhập còn "sống"
Một nhà nghiên cứu bảo mật độc lập đã quét toàn bộ 7.256.531 kho mã công khai trên Gitee — nền tảng lưu trữ Git lớn nhất Trung Quốc — và tìm ra 26.400 bộ thông tin đăng nhập vẫn còn hiệu lực, bao gồm khóa truy cập đám mây, API key của các dịch vụ AI và cả một tài khoản quản trị tổ chức của một nền tảng AI doanh nghiệp lớn. Mật độ rò rỉ trên Gitee cao hơn cả GitLab và Bitbucket.

Quét 7,25 triệu kho mã trên Gitee: phát hiện 26.400 thông tin đăng nhập còn "sống"
Một cuộc khảo sát quy mô lớn trên Gitee — nền tảng lưu trữ mã nguồn Git lớn nhất Trung Quốc — đã phát hiện 26.400 bộ thông tin đăng nhập vẫn còn hiệu lực nằm công khai trong các kho mã. Kết quả cho thấy khoảng 1 trong mỗi 766 kho chứa khóa truy cập Alibaba Cloud còn dùng được, và mật độ rò rỉ tính theo số kho còn cao hơn cả GitLab lẫn Bitbucket.
Sơ đồ kiến trúc pipeline quét hai công cụ song song
Gitee là gì và vì sao đáng lo?
Gitee ra mắt năm 2013 do OSChina phát triển, được Bộ Công nghiệp và Công nghệ thông tin Trung Quốc chọn làm nền tảng lưu trữ mã nguồn mở cấp quốc gia. Giống mọi nền tảng Git lớn, đây là bề mặt hấp dẫn cho rò rỉ bí mật:
- Dựa trên Git, nên các khóa bí mật bị chôn sâu trong lịch sử commit vẫn tồn tại vĩnh viễn.
- Lưu trữ hàng triệu kho công khai với lưu lượng commit liên tục.
- Không có cơ chế hợp tác quét bí mật với nhà cung cấp dịch vụ như GitHub đã triển khai từ lâu.
Điểm khó là API công khai của Gitee bị giới hạn nghiêm trọng: không có endpoint liệt kê dự án theo trang, và tính năng tìm kiếm mã trên site dường như đã bị gỡ từ nhiều năm trước. Một nghiên cứu năm 2021 từng bỏ cuộc vì lý do này.
Cách vượt qua giới hạn API
Nhà nghiên cứu Ben Zimmermann, phối hợp cùng nhóm Kingfisher của MongoDB, đã phải kết hợp nhiều nguồn dữ liệu khác nhau để lập danh sách kho mã:
- Endpoint REST chính thức duy nhất trả về dữ liệu hữu ích ở quy mô lớn:
GET /api/v5/search/users, được gọi với các truy vấn tiền tố ba ký tự. - Bảng tin Explore công khai, cùng trang dự án và trang người dùng đã star của từng tài khoản.
- Tiện ích tìm kiếm Elasticsearch nội bộ đứng sau giao diện tìm kiếm của Gitee, cho phép truy vấn tối đa 200 kết quả mỗi lần — vượt qua bằng cách chia nhỏ theo ngôn ngữ, giấy phép và tiền tố sâu hơn.
Sau khi loại trùng, ông thu được danh sách 7.256.531 kho công khai trên Gitee.
Quét song song bằng hai công cụ
Việc clone và quét 7,25 triệu kho được thực hiện bằng một script Python duy nhất chạy trên Modal — nền tảng tính toán serverless vốn phổ biến cho khối lượng công việc AI. Mỗi kho được bare-clone qua SSH rồi quét đồng thời bằng TruffleHog và Kingfisher, hai công cụ có bộ phát hiện bổ trợ lẫn nhau.
Corpus được chia thành 50 lô, mỗi lô khoảng 150.000 kho, chạy tuần tự với 350 container đồng thời. Tổng thời gian chạy gần một tháng liên tục, một phần do khoảng cách địa lý xuyên Thái Bình Dương khiến mỗi lần clone chậm hơn đáng kể so với GitHub. Chi phí toàn bộ khoảng 3.097 USD, được tài trợ bằng gói tín dụng 5.000 USD từ Modal.
Biểu đồ phân bố thông tin đăng nhập theo nhà cung cấp
Kết quả: hai công cụ, hai nửa bức tranh
| Công cụ | Số phát hiện duy nhất |
|---|---|
| TruffleHog | 12.737 |
| Kingfisher | 14.664 |
| Cả hai cùng phát hiện | 1.001 |
| Tổng cộng sau loại trùng | 26.400 |
Đáng chú ý là mỗi công cụ nếu chạy riêng chỉ bắt được khoảng một nửa số bí mật. TruffleHog vượt trội ở khóa Alibaba Cloud (9.428 so với 993), trong khi Kingfisher áp đảo ở DeepSeek (2.940 so với 230), OpenAI (1.198 so với 150), HuggingFace (154 so với 1) và các dịch vụ AI Trung Quốc như Zhipu (1.489 so với 0) — nhóm mà TruffleHog hoàn toàn không có bộ phát hiện.
Loại bí mật phổ biến nhất là cặp AccessKey của Alibaba Cloud. Ngoài ra còn có một chuỗi dài các nhà cung cấp khác: LangSmith, OpenWeather, Algolia, PostHog, OpenRouter, MySQL, Stripe, Slack, Twitter…
Biểu đồ thông tin đăng nhập duy nhất theo năm commit
Xu hướng đáng báo động
Phần lớn thông tin đăng nhập còn hiệu lực được commit trong hai năm gần đây, riêng năm 2025 đã chiếm 12.242 bộ — gần một nửa toàn bộ dữ liệu. Điều này cho thấy vấn đề không phải di sản cũ mà đang tiếp diễn và gia tăng.
Về tên miền email người commit, phần lớn đến từ dịch vụ thư cá nhân (qq.com, 163.com, gmail.com), khiến việc quy trách nhiệm theo doanh nghiệp gần như bất khả thi ở quy mô lớn. Dù vậy, dữ liệu vẫn lộ ra tên tuổi của nhiều tập đoàn công nghệ lớn cả Trung Quốc lẫn phương Tây: Huawei, ByteDance, Google, Microsoft, Oracle, Apple, Meta, Anthropic.
So sánh với GitLab và Bitbucket
| Nền tảng | Số kho quét | Bí mật còn hiệu lực | Trên 1.000 kho |
|---|---|---|---|
| Bitbucket | ~2.600.000 | 6.212 | 2,39 |
| GitLab | ~5.600.000 | 17.430 | 3,11 |
| Gitee | 7.256.531 | 26.400 | 3,64 |
Gitee dẫn đầu cả về số lượng tuyệt đối lẫn mật độ. Cần lưu ý về phương pháp: các cuộc quét của TruffleSecurity chỉ dùng TruffleHog, còn nghiên cứu này dùng cả hai công cụ. Nếu chỉ tính riêng kết quả TruffleHog, con số của Gitee giảm xuống 1,76 trên 1.000 kho.
Khoảng trống trong quy trình xử lý sự cố
Nhà nghiên cứu đã gửi báo cáo phối hợp đến các nhà cung cấp có mức độ phơi nhiễm cao nhất, kèm danh sách đầy đủ thông tin đăng nhập và siêu dữ liệu kho nguồn để họ truy vết khách hàng bị ảnh hưởng. Việc thông báo riêng cho từng lập trình viên không được thực hiện ở quy mô này — thu hồi khóa từ phía nhà cung cấp là con đường đáng tin cậy hơn, vì không phụ thuộc vào hành động của người đã làm lộ bí mật.
Điểm bất đối xứng lớn nhất nằm ở kênh xử lý sự cố: các công ty phương Tây thường có chương trình bug bounty hoặc kênh bảo mật dễ tiếp cận, còn phần lớn doanh nghiệp Trung Quốc thì không — khiến thông tin đăng nhập bị lộ không có lối khắc phục rõ ràng.
Tính đến thời điểm công bố, tình trạng thu hồi của các thông tin đăng nhập đã báo cáo vẫn chưa được xác nhận.
Bài học cho lập trình viên Việt Nam
Kiến trúc quét này có thể tái sử dụng: cùng một pipeline Modal kết hợp hai công cụ quét chạy được trên hầu hết nền tảng Git, chỉ cần đổi URL clone, với chi phí khoảng 3.000 USD cho toàn bộ quá trình. Với các đội phát triển trong nước, câu chuyện càng là lời nhắc nhở trực tiếp:
- Không bao giờ commit khóa bí mật vào mã nguồn, kể cả kho riêng tư — vì lịch sử Git lưu lại vĩnh viễn.
- Dùng biến môi trường hoặc dịch vụ quản lý bí mật (Vault, AWS Secrets Manager, Doppler…).
- Bật tính năng quét bí mật tự động trong CI/CD và trên GitHub/GitLab nếu có.
- Luân chuyển (rotate) khóa định kỳ và ngay lập tức khi nghi ngờ bị lộ.
- Khi phát hiện lộ, hãy thu hồi khóa từ phía dịch vụ trước tiên — đó là biện pháp chắc chắn nhất.
Bài viết liên quan

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Phần mềm
Khảo cổ học thực thi: Hồi sinh trình biên dịch Heuristic (1961) và KBEmacs (1984)
28 tháng 10, 2026