Czy pakiety ubuntu (pliki deb) są zabezpieczone tylko md5sum?

13

Wprowadzenie do pytania poniżej ###

(więc pytanie jest bardziej użyteczne dla większej liczby osób)
Wewnątrz pakietu w stylu Ubuntu / debian (plik * .deb) znajduje się plik o nazwie /DEBIAN/md5sumso treści tej postaci:

212ee8d0856605eb4546c3cff6aa6d35 usr / bin / file1
4131b66dc3913fcbf795159df912809f ścieżka / do / pliku2
8c21de23b7c25c9d1a093607fc27656a ścieżka / do / pliku3
c6d010a475366e0644f3bf77d7f922fd ścieżka / do / miejsca / z / pliku4

Jak zakładam, ten plik zostanie użyty do sprawdzenia, czy pliki dostarczone z pakietem nie zostały w jakiś sposób uszkodzone. Ponieważ plik nazywa się `/ DEBIAN / md5sums", zakładam, że numer szesnastkowy przed ścieżką + nazwą pliku jest skrót algorytmu analizy wiadomości MD5 plików pakietu.

Teraz wszyscy zainteresowani wiedzą, że MD5 Hash został złamany już dawno temu. Dlatego jest całkowicie możliwa zmiana zawartości pliku w pakiecie (np. Złośliwie) i nadal mieć ten sam MDH-Hash (patrz na przykład Udowodnienie koncepcji „Przewidywanie zwycięzcy…” ).

Pytanie

Mając na uwadze powyższe informacje, chcę wiedzieć, co następuje:

** Zakładając, że zainstaluję pakiet w moim systemie Ubuntu. Czy to DEBIAN/md5sumsjedyny sposób, aby upewnić się, że dane nie zostały zmienione? **

Odpowiadając na pytanie, myślę, że pomogłoby to ustalić:

  • Czy pakiety deb jako całość również zostały zaszyfrowane (dla Hashvalues), aby istniał inny sposób, aby zabezpieczyć otrzymywane pliki, jako „bezpieczne” / „nienaruszone”
  • Jeśli istnieją inne sposoby DEBIAN/md5sumszapewnienia integralności pliku, jaki jest plik zawarty w pakietach * .deb?
  • Czy Ubuntu używa skrótów dla systemu repozytorium / pakietu, które są „mniej zepsute” niż SHA-1 i MD5?

których niestety też nie znam.

Każda odpowiedź, która może rzucić światło na pytanie (lub nawet tylko pytanie) jest bardzo pożądana

aktualizacja

(1) https://help.ubuntu.com/community/Repositories/Ubuntu#Authentication_Tab wydaje się wskazywać, że istnieje (jak się spodziewałem) jakiś publiczny / prywatny klucz gpg (zapewniający bezpieczeństwo repozytoriów i systemów pakietów) przed atakami. Informacje w połączonej lokalizacji nie są jednak zbyt duże. Nie mówi prawie nic o aspekcie bezpieczeństwa systemu pakietów. W każdym razie zakładam, że link już wskazuje, że odpowiedź na pytanie brzmi „NIE - przynajmniej pakiety deb z repo - są również zabezpieczone przez ...”. Mam nadzieję, że ktoś ma w tym względzie pewne spostrzeżenia.

(2) To pytanie wydaje się dotyczyć również tematu „bezpieczeństwa” w systemie pakietów Ubuntu. Więc po prostu dodaję go tutaj, aby jego ręka reklamowa, jeśli ktoś próbuje znaleźć odpowiedź na pytanie: Dlaczego proponowane poprawki BADSIG (przy aktualizacji apt-get) są bezpieczne?

ludzkośćANDpeace
źródło
1
debian.org/doc/debian-policy/... wskazuje obsługę sum kontrolnych SHA-1 i SHA256 dla każdego pliku, jednak nie wiem, jaka aptjest polityka sum kontrolnych.
chronitis
1
@chronitis dzięki za link tam. Rzeczywiście, skróty SHA- * są tam wspomniane, wciąż muszę dowiedzieć się, jak wyglądają w pakietach (których jeszcze nie widziałem) lub w systemie pakietów. Czy wiesz więcej? Cóż, wskazanie jest już dobrym krokiem
ludzkośćANDpeace

Odpowiedzi:

21

Ubuntu publikuje manifest podpisany za pomocą klucza RSA. Manifest zawiera listę pojedynczych Packagesplików indeksu, każdy z skrótami MD5, SHA-1 i SHA-256. Każdy Packagesplik zawiera listę poszczególnych .debplików z skrótami MD5, SHA-1 i SHA-256.

Do weryfikacji apt używa najlepszego obsługiwanego skrótu i ​​jest publikowany przez archiwum, z którego pobiera. W przypadku archiwum Ubuntu jest to SHA-256.

Cały łańcuch instalowania pakietów w systemie Ubuntu jest chroniony przez RSA i SHA-256.

Ochrona MD5 istniejąca w dpkg jest naprawdę użyteczna tylko w przypadku przypadkowego uszkodzenia i nie jest konieczna do ochrony ścieżki instalacji.

Możesz być zainteresowany debsumspakietem, ale ponieważ używa on MD5, jest on także przydatny tylko do sprawdzania przypadkowego uszkodzenia.

Jeśli chcesz sprawdzić pod kątem modyfikacji złośliwego systemu, nie są to odpowiednie narzędzia dla Ciebie. Musisz przełączyć system w tryb offline i sprawdzić albo z poprzednim rekordem, oryginalnymi plikami pakietów lub wygenerowanymi z nich bezpiecznymi skrótami.

Należy pamiętać, że ponieważ udaną złośliwą modyfikacją może być po prostu obniżenie pakietu do wersji sprzed aktualizacji zabezpieczeń, sprawdzenie, czy wszystkie zainstalowane pliki pakietów są zgodne z ich oryginałami, może również nie być wystarczające.

Robie Basak
źródło
1
Uzyskałem lepszy wgląd. Skąd masz te wszystkie informacje, które tak trudno mi znaleźć? Czy masz jakieś dokumenty / linki, których użyłeś? Doceniam również wspomnienie o „niebezpieczeństwie obniżenia poziomu”, o którym wspomniałeś, więc nie rozumiem jeszcze, jak cudownie można to wykorzystać. Świetny! dziękuję
ludzkośćANDpeace
Nie sądzę, aby format repozytorium apt był odpowiednio określony lub udokumentowany w dowolnym miejscu. To źle, ale tak właśnie jest. Najlepsza (i tylko o mojej wiedzy) prawdziwa dokumentacja jest źródłem. Znam szczegóły, ponieważ pracowałem w źródle. Z drugiej strony format dpkg jest bardzo dobrze określony w polityce Debiana. Obejmuje to, co dzieje się po tym, jak pakiety trafią do twojego systemu, ale nie sposób, w jaki się tam znajdują. Ta ostatnia część jest wykonywana przez apt.
Robie Basak
Ryzyko obniżenia wersji: jest to na bok i tak naprawdę nie jest bezpośrednio związane z pierwotnym pytaniem. Jeśli exploit X zostanie wykryty w wersji A, otrzymasz aktualizację zabezpieczeń do wersji B, w której luka została naprawiona. Jeśli atakujący może wykorzystać X w wersji A, jesteś bezpieczny, ponieważ uaktualniłeś go do B. Ale jeśli atakujący może również obniżyć cię do A, to jesteś ponownie podatny na atak. Nie zauważysz tego, nawet jeśli wszystkie twoje bezpieczne skróty pasują do pakietów, które zainstalowałeś, ponieważ twoja baza pakietów mówi, że powinieneś mieć zainstalowany A, a nie B.
Robie Basak
2
@RobieBasak „Nie sądzę, aby format repozytorium apt był odpowiednio określony lub udokumentowany w dowolnym miejscu.” Oczywiście nie jest to prawdą. Musisz tylko tego poszukać. Debian Wiki: RepositoryFormat
gertvdijk 11.01.2013
6

Chciałem, żeby to był komentarz, ale nie mogłem zmieścić go w pudełku, więc umieszczam go tutaj.

Tak, md5 został uszkodzony kryptologicznie, ale to nie znaczy, że jest to zły algorytm haszujący ogólnego przeznaczenia. Modyfikowanie pliku tak, aby zawierał ten sam skrót, jest niezwykle trudne, a robienie tego przy określonej złośliwej zmianie jest prawie niemożliwe. Patrząc na przywołany przykład ( Przewidywanie zwycięzcy ) zobacz:

„Dokumenty zostały najpierw starannie przygotowane jako prawidłowe dokumenty PDF, z wbudowanym ukrytym obiektem obrazowym, zawierającym wystarczającą liczbę losowych bitów. Następnie, zgodnie z pokazaną powyżej strukturą diamentów, obliczono 11 kolizji wybranych prefiksów i umieszczono je w ukrytym obrazuje obiekty w dokładnie odpowiednich miejscach. W ten sposób dwanaście dokumentów zostało zamienionych w wielozakresowe MD5 ”.

To, co zostało zrobione, to wypełnienie plików losowymi danymi w celu dopasowania skrótów. Technologia nigdzie nie jest w stanie dodać konkretnego złośliwego kodu do pliku i ustawić w linii skróty bez ich łamania lub wyraźnego ujawnienia, że ​​plik został zmieniony (nie wiem, czy apt to robi, ale wiele skrótów plików jest wraz z ich rozmiarami plików, aby zwiększyć trudność niewykrywalnego zderzenia mieszania).

jackweirdy
źródło
3
Dziękuję za Twoją odpowiedź. Myślę, że to dobra odpowiedź w tym sensie, że daje więcej światła całemu tłu :) Niefortunnie „Stack ... Zapytaj Ubuntu” jest czasem trudny z „ściśle odpowiedzią tylko na pytanie” i dlatego wspaniale się odważyłeś rozwinąć temat.
humanityANDpeace
Przygotowane pliki PDf mają losowe dane i przy tym całym wysiłku zajmują tylko 104 KB. Dlaczego więc powiedziałbyś, że to niemożliwe? Musi być mnóstwo plików w pakietach deb o wielkości> 200 KB, gdzie musi być to możliwe. Nie czuję się tak bezpiecznie po tym, jak zobaczyłem dowód koncepcji, który mnie zadziwił i zszokował
humanityANDpeace
W legalnych plikach jest wiele miejsc, w których subtelna zmiana nie wydaje się dziwna, na przykład niewielkie różnice białych znaków w pliku tekstowym. Musisz tylko znaleźć około 128 takich miejsc, aby mieć wystarczający zasięg, aby utworzyć złośliwy plik, który wydaje się być zgodny z prawdą, a także pasuje do pożądanego docelowego MD5. Nie jestem jednak pewien, czy ten konkretny atak można zastosować w tej sytuacji.
Robie Basak
@RobieBasak, źle zrozumiałeś atak. Nie można po prostu zmienić 128 bajtów w pliku i zachować sumę md5. Musisz wstawić fragment, który w innym przypadku wydaje się być dwoma zestawami losowych danych, w dwóch kopiach pliku, a będą one miały taką samą sumę md5, jak pomimo tego, że dwa fragmenty „losowych” danych są różne.
psusi
1

md5 nie został „zepsuty”. Znaleźli sposób, aby starannie stworzyć oryginalną wiadomość i zmodyfikowaną wiadomość o tym samym haszu. Nie jest możliwe pobranie oryginalnej wiadomości, która nie została specjalnie spreparowana w celu manipulowania (poprawnym plikiem), i zmodyfikowanie jej w taki sposób, aby zachować jej md5sum.

psusi
źródło
dobrze. Ale jaki byłby dobry sposób na odniesienie się do obecnego stanu bezpieczeństwa MD5, jeśli nie „zepsuty”? Rozumiem, co mówisz i dziękuję za zwrócenie na to uwagi. Nadal zastanawiam się, jak ocenić obecne bezpieczeństwo za pomocą MD5 itp.
humanityANDpeace
@humanityANDpeace, „just fine”.
psusi
Lubię optymistyczne nastawienie. Mimo wszystko wciąż byłem zdumiony dowodem koncepcji. dzięki!
humanityANDpeace
1
„Eksperci od kryptografii uważają MD5 za uszkodzony. Dlatego należy go uznać za uszkodzony”. świat nie działa w ten sposób @RobieBasak Jako entuzjasta kryptografii (nie mogę nazwać się „ekspertem”, ale musiałem się w to zagłębić kilka lat temu) sam nie powiedziałbym, że MD5 jest zepsuty. Jest tylko ciekawy przypadek, który warto sprawdzić, ale wydaje się, że jest to teoria teoretyczna. Ale to nie
zepsuje
1
@jackweirdy, faktycznie istnieje i dlatego tego nie zrobili. Ich metoda opiera się na obu zestawach danych o bardzo specyficznych właściwościach. To jest bardzo podobne do klucza publicznego. Możesz wygenerować parę kluczy, które pasują do siebie, ale biorąc pod uwagę tylko jeden, nie możesz zrozumieć drugiego.
psusi