Một công cụ quét bảo mật mới có tên VSCan đã thu hút sự chú ý đến một thực tế đáng lo ngại: các extension Visual Studio Code hoạt động mà không có các hạn chế bảo mật có ý nghĩa, có thể khiến các nhà phát triển phải đối mặt với những rủi ro đáng kể. Công cụ này đã phân tích hơn 10.000 extension và xác định được hơn 500 lỗ hổng bảo mật, cho thấy rằng ngay cả những extension phổ biến cũng nhận được điểm số bảo mật đáng lo ngại.
Thống kê Bảo mật VSCan :
- Hơn 10.000 tiện ích mở rộng đã được quét
- Hơn 500 lỗ hổng bảo mật đã được xác định
- Khả năng giám sát 24/7
- Điểm phân tích gần đây: markmap-vscode (91 - Rủi ro Trung bình), kanagawa (91 - Rủi ro Trung bình), csv-to-table (91 - Rủi ro Trung bình), rainbow-csv (85 - Rủi ro Trung bình), VSCodeVim (71 - Rủi ro Cao)
Thiếu Framework Phân Quyền Tạo Ra Điểm Mù Bảo Mật
Không giống như các nền tảng di động yêu cầu sự cho phép rõ ràng của người dùng cho các hoạt động nhạy cảm, các extension VSCode có thể truy cập file, khởi chạy tiến trình và thực hiện các hoạt động mạng mà không cần sự giám sát của người dùng. Lỗ hổng thiết kế cơ bản này đã tồn tại trong nhiều năm, khiến các nhà phát triển bày tỏ sự thất vọng rằng một môi trường phát triển được sử dụng rộng rãi như vậy lại thiếu các kiểm soát bảo mật cơ bản.
Việc thiếu mô hình phân quyền có nghĩa là các extension đơn giản như syntax highlighter về mặt lý thuyết có cùng quyền truy cập hệ thống như các công cụ phức tạp như language server. Điều này tạo ra một môi trường mà các extension độc hại có thể truy cập vào các file dự án nhạy cảm, thông tin xác thực, hoặc thậm chí làm tổn hại toàn bộ hệ thống phát triển.
Thách thức bảo mật của Extension VSCode:
- Không có mô hình phân quyền cho các khả năng của extension
- Các extension có quyền truy cập không hạn chế vào hệ thống tệp
- Có thể khởi chạy các tiến trình bên ngoài mà không cần sự đồng ý của người dùng
- Các hoạt động mạng được cho phép mà không có sự giám sát
- Tất cả các extension hoạt động với cùng mức độ đặc quyền bất kể chức năng
Cân Bằng Giữa Bảo Mật và Chức Năng Là Thách Thức
Hệ sinh thái extension VSCode đối mặt với một tiến thoái lưỡng nan bảo mật cổ điển: việc triển khai sandboxing nghiêm ngặt có thể phá vỡ chức năng làm cho các extension trở nên có giá trị. Nhiều extension thiết yếu như Prettier , Rust Analyzer và các language server cần quyền truy cập hệ thống file và khả năng thực thi các tiến trình bên ngoài để hoạt động đúng cách.
Rất khó để có một hệ thống plugin vừa mạnh mẽ, vừa linh hoạt và vừa được sandbox. Giống như bất cứ thứ gì, bạn chỉ có thể chọn 2 trong số đó.
Thách thức kỹ thuật này đã dẫn đến cách tiếp cận tất cả hoặc không có gì hiện tại, nơi các extension hoặc hoạt động với quyền truy cập hệ thống đầy đủ hoặc không hoạt động chút nào. Tuy nhiên, các thành viên cộng đồng cho rằng có một khoảng trung gian đáng kể giữa tự do hoàn toàn và hạn chế hoàn toàn.
Các Extension Phổ Biến Nhận Điểm Số Bảo Mật Đáng Lo Ngại
Phân tích của VSCan cho thấy rằng ngay cả những extension được tin tưởng rộng rãi cũng nhận được xếp hạng rủi ro từ trung bình đến cao. Các extension như VSCodeVim đạt điểm 71/100 (rủi ro cao), trong khi những extension khác thường được các nhà phát triển sử dụng cũng cho thấy điểm số đáng lo ngại tương tự. Công cụ này đánh giá các extension dựa trên quyền hạn, dependencies, pattern code và metadata của chúng.
Các nhà phê bình chỉ ra rằng hệ thống chấm điểm có thể quá khắt khe với những extension hợp pháp cần quyền hạn cao cho chức năng dự định của chúng. Thách thức nằm ở việc phân biệt giữa các quyền hạn cần thiết cho các tính năng hợp pháp và các khả năng có thể nguy hiểm có thể bị khai thác.
Cộng Đồng Yêu Cầu Kiểm Soát Người Dùng Tốt Hơn
Các nhà phát triển đang kêu gọi VSCode triển khai các kiểm soát phân quyền kiểu di động, nơi người dùng có thể cấp hoặc từ chối các khả năng cụ thể cho các extension. Điều này sẽ cho phép người dùng đưa ra quyết định có thông tin về việc extension nào có thể truy cập các tài nguyên nhạy cảm trong khi vẫn duy trì tính linh hoạt của hệ sinh thái.
Cuộc thảo luận cũng đã làm nổi bật nhu cầu về công cụ tốt hơn để giúp các nhà phát triển kiểm tra các extension đã cài đặt của họ. Với một số người dùng báo cáo có hơn 70 extension đã cài đặt, việc kiểm tra thủ công từng extension trở nên không thực tế nếu không có các giải pháp tự động hoặc khả năng phân tích hàng loạt.
Các mối lo ngại về bảo mật mở rộng ra ngoài rủi ro cá nhân đến bảo mật tổ chức, đặc biệt khi các môi trường phát triển ngày càng xử lý dữ liệu nhạy cảm và kết nối với cơ sở hạ tầng quan trọng. Khi hệ sinh thái VSCode tiếp tục phát triển, việc giải quyết những hạn chế bảo mật cơ bản này trở nên ngày càng cấp thiết để duy trì niềm tin của nhà phát triển và bảo vệ các dự án nhạy cảm.
Tham khảo: Secure Your VSCode Experience