Sự thiếu sót này đồng nghĩa với việc, nếu kẻ tấn công đặt tên nhánh là một chuỗi như --exec='câu lệnh độc hại'git rebase--exec được thiết kế để thực thi một câu lệnh shell sau mỗi lần commit được phát lại. Kết quả là toàn quyền thực thi lệnh trên hệ điều hành nền, với chính đặc quyền của tiến trình máy chủ Gogs .
Chi tiết cuộc tấn công:
--exec, theo sau là câu lệnh shell mong muốn Nhà nghiên cứu bảo mật Jonah Burgess của Rapid7 Labs, người đã phát hiện ra lỗ hổng, giải thích cơ chế một cách thẳng thắn: "Lỗ hổng cho phép bất kỳ người dùng đã xác thực nào cũng có thể đạt được khả năng thực thi mã từ xa (RCE) trên máy chủ bằng cách tạo một pull request với tên nhánh độc hại có chèn cờ --exec vào lệnh git rebase
Với những ai đã theo dõi dự án Gogs, lỗ hổng zero-day chưa được vá này không phải là một điều bất ngờ. Đây là ví dụ mới nhất và nghiêm trọng nhất trong một chuỗi dài các báo cáo bảo mật bị người bảo trì chính – và trên thực tế là duy nhất – của dự án phớt lờ trong nhiều năm.
Dòng thời gian của sự thờ ơ này đã được ghi nhận rất rõ ràng bởi nhiều nhóm nghiên cứu độc lập:
Lịch sử này đã biến tiết lộ mới nhất từ Rapid7 thành một điều gì đó còn hơn cả một bản tư vấn bảo mật. Như một tờ báo trong ngành đã nhận định, tình hình này là "một lời nhắc nhở về những giới hạn của các dự án mã nguồn mở" khi chúng phụ thuộc vào một người bảo trì duy nhất không phản hồi . Nếu không có sự quản trị hiệu quả từ nhiều bên, một phần mềm thuộc hạ tầng quan trọng được sử dụng rộng rãi có thể trở thành một rủi ro thường trực.
Vì chưa có bản vá phần mềm, các quản trị viên phải dựa vào các thay đổi cấu hình và kiểm soát ở cấp độ mạng để vô hiệu hóa véc-tơ tấn công. Các bước sau đây sẽ ngăn chặn mối đe dọa trước mắt và thu hẹp bề mặt tấn công.
1. Vô hiệu hóa "Rebase before merging" ngay lập tức
Đây là biện pháp giảm thiểu hiệu quả nhất. Toàn bộ chuỗi tấn công đều phụ thuộc vào kiểu hợp nhất cụ thể này. Việc thay đổi cài đặt của kho lưu trữ hoặc toàn bộ máy chủ sang "Merge commit" hoặc "Squash" sẽ loại bỏ hoàn toàn đường dẫn mã dễ bị tấn công .
2. Hạn chế quyền truy cập mạng
Cuộc tấn công yêu cầu quyền truy cập HTTP đã xác thực để tạo pull request. Nếu máy chủ Gogs của bạn không cần thiết phải công khai, hãy đặt nó sau mạng riêng ảo (VPN) hoặc tường lửa, chỉ cho phép những người dùng nội bộ đáng tin cậy. Điều này sẽ loại bỏ nền tảng khỏi các trình quét Internet hàng loạt và những kẻ tấn công cơ hội.
3. Kiểm soát chặt chẽ việc đăng ký và phân quyền người dùng
Vì bất kỳ người dùng đã xác thực nào cũng có thể khai thác lỗ hổng, việc giảm thiểu số lượng tài khoản trên máy chủ là một biện pháp phòng thủ then chốt. Hãy tắt tính năng tự đăng ký và phê duyệt thủ công những người dùng mới. Ngay lập tức rà soát danh sách người dùng và vô hiệu hóa mọi tài khoản cũ hoặc không xác định .
4. Giám sát các pull request bất thường
Triển khai giám sát tích cực đối với tên các nhánh trong pull request có chứa các ký tự đáng ngờ, bao gồm dấu gạch ngang kép (--), dấu chấm phẩy, dấu nháy ngược (backticks), hoặc các dấu hiệu rõ ràng của câu lệnh shell như exec, curl, hay wget. Một tên nhánh khác thường là dấu hiệu mạnh mẽ cho thấy một nỗ lực khai thác đang diễn ra .
5. Lên kế hoạch rời bỏ Gogs về lâu dài
Với mô thức các lỗ hổng nghiêm trọng không được vá đã được ghi nhận, việc tiếp tục phụ thuộc vào Gogs là một rủi ro chiến lược. Giải pháp thay thế khả thi nhất là Gitea, một nhánh phát triển (fork) hướng cộng đồng từ Gogs, có một đội ngũ phát triển vững mạnh với nhiều người bảo trì và một quy trình bảo mật phản hồi nhanh. Một số nền tảng dịch vụ Git lớn khác cũng tồn tại, nhưng đối với các nhóm chọn Gogs vì tính nhẹ và khả năng tự lưu trữ, Gitea là một giải pháp thay thế gần như tương đương, giúp loại bỏ nút thắt cổ chai từ một người bảo trì duy nhất .
6. Chuẩn bị cho một bản vá (nếu có)
Hãy đăng ký theo dõi trang bảo mật của Gogs và các bản phát hành trên GitHub. Nếu một bản vá cuối cùng được phát hành, hãy nâng cấp ngay lập tức. Tuy nhiên, hãy lập kế hoạch cho trạng thái an ninh của bạn dựa trên giả định rằng mô thức này sẽ lặp lại, và một lỗ hổng nghiêm trọng trong tương lai sẽ lại tiếp tục không được vá trong nhiều tháng.
Comments
0 comments