Làm cách nào để xác minh một gói lớn trong repo git là an toàn?


9

Tôi đang nhìn vào helm helm cụ thể, có các thuộc tính sau:

  • nó có hàng ngàn cam kết
  • nó chủ yếu được duy trì bởi một người dùng
  • người bảo trì không có hồ sơ nào khác (phương tiện truyền thông xã hội, v.v.) Tôi có thể tìm thấy trên một vài tìm kiếm
  • nó được duy trì tích cực (ngày nay)

Vì tôi sắp cài đặt mã tùy ý trên máy tính của mình để sử dụng trong trình soạn thảo văn bản của mình, tôi muốn xác minh xem điều này có trải qua bất kỳ quy trình xem xét nào không. Tôi muốn nói "ồ nó là nguồn mở" nhưng tôi thực sự không có khả năng tự kiểm tra tất cả các mã. Tôi muốn giả sử những người khác trong cộng đồng đã xem xét nó nhưng một điều có lẽ sai và hai là có những cam kết cập nhật từng phút. Có những chiến lược khác tôi đang thiếu?

Đối với bản ghi, vectơ rất đơn giản: "nguồn mở" không quan trọng lắm nếu người đóng góp đang làm việc trong một tài khoản vứt đi hoặc nếu không có quy trình xem xét.


6
" Xác minh " là một từ lớn. Theo nghĩa thông thường của từ này, tôi nghĩ câu trả lời là "Bạn không (bạn không thể)". Bạn có thể theo dõi hoạt động phát triển cho một thư viện và bạn có thể kiểm tra chữ ký điện tử và những thứ tương tự, nhưng tôi không có gì chắc chắn và chắc chắn cả.
vẽ

3
Câu hỏi hay. FWIW, mã đi kèm với Emacs đã được xem xét (thông qua danh sách gửi thư của emacs-diffs), nhưng nếu một số người đóng góp thêm lỗ hổng bảo mật, tôi chắc chắn rằng anh ta có thể làm điều đó mà không bị chú ý. Tất nhiên, tôi sẽ rất ngạc nhiên nếu không có nhiều lỗ hổng bảo mật vô tình lớn trong Emacs, vì vậy tôi không chắc vấn đề này có thể xảy ra đến mức nào. Vì vậy, tôi nghĩ rằng để có thể có được câu trả lời chắc chắn hơn, người ta cần tập trung vào một mối đe dọa đơn giản cụ thể (ví dụ: khá dễ dàng để kiểm tra xem mã có thực hiện một loại giám sát không ẩn nào không).
Stefan

2
Người bảo trì đã hoạt động trên dacs devel trong nhiều năm, có thể được xác minh bằng một tìm kiếm, vì vậy đây là một số đảm bảo: list.gnu.org/archive/cgi-bin/ Kẻ
Tom

1
@Stefan, tôi chỉ nghĩ đến việc kiểm tra tại chỗ. Theo quan điểm của tôi, mapatomscó thể được đưa vào nhóm "nguy hiểm" cùng với start-process, evalfuncall. Tất nhiên sẽ có một số dương tính giả, nhưng nếu gói không sử dụng bất kỳ chức năng nào trong số đó, thì nó có thể được đánh dấu là vô hại với độ chắc chắn lớn.
abo-abo

1
Bạn cần phải thêm mới make-process, cũng như call-process, dbus-<foo>, make-network-stream, và sau đó vc-do-command, vc-git-command, .... Và nếu bạn đặt evalfuncalltrong thể loại "nguy hiểm", sau đó hầu hết / tất cả các gói là nguy hiểm.
Stefan

Câu trả lời:


7

Câu trả lời ngắn gọn là trừ khi bạn tự đọc qua mã, bạn đang mất rất nhiều niềm tin. Đã nói rằng tin tưởng một dự án có nguồn gốc từ một SCM ngược dòng sẽ an toàn hơn một chút so với dự án được lấy trực tiếp từ Emacs Wiki chẳng hạn. Tuy nhiên, về cơ bản, bạn đang tin tưởng tác giả của gói không biến ác và lạm dụng khả năng chạy mã tùy ý theo phiên Emacs của bạn.

Có một số điều có thể khiến bạn cảm thấy an toàn hơn:

  • Bám sát các gói phổ biến

Mặc dù các gói phổ biến không tự động nhận được nhiều đánh giá hơn, thực tế chúng có nhiều người dùng hơn có nghĩa là khả năng hành vi độc hại được phát hiện trước khi nó ảnh hưởng đến bạn tăng lên.

  • Nhìn vào số liệu mã

Trên github bạn có thể có một cái nhìn khá tốt về lịch sử đóng góp của dự án. Ngay cả khi tác giả nguyên tắc thực hiện hầu hết các cam kết có một loạt các tác giả cho thấy vẫn có những người khác quan tâm tích cực đến tính ổn định và hiệu quả của mã.

  • Ưu tiên GNU ELPA và MELPA Ổn định để lưu trữ theo dõi các Head (MELPA) hoặc cho phép các bài nộp chưa được kiểm duyệt (Marmalade)

Mặc dù sống ở rìa chảy máu có một sức hấp dẫn nhất định đối với những người muốn các tính năng sáng bóng mới nhất, điều đó có nghĩa là bạn có thể là người đầu tiên chấp nhận cam kết mới nhất vào môi trường của bạn. Ngay cả khi không độc hại, bạn cũng có thể nhận được một gói trong tình trạng thay đổi trong khi bản phát hành "chính thức" ít nhất sẽ có một số loại đánh giá thảo luận. Ví dụ, các gói GNU ELPA sẽ chỉ được cam kết bởi những người dùng emacs-devel có quyền cam kết.

Cuối cùng, tôi chắc chắn sẽ có lúc vi phạm an ninh thông qua hệ thống gói ngay cả khi đó chỉ là bằng chứng của thử nghiệm khái niệm. Đó sẽ là điểm bạn có thể phải dựa vào các bản sao lưu thường xuyên của mình.


1
Marmalade là một kho lưu trữ nghèo nàn khi nói đến nó. Nó cho phép bất cứ ai tải lên bất kỳ gói nào dưới bất kỳ tên nào, không có xác minh hoặc đánh giá. Và nó không được duy trì chính xác (chỉ cần nhìn vào số lượng các vấn đề mở).
âm lịch

@lunaryorn: điểm tốt, tôi sẽ sửa đổi câu trả lời.
stsquad

@lunaryorn MELPA thậm chí còn có nhiều vấn đề mở hơn kho lưu trữ elmarmalade, vì vậy tôi nghi ngờ đây là một số liệu có thể sử dụng được.
wasamasa

@stsquad Điều duy nhất MELPA Stable cung cấp cho bạn là các bản phát hành được gắn thẻ của những thứ sẽ kết thúc bằng MELPA, vì vậy tôi không thấy cách đó an toàn hơn khi sử dụng Marmalade.
wasamasa

1
@wasamasa Xin lỗi, nhận xét của tôi bị phras kém. Con số không nói lên nhiều điều, chắc chắn, nhưng các vấn đề mở đang nói: Không có phản ứng nào đối với các vấn đề mới, không có bình luận, thậm chí không có nhãn hoặc bài tập. Marmalade đã chết một cách hiệu quả.
âm lịch
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.