Czy muszę tworzyć nowy pakiet przystawek za każdym razem, gdy zależność otrzyma aktualizację zabezpieczeń?

9

Jeśli utworzę pakiet Snap z powiedzmy 5 zależności. Czy muszę tworzyć nową wersję pakietu za każdym razem, gdy zależność otrzyma aktualizację (zabezpieczeń)?

Mam na myśli zaletę pakietów .deb , że na przykład w Ubuntu / Debian mogę korzystać z biblioteki, a gdy ta biblioteka otrzyma aktualizację, oznacza to również aktualizację części mojego oprogramowania. A ponieważ przesyłają tylko aktualizacje zabezpieczeń, mogę być (99%) pewien, że aktualizacja biblioteki nie zepsuje interfejsu API, aby moje oprogramowanie mogło się zepsuć.

Felix Haller
źródło

Odpowiedzi:

7

Krótka odpowiedź brzmi: tak, musisz zaktualizować przystawkę, jeśli musisz zaktualizować zależność. Jednak tutaj też jest dłuższa odpowiedź.

Załóżmy, że masz aplikację korzystającą z protokołu SSL (może to być oprogramowanie wbudowane lub pełnowymiarowa witryna internetowa korzystająca z Apache). Prowadzisz badania i korzystasz z określonych algorytmów wymiany kluczy i algorytmów symetrycznych. Powiedzmy teraz, że w SSL odkryto lukę w zabezpieczeniach i wydano nową wersję. To, że jest to wydanie bezpieczeństwa, nie oznacza, że ​​załatana luka dotyczyła jednego z używanych algorytmów. Co jeśli nie było? Co jeśli, poprzez załatanie tej luki w algorytmie, którego nie używałeś, coś zrobiłeśużycie zostało zepsute lub skompromitowane (stało się mi ostatnio z PHP)? Jeśli do niego dołączasz, możesz zadzwonić na temat tego, czy musisz dokonać aktualizacji w zależności od zastosowania. Możesz go także dokładnie przetestować przed udostępnieniem go wszystkim użytkownikom. Istnieje również możliwość, że dystrybucja, na którą celujesz, ma inną wersję protokołu SSL, która nie działa z twoim oprogramowaniem, a powiązanie go w mgnieniu oka zapewnia powszechne wrażenia na różnych platformach.

Zdecydowanie istnieje kompromis między korzyściami związanymi z udostępnianiem zależności a korzyściami związanymi z nimi.

Kyle
źródło
1
Odpowiedziałeś ostatnio na kilka pytań z pewnym autorytetem. Czy jesteś deweloperem? Jeśli nie, czy możesz połączyć się z wiarygodnymi źródłami? Jeśli tak, czy możesz stworzyć wiarygodne źródła?
muru
1
(Poza tym: jeśli muszę ufać osądowi i zrozumieniu każdego dewelopera i zrozumieniu kodu OpenSSL zamiast, powiedzmy, kanonicznego zespołu ds. Bezpieczeństwa lub opiekunów Debiana, którzy zajmują się OpenSSL od lat, mówienie o bezpieczeństwie snap jest dużym obciążeniem. )
muru
2
Jeśli instalujesz oprogramowanie od programisty, masz do niego zaufanie. Pytanie, w jaki sposób obsługują SSL, jest dobrym przykładem - samo załatanie wersji biblioteki nie pomaga, jeśli twórca aplikacji nie korzysta z biblioteki mądrze. Istnieje wiele przykładów aplikacji, które mają złe zabezpieczenia z powodu złego wyboru algorytmów lub zarządzania kluczami lub sprawdzania podpisów - nie ma to nic wspólnego z wersją OpenSSL, z którą się łączyły. Rozsądnie jest to zrozumieć - nie uzyskuje się magicznego bezpieczeństwa dzięki nowszej bibliotece w systemie.
Mark Shuttleworth,
2
Natomiast jeśli aplikacja zostanie naruszona, deb zwykle pozwala atakującemu przejść przez cały system, a snap nie. Żaden system nie jest idealny, ale rozsądne jest stwierdzenie, że przystawki są przydatnym ulepszeniem w niektórych przypadkach.
Mark Shuttleworth,
1
@MarkShuttleworth Mogę zaufać dev X w dostarczeniu przyzwoitej aplikacji w języku Y, ale mogę nie ufać im, że zrozumieją, czy konkretna łatka w OpenSSL może powodować problemy, i wydaje mi się, że tego właśnie wymagają od nich snapy. Jest to poziom szczegółów technicznych, który nie wydaje mi się, aby większość programistów aplikacji czuła się komfortowo, dlatego też (i użytkownicy) polegają na bibliotekach takich jak OpenSSL i dystrybucjach takich jak Ubuntu. Oczywiście jestem nikim, więc moja opinia się nie liczy. (Również zatrzaski mogą być ograniczone, co nie znaczy, że nie obsługują danych użytkownika,…
muru,