Przycisk pobierania w portalu VPN zwraca dokładnie jeden plik, a ten plik może być jedną z dwóch bardzo różnych rzeczy: gotowym instalatorem dostawcy z towarzyszącym mu profilem konfiguracji albo kompilacją, którą organizacja złożyła sama. Strona wygląda w obu przypadkach tak samo, więc przycisk nie powie Ci, który masz. Za nim stoją trzy pytania — kto opublikował plik wykonywalny, jaką konfigurację zapisuje instalacja i kto ją naprawia, gdy pojawia się kolejne wydanie klienta. Na pierwsze odpowiadasz z metadanych artefaktu, na drugie z zawartości pakietu, a na trzecie tylko z zespołu, który posiada wdrożenie.

Kłódka w przeglądarce obejmuje przesyłanie, nie artefakt.

Co faktycznie zwraca punkt pobierania

Większość portali przekazuje żądanie pobrania do małego mechanizmu, który albo strumieniuje zapisany plik, albo składa plik na miejscu, a następnie ustawia nazwę pliku i typ zawartości, zanim odpowiedź wyjdzie. To, co przychodzi, jest kontenerem: MSI, PKG, DEB lub RPM albo samorozpakowujące się opakowanie wokół jednego z nich. W środku jest plik binarny klienta, a nic w nazwie pliku nie mówi wiarygodnie, czy ten plik binarny pochodzi od dostawcy, czy z wewnętrznego potoku budowania. Plik o nazwie client-setup.exe zapisuje decyzję o nazewnictwie, a nie fakt pochodzenia.

Porównaj pobrane bajty z sumą kontrolną opublikowaną przez dostawcę. Rozbieżność nie dowodzi złej woli; dowodzi, że plik nie jest kompilacją dostawcy, i to jest różnica, dla której warto działać.

Gdzie profil trafia do klienta

Wstępnie wypełnione ustawienia zwykle podróżują jako osobny plik, który instalator kopiuje do ścieżki dla użytkownika lub dla całej maszyny: profil JSON lub XML w Windows, profil konfiguracji w macOS, fragment pod /etc w Linuksie. Wartości w tym pliku — nazwy hostów bramy, kotwice zaufania, czasem materiał rejestracyjny — stają się domyślnymi wartościami klienta przy pierwszym uruchomieniu. Dlatego jedno pobranie może nieść zarówno sekrety, jak i kod.

Zapytaj, co ścieżka aktualizacji robi z profilem. W zależności od pakowania może przetrwać aktualizację klienta, zostać przez nią nadpisany lub nie przejść walidacji schematu w nowej wersji.

Czego nie dowodzi łańcuch podpisów

Podpisywanie kodu wiąże tożsamość wydawcy z hashem pliku, a w Windows znacznik czasu Authenticode pozwala podpisowi żyć dłużej niż certyfikat, który go utworzył. Ważny wynik odpowiada na dwa pytania: który wydawca podpisał te bajty i czy zmieniły się później. Nie wymienia usług instalatora, zapisów do rejestru ani dołączonych sterowników i nie rozstrzyga, czy temu wydawcy należy tu ufać. Dokumentacja Authenticode firmy Microsoft opisuje mechanizm i jest wyraźna co do tego wąskiego zakresu.

Uwierzytelnianie portalu odpowiada na trzecie pytanie: czy sesja dotarła do zamierzonego serwera. Trzy różne sprawdzenia, trzy różne tryby awarii.

Zweryfikuj artefakt, zanim ktokolwiek go uruchomi

Umieść plik na odizolowanej maszynie i przeczytaj jego metadane, zanim cokolwiek uruchomisz. Te polecenia odpowiadają na pytanie o wydawcę na trzech głównych platformach.

# Windows PowerShell
Get-AuthenticodeSignature .\client-setup.exe | Format-List Status, SignerCertificate, TimeStamperCertificate

# macOS
pkgutil --check-signature ./Client.pkg
codesign -dv --verbose=4 /Applications/Client.app

# Debian/Ubuntu
dpkg-deb -I ./client_amd64.deb
sha256sum ./client_amd64.deb

Czytaj podmiot podpisującego, a nie tylko słowo statusu. Wewnętrzny urząd certyfikacji podpisujący wewnętrzną kompilację jest oczekiwany; ten sam certyfikat na pakiecie twierdzącym, że jest wydaniem dostawcy, już nie.

W przypadku pakietu tylko z profilem otwórz archiwum i traktuj każdą osadzoną nazwę hosta i klucz jako dane, które trzeba rozliczyć. Jeśli profil zawiera coś wielokrotnego użytku, dystrybucja przez portal zamienia to we wspólny sekret z harmonogramem wdrożenia.

Ustalenie własności przed wdrożeniem

Za ostatnim pytaniem nie stoi żadne polecenie. Dowiedz się, kto aktualizuje artefakt, gdy dostawca wydaje nowego klienta, kto trzyma klucz podpisywania wewnętrznej kompilacji i jak profil jest rotowany, gdy punkt końcowy się przesuwa. Zapisz te nazwiska obok linku do pobrania.

Jeśli nikt nie jest właścicielem tej odpowiedzi, pobieranie jest kanałem dystrybucji bez umowy serwisowej i to jest ustalenie warte zgłoszenia.

Powiązane artykuły