GNU/Linux >> Belajar Linux >  >> Linux

Memahami Hukum Linus untuk keamanan sumber terbuka

Pada tahun 2021, ada lebih banyak alasan mengapa orang menyukai Linux daripada sebelumnya. Dalam seri ini, saya akan membagikan 21 alasan berbeda untuk menggunakan Linux. Artikel ini membahas pengaruh Linux terhadap keamanan perangkat lunak sumber terbuka.

Keutamaan perangkat lunak open source yang sering dipuji adalah bahwa kodenya dapat ditinjau (atau "diaudit", seperti yang sering dikatakan oleh para profesional keamanan) oleh siapa saja dan semua orang. Namun, jika Anda benar-benar bertanya kepada banyak pengguna open source kapan terakhir kali mereka meninjau kode, Anda mungkin mendapatkan jawaban mulai dari tatapan kosong hingga gumaman malu. Selain itu, ada beberapa aplikasi open source yang sangat besar di luar sana, jadi mungkin sulit untuk meninjau setiap baris kode secara efektif.

Mengekstrapolasi dari kebenaran yang sedikit tidak menyenangkan ini, Anda harus bertanya-tanya:Ketika tidak ada yang melihat kodenya, apakah penting apakah kode itu terbuka atau tidak?

Haruskah Anda mempercayai open source?

Kami cenderung membuat asumsi basi dalam komputasi penghobi bahwa open source "lebih aman" dari apa pun. Kami tidak sering berbicara tentang apa artinya, apa dasar perbandingannya ("lebih" aman dari apa?), atau bagaimana kesimpulan itu dicapai. Ini adalah pernyataan yang berbahaya untuk dibuat karena menyiratkan bahwa selama Anda menyebut sesuatu open source , secara otomatis dan ajaib mewarisi keamanan yang ditingkatkan. Bukan itu yang dimaksud dengan open source, dan faktanya, itulah yang sangat ditentang oleh keamanan open source.

Anda tidak boleh menganggap aplikasi itu aman kecuali Anda telah mengaudit dan memahami kodenya secara pribadi. Setelah Anda melakukannya, Anda dapat menetapkan kepercayaan tertinggi ke aplikasi itu. Kepercayaan tertinggi bukanlah hal yang Anda lakukan di komputer; itu adalah sesuatu yang Anda lakukan dalam pikiran Anda sendiri:Anda memercayai perangkat lunak karena Anda memilih untuk percaya bahwa itu aman, setidaknya sampai seseorang menemukan cara untuk mengeksploitasi perangkat lunak itu.

Anda satu-satunya orang yang dapat menaruh kepercayaan tertinggi pada kode itu, jadi setiap pengguna yang menginginkan kemewahan itu harus mengaudit kode itu sendiri. Mengambil kata orang lain untuk itu tidak masuk hitungan!

Jadi, sampai Anda mengaudit dan memahami basis kode untuk diri Anda sendiri, tingkat kepercayaan maksimum yang dapat Anda berikan ke aplikasi adalah spektrum mulai dari kira-kira, tidak dapat dipercaya sama sekali untuk cukup dapat dipercaya . Tidak ada lembar contekan untuk ini. Ini adalah pilihan pribadi yang harus Anda buat untuk diri sendiri. Jika Anda pernah mendengar dari orang yang sangat Anda percayai bahwa suatu aplikasi aman, Anda mungkin lebih memercayai perangkat lunak tersebut daripada memercayai sesuatu yang tidak Anda rekomendasikan secara tepercaya.

Karena Anda tidak dapat mengaudit kode kepemilikan (non-sumber terbuka), Anda tidak akan pernah dapat menetapkannya kepercayaan tertinggi .

Hukum Linus

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Kenyataannya adalah, tidak semua orang adalah seorang programmer, dan tidak semua orang yang adalah seorang programmer memiliki waktu untuk mendedikasikan diri untuk meninjau ratusan dan ratusan baris kode. Jadi, jika Anda tidak akan mengaudit kode sendiri, maka Anda harus memilih untuk memercayai (sampai tingkat tertentu) orang yang melakukannya kode audit.

Jadi sebenarnya siapa yang mengaudit kode?

Hukum Linus menegaskan bahwa dengan bola mata yang cukup, semua serangga menjadi dangkal , tetapi kita tidak benar-benar tahu berapa banyak bola mata yang "cukup". Namun, jangan remehkan jumlahnya. Perangkat lunak sangat sering ditinjau oleh lebih banyak orang daripada yang Anda bayangkan. Pengembang atau pengembang asli jelas tahu kode yang mereka tulis. Namun, open source seringkali merupakan upaya kelompok, jadi semakin lama kode terbuka, semakin banyak pengembang perangkat lunak yang akhirnya melihatnya. Pengembang harus meninjau sebagian besar kode proyek karena mereka harus mempelajari basis kode untuk menulis fitur baru untuknya.

Pemasang open source juga terlibat dengan banyak proyek untuk membuatnya tersedia untuk distribusi Linux. Terkadang sebuah aplikasi dapat dikemas dengan hampir tidak mengenal kodenya, tetapi seringkali seorang pembuat paket terbiasa dengan kode proyek, baik karena mereka tidak ingin keluar dari perangkat lunak yang tidak mereka percayai dan karena mereka mungkin harus melakukan modifikasi untuk membuatnya dikompilasi dengan benar. Reporter dan triage bug juga terkadang terbiasa dengan basis kode saat mereka mencoba memecahkan anomali mulai dari kebiasaan hingga crash besar. Tentu saja, beberapa reporter bug secara tidak sengaja mengungkapkan kerentanan kode bukan dengan meninjaunya sendiri tetapi dengan memberi perhatian pada sesuatu yang jelas-jelas tidak berfungsi sebagaimana mestinya. Sysadmin sering kali sangat akrab dengan kode perangkat lunak penting yang diandalkan oleh pengguna mereka. Terakhir, ada peneliti keamanan yang menggali kode secara eksklusif untuk mengungkap potensi eksploitasi.

Kepercayaan dan transparansi

Beberapa orang berasumsi bahwa karena perangkat lunak utama terdiri dari ratusan ribu baris kode, pada dasarnya tidak mungkin untuk diaudit. Jangan terkecoh dengan banyaknya kode yang dibutuhkan untuk menjalankan aplikasi. Anda sebenarnya tidak perlu membaca jutaan baris. Kode sangat terstruktur, dan kelemahan yang dapat dieksploitasi jarang hanya satu baris yang tersembunyi di antara jutaan baris; biasanya ada seluruh fungsi yang terlibat.

Ada pengecualian, tentu saja. Terkadang kerentanan serius diaktifkan hanya dengan satu panggilan sistem atau dengan menautkan ke satu pustaka yang cacat. Untungnya, kesalahan semacam itu relatif mudah diketahui, berkat peran aktif peneliti keamanan dan database kerentanan.

Beberapa orang menunjuk ke pelacak bug, seperti situs Common Vulnerabilities and Exposures (CVE), dan menyimpulkan bahwa sebenarnya open source tidak aman. Lagi pula, ratusan risiko keamanan diajukan terhadap banyak proyek sumber terbuka, di tempat terbuka untuk dilihat semua orang. Namun, jangan biarkan hal itu membodohi Anda. Hanya karena Anda tidak bisa melihat kekurangan dalam perangkat lunak tertutup tidak berarti kekurangan itu tidak ada. Faktanya, kita tahu bahwa mereka melakukannya karena eksploitasi juga diajukan terhadap mereka. Perbedaannya adalah semua eksploitasi terhadap aplikasi open source tersedia untuk dilihat oleh pengembang (dan pengguna) sehingga kekurangan tersebut dapat dikurangi. Itu adalah bagian dari sistem yang meningkatkan kepercayaan pada sumber terbuka, dan sepenuhnya hilang dari perangkat lunak berpemilik.

Mungkin tidak akan pernah ada "cukup" perhatian pada kode apa pun, tetapi semakin kuat dan beragam komunitas di sekitar kode, semakin besar peluang untuk mengungkap dan memperbaiki kelemahan.

Kepercayaan dan orang-orang

Di sumber terbuka, kemungkinan banyak pengembang, yang masing-masing mengerjakan proyek yang sama, menyadari sesuatu tidak aman tetapi semua tetap sama-sama diam tentang cacat yang dianggap rendah karena manusia jarang setuju untuk bersekongkol dengan cara ini. Kami telah melihat bagaimana perilaku manusia yang terputus-putus akhir-akhir ini dengan mitigasi COVID-19:

  • Kita semua telah mengidentifikasi cacat (virus).
  • Kami tahu cara mencegah penyebarannya (tetap di rumah).
  • Namun virus terus menyebar karena satu atau lebih orang menyimpang dari rencana mitigasi.

Hal yang sama berlaku untuk bug dalam perangkat lunak. Jika ada cacat, seseorang yang mengetahuinya akan mengungkapkannya (tentu saja, asalkan seseorang melihatnya).

Namun, dengan perangkat lunak berpemilik, ada kemungkinan besar bahwa banyak pengembang yang mengerjakan proyek mungkin melihat sesuatu yang tidak aman tetapi tetap diam karena model berpemilik bergantung pada gaji. Jika seorang pengembang berbicara menentang suatu cacat, maka pengembang itu mungkin paling baik merusak reputasi perangkat lunak, sehingga menurunkan penjualan, atau paling buruk, dapat dipecat dari pekerjaan mereka. Pengembang yang dibayar untuk mengerjakan perangkat lunak secara rahasia cenderung tidak membicarakan kekurangannya. Jika Anda pernah bekerja sebagai pengembang, Anda mungkin telah menandatangani NDA, dan Anda telah diberi kuliah tentang pentingnya rahasia dagang, dan seterusnya. Perangkat lunak berpemilik mendorong, dan lebih sering memaksa, membungkam bahkan dalam menghadapi kekurangan yang serius.

Kepercayaan dan perangkat lunak

Jangan percaya perangkat lunak yang belum Anda audit.

Jika Anda harus memercayai perangkat lunak yang belum diaudit, pilihlah untuk memercayai kode yang diekspos ke banyak pengembang yang secara independen cenderung berbicara tentang kerentanan.

Open source pada dasarnya tidak lebih aman daripada perangkat lunak berpemilik, tetapi sistem yang ada untuk memperbaikinya jauh lebih baik direncanakan, diimplementasikan, dan dikelola.


Linux
  1. 10 Browser Web Ringan Open Source untuk Linux

  2. 10 Software Akuntansi Open Source Terbaik untuk Linux

  3. Dapatkan Kode Sumber untuk Perintah Linux apa pun

  1. VSCodium – Kode Visual Studio Open Source Tanpa Pelacak

  2. Pixelorama – Editor Sumber Terbuka untuk Pixel Art

  3. Alasan untuk tidak menggunakan chmod -R 777 di server internal untuk kode sumber proyek?

  1. 4 alat sumber terbuka untuk menjalankan server Linux

  2. Faucet:Pengontrol SDN sumber terbuka untuk jaringan produksi berkecepatan tinggi

  3. 5 game simulasi dan strategi open source untuk Linux