Które repozytoria pakietów Linuksa są bezpieczne, a które nie?

14

Wiem, że większość dystrybucji ma jakąś funkcję repozytorium, w której nowe pakiety można pobrać po instalacji. Które dystrybucje robią to w bezpieczny sposób, a które nie robią tego w bezpieczny sposób.

Szczególnie myślę o wektorach ataku, takich jak man-in-middle, i problemach takich jak naruszenie bezpieczeństwa zarówno na serwerze meta repozytorium, jak i na serwerach lustrzanych plików repozytorium.

Słyszałem, że zarówno Slackware, jak i Arch Linux są bardzo podatne na ataki, ponieważ brakuje im podpisywania pakietów. Czy to prawda? Czy są jakieś inne ważne dystrybucje linuksowe, które są podatne na ataki typu man-in-middle?

grm
źródło
jeśli strona dystrybucji jest jawnym tekstem http lub ftp, a dystrybucja jest uzyskiwana jako iso z tego połączenia, a to połączenie podstawowe jest MITM, niż ile dobrego ma jakikolwiek podpis pośmiertny w pakietach aktualizacji?
n611x007,

Odpowiedzi:

7

To nie jest bezpośrednia odpowiedź na twoje pytanie, ale jest kilka rzeczy, które możesz zrobić, aby złagodzić to ryzyko. Najprostszym jest sprawdzenie pobranych pakietów z sumami kontrolnymi z innego serwera lustrzanego niż z pobranego.

Kiedy mój menedżer pakietów ( poldek) pobiera pakiet, mam ustawiony, aby przechowywać kopię pobranego rpm w folderze pamięci podręcznej. Automatycznie sprawdza sumę kontrolną pobranego pliku z repozytorium pakietów i ostrzega / przerywa niezgodność, ale jeśli martwisz się atakiem typu man-in-the-środkowego na twoje repozytorium dystrybucyjne, łatwo byłoby napisać drugi skrypt, który przejrzałby wszystkie pobrane pakiety i zweryfikuj je z sumami kontrolnymi pobranymi z innego serwera lustrzanego. Możesz nawet uruchomić swoją pierwszą instalację w trybie próbnym, aby pakiety zostały pobrane, ale nie zostały zainstalowane, a następnie uruchom skrypt weryfikacyjny, a następnie wykonaj właściwą instalację.

To nie powstrzymuje zainfekowanego pakietu przed dostaniem się do repozytorium dystrybucji, ale większość dystrybucji ma inne sposoby na złagodzenie tego, a nawet podpisane pakiety nie gwarantują, że nigdy nie będzie to problemem. To, co robi, to stłumienie ukierunkowanego wektora ataku człowiek w środku. Używając osobnego źródła i pobierając na osobnym kanale, zabijasz łatwość, z jaką skompromitowany pakiet może zostać upuszczony do linii podsłuchowej.

Caleb
źródło
1
Jest taki pakiet dla Archa paccheck, który to robi, porównuje pakiety z różnymi serwerami lustrzanymi przed instalacją i ostrzega przed wszelkimi rozbieżnościami.
Wolf
Listy kopii lustrzanych są prawdopodobnie publiczne, więc czy osoba atakująca nie może teoretycznie spiskować do MITM wszystkich według wzoru? Jeśli atakujący konkretnie atakuje Twój serwer, czy nie wydaje się to bardziej prawdopodobne? Niemniej jednak jest to prawdopodobnie więcej niż to, co robi większość Linuksa.
n611x007,
10

Pakiety Debiana są sumowane, a sumy kontrolne są podpisywane kluczem w breloku do kluczy Debiana. Te apt, zapewnia menedżer pakietów, czy pobrany pakiet ma prawidłową sumę kontrolną i że plik suma kontrolna została poprawnie podpisany.

jmtd
źródło
5

Pakiety Fedory są podpisane i sumowane. Nawet repozytoria stron trzecich, takie jak rpmfusion, podpisują swoje paczki.

Yum (menedżer pakietów) wymaga specjalnej flagi ( --nogpgcheck) do zainstalowania pakietów, które nie zostały podpisane.

kanak
źródło
podobnie jak pakiety downsteam, tj. Red Hat i CentOS
fpmurphy,
3

Wszystkie pakiety Arch Linux używają sumy md5 lub sha1, aby sprawdzić, czy wszystkie bity są na miejscu. Wybór algorytmu mieszającego zależy od opiekuna pakietu. Pakiety zainstalowane z AUR (często tylko mały plik tekstowy PKGBUILD) powinny zostać sprawdzone przez instalator przed instalacją. Repozytoria zawierające oficjalne pakiety binarne są nadzorowane przez zaufanych użytkowników (TU).

Aktualizacja : Arch wprowadził teraz podpisywanie pakietów za pomocą Pacmana 4

Alexander
źródło
2
Wszystko prawda, ale pakiety nie są podpisane i dlatego pozostają podatne na ataki kompromitujące mitm i mirrory, jakkolwiek zdalne. Jest to długo oczekiwana funkcja i główny powód, dla którego niechętnie przestałem używać Arch. To powiedziawszy, trwają dyskusje na ten temat na forach Arch i Pacman oraz wiki - to trudny problem do rozwiązania. Oprócz tego wydania Arch jest fantastyczną dystrybucją.
Eli Heady
@Eli: Nie dyskutuję o tym - nie mam pojęcia o stanie rzeczy - ale czy nie byłby to zbyt wąski rynek do zaatakowania. To prawda, że ​​Arch jest dość popularną dystrybucją, ale czy wszystkie tego rodzaju psoty zwykle są oparte na zdolności do zarabiania pieniędzy?
boehj
1
Jasne, po tym wszystkim baza użytkowników Windows jest bardziej ukierunkowana niż Linux, prawda? Chodzi o to, że to, co stosuje się do agregatu, zwykle nie dotyczy dokładnie osoby. Chodzi mi o to, że model zagrożenia każdego jest inny - jeśli masz powody do obaw, że zostaniesz wyróżniony na atak, powinieneś podjąć odpowiednie kroki, aby zmniejszyć ryzyko. Brak podpisywania pakietów przedstawia wektory ataku, które nie są wcale takie trudne do wykorzystania. Jeśli masz cenne elementy do ochrony, ten problem należy wziąć pod uwagę w strategii ograniczania zagrożeń.
Eli Heady,
Możesz zainstalować Arch z CD / DVD, a następnie po prostu sprawdź, czy sumy md5 / sha1 pakietów binarnych odpowiadają sumom z kilku serwerów lustrzanych przed instalacją, podobnie jak sugerował Caleb. W każdym razie nigdy nie ma 100% bezpieczeństwa, chociaż widzę sens podpisywania paczek i żałuję, że Arch tego nie ma.
Alexander
jak więc osiągnąć, że suma kontrolna jest dostarczana w bezpieczniejszy sposób niż zwykły tekst http lub ftp? czy sprawdzanie podpisów powinno odbywać się dokładnie, w jaki sposób dzieje się to na łuku?
n611x007,
1

Kto powiedział, że Slackware nie podpisuje pakietów?

Pakiety Slackware są podpisane za pomocą klucza publicznego Slackware. Tak więc każda paczka ma swój podpis z rozszerzeniem .asc. Podpisywane są nie tylko pakiety, ale także inne pliki CHECKSUMS.MD5. Zawiera listę sum kontrolnych pakietów.

Distro ma oficjalne narzędzie slackpkgdo pobierania / instalowania pakietów z mirrora. Po zaktualizowaniu lokalnej bazy danych repo za slackpkg updatepomocą narzędzia sprawdza poprawność podpisu nowego pliku MD5 i dziennika zmian itp.

Po pobraniu pakietu (ale przed instalacją) sprawdzany jest podpis i MD5 pakietu.

Można uzyskać klucz publiczny za pomocą slackpkg update gpglub po prostu zaimportować go z instalacyjnej płyty CD za pomocągpg --import GPG-KEY

Istnieje inne nieoficjalne narzędzie slapt-getdo Slackware. Obsługuje również kontrole GPG! W podobny sposób jak slackpkg.

próżniak
źródło
-2

Jak dotąd OpenBSD. Cały projekt poświęcony jest bezpieczeństwu, zespół nawet zainstalował ponad 5000 poprawek linii do oryginalnego apache, ponieważ nie uważali, że jest wystarczająco bezpieczny, aby go użyć. To jest przez pkg_add, ale nigdy nie miałem z tym problemów.

baweaver
źródło
4
Nie odpowiadasz na pytanie: chodzi przede wszystkim o weryfikację podpisów pobranych pakietów (i portów, w przypadku * BSD).
Gilles „SO- przestań być zły”
1
Zgadzam się z @Gilles; OpenBSD to świetny system operacyjny, ale @grm zapytał o bezpieczeństwo dystrybucji pakietów w systemie Linux.
livingstaccato