Czy listy repozytoriów są bezpieczne? Czy istnieje wersja HTTPS?

24

Czy aktualizacje repozytorium są bezpieczne?

Jako mały mózg ze strony programisty nie rozumiem, dlaczego lista repozytoriów jest wymieniona, http://security.ubuntu.coma inne http(niezabezpieczone) witryny wymienione w /etc/apt/sources.list. Bez dopasowania łańcucha certyfikatów pojawia się to jako „poproś dowolnego respondenta o listę pakietów do aktualizacji” zamiast „zapytaj witrynę ubuntu.com ...”

Czy jakakolwiek sieć może sfałszować witryny z aktualizacjami i czy jest to powszechna praktyka zapewniania lokalnie buforowanej i sprawdzonej kopii?

Charles Merriam
źródło

Odpowiedzi:

30

Krótko mówiąc, tak, są bezpieczne, ponieważ kryptografia klucza publicznego służy do podpisywania plików.

Wszystkie pliki pobrane przez APT mają podpis, który pozwala zweryfikować pobrany plik na podstawie kluczy publicznych przechowywanych na twoim komputerze jako podpisanych przez Ubuntu i tylko Ubuntu. To potwierdza, że ​​otrzymany plik został autoryzowany przez Ubuntu na pewnym etapie i od tego czasu nie został zmodyfikowany ani zmodyfikowany.

Techniczne wyjaśnienie tego, jak to działa, jest dostępne w Ubuntu (oraz w Debianie, który używa tego samego systemu).

Ze względu na użycie HTTP zamiast HTTPS, tak, osoby podsłuchujące mogą zobaczyć, które pliki pobierasz, ale w tym przypadku prywatność prawdopodobnie nie będzie Twoim problemem. Próba zmodyfikowania pakietów przez człowieka w środku w celu wstrzyknięcia szkodliwego kodu nadal nie powiodła się, ponieważ spowodowałaby uszkodzenie mechanizmu podpisywania.

Jednym z możliwych problemów w tym mechanizmie podpisywania jest to, że nie gwarantuje to, że otrzymujesz najbardziej aktualną wersję pakietu (w rzeczywistości czasami mirrory są powolne w aktualizacji). Aby złagodzić ten problem, podpisany plik wydania zawiera datę „Ważna do”, po której wszystkie pliki, do których się odwołuje, należy uznać za nieaktualne. Byłoby prawdopodobne, aby człowiek w środku zastąpił archiwum niezmodyfikowaną wcześniejszą wersją archiwum w tej ważnej dacie i sprawił, że APT uznał, że nie ma żadnych aktualizacji. Ale nie mogą dokonywać dowolnych modyfikacji pakietów ani cofać się w przeszłość o pewien punkt.

Mechanizmy podpisywania zapewniają znacznie lepsze bezpieczeństwo niż HTTPS w tego rodzaju rozproszonym środowisku, w którym pliki są dublowane na wielu serwerach nie kontrolowanych przez Ubuntu. Zasadniczo musisz zaufać Ubuntu, a nie kopii lustrzanej, więc musisz udowodnić, że pliki pierwotnie pochodziły z Ubuntu i nie zostały zmodyfikowane od tego czasu - nie trzeba weryfikować tożsamości kopii lustrzanej.

Pamiętaj, że po dodaniu nieoficjalnego repozytorium do listy źródeł, takiego jak PPA, będziesz otrzymywać pliki, które nie są podpisane przez Ubuntu. APT powinien cię o tym ostrzec, ponieważ nie zostały podpisane certyfikatem pasującym do dowolnego klucza publicznego zainstalowanego na twoim komputerze, autoryzowanego przez Ubuntu.

thomasrutter
źródło
1
Świetny! Tak więc krótka wersja brzmi: „warstwa transportowa nie jest bezpieczna, ale każda paczka jest podpisana. Nie ma bezpiecznej listy dostępnych aktualizacji i poprawek dla istniejących problemów bezpieczeństwa nie jest gwarantowane”.
Charles Merriam
2
Nie wiem, co rozumiesz przez „Nie ma bezpiecznej listy dostępnych aktualizacji”, ale listy plików i pakietów podpisane. Po prostu nie weryfikuje, czy twoje lustro jest aktualne.
thomasrutter
3
Eee, jeśli nie ma sposobu na sprawdzenie, czy dublowanie lub strona główna są aktualne, nie ma sposobu, aby dowiedzieć się, czy są dostępne aktualizacje, aktualizacje zabezpieczeń lub inne. Oznacza to, że nie ma bezpiecznej listy dostępnych aktualizacji.
Charles Merriam
4
Alice uruchamia Ubuntu. Bob kontroluje połączenie internetowe Alice. Bob nie może wstawić złego pakietu do instalacji Alice, ponieważ każdy pakiet jest podpisany. W Ubuntu znaleziono poważną lukę w zabezpieczeniach. Alice próbuje znaleźć zaktualizowany pakiet, ale Bob usuwa wszystkie wzmianki o pakiecie z testu aktualizacji Alice. Alice walczy z sysadminem, a następnie pobiera kontrolę aktualizacji za pośrednictwem HTTPS z ubuntu.com, sprawdzając, czy jest połączona z prawdziwą witryną za pośrednictwem bezpiecznego łącza. Teraz Alice widzi aktualizację zabezpieczeń i Bob nie może jej ukryć.
Charles Merriam
3
To jest oczywiście poprawna odpowiedź. Ale wydaje mi się dziwne, że nikt nie martwi się, że podsłuchujący kompiluje listę wszystkich pakietów, które zainstalowałeś w kolejności, w tym te, które zaktualizowałeś, a które nie, aby zaatakować znany atak luki bezpieczeństwa w tych pakietach.
Teekin
8

Najwyżej oceniana odpowiedź tutaj jest wyraźnie nieaktualna. Od tego czasu w apt znaleziono 2 poważne exploity do zdalnego wykonywania kodu z powodu weryfikacji błędnego pakietu. Biuletyny bezpieczeństwa tu i tutaj .

Jest to znacznie gorsze niż obawy dotyczące wycieku danych / prywatności i nieaktualnej wersji pakietu; umożliwia to wykonanie dowolnego kodu jako root, całkowita awaria bezpieczeństwa. Chodzi o to, że atakom takim można by zapobiec, gdyby zamiast http użyto https.

Dowodzi to, że zasada głębokiej obrony obowiązuje tutaj tak samo, jak wszędzie indziej. Wiele twierdzeń, które krążą wokół tego, że https nie zapewnia żadnych korzyści bezpieczeństwa lub minimalizuje je w kontekście apt, jest po prostu niepoprawne, jak pokazały te exploity.

Powstaje zatem pytanie, czy korzyści bezpieczeństwa związane z https są warte kosztu w postaci buforowania, zwiększonego obciążenia itp. Nie mogę na to odpowiedzieć, ale przynajmniej uważam, że Ubuntu / Canonical / Launchpad powinien zapewnić opcjonalne punkty końcowe https dla swoich repozytoriów .

Niklas Holm
źródło
1
Bezpieczeństwo to także prywatność, a środki HTTPS będą miały co najmniej znacznie trudniejsze ustalenie, które pakiety i wersje są uruchomione.
l0b0
Powiem jednak, że dopóki sam apt nie ma z tym problemów, http jest w porządku. Jednak https zapewnia kopię zapasową na wypadek, gdyby zabrakło bezpieczeństwa gpg (lub tego, w jaki sposób wykorzystuje go dokładniej).
RoundDuckMan
2

Ważne uzupełnienie : w rzeczywistości, ponieważ aktualizacja i wstępna instalacja są pobierane online, zajmuje dużo ruchu, a źródło tego ruchu, czyli strumienie kodu binarnego i tekstowego, jest odtwarzalne. W związku z tym istnieje wiele bram i urządzeń pamięci podręcznej w Internecie. Znaczna liczba dostawców usług internetowych skonfigurowała pamięć podręczną w oparciu o protokół HTTP w celu zaoszczędzenia przepustowości eksportu, a protokół https nie może istnieć jako przezroczysta pamięć podręczna.

Innym powodem jest to, że program do tworzenia kopii lustrzanych oparty na http jest znacznie prostszy, nie trzeba weryfikować certyfikatu tls-ssl i nie trzeba się też martwić o unieważnienie certyfikatu lub problemy z konfiguracją serwera WWW.

Nie tak dawno temu, około 20 lat na początku Internetu, https i ruch internetowy były wciąż bardzo drogimi rozgrywkami. Dlatego http zawiera również protokół ftp, który jest prawie przestarzały, jako główny sposób dostarczania instalacji i aktualizacji dystrybucji pakietów oprogramowania online.

Podobnie, Microsoft Windows i Office są również aktualizowane przy użyciu protokołu http. Możesz zauważyć, że zwykle nie jest to pakiet instalacyjny pobierany z serwera Microsoft, ale sam zbudowany przez ciebie serwer cache.

J Z
źródło