Debian: Bezpieczne pobieranie aktualizacji (apt-transport-https)

Spis treści

Posiadanie aktualnego systemu za sprawą regularnych aktualizacji może znacząco przyczynić się do poprawy bezpieczeństwa naszego linux'a. Niemniej jednak, niezabezpieczony proces aktualizacji może zdradzić pewne informacje, które mogą się okazać przydatne dla potencjalnego atakującego. Dlatego też menadżer pakietów apt/aptitude w Debianie wyposażony jest w dodatkowe transporty umożliwiające komunikację z serwerem repozytorium w oparciu o różne protokoły. Standardowy protokół, którym posługują się maszyny mające na pokładzie dystrybucję Debian, to HTTP (ewentualnie FTP). Oba z nich ślą wszelkie informacje w postaci czystego tekstu, który nadaje się do analizy przez człowieka. Możemy jednak skorzystać z protokołu SSL/TLS i zaszyfrować proces pobierania aktualizacji za sprawą pakietu apt-transport-https .

Anonimowość i poufność informacji

Przede wszystkim, trzeba rozróżnić dwie kwestie: anonimowość i poufność informacji. Można być anonimowym i przy tym posługiwać się informacją, którą przesyłamy przez sieć w sposób jawny. Wtedy wiadome jest jaki komunikat dana osoba przesłała, choć nie można tego delikwenta zidentyfikować. Podobnie jest w przypadku, gdy wiadome jest z kim mamy do czynienia, choć nie wiemy nic na temat treści komunikatu, bo ta zwykle jest zaszyfrowana.

Transport dla menadżera pakietów apt/aptitude , który może zostać zaimplementowany za sprawą pakietu apt-transport-https , dotyczy tego drugiego przypadku. Potencjalny atakujący być może będzie w stanie ustalić, że jakieś pakiety pobieramy z repozytorium (w końcu adres IP będzie znany) ale nie będzie on w stanie stwierdzić które z nich. Podobnie w przypadku wersji danego pakietu. Jeśli natomiast interesuje nas także ukrycie tych pozostałych jawnych informacji, możemy pokusić się o instalację pakietu apt-transport-tor, który daje nam możliwość przeprowadzania aktualizacji systemu za pośrednictwem sieci TOR. W przypadku, gdy korzystamy ze standardowego transportu przy pobieraniu pakietów trochę informacji zdradzamy wszystkim, którzy nasłuchują:

wireshark-pobieranie-pakietu-http

Pakiet apt-transport-https, a repozytoria

Debian oferuje sposób implementacji bezpiecznego połączenia z serwerem aktualizacji od dość dawna ale w przeszłości oficjalne repozytoria tej dystrybucji nie wspierały protokołu SSL/TLS. Być może było to za sprawą dość sporego obciążenia jakie niosło zaszyfrowanie całej tej komunikacji ze wszystkimi użytkownikami, którzy ciągle pobierali pakiety. Niemniej jednak, od jakiegoś czasu Debian to wsparcie dla protokołu SSL/TLS za sprawą pakietu apt-transport-https posiada i wypadałoby się tym pakietem zainteresować.

Oficjalne repozytoria Debiana nie są również jedynymi, które mogą nam dostarczyć pakietów do instalacji w systemie. Praktycznie każdy z nas może sobie takie repozytorium stworzyć za pomocą reprepro i udostępnić w nim oprogramowanie jakie tylko chce. Oczywiście pozostaje tylko rozważenie kwestii zaufania do autora tego przedsięwzięcia. Niemniej jednak, takie repozytorium można skonfigurować, by serwowało pakiety używając bezpiecznego protokołu.

Szereg repozytoriów w internecie ten transport HTTPS już wykorzystuje. Przykładem może być Opera, czy MEGA. Jeśli chcielibyśmy z nich korzystać, to musimy doinstalować pakiet apt-transport-https .

Jak konfigurować repozytoria w pliku sources.list

Mając zainstalowany pakiet apt-transport-https , możemy przejść do konfiguracji repozytoriów w pliku /etc/apt/sources.list . Jako, że wyżej wspomniałem o wsparciu tego transportu przez Operę i MEGA, to na ich przykładzie opiszę ten prosty proces. Edytujemy zatem wspomniany plik i dodajemy w nim poniższe wpisy:

deb https://mega.co.nz/linux/MEGAsync/Debian_9.0/ ./
deb https://deb.opera.com/opera-stable/ stable non-free

Generalnie rzecz biorąc, różnica polega na tym, że adres repozytorium rozpoczyna się od https:// , a nie jak w standardzie od http:// . Teraz możemy zaktualizować listy repozytoriów przy pomocy apt-get update i spróbować zainstalować/zaktualizować pakiet opera-beta . Zanim rozpocznie się faktyczne pobieranie pakietu, zostanie zestawiony tunel TLS, który posłuży do zaszyfrowania wszystkich danych. Potencjalny atakujący nie będzie miał w ten sposób już możliwość podejrzeć jakie pliki są pobierane:

wireshark-pobieranie-pakietu-https

Kwestia security.debian.org oraz deb.debian.org/debian-security

W wydaniu stabilnym i testowym dystrybucji Debian są dostępne repozytoria zawierające poprawki bezpieczeństwa. Te repozytoria są dostępne pod jednym z dwóch adresów: security.debian.org oraz deb.debian.org/debian-security . W zasadzie nie ma znaczenia, z którego adresu będziemy korzystać, bo i tak te same aktualizacje zostaną zainstalowane w naszym systemie ale tylko ten drugi adres wspiera transport HTTPS. Poniżej znajdują się przykładowe wpisy dla stabilnego wydania Debiana:

deb https://deb.debian.org/debian-security stable/updates main
deb-src https://deb.debian.org/debian-security stable/updates main
Mikhail Morfikov avatar
Mikhail Morfikov
Po ponad 10 latach spędzonych z różnej maści linux'ami (Debian/Ubuntu, OpenWRT, Android) mogę śmiało powiedzieć, że nie ma rzeczy niemożliwych i problemów, których nie da się rozwiązać. Jedną umiejętność, którą ludzki umysł musi posiąść, by wybrnąć nawet z tej najbardziej nieprzyjemniej sytuacji, to zdolność logicznego rozumowania.