Trang này cung cấp tài nguyên giúp lập trình viên Go cải thiện bảo mật cho dự án của mình.
(Xem thêm: Thực hành tốt về bảo mật cho lập trình viên Go.)
Tìm và khắc phục các lỗ hổng đã biết
Cơ chế phát hiện lỗ hổng của Go hướng tới việc cung cấp cho lập trình viên những công cụ ít nhiễu, đáng tin cậy để biết về các lỗ hổng đã biết có thể ảnh hưởng tới dự án của họ. Để có cái nhìn tổng quan, hãy bắt đầu từ trang tóm tắt và FAQ này về kiến trúc quản lý lỗ hổng của Go. Để tiếp cận theo hướng thực hành, hãy khám phá các công cụ dưới đây.
Quét mã tìm lỗ hổng bằng govulncheck
Lập trình viên có thể dùng công cụ govulncheck để xác định xem có lỗ hổng đã biết nào ảnh hưởng tới mã của mình hay không và ưu tiên các bước tiếp theo dựa trên việc hàm và method có lỗ hổng nào thực sự được gọi.
Phát hiện lỗ hổng ngay trong trình soạn thảo của bạn
Extension Go cho VS Code kiểm tra các phụ thuộc bên thứ ba và hiển thị các lỗ hổng liên quan.
Tìm module Go để xây dựng tiếp
Pkg.go.dev là website để khám phá, đánh giá và tìm hiểu thêm về các package và module Go. Khi khám phá và đánh giá package trên pkg.go.dev, bạn sẽ thấy một dải thông báo ở đầu trang nếu phiên bản đó có lỗ hổng. Ngoài ra, bạn có thể xem các lỗ hổng ảnh hưởng tới từng phiên bản của một package trên trang lịch sử phiên bản.
Duyệt vulnerability database
Vulnerability database của Go thu thập dữ liệu trực tiếp từ các maintainer package Go cũng như từ các nguồn bên ngoài như MITRE và GitHub. Các report được nhóm Go Security tuyển chọn.
- Duyệt các report trong vulnerability database của Go
- Xem tài liệu về Vulnerability Database của Go
- Đóng góp một lỗ hổng công khai vào database
Báo cáo lỗi bảo mật trong dự án Go
Chính sách bảo mật
Hãy tham khảo Chính sách bảo mật để biết cách báo cáo một lỗ hổng trong dự án Go. Trang này cũng mô tả chi tiết quy trình mà nhóm Go security dùng để theo dõi các vấn đề và disclosure ra công chúng. Xem lịch sử phát hành để biết chi tiết về các bản khắc phục bảo mật trước đây. Theo chính sách phát hành, chúng tôi phát hành các bản khắc phục bảo mật cho hai bản phát hành major gần nhất của Go.
Kiểm thử dữ liệu đầu vào bất ngờ bằng fuzzing
Fuzzing gốc của Go cung cấp một dạng kiểm thử tự động liên tục biến đổi dữ liệu đầu vào của chương trình để tìm lỗi. Go hỗ trợ fuzzing trong toolchain chuẩn kể từ Go 1.18. Các bài fuzz test gốc của Go được OSS-Fuzz hỗ trợ.
Bảo vệ dịch vụ bằng các thư viện mật mã của Go
Các thư viện mật mã của Go hướng tới việc giúp lập trình viên xây dựng ứng dụng an toàn. Xem tài liệu về các package crypto và golang.org/x/crypto/.
Mật mã tuân thủ FIPS 140-3
Các thư viện mật mã của Go có thể được dùng ở chế độ tuân thủ FIPS 140-3 để sử dụng trong các môi trường chịu quản lý. Xem tài liệu Tuân thủ FIPS 140-3 để biết thêm thông tin.