Một nghiên cứu gần đây đã phát hiện một lỗ hổng path traversal (CWE-22) phổ biến ảnh hưởng đến 1756 dự án mã nguồn mở trên GitHub. Bài viết này sẽ trình bày chi tiết các phát hiện quan trọng từ nghiên cứu, bao gồm thông tin về lỗ hổng, mức độ ảnh hưởng, các rủi ro liên quan và những nỗ lực khắc phục.
1. Phát hiện lỗ hổng
Nghiên cứu đã sử dụng một pipeline tự động để quét các dự án trên GitHub nhằm tìm kiếm mẫu mã dễ bị tấn công. Khả năng khai thác lỗ hổng được xác nhận thông qua phân tích tĩnh (static analysis) và kiểm tra động (dynamic testing). Kết quả cho thấy lỗ hổng path traversal tồn tại rộng rãi trong 1756 dự án mã nguồn mở.
2. Đánh giá mức độ ảnh hưởng
Các nhà nghiên cứu đã sử dụng thang điểm CVSS để đánh giá mức độ nghiêm trọng của lỗ hổng. Ngoài ra, họ cũng tạo các bản vá (patches) tự động bằng cách tận dụng GPT-4 để hỗ trợ quá trình khắc phục.
3. Hiệu ứng sao chép và gia tăng rủi ro
Hiệu ứng sao chép (replication effect) làm gia tăng đáng kể rủi ro bảo mật. Khi một kẻ tấn công phát hiện một trường hợp lỗ hổng trong một dự án, họ có thể dễ dàng nhắm mục tiêu vào nhiều dự án khác sử dụng cùng mẫu mã dễ bị tấn công. Điều này đặc biệt nguy hiểm với các dự án mã nguồn mở có tính tái sử dụng cao.
4. Nỗ lực khắc phục
Thông qua quá trình tiết lộ có trách nhiệm (responsible disclosure), 14% các lỗ hổng được báo cáo đã được khắc phục tính đến thời điểm hiện tại. Tỷ lệ khắc phục có sự khác biệt đáng kể giữa các dự án: các dự án phổ biến đạt tỷ lệ khắc phục 42%, trong khi những dự án nhận được pull requests chỉ đạt 11%.
5. Vai trò của LLMs trong việc duy trì mã dễ bị tấn công
Nghiên cứu chỉ ra rằng các mô hình ngôn ngữ lớn (Large Language Models – LLMs) góp phần duy trì các mẫu mã dễ bị tấn công. Khi được yêu cầu tạo các máy chủ tệp tĩnh (static file servers), 95% mẫu mã do LLMs tạo ra chứa lỗ hổng path traversal. Ngay cả khi được yêu cầu rõ ràng tạo các máy chủ tệp “an toàn”, 70% mã được tạo vẫn tồn tại lỗ hổng.
6. Nhu cầu nâng cao nhận thức và tự động hóa
Các nhà nghiên cứu nhấn mạnh sự cần thiết cấp bách trong việc bảo vệ hệ sinh thái mã nguồn mở. Giải pháp quản lý lỗ hổng tự động (automated vulnerability management) và việc nâng cao nhận thức cho các nhà phát triển đóng vai trò quan trọng trong việc ngăn chặn sự lan rộng của các lỗi bảo mật.
7. Phương pháp thông báo theo giai đoạn
Để thông báo về lỗ hổng, nhóm nghiên cứu đã áp dụng phương pháp tiếp cận theo giai đoạn (staged notification approach). Các dự án phổ biến được liên hệ riêng tư với các nhà phát triển, trong khi các kho lưu trữ ít nổi bật hơn được thông báo thông qua các issue công khai và pull requests.
Kết luận
Nghiên cứu này nhấn mạnh tầm quan trọng của việc xử lý lỗ hổng trong các dự án mã nguồn mở. Các nhà phát triển và quản trị hệ thống cần hợp tác để triển khai các công cụ tự động hóa và nâng cao nhận thức nhằm ngăn chặn sự lan rộng của các lỗ hổng bảo mật. Việc đảm bảo an ninh cho hệ sinh thái mã nguồn mở không chỉ là trách nhiệm của từng cá nhân mà còn là mục tiêu chung của toàn cộng đồng.










