Tlačítko stahování na portálu VPN vrací přesně jeden soubor a ten soubor může být jedna ze dvou velmi odlišných věcí: hotový instalátor dodavatele s konfiguračním profilem, který cestuje vedle něj, nebo sestavení, které si organizace zkompilovala sama. Stránka vypadá v obou případech stejně, takže tlačítko vám nemůže říct, kterou máte. Za ním stojí tři otázky — kdo publikoval spustitelný soubor, jakou konfiguraci instalace zapisuje a kdo to opraví, když přijde další vydání klienta. Na první odpovídáte z metadat artefaktu, na druhou z obsahu balíčku a na třetí jen z týmu, který nasazení vlastní.

Zámek v prohlížeči kryje přenos, ne artefakt.

Co koncový bod stahování skutečně vrací

Většina portálů předává požadavek na stažení malému obslužnému programu, který buď streamuje uložený soubor, nebo ho sestaví za běhu, a poté nastaví název souboru a typ obsahu, než odpověď odejde. Co dorazí, je kontejner: MSI, PKG, DEB nebo RPM, nebo samorozbalovací obal kolem jednoho z nich. Uvnitř je klientský binární soubor a nic v názvu souboru spolehlivě neříká, zda tento binární soubor pochází od dodavatele, nebo z interní sestavovací linky. Soubor pojmenovaný client-setup.exe zaznamenává rozhodnutí o pojmenování, ne skutečnost o původu.

Porovnejte stažené bajty s kontrolním součtem, který dodavatel zveřejnil. Neshoda nedokazuje zlý úmysl; dokazuje, že soubor není sestavení dodavatele, a to je rozdíl, kvůli kterému stojí za to jednat.

Kde se profil dostává do klienta

Předvyplněná nastavení obvykle cestují jako samostatný soubor, který instalátor zkopíruje do cesty pro jednotlivého uživatele nebo pro celý počítač: profil JSON nebo XML ve Windows, konfigurační profil v macOS, fragment pod /etc v Linuxu. Hodnoty v tomto souboru — názvy hostitelů brány, kořeny důvěry, někdy materiál pro zápis — se při prvním spuštění stanou výchozím nastavením klienta. Proto může jedno stažení nést tajemství i kód.

Zeptejte se, co dělá cesta aktualizace s profilem. Podle balení může přežít aktualizaci klienta, být jí přepsán, nebo v nové verzi neprojít validací schématu.

Co řetězec podpisů nedokazuje

Podepisování kódu váže identitu vydavatele na hash souboru a ve Windows umožňuje časové razítko Authenticode podpisu přežít certifikát, který ho vytvořil. Platný výsledek odpovídá na dvě otázky: který vydavatel tyto bajty podepsal a zda se poté změnily. Nevypisuje služby instalátoru, zápisy do registru ani přiložené ovladače a nerozhoduje, zda tomuto vydavateli zde věřit. Dokumentace Authenticode od Microsoftu popisuje mechanismus a je výslovná ohledně tohoto úzkého rozsahu.

Ověřování na portálu odpovídá na třetí otázku: zda relace dorazila na zamýšlený server. Tři různé kontroly, tři různé režimy selhání.

Ověřte artefakt, než ho kdokoli spustí

Umístěte soubor na izolovaný počítač a přečtěte si jeho metadata, než cokoli spustíte. Tyto příkazy odpovídají na otázku vydavatele na třech hlavních platformách.

# 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

Čtěte subjekt podepisujícího, ne jen slovo stavu. Interní certifikační autorita podepisující interní sestavení je očekávaná; stejný certifikát na balíčku, který tvrdí, že je vydáním dodavatele, očekávaný není.

U balíčku pouze s profilem otevřete archiv a každé vložené jméno hostitele a klíč berte jako data, která je třeba zohlednit. Pokud profil obsahuje něco znovu použitelného, distribuce portálem z toho udělá sdílené tajemství s plánem zavedení.

Určení vlastnictví před zavedením

Za poslední otázkou nestojí žádný příkaz. Zjistěte, kdo aktualizuje artefakt, když dodavatel vydá nového klienta, kdo drží podepisovací klíč pro interní sestavení a jak se profil rotuje, když se koncový bod přesune. Napište tato jména vedle odkazu ke stažení.

Pokud tu odpověď nikdo nevlastní, je stažení distribuční kanál bez smlouvy o údržbě, a to je zjištění, které stojí za to nahlásit.

Související články