'n VPN-portaal se aflaaiskakel lewer presies een lêer, en daardie lêer kan twee baie verskillende dinge wees: 'n standaard-installeerder van die verskaffer met 'n konfigurasieprofiel wat daarmee saamreis, of 'n bou wat die organisasie self saamgestel het. Die bladsy lyk in albei gevalle dieselfde, so die skakel kan jou nie sê watter een jy het nie. Drie vrae sit daar agter — wie het die uitvoerbare lêer gepubliseer, watter konfigurasie skryf die installasie, en wie herstel dit wanneer die volgende kliëntweergawe land. Jy beantwoord die eerste uit die artefak se metadata, die tweede uit die pakket se inhoud, en die derde slegs uit die span wat die ontplooiing besit.

Die slot in die blaaier dek die oordrag, nie die artefak nie.

Wat die aflaai-eindpunt werklik terugstuur

Die meeste portale gee 'n aflaai-versoek aan 'n klein hanteerder wat óf 'n gestoorde lêer stroom óf een ter plaatse saamstel, en dan 'n lêernaam en 'n inhoudstipe stel voordat die antwoord vertrek. Wat aankom, is 'n houer: 'n MSI, 'n PKG, 'n DEB of RPM, of 'n self-onttrekkende wikkel rondom een van dié. Binne sit die kliënt se binêre lêer, en niks in die lêernaam sê betroubaar of daardie binêre lêer van die verskaffer of van 'n interne boupyplyn kom nie. 'n Lêer met die naam client-setup.exe teken 'n naamgewingsbesluit op, nie 'n herkomsfeit nie.

Vergelyk die afgelaaide grepe met die verskaffer se gepubliseerde kontrolesom. 'n Verskil bewys nie kwaadwilligheid nie; dit bewys die lêer is nie die verskaffer se bou nie, en dit is die onderskeid waarop dit die moeite werd is om op te tree.

Waar die profiel by die kliënt inkom

Vooraf ingevulde instellings reis gewoonlik as 'n aparte lêer wat die installeerder na 'n per-gebruiker- of per-masjien-pad kopieer: 'n JSON- of XML-profiel op Windows, 'n konfigurasieprofiel op macOS, 'n fragment onder /etc op Linux. Waardes in daardie lêer — gasheerrekenaarname, vertrouensankers, soms inskrywingsmateriaal — word die kliënt se verstekke by die eerste bekendstelling. Dit is waarom een aflaai geheime sowel as kode kan dra.

Vra wat die opgraderingspad met die profiel doen. Afhangend van die verpakking kan dit 'n kliëntopdatering oorleef, daardeur oorskryf word, of skeemvalidasie in die nuwe weergawe faal.

Wat die handtekeningketting nie bewys nie

Kode-ondertekening bind 'n publiseerderidentiteit aan 'n lêerhash, en op Windows laat die Authenticode-tydstempel 'n handtekening langer leef as die sertifikaat wat dit gemaak het. 'n Geldige resultaat beantwoord twee vrae: watter publiseerder hierdie grepe onderteken het, en of hulle daarna verander het. Dit lys nie die installeerder se dienste, registerinskrywings of meegeleverde drywers nie, en dit besluit nie of daardie publiseerder hier vertrou moet word nie. Microsoft se Authenticode-dokumentasie beskryf die meganisme en is uitdruklik oor daardie noue bestek.

Portaal-verifikasie beantwoord 'n derde vraag, dat die sessie die bedoelde bediener bereik het. Drie verskillende kontroles, drie verskillende foutmodusse.

Verifieer die artefak voordat enigiemand dit laat loop

Plaas die lêer op 'n geïsoleerde masjien en lees sy metadata voordat jy enigiets uitvoer. Hierdie opdragte beantwoord die publiseerder-vraag op die drie hoofstroomplatforms.

# 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

Lees die ondertekenaar se subjek eerder as net die statuswoord. 'n Interne sertifikaatowerheid wat 'n interne bou onderteken, is verwag; dieselfde sertifikaat op 'n pakket wat voorgee om die verskaffer se vrystelling te wees, is nie.

Vir 'n pakket met slegs 'n profiel, maak die argief oop en behandel elke ingebedde gasheernaam en sleutel as data waarvoor rekenskap gegee moet word. As die profiel enigiets herbruikbaars bevat, verander portaalverspreiding dit in 'n gedeelde geheim met 'n uitrolskedule.

Eienaarskap vasstel voor uitrol

Die laaste vraag het geen opdrag agter hom nie. Vind uit wie die artefak opdateer wanneer die verskaffer 'n nuwe kliënt lewer, wie die ondertekeningsleutel vir 'n interne bou hou, en hoe die profiel geroteer word wanneer 'n eindpunt skuif. Skryf daardie name langs die aflaaiskakel.

As niemand daardie antwoord besit nie, is die aflaai 'n verspreidingskanaal sonder 'n instandhoudingskontrak, en dit is die bevinding wat die moeite werd is om te rapporteer.

Verwante artikels