Satu temu bual dengan OSTIF, pasukan di belakang audit OpenVPN
Anda baru saja menyelesaikan audit keselamatan OpenVPN anda. Dua orang bekerja selama hampir dua bulan dalam projek ini. Bagaimana kerja audit sedemikian?
Ia sebenarnya menjadi tiga penyelidik yang bekerja selama 50 hari (kira-kira 1000 jam) mengenai kajian keselamatan.
Apabila kami merancang untuk mengaudit sebidang perisian, ada banyak kerja yang berlaku di sekitar merancang masa audit, yang akan melakukan kerja, dan bidang-bidang yang akan kami tutupi.
Untuk OpenVPN, kami menunggu sehingga pembebasan OpenVPN 2.4 yang memaparkan beberapa perubahan kod utama. Kami kemudiannya dapat menilai ciri-ciri baru, serta banyak perubahan di bawah.
Kemas kini yang mengandungi perubahan kod penting adalah masa yang baik untuk menilai perisian kerana ralat pengekodan boleh membuatnya melalui ujian, atau regresi pada ciri-ciri kelebihan mungkin menyelinap melalui retak.
OpenVPN adalah perisian unik, kerana ia adalah kod monolitik dengan banyak ciri yang mesti serasi dengan versi yang lebih lama. Memastikan keserasian legasi melambatkan proses semakan keselamatan. Kita perlu menavigasi fungsi web yang kompleks dan bukannya dalam reka bentuk modular di mana aplikasi boleh dinilai dalam ketulan. OpenVPN juga bergantung pada dua perpustakaan yang berlainan (OpenSSL dan PolarSSL) untuk kriptografi, yang bermaksud bahawa terdapat dua crypto-persekitaran yang sama sekali berbeza yang menjanakan keselamatan.
Lebih jauh lagi, ada OpenVPN 3.0 yang merupakan versi unik yang tidak sepenuhnya terbuka. OpenVPN 3.0 telah dicipta kerana isu pelesenan dengan gedung Apple App yang menghalang perisian percuma di kedai. Kod OpenVPN 3.0 digunakan untuk OpenVPN Connect untuk Android dan iOS. Jika kita menilai keseluruhan ekosistem ini, ia akan mengambil banyak penyelidik beberapa bulan untuk menyisir melalui semua variasi OpenVPN ini, dan kemudian mereka masih perlu mempertimbangkan semua konfigurasi rangkaian dan perkakasan yang pelbagai ini boleh dihadapi oleh pelbagai aplikasi. Kerumitan dan kos akan menjadi sangat besar.
Kami berunding dengan pakar dan bekerja dengan pasukan OpenVPN dan QuarksLab untuk mencari fokus. Telah diputuskan bahawa OpenVPN 2.4 untuk Windows dan Linux meliputi kebanyakan pengguna dan akan melakukan yang paling baik. Kebanyakan penyedia VPN komersial menggunakan kod OpenVPN 2.4 untuk pelanggan VPN khusus mereka kerana struktur lesen di sekelilingnya.
Kami juga memutuskan untuk memberi tumpuan kepada apa-apa kriptografi yang dibuat oleh OpenVPN sendiri, dan keselamatan aplikasi. Ini bermakna mencari kesalahan logik, kesilapan peruntukan memori, pengendalian penampan yang tidak betul, atau kelemahan keadaan kesilapan yang lain.
Audit berasingan OpenSSL akan membolehkan kami menilai dengan teliti kriptografi OpenVPN itu sendiri untuk memastikan bahawa kedua-dua kriptografi dan aplikasi itu adalah baik. Adalah penting untuk mewujudkan aplikasi yang selamat dan sukar untuk mengeksploitasi bagi pengguna untuk menikmati.
Bagi proses pengauditan sebenar, QuarksLab melakukan tugas yang sangat baik untuk mendokumentasikan proses dan alat yang digunakan ketika menilai perisian. Kerja kami memberi tumpuan kepada perancangan skop audit dan menetapkan matlamat yang boleh dicapai. Kami kemudian menganjurkan sumber terbuka, keselamatan, dan komuniti privasi di sekitar sebab untuk menaikkan wang untuk menyelesaikannya.
Adakah terdapat sebarang penemuan yang mengejutkan / penting dari audit anda yang anda dapat berkongsi dengan kami sekarang?
Kami berada di peringkat pemecahan proses audit OpenVPN supaya saya tidak dapat membincangkan apa yang spesifik yang mungkin memberi petunjuk kepada orang ramai, tetapi mereka akan tersedia secara terbuka tidak lama lagi. Kami sedang menunggu OpenVPN 2.4.2.
Apakah rasional di belakang audit sedemikian? Adakah anda sedang dilepaskan ke lubang keselamatan yang berpotensi, atau anda hanya ingin melihat lebih dekat pada perisian yang anda kerap bergantung?
Strategi kami sebagai organisasi adalah untuk melindungi kawasan keselamatan dan privasi yang berbeza dan memilih aplikasi yang digunakan secara meluas.
VeraCrypt adalah pengganti yang sangat diperlukan untuk TrueCrypt, yang masyarakat sangat bergantung pada, tetapi orang yang menjalankan projek itu agak tidak diketahui dan mengambil projek besar-besaran dengan kod kompleks. Ia membuat makna logik untuk mendekatinya sebagai audit pertama kami kerana kami dapat menilai perubahan pada kod yang masuk ke TrueCrypt 7.1a dan membandingkannya dengan versi semasa VeraCrypt. Skop sempit ini membolehkan kami untuk mengurangkan kos secara mendadak dan menunjukkan kepada orang bahawa organisasi itu berkesan mendapatkan hasil.
OpenVPN adalah audit pertama kami “luas” permohonan. Ia memerlukan anggaran yang lebih besar tetapi juga mempunyai komuniti pembekal VPN yang besar (yang sendiri adalah aktivis privasi). Penyedia VPN berminat dalam privasi pengguna mereka dan secara langsung mengambil berat tentang keselamatan OpenVPN yang membolehkan kami mengumpul dana daripada kepentingan komersil OpenVPN dan pengguna persendirian secara serentak.
OpenSSL lebih besar lagi, tetapi mempunyai sokongan industri di sekelilingnya, seperti kod OpenSSL (dan perpustakaan lain yang diperoleh daripadanya) menguasai sekitar 70% daripada 1,000,000 laman web teratas. Ini memberi kita banyak minat perniagaan yang boleh kita minta pembiayaan untuk membantu menilai OpenSSL 1.1.1, yang akan menjadi versi OpenSSL pertama dengan kod TLS 1.3 baru.
Apabila kita pergi ke bawah senarai permohonan yang kami merancang untuk mengaudit; ia menjadi lebih sukar untuk mengumpul dana. Sama ada kerana komuniti di sekitarnya lebih kecil, atau kerana tidak ada kepentingan perniagaan dalam kejayaan permohonan itu.
Kami berharap bahawa selepas kejayaan yang berulang-ulang kami dapat memperoleh penaja korporat yang lebih besar yang akan membolehkan kami mengarahkan dana secara lebih efisien ke arah projek-projek ini tanpa bergantung sepenuhnya kepada sumbangan awam yang kecil. Ini juga akan membantu kami untuk membina program kami yang lain, yang melibatkan kerja-kerja dengan projek-projek untuk menjadikan aplikasi mereka lebih mudah digunakan, memperbaiki kaedah dan alat ujian, dan penciptaan panduan yang mudah diikuti untuk perisian privasi dan keselamatan yang kami dukung.
Singkatnya, sekarang ini semua adalah sebahagian daripada strategi yang lebih besar untuk menyokong satu aplikasi dari setiap kawasan utama privasi dan keselamatan, kemudian berkembang dari situ. Kriteria kami ialah kekuatan perisian yang dipertimbangkan, digabungkan dengan penggunaan yang meluas.
Untuk projek OpenVPN anda, anda telah menerima sokongan sebahagian besarnya daripada industri VPN. Adakah anda mengharapkan sokongan melebihi itu? Berpuas hati dengan sokongan ini?
Kami juga menerima sejumlah besar sokongan daripada masyarakat baik dari mulut ke mulut dan derma langsung.
Matlamat kami telah melepasi dengan mengejutkan dengan cepat, seperti yang kami pada awalnya percaya bahawa tingkap 1 bulan yang kami peruntukkan untuk menaikkan dana tidak mencukupi. Tetapi kami lulus matlamat kami dan dibesarkan dengan lebih daripada yang dirancang dalam masa 20 hari. Wang itu diketepikan untuk program bug-bounty yang dirancang untuk bermula pada musim panas / musim gugur.
Saya terkejut dengan sambutan masyarakat yang positif dan pencurahan sokongan untuk projek itu. Ia benar-benar luar biasa! Saya sangat gembira dengan sokongan komuniti untuk projek itu, tetapi juga terkejut dengan bilangan organisasi yang lebih besar yang tidak menjawab pertanyaan kami atau tidak mempunyai sebarang hubungan sama sekali untuk pengurusan mereka.
Walau bagaimanapun, keseluruhan yang baik jauh lebih buruk daripada yang buruk, dan kami berharap dapat bekerja dengan semua penyokong kami mengenai inisiatif OpenVPN dan seterusnya!
Anda telah berpindah dari model pengumpulan dana dengan sumber yang dikumpulkan ke model pengumpulan dana langsung, di mana anda mengumpulkan dana untuk setiap projek secara berasingan. Ini seolah-olah telah bekerja dengan baik untuk projek OpenVPN, di mana industri VPN gembira dapat menderma. Adakah anda menjangkakan projek masa depan akan dibiayai sama, dan bagaimanakah kerja ini untuk projek perisian yang tidak mempunyai industri komersil di sekelilingnya, seperti OTR?
Perubahan dalam model pendanaan adalah disebabkan oleh maklum balas daripada komuniti mengenai kejutan stiker. Semasa pusingan penggalangan dana pertama kami, kami merancang satu tahun aktiviti dan kemudian cuba mengumpul usaha melalui KickStarter. Ini membawa kepada rintangan kewangan, seperti menawarkan ganjaran untuk sumbangan, yuran KickStarter, dan perkhidmatan pembayaran yang memungut wang daripada sumbangan. Selain itu, 8 projek yang dirancang digabungkan mendorong matlamatnya dengan baik kepada berjuta-juta dolar. Sebagai pendatang baru kepada industri tanpa rekod prestasi, sejumlah besar wang yang terlibat, dan selepas beberapa kegagalan KickStarter yang menonjol, ia ditakdirkan dari awal.
Peralihan strategi kami membawa overhead dan nombor ke bumi dan menetapkan lebih banyak matlamat yang boleh dicapai, tetapi ia juga memerlukan lebih banyak kerja untuk setiap fundraise. Kami berharap bahawa selepas membina reputasi tanggungjawab dan keberkesanan, kami akan dapat mendapatkan penderma yang lebih besar yang akan membolehkan kami memberi tumpuan lebih kepada mendapatkan perkara yang dilakukan dan kurang untuk meminta secara langsung sumbangan. Derma yang lebih besar juga akan mendapat faedah tambahan untuk membolehkan kami membiayai projek menarik yang kurang menarik seperti OTR, Nginx, Tunnelblick, dan banyak lagi..
Bagaimanakah anda melihat teknologi privasi dan peningkatan keselamatan berkembang? Khususnya mengenai telefon bimbit dan sistem proprietari?
Kami telah berulang kali melihat melalui pelbagai kebocoran agensi kerajaan bahawa jika kriptografi di sekitar maklumat itu baik, mereka tidak dapat memecahkannya secara massal.
Fakta ini sekurang-kurangnya melumpuhkan “pengawasan di semua orang” bentuk pemantauan besar-besaran yang telah menjadi berleluasa dalam beberapa tahun kebelakangan ini. Oleh kerana alat privasi ini terus bertambah baik dan crypto menjadi lebih sukar untuk dipecahkan dan lebih mudah digunakan, kami akan melihat peningkatan yang ketara untuk menyerang dan mengompromikan peranti.
Terdapat bukti tentang ini melalui pencurian besar kad SIM dengan Gemalto, senarai besar kunci RSA yang dicuri dalam kebocoran NSA, backdoors dimasukkan ke dalam sistem Cisco dan Juniper, dan sebagainya.
Masyarakat keselamatan telah lama memanggil “tumpukan penuh” kod sumber terbuka yang mengelilingi peranti yang memegang maklumat paling peribadi kami. Rintangan terbesar sekarang adalah pembiayaan dan menganjurkan sokongan untuk benar-benar melakukannya.
Sesetengah syarikat kelihatannya melakukan kerja yang hebat di sisi proprietari, tetapi kami telah berulang kali mengetahui bahawa kami tidak boleh mempercayai kotak hitam kod. Lihat bulan ini limpahan timbunan di iOS: https://googleprojectzero.blogspot.com/2023/04/exception-oriented-exploitation-on-ios.html
Android mempunyai banyak isu berkaitan ekosistem yang berkaitan dengan kemas kini yang ketinggalan, mewujudkan berjuta-juta peranti yang mudah terjejas. Atau syarikat-syarikat secara tidak sengaja menghentikan kemas kini untuk telefon mereka sehenti penjualan. Kemudian terdapat masalah yang lebih mendalam seperti firmware radio Broadcom terdedah yang tidak akan tetap, seperti yang baru-baru ini ditunjukkan oleh Project Zero.
Telefon pintar yang benar-benar terbuka adalah permintaan yang besar, tetapi kita pasti boleh cuba untuk mendorong komuniti sumber terbuka ke arah yang betul untuk mengembangkan kepingan teka-teki secara bebas. Saya benar-benar berharap bahawa kita boleh sampai ke sana, kerana situasi semasa adalah keadaan yang kacau. Saya terkejut bahawa belum ada Mirai berasaskan telefon pintar mengetuk menara sel di seluruh dunia dengan data banjir.
Apple telah membuat banyak berita positif dengan sistem proprietinya mengenai keselamatan dan privasi. Apa yang anda fikir akan membuka projek sumber terbuka dalam membawa teknologi yang boleh digunakan kepada orang ramai semasa menghormati hak pengguna?
Apple telah meletakkan sumber yang besar untuk membina ekosistem telefon yang memberi tumpuan kepada keselamatan. Masalahnya adalah bahawa Apple tidak membuka sumber teknologi ini, jadi kami berhadapan dengan masalah yang sama yang menghantam perisian komersial, seperti Windows.
Kami mempunyai kotak hitam dengan jutaan garisan kod yang tidak diketahui kualiti, semua berinteraksi dengan satu sama lain dengan cara yang diketahui. Apple bergantung kepada ketidakupayaan pembuat malware dan penyelidik keselamatan untuk membina semula kod mereka dan mencari kelemahan. Sebahagian daripada motivasi ini adalah untuk mengunci perisian ke telefon, supaya IOS hanya boleh dipasang pada perkakasan Apple tulen. Motivasi lain adalah mengunci telefon ke perisian tersebut, jadi anda tidak boleh membeli iPhone dan meletakkan sistem operasi alternatif di atasnya, memelihara keupayaan mereka untuk menarik wang melalui kedai aplikasi dengan penonton tawanan.
Untuk menjadi jelas, pada masa ini, mereka melakukan pekerjaan secara objektif secara objektif daripada Google apabila ia datang kepada keselamatan umum. Masalahnya ialah kotak hitam ini tidak boleh dipercayai. Ia mempunyai pepijat seperti semua perisian-beribu-ribu bug. Oleh kerana perisian ini adalah proprietari dan sumber tidak tersedia, pepijat itu terletak menunggu penemuan oleh pasukan keselamatan Apple, atau orang lain di dunia yang mendapati mereka terlebih dahulu.
Perisian Open Source boleh dikaji semula. Ia menghilangkan “hanya mempercayai saya” menanyakan bahawa tidak ada orang yang berminat untuk menerima secara objektif.
Saya berharap bahawa Google bergerak ke arah Apple dalam kemas kini yang akan dipaksa merentas semua peranti tanpa mengira vendor, dan keperluan perkakasan perlu diperketat untuk membuatnya berlaku. Saya juga berharap kita dapat membuka sumber bahagian-bahagian firmware Google yang sedang ditutup dan pemandu yang berkaitan supaya kita boleh mempercayai tumpukan penuh telefon bergantung kepada keselamatan. Itu akan meletakkan penyelesaian terbuka dalam kedudukan untuk memimpin pasaran dengan amalan keselamatan dan privasi yang baik.
Anda kelihatan banyak pada kod orang lain. Apakah kesilapan biasa yang anda perhatikan? Apakah jenis bug yang paling biasa?
Saya sebenarnya tidak melakukan semakan keselamatan diri, yang diserahkan kepada juruaudit kontrak. Tetapi isu yang paling biasa adalah masalah dengan pengurusan ingatan, dan pemadaman yang betul terhadap data berkaitan keselamatan apabila ia tidak lagi digunakan.
Kesalahan besar yang lain cuba menulis kriptografi anda sendiri. Ia amat rumit, dan terdapat banyak cara untuk mengalahkan kriptografi yang telah dicipta sejak beberapa dekad yang lalu. Anda perlu mempertimbangkan dengan teliti semua dan mematuhi banyak piawaian untuk mewujudkan kriptografi yang kuat. Menggunakan perpustakaan yang mematuhi sepenuhnya mengelakkan lombong keselamatan ini sepenuhnya.
Adakah anda mempunyai nasihat untuk dikongsi dengan banyak coders yang membaca ini?
Menyokong keselamatan sumber terbuka atau inisiatif privasi. Sukarela masa dan pengetahuan anda sebagai pengkod adalah sangat berharga, walaupun anda hanya melakukan satu komit setiap bulan untuk projek yang layak.
Jumlah kebolehan dan masa komuniti menambah sehingga aplikasi yang dapat mengubah internet dan dunia untuk lebih baik. Jika anda tidak mempunyai latar belakang keselamatan, buat sumbangan berulang kecil kepada organisasi yang membantu membina dan memperbaiki alat dan perpustakaan ini. Saya bukan hanya bercakap tentang OSTIF, saya bercakap tentang Yayasan Perisian Bebas, atau mana-mana orang yang menyumbangkan butang yang anda lihat apabila anda memuat turun sekeping perisian sumber terbuka.
Anda akan terkejut berapa banyak dolar membantu fungsi projek kecil dan bertambah baik. Sumbangan kecil menambah dunia digital yang lebih baik untuk kita semua.