Ochiq kodli VPN mijozi: kod nimani isbotlaydi va nimani isbotlay olmaydi
Ommaviy repozitoriy manba kod haqida dalil, siz o'rnatgan build yoki uning orqasidagi serverlar haqida emas. Relizni moslashtiring, so'ng tekshiruvni kengaytiring.
Manba e'lon qilingan, litsenziya toza, va ulanish hali ham boshidan oxirigacha tekshirilmaydi. Bu bo'shliq odatiy va bu janjal emas. Kodni e'lon qilish bitta komponentni taklif qilinmagan odamlarga tekshirish imkonini beradi, va bu haqiqiy hamda g'ayrioddiy xususiyat. Bundan siz o'rnatgan binariy o'sha koddan kelgan degan xulosa chiqmaydi, yoki provayder narigi tomonda ishlatadigan biror narsa umuman tekshirilgan degan ham xulosa chiqmaydi.
Komponentni mahsulotdan ajrating
To'rt narsa ochiq kod yorlig'ini olishi mumkin va ularning hammasi ochiq bo'lishi kamdan-kam. Odamlar nazarda tutadigan narsa — mijoz ilovasi. Uning ostidagi protokol tatbiqi boshqa artefakt, ba'zan kutubxona va ba'zan daraxt ichidagi kod. Server dasturiy ta'minoti uchinchi, provayderning o'z infratuzilmasi, hisob portali va qo'llab-quvvatlash vositalari to'rtinchi. Har biri mustaqil ravishda ochiq yoki yopiq bo'lishi mumkin.
Shuning uchun "ilovamiz ochiq kodli" kabi bayonotlar birinchi bandni tavsiflaydi va qolganini javobsiz qoldiradi, bu insofsizlik emas, balki ko'proq toifa siljishi. Foydali savol: qaysi repozitoriy, qaysi tegda, siz tayanadigan komponentga mos keladi.
Bu farq, shuningdek, bir xil ochiq mijozlarga ega ikki mahsulot nega juda boshqacha kafolatlar bera olishini tushuntiradi. Mijoz siz tekshira oladigan qism; operatorning xatti-harakati boshqa usullar bilan baholashingiz kerak bo'lgan qism.
O'rnatilgan buildni e'lon qilingan teg bilan moslashtiring
Repozitoriy niyatning yozuvi; diskingizdagi binariy ishlaydigan narsa. Bu bo'shliqni yopish mexanik mashq, va u yuklab olish sahifasi reklama qilgan narsani emas, aynan nima o'rnatilganini aniqlashdan boshlanadi.
| Component | What inspection can show | What it leaves untouched |
|---|---|---|
| Client source | How profiles, packets and optional telemetry are handled | Whether the shipped binary matches that source |
| Build output | Whether a declared build reproduces a matching artefact | Whether the source is correct or the toolchain is clean |
| Server software | What the implementation is capable of logging | What the operator actually configures and retains |
| Account and support systems | Almost nothing, unless they are separately published | Everything about how those systems treat your data |
Paket metama'lumotlari versiya va kelib chiqishni aytadi, bu eskirgan yoki almashtirilgan paket kabi oddiy holatni istisno qiladi. Ular paket qanday kompilyatsiya qilinganini aytmaydi, va aynan shu savolga javob berish uchun qayta tiklanadigan buildlar mavjud. Qayta tiklanadigan buildlar mustaqil tomonga bir xil manbadan qayta qurish va natijani bayt-bayt solishtirish imkonini beradi, shu tariqa nomuvofiqlik shubha emas, dalilga aylanadi.
Hatto mukammal moslik ham odamlar kutganidan kamroq narsani isbotlaydi. Bu artefakt manba va build retseptiga mos kelishini ko'rsatadi, manbaning nuqsonsizligini yoki ishlatilgan vositalar zanjirining ishonchliligini emas. Ikkalasini bilish arziydi, lekin bular boshqa da'volar.
dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wgAlomat odatda qayerdan boshlanadi
Bu o'qishga sabab bo'ladigan shikoyat kamdan-kam "kod yopiq" bo'ladi. Odatda bu aniq kuzatuv: kutilmagan joyga qo'ng'iroq qiladigan mijoz, reliz eslatmalaridan farq qiladigan versiya, yoki tunnelga kerak bo'lganidan ko'proq talab qiladigan qo'llab-quvvatlash jarayoni. Bu nuqtalarning har biri boshqa komponentga ishora qiladi.
Mijozdan kutilmagan tarmoq trafigi mijoz manba kodi masalasi, va ulanishni ochadigan kod yo'lini o'qish bilan javob berish mumkin. Versiya nomuvofiqligi qadoqlash masalasi. Shaxsni tasdiqlovchi hujjatlarni talab qiladigan qo'llab-quvvatlash jarayoni hisob tizimi masalasi, va hech qanday mijoz auditi buni hal qilmaydi.
Komponentni nomlash noaniq ishonchsizlikni aniq tekshiruvga aylantiradi. Aniq tekshiruvga javob berish, u bilan bahslashish yoki uni yopish mumkin. Muqobil — keyingi qadamsiz doimiy shubha.
Tekshiruv nimaga yetib bora olmaydi va buning o'rniga nima qilish kerak
Provayder serverlarida saqlash mijozning imkoniyatidan tashqarida. To'lov portali, firibgarlikni tekshiruvchi yetkazib beruvchi yoki ilovalarni saqlovchi qo'llab-quvvatlash stolining xatti-harakati ham shunday. "Biz xizmatni audit qildik" darajasiga cho'zilgan mijoz tekshiruvi dalillar qo'llab-quvvatlamaydigan da'vo qiladi.
Operator saqlash va so'rovlar haqida e'lon qilganini o'qing, sanani belgilang, va bunga o'lchov emas, manfaatdor tomon bayonoti sifatida qarang. Bu dalilning kuchsizroq shakli, va farqni ochiq aytish uni qayta hikoya qilishda yuksaltirishdan foydaliroq.
So'ng qo'lingizdagini bir nechta kirishlardan biri sifatida ishlating: o'rnatilgan relizning identifikatsiyasi, dasturiy ta'minotga xizmat ko'rsatiladimi, mijoz qanday sozlangan, va operator o'z tizimlari haqida nima deydi. Ochiq kod bu baholashni bir nuqtada kuchaytiradi. U qolganini almashtirmaydi.
Audit da'vosi har doim o'z komponentlari va versiyalarini nomlashi kerak. Agar hisobot qaysi repozitoriy va qaysi buildni tekshirganini ayta olmasa, u mahsulotni emas, niyatni tasvirlaydi.