El botó de descàrrega d’un portal VPN retorna exactament un fitxer, i aquest fitxer pot ser dues coses molt diferents: un instal·lador de sèrie del proveïdor amb un perfil de configuració que viatja al costat, o una compilació que l’organització ha creat ella mateixa. La pàgina es veu igual en tots dos casos, així que el botó no us pot dir quin teniu. Darrere hi ha tres preguntes: qui ha publicat l’executable, quina configuració escriu la instal·lació i qui ho repara quan arriba la següent versió del client. La primera la responeu amb les metadades de l’artefacte, la segona amb el contingut del paquet, i la tercera només amb l’equip que és propietari del desplegament.

El cadenat del navegador cobreix la transferència, no l’artefacte.

Què retorna realment el punt de descàrrega

La majoria de portals lliuren la petició de descàrrega a un petit gestor que, o bé transmet un fitxer desat, o bé n’assembla un al moment, i després fixa un nom de fitxer i un tipus de contingut abans que la resposta surti. El que arriba és un contenidor: un MSI, un PKG, un DEB o un RPM, o un embolcall autoextraïble al voltant d’un d’aquests. A dins hi ha el binari del client, i res del nom del fitxer diu de manera fiable si aquest binari ve del proveïdor o d’una canalització de compilació interna. Un fitxer anomenat client-setup.exe registra una decisió de nomenclatura, no un fet de procedència.

Compareu els bytes descarregats amb la suma de verificació publicada pel proveïdor. Una discrepància no prova malícia; prova que el fitxer no és la compilació del proveïdor, i aquesta és la distinció per la qual val la pena actuar.

On entra el perfil al client

Els paràmetres preomplerts normalment viatgen com un fitxer separat que l’instal·lador copia en una ruta per usuari o per màquina: un perfil JSON o XML a Windows, un perfil de configuració a macOS, un fragment sota /etc a Linux. Els valors d’aquest fitxer — noms d’amfitrió de la passarel·la, àncores de confiança, de vegades material d’enregistrament — esdevenen els valors per defecte del client en el primer inici. Per això una sola descàrrega pot portar secrets a més de codi.

Pregunteu què fa la ruta d’actualització amb el perfil. Segons l’empaquetat, pot sobreviure a una actualització del client, ser-hi sobreescrit o fallar la validació d’esquema en la versió nova.

Què no demostra la cadena de signatura

La signatura de codi vincula la identitat d’un editor a un hash de fitxer, i a Windows la marca de temps d’Authenticode permet que una signatura sobrevisqui al certificat que la va crear. Un resultat vàlid respon dues preguntes: quin editor ha signat aquests bytes i si han canviat després. No enumera els serveis de l’instal·lador, les escriptures al registre ni els controladors inclosos, i no decideix si cal confiar en aquest editor aquí. La documentació d’Authenticode de Microsoft descriu el mecanisme i és explícita sobre aquest abast tan estret.

L’autenticació del portal respon una tercera pregunta: que la sessió ha arribat al servidor previst. Tres comprovacions diferents, tres modes de fallada diferents.

Verifiqueu l’artefacte abans que ningú l’executi

Poseu el fitxer en una màquina aïllada i llegiu-ne les metadades abans d’executar res. Aquestes ordres responen la pregunta de l’editor a les tres plataformes principals.

# 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

Llegiu el subjecte del signant, no només la paraula d’estat. Una autoritat de certificació interna que signa una compilació interna és l’esperable; el mateix certificat en un paquet que diu ser la versió del proveïdor no ho és.

Per a un paquet només amb perfil, obriu l’arxiu i tracteu cada nom d’amfitrió i clau incrustats com a dades que cal tenir en compte. Si el perfil conté res reutilitzable, la distribució pel portal ho converteix en un secret compartit amb un calendari de desplegament.

Determinar la propietat abans del desplegament

La darrera pregunta no té cap ordre al darrere. Esbrineu qui actualitza l’artefacte quan el proveïdor publica un client nou, qui té la clau de signatura d’una compilació interna i com es rota el perfil quan un punt final es mou. Escriviu aquests noms al costat de l’enllaç de descàrrega.

Si ningú no posseeix aquesta resposta, la descàrrega és un canal de distribució sense contracte de manteniment, i aquesta és la troballa que val la pena reportar.

Articles relacionats