Google đã chính thức tạo Govulncheck (trạng thái 1.0.0), một công cụ dòng lệnh tiện dụng dành cho các nhà phát triển Go, ổn định. Công cụ này hỗ trợ các nhà phát triển sử dụng ngôn ngữ lập trình Go của Google để xác định vị trí các lỗ hổng bảo mật đã được công nhận trong các phần phụ thuộc của dự án của họ.
Công cụ được công bố vào ngày 13 tháng 7 này có khả năng xem xét kỹ lưỡng cả tệp nhị phân và mã nguồn của chúng để tìm các lỗ hổng. Nó làm giảm đáng kể tiếng ồn bằng cách tập trung vào các lỗ hổng trong các phương thức mà mã đang sử dụng. Xương sống của Govulncheck là cơ sở dữ liệu lỗ hổng Go, một kho chứa thông tin về các lỗ hổng được phát hiện trong các mô-đun Go công khai.
Được hướng dẫn bởi cơ sở dữ liệu này, Govulncheck thực hiện phân tích tĩnh mã nguồn hoặc bảng ký hiệu nhị phân. Mục tiêu cuối cùng của nó là giới hạn báo cáo của nó chỉ với các lỗ hổng có khả năng ảnh hưởng đến ứng dụng cụ thể được đề cập. Đặc tính hạn chế thông minh này làm cho nó trở thành một công cụ hữu ích cho các nhà phát triển muốn đảm bảo tính bảo mật cho sản phẩm của họ.
Việc cài đặt công cụ này khá đơn giản đối với các nhà phát triển – nó chỉ yêu cầu lệnh go install golang.org/x/vuln/cmd/govulncheck@latest
. Để phân tích mã nguồn, các nhà phát triển chỉ cần thực thi Govulncheck trong thư mục mô-đun (dùng lệnh govulncheck ./...
).
Ở mức tối thiểu, Govulncheck bắt buộc phải được lắp ráp với bản dựng Go có phiên bản 1.18 trở lên. Hiện tại, phiên bản sản xuất hiện tại của ngôn ngữ này là Go 1.20.
Govulncheck, trong khi tìm kiếm các lỗ hổng, dựa trên một cấu hình bản dựng cụ thể. Trong trường hợp mã nguồn, cấu hình này đồng nghĩa với phiên bản Go được mô tả bằng lệnh 'go' nằm trên đường dẫn. Cấu hình bản dựng cho tệp nhị phân là cấu hình được khai thác trong khi tạo tệp nhị phân. Một điểm cần lưu ý ở đây là các cấu hình xây dựng khác nhau có thể dễ bị tổn thương bởi các lỗ hổng khác nhau.
Mặc dù có các tính năng mạnh mẽ, Govulncheck vẫn có một số hạn chế. Chẳng hạn, các phân tích của nó về con trỏ hàm và lệnh gọi giao diện khá hạn chế, có thể dẫn đến kết quả dương tính giả hoặc ngăn xếp lệnh gọi không chính xác. Một hạn chế khác liên quan đến các hàm được gọi bằng cách sử dụng gói phản ánh – chúng không thể phát hiện được.
Về mặt nhị phân, các nhị phân Go thiếu thông tin cuộc gọi chi tiết có thể gây khó khăn cho Govulncheck, vì chúng sẽ ngăn công cụ hiển thị biểu đồ cuộc gọi cho các lỗ hổng đã xác định. Sự cố này cũng có thể thúc đẩy báo cáo về kết quả dương tính giả đối với mã có trong tệp nhị phân nhưng không thể truy cập được. Ngoài ra, công cụ này bị vô hiệu hóa đối với các mã nhị phân mà từ đó dữ liệu ký hiệu không thể được trích xuất; nó chọn báo cáo các lỗ hổng cho tất cả các mô-đun phụ thuộc vào tệp nhị phân trong những trường hợp này.
Công cụ này cũng thiếu một tính năng để ngăn chặn các phát hiện lỗ hổng. Tuy nhiên, bất chấp những hạn chế này, tiềm năng của Govulncheck như một công cụ gia tăng giá trị cho các dự án Go là điều hiển nhiên.
Đáng chú ý là Go Security Team đã tuyên bố hỗ trợ quản lý lỗ hổng bảo mật vào tháng 9 năm trước. Bắt nguồn từ cơ sở dữ liệu dễ bị tổn thương, dự án đã được giới thiệu với những hứa hẹn về sự tiến bộ đáng kể trong cấu trúc lập trình Go. AppMaster.io , nền tảng no-code hàng đầu, cho phép các nhà phát triển tạo ứng dụng nhanh hơn với nền tảng toàn diện và được tích hợp đầy đủ bao gồm Go và nhiều ngôn ngữ khác.