Tôi có phải tạo gói snap mới mỗi khi người phụ thuộc được cập nhật bảo mật không?


9

Nếu tôi tạo một gói snap với cho phép nói 5 phụ thuộc. Tôi có phải tạo phiên bản gói mới mỗi khi phụ thuộc được cập nhật (bảo mật) không?

Ý tôi là lợi thế của các gói .deb là trong Ubuntu / Debian chẳng hạn, tôi có thể sử dụng thư viện và một khi thư viện đó nhận được bản cập nhật có nghĩa là bản cập nhật cho một phần của phần mềm của tôi. Và vì họ chỉ gửi các bản cập nhật bảo mật, tôi có thể chắc chắn (99%) rằng bản cập nhật thư viện sẽ không phá vỡ API để phần mềm của tôi có thể bị hỏng.

Câu trả lời:


7

Câu trả lời ngắn gọn là có, bạn sẽ cần xây dựng lại snap nếu bạn cần cập nhật một phụ thuộc. Tuy nhiên, cũng có một câu trả lời dài hơn ở đây.

Giả sử bạn có một số ứng dụng sử dụng SSL (có thể là một số phần mềm nhúng hoặc trang web toàn diện sử dụng Apache). Bạn thực hiện nghiên cứu của mình và sử dụng các thuật toán đối xứng và trao đổi khóa cụ thể. Bây giờ nói rằng một lỗ hổng bảo mật đã được phát hiện trong SSL và một phiên bản mới đã được phát hành. Chỉ vì đó là một bản phát hành bảo mật không có nghĩa là lỗ hổng được vá là một trong những thuật toán bạn đã sử dụng. Nếu không phải thì sao? Điều gì sẽ xảy ra nếu, bằng cách vá lỗ hổng đó trong thuật toán bạn không sử dụng, điều gì đó bạn đã làmsử dụng đã bị hỏng hoặc bị xâm phạm (gần đây đã xảy ra với PHP)? Nếu bạn đang gói nó, bạn có thể thực hiện cuộc gọi về việc bạn có cần nâng cấp trên cơ sở sử dụng hay không. Bạn cũng có thể kiểm tra rộng rãi trước khi tung ra cho tất cả người dùng của mình. Cũng có khả năng phân phối mà bạn nhắm mục tiêu có một phiên bản SSL khác không hoạt động với phần mềm của bạn, trong đó việc đóng gói nó trong tích tắc cung cấp trải nghiệm chung trên các nền tảng.

Chắc chắn có sự đánh đổi giữa lợi ích của việc chia sẻ phụ thuộc và lợi ích của việc gói chúng.


1
Bạn đã trả lời một vài câu hỏi nhanh gần đây, với một số mức độ thẩm quyền. Bạn có phải là nhà phát triển không? Nếu không, bạn có thể liên kết với các nguồn đáng tin cậy? Nếu vậy, bạn có thể tạo ra một số nguồn đáng tin cậy?
muru

1
. )
muru

2
Nếu bạn cài đặt phần mềm từ nhà phát triển, bạn tin tưởng nhà phát triển đó. Câu hỏi về cách họ xử lý SSL là một ví dụ điển hình - chỉ cần có một phiên bản vá của thư viện sẽ không giúp bạn nếu nhà phát triển ứng dụng không sử dụng thư viện một cách khôn ngoan. Có rất nhiều ví dụ về các ứng dụng có bảo mật kém do các lựa chọn xấu về thuật toán hoặc quản lý khóa hoặc kiểm tra chữ ký - không liên quan gì đến phiên bản OpenSSL mà chúng liên kết. Thật khôn ngoan khi hiểu điều này - bạn không có được sự bảo mật một cách kỳ diệu bằng cách có một thư viện mới hơn trên hệ thống của bạn.
Mark Shuttleworth

2
Ngược lại, nếu một ứng dụng bị xâm phạm, một cuộc tranh luận thường sẽ cho phép kẻ tấn công đi khắp hệ thống, trong khi một snap sẽ không. Không có hệ thống nào là hoàn hảo, nhưng thật hợp lý khi nói rằng snaps là một cải tiến hữu ích trong một số trường hợp.
Mark Shuttleworth

1
@MarkShriptworth Tôi có thể tin tưởng nhà phát triển X cung cấp một ứng dụng tử tế bằng ngôn ngữ Y, nhưng tôi có thể không tin tưởng họ để hiểu liệu một bản vá cụ thể cho OpenSSL có thể gây ra sự cố cho họ hay không, và dường như đó là những gì snaps yêu cầu đối với họ. Đó là một mức độ chi tiết kỹ thuật tôi thực sự không nghĩ rằng hầu hết các nhà phát triển ứng dụng đều cảm thấy thoải mái, đó là lý do tại sao họ (và người dùng) dựa vào các thư viện như OpenSSL và các bản phân phối như Ubuntu. Tất nhiên, tôi không là ai cả, vì vậy ý ​​kiến ​​của tôi không được tính. (Ngoài ra, snaps có thể bị giới hạn, điều đó không có nghĩa là họ không xử lý dữ liệu người dùng, từ
muru
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.