Kod sumber diterbitkan, lesen bersih, dan sambungan masih tidak dapat disahkan dari hujung ke hujung. Jurang itu biasa, dan ia bukan skandal. Menerbitkan kod menjadikan satu komponen boleh diperiksa oleh orang yang tidak dijemput, dan itu sifat sebenar yang luar biasa. Daripada itu tidak bermakna binari yang anda pasang datang daripada kod tersebut, atau bahawa apa-apa yang dikendalikan penyedia di sebelah sana telah disemak sama sekali.

Asingkan komponen daripada produk

Empat perkara boleh membawa label sumber terbuka, dan jarang semuanya terbuka. Aplikasi klien ialah yang dimaksudkan orang. Pelaksanaan protokol di bawahnya ialah artifak lain, kadangkala pustaka dan kadangkala kod dalam pokok. Perisian pelayan ialah yang ketiga, dan infrastruktur penyedia sendiri, portal akaun serta alat sokongan ialah yang keempat. Setiap satunya boleh terbuka atau tertutup secara berasingan.

Justeru kenyataan seperti "apl kami sumber terbuka" menerangkan item pertama dan membiarkan selebihnya tanpa jawapan, yang bukan ketidakjujuran tetapi lebih kepada gelinciran kategori. Soalan yang berguna ialah repositori mana, pada tag mana, sepadan dengan komponen yang anda bergantung padanya.

Perbezaan itu juga menjelaskan mengapa dua produk dengan klien terbuka yang sama boleh menawarkan jaminan yang sangat berbeza. Klien ialah bahagian yang boleh anda periksa; tingkah laku pengendali ialah bahagian yang perlu anda nilai dengan cara lain.

Padankan binaan yang dipasang dengan tag yang diterbitkan

Repositori ialah rekod niat; binari pada cakera anda ialah yang berjalan. Menutup jurang itu ialah latihan mekanikal, dan ia bermula dengan mengenal pasti apa sebenarnya yang dipasang, bukan apa yang diiklankan halaman muat turun.

ComponentWhat inspection can showWhat it leaves untouched
Client sourceHow profiles, packets and optional telemetry are handledWhether the shipped binary matches that source
Build outputWhether a declared build reproduces a matching artefactWhether the source is correct or the toolchain is clean
Server softwareWhat the implementation is capable of loggingWhat the operator actually configures and retains
Account and support systemsAlmost nothing, unless they are separately publishedEverything about how those systems treat your data

Metadata pakej memberitahu versi dan asal usul, yang menyingkirkan kes mudah pakej lapuk atau diganti. Ia tidak memberitahu bagaimana pakej itu dikompil, dan soalan itulah yang wujud untuk dijawab oleh binaan boleh hasil semula. Binaan boleh hasil semula membolehkan pihak bebas membina semula daripada sumber yang sama dan membandingkan output bait demi bait, supaya ketidakpadanan menjadi bukti, bukan syak.

Malah padanan sempurna membuktikan kurang daripada yang diharapkan orang. Ia menunjukkan artifak sepadan dengan sumber dan resipi binaan, bukan bahawa sumber itu bebas kecacatan, dan bukan bahawa rantaian alat yang digunakan boleh dipercayai. Kedua-duanya wajar diketahui, tetapi ia dakwaan yang berbeza.

dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wg

Dari mana gejala biasanya bermula

Aduan yang mencetuskan bacaan ini jarang berbunyi "kod itu tertutup". Biasanya ia pemerhatian khusus: klien yang menghubungi tempat yang tidak dijangka, versi yang berbeza daripada nota keluaran, atau proses sokongan yang meminta lebih daripada yang sepatutnya diperlukan oleh terowong. Setiap titik itu menunjuk komponen yang berbeza.

Trafik rangkaian tidak dijangka daripada klien ialah persoalan kod sumber klien, dan ia boleh dijawab dengan membaca laluan kod yang membuka sambungan. Ketidakpadanan versi ialah persoalan pembungkusan. Proses sokongan yang meminta dokumen pengenalan diri ialah persoalan sistem akaun, dan tiada audit klien akan menyelesaikannya.

Menamakan komponen mengubah ketidakpercayaan kabur menjadi pemeriksaan khusus. Pemeriksaan khusus boleh dijawab, dipertikaikan atau ditutup. Alternatifnya ialah syak berterusan tanpa langkah seterusnya.

Apa yang tidak dapat dicapai oleh semakan, dan apa yang perlu dilakukan sebaliknya

Pengekalan pada pelayan penyedia di luar jangkauan klien. Begitu juga tingkah laku portal pengebilan, vendor pemeriksa penipuan atau meja sokongan yang menyimpan lampiran. Semakan klien yang diregangkan sehingga "kami mengaudit perkhidmatan itu" membuat dakwaan yang tidak disokong bukti.

Baca apa yang diterbitkan pengendali tentang pengekalan dan permintaan, catat tarikhnya, dan anggap ia sebagai kenyataan pihak berkepentingan, bukan pengukuran. Itu bentuk bukti yang lebih lemah, dan menjelaskan perbezaannya lebih berguna daripada menaikkannya semasa menceritakannya semula.

Kemudian gunakan apa yang anda ada sebagai salah satu daripada beberapa input: identiti keluaran yang dipasang, sama ada perisian itu diselenggara, bagaimana klien dikonfigurasikan, dan apa yang dikatakan pengendali tentang sistemnya sendiri. Kod terbuka menguatkan penilaian itu pada satu titik. Ia tidak menggantikan selebihnya.

Dakwaan audit harus sentiasa menamakan komponen dan versinya. Jika laporan tidak dapat menyatakan repositori dan binaan mana yang diperiksa, ia menerangkan niat, bukan produk.

Artikel berkaitan