Tombol unduh portal VPN mengembalikan tepat satu file, dan file itu bisa berupa dua hal yang sangat berbeda: penginstal siap pakai dari vendor dengan profil konfigurasi yang ikut bersamanya, atau build yang disusun sendiri oleh organisasi. Halamannya terlihat sama pada kedua kasus, jadi tombol tidak bisa memberi tahu Anda yang mana yang Anda miliki. Di baliknya ada tiga pertanyaan — siapa yang menerbitkan file yang dapat dieksekusi, konfigurasi apa yang ditulis oleh instalasi, dan siapa yang memperbaikinya saat rilis klien berikutnya tiba. Anda menjawab yang pertama dari metadata artefak, yang kedua dari isi paket, dan yang ketiga hanya dari tim yang memiliki penerapan.

Gembok peramban menutupi pemindahan, bukan artefak.

Apa yang sebenarnya dikembalikan titik akhir unduhan

Sebagian besar portal menyerahkan permintaan unduhan kepada penangan kecil yang entah mengalirkan file tersimpan atau menyusun file saat itu juga, lalu menetapkan nama file dan tipe konten sebelum respons berangkat. Yang tiba adalah kontainer: MSI, PKG, DEB, atau RPM, atau pembungkus yang mengekstrak sendiri di sekitar salah satunya. Di dalamnya ada biner klien, dan tidak ada apa pun dalam nama file yang dapat dipercaya mengatakan apakah biner itu berasal dari vendor atau dari alur build internal. File bernama client-setup.exe mencatat keputusan penamaan, bukan fakta asal-usul.

Bandingkan byte yang diunduh dengan checksum yang diterbitkan vendor. Ketidakcocokan tidak membuktikan niat jahat; itu membuktikan file tersebut bukan build vendor, dan itulah perbedaan yang layak ditindaklanjuti.

Di mana profil masuk ke klien

Setelan yang telah terisi sebelumnya biasanya bepergian sebagai file terpisah yang disalin penginstal ke jalur per pengguna atau per mesin: profil JSON atau XML di Windows, profil konfigurasi di macOS, fragmen di bawah /etc di Linux. Nilai dalam file itu — nama host gateway, jangkar kepercayaan, kadang materi pendaftaran — menjadi default klien saat peluncuran pertama. Itulah sebabnya satu unduhan dapat membawa rahasia sekaligus kode.

Tanyakan apa yang dilakukan jalur peningkatan dengan profil. Bergantung pada pengemasan, profil dapat bertahan dari pembaruan klien, ditimpa olehnya, atau gagal validasi skema di versi baru.

Apa yang tidak dibuktikan rantai tanda tangan

Penandatanganan kode mengikat identitas penerbit ke hash file, dan di Windows stempel waktu Authenticode memungkinkan tanda tangan hidup lebih lama daripada sertifikat yang membuatnya. Hasil yang valid menjawab dua pertanyaan: penerbit mana yang menandatangani byte ini, dan apakah byte itu berubah setelahnya. Ini tidak menghitung layanan penginstal, penulisan registri, atau driver bawaan, dan tidak memutuskan apakah penerbit itu boleh dipercaya di sini. Dokumentasi Authenticode dari Microsoft menjelaskan mekanisme dan bersikap tegas tentang cakupan sempit itu.

Autentikasi portal menjawab pertanyaan ketiga: bahwa sesi mencapai server yang dimaksud. Tiga pemeriksaan berbeda, tiga mode kegagalan berbeda.

Verifikasi artefak sebelum siapa pun menjalankannya

Letakkan file di mesin terisolasi dan baca metadatanya sebelum menjalankan apa pun. Perintah ini menjawab pertanyaan penerbit di tiga platform utama.

# 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

Baca subjek penanda tangan, bukan hanya kata status. Otoritas sertifikat internal yang menandatangani build internal adalah hal yang wajar; sertifikat yang sama pada paket yang mengklaim sebagai rilis vendor tidak.

Untuk paket hanya profil, buka arsip dan perlakukan setiap nama host dan kunci yang tertanam sebagai data yang harus dipertanggungjawabkan. Jika profil memuat sesuatu yang dapat dipakai ulang, distribusi portal mengubahnya menjadi rahasia bersama dengan jadwal peluncuran.

Menetapkan kepemilikan sebelum peluncuran

Pertanyaan terakhir tidak punya perintah di belakangnya. Cari tahu siapa yang memperbarui artefak saat vendor mengirim klien baru, siapa yang memegang kunci penandatanganan untuk build internal, dan bagaimana profil dirotasi saat titik akhir berpindah. Tulis nama-nama itu di samping tautan unduhan.

Jika tidak ada yang memiliki jawaban itu, unduhan adalah saluran distribusi tanpa kontrak pemeliharaan, dan itulah temuan yang layak dilaporkan.

Artikel terkait