Thực hành tốt nhất để xử lý các PR giải quyết các lỗ hổng bảo mật trong repo công cộng là gì?


22

Làm thế nào một dự án nguồn mở với kho lưu trữ công cộng xử lý tốt nhất các yêu cầu kéo (PR) giải quyết các báo cáo an toàn nhưng chưa được tiết lộ công khai các lỗ hổng bảo mật?

Tôi đang tham gia vào một dự án nguồn mở với hàng trăm người đóng góp. Chúng tôi xuất bản các thông báo bảo mật và lỗ hổng bảo mật nhiều lần trong năm như một phần của bản phát hành hàng tháng được lên lịch thường xuyên. Chúng tôi không công bố thông tin về các lỗ hổng cho đến khi chúng tôi cung cấp phiên bản vá. Chúng tôi có thể quản lý an toàn các vấn đề bảo mật trong hệ thống quản lý dự án của chúng tôi (JIRA). Nhưng chúng tôi chưa có một quy trình tốt để che khuất các PR sửa các lỗ hổng bảo mật khi chúng được gửi tới GitHub. Chúng tôi lo ngại rằng mọi người có thể tìm thấy các bản sửa lỗi này trước khi chúng được phát hành và tạo ra các khai thác không ngày.

Chúng tôi đã xem xét sử dụng các repos riêng rẽ nhánh repo chính, nhưng phần lớn quy trình hiện tại của chúng tôi xem xét và QA xảy ra trên các PR. Nếu chúng tôi chuyển quy trình công việc sang một nhóm bảo mật chỉ là repo riêng, điều đó sẽ làm giảm cửa sổ khi sửa lỗi công khai xuống hàng giờ để tạo tarball và xuất bản chúng trên sourceforge, đây sẽ là một cải tiến lớn. Chúng tôi cũng có thể cần tránh hợp nhất các PR vào phiên bản beta công khai của chúng tôi.

Trước khi đi theo hướng đó, tôi muốn biết cách thực hành tốt nhất để xử lý các bản vá sửa lỗi bảo mật trước khi phát hành trong các dự án nguồn mở với repos mở là gì? Nếu vấn đề có thể được giải quyết tốt hơn bằng cách sử dụng một nền tảng khác với GitHub, tôi nên đề cập đến việc chúng tôi đang đánh giá việc di chuyển sang GitLab.


1
Tôi không chắc chắn nếu có một thực hành tốt nhất được thiết lập. GitLab về cơ bản là một GitHub riêng. Cân bằng các mối quan tâm của các bản sửa lỗi nguồn mở và bảo mật là không dễ dàng. Có bao nhiêu bản sửa lỗi bảo mật của bạn đến từ những người không thuộc nhóm bảo mật của bạn?
Berin Loritsch

Hầu hết các vấn đề được báo cáo bởi những người khác, nhưng có lẽ ít hơn một phần năm các bản sửa lỗi đến từ những người không thuộc nhóm bảo mật.
Joe Murray

1
Theo tôi, nếu bạn cần một phần của quy trình của mình ở chế độ riêng tư, thì nó nên được thực hiện bên ngoài GitHub (vì GH là công khai); sau khi phần cụ thể này được thực hiện và mọi người đã xem lại mã của nó; bạn có thể tạo PR trên GH sẽ được hợp nhất nhanh nhất có thể, chỉ để 'quay lại' quy trình chính thức. Bạn có thể sử dụng một công cụ khác để quản lý các ngoại lệ đó trong quy trình.
Emerson Cardoso

2
Công bố đầy đủ ngay lập tức (tức là công khai không chậm trễ) là một điều hoàn toàn hợp pháp để làm.
Miles Rout

1
Câu hỏi này dường như cho rằng, miễn là vấn đề bảo mật không được nhóm tiết lộ, thì thế giới vẫn chưa biết. Đó chỉ đơn giản là không đúng sự thật; bất kỳ vấn đề bảo mật nào được phát hiện nên được giả định là được biết bởi một người có ý định xấu ở đâu đó. Bây giờ, nếu bạn cho rằng ai đó đã biết về vấn đề này và có thể khai thác nó, bạn không còn có thể hoãn phát hành bản sửa lỗi cho đến khi bản phát hành hàng tháng của bạn được phát hành thường xuyên. Bạn phải phát hành càng sớm càng tốt. Điều đó có nghĩa là không có vấn đề gì với việc tuân theo luồng PR thông thường. Chỉ cần PR chống lại nhánh phát hành mới nhất, hợp nhất, gắn thẻ, phát hành.
Jory Geerts

Câu trả lời:


1

Giao thức cho việc này là quyết định các yếu tố rủi ro trong việc hiển thị công khai các lỗ hổng. Đối với bất kỳ điều gì liên quan đến bảo mật, những PR đó cần phải ở trong một repo riêng mà chỉ nhóm bảo mật của bạn mới có thể nhìn thấy. Điều này đứng bất kể nền tảng bạn sử dụng để sản xuất và thực hiện Yêu cầu kéo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.