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?
Odpowiedzi:
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.
źródło
paccheck
, który to robi, porównuje pakiety z różnymi serwerami lustrzanymi przed instalacją i ostrzega przed wszelkimi rozbieżnościami.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.źródło
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.źródło
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
źródło
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 plikiCHECKSUMS.MD5
. Zawiera listę sum kontrolnych pakietów.Distro ma oficjalne narzędzie
slackpkg
do pobierania / instalowania pakietów z mirrora. Po zaktualizowaniu lokalnej bazy danych repo zaslackpkg update
pomocą 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 gpg
lub po prostu zaimportować go z instalacyjnej płyty CD za pomocągpg --import GPG-KEY
Istnieje inne nieoficjalne narzędzie
slapt-get
do Slackware. Obsługuje również kontrole GPG! W podobny sposób jakslackpkg
.źródło
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.
źródło