Beberapa pengembang mengotori perangkat lunak sumber terbuka

gettyimages-1159346361-kode-berbahaya-tengkorak-tulang bersilang.jpg

Getty Images

Salah satu hal yang paling menakjubkan tentang open-source bukanlah menghasilkan perangkat lunak yang hebat. Itu karena begitu banyak pengembang mengesampingkan ego mereka untuk membuat program hebat dengan bantuan orang lain. Sekarang, bagaimanapun, segelintir programmer menempatkan keprihatinan mereka sendiri di atas kebaikan banyak dan berpotensi merusak perangkat lunak open-source untuk semua orang.

Misalnya, pengelola paket JavaScript RIAEvangelist, Brandon Nozaki Miller, menulis dan menerbitkan paket kode sumber npm open-code yang disebut peacenotwar. Itu tidak banyak tetapi mencetak pesan untuk perdamaian ke desktop. Sejauh ini, sangat tidak berbahaya. 

Miller kemudian memasukkan kode berbahaya ke dalam paket untuk menimpa sistem file pengguna jika komputer mereka memiliki alamat IP Rusia atau Belarus. Dia kemudian menambahkannya sebagai ketergantungan pada popularitasnya simpul-ipc program dan kekacauan instan! Banyak server dan PC mati saat mereka memperbarui ke kode terbaru dan kemudian sistem mereka menghapus drive mereka. 

pertahanan Miller,”Ini semua publik, didokumentasikan, berlisensi dan open source,” tidak tahan. 

Liran Tal, Snyk Peneliti yang mengungkap masalah tersebut mengatakan, “Bahkan jika tindakan yang disengaja dan berbahaya itu dianggap oleh sebagian orang sebagai tindakan protes yang sah, bagaimana hal itu mencerminkan reputasi masa depan pengelola dan saham di komunitas pengembang? Apakah pengelola ini akan dipercaya lagi untuk tidak menindaklanjuti tindakan di masa depan dalam tindakan seperti itu atau bahkan lebih agresif untuk proyek apa pun yang mereka ikuti?” 

Miller bukan engkol acak. Dia menghasilkan banyak kode bagus, seperti node-ipc, dan Server HTTP Node. Tapi, bisakah Anda memercayai salah satu kodenya untuk tidak berbahaya? Sementara dia menggambarkannya sebagai “bukan malware, [tetapi] perangkat protes yang didokumentasikan sepenuhnya,” yang lain tidak setuju. 

Seperti yang ditulis oleh seorang programmer GitHub, “Apa yang akan terjadi dengan ini adalah bahwa tim keamanan di perusahaan Barat yang sama sekali tidak ada hubungannya dengan Rusia atau politik akan mulai melihat perangkat lunak bebas dan sumber terbuka sebagai jalan untuk serangan rantai pasokan (yang ini benar-benar) dan mulailah melarang perangkat lunak bebas dan sumber terbuka — semua perangkat lunak sumber terbuka dan gratis — di dalam perusahaan mereka.” 

Seperti yang ditulis oleh pengembang GitHub lainnya dengan pegangan nm17, “The faktor kepercayaan sumber terbuka, yang didasarkan pada niat baik para pengembang sekarang praktis hilang, dan sekarang, semakin banyak orang menyadari bahwa suatu hari, perpustakaan/aplikasi mereka mungkin dapat dieksploitasi untuk melakukan/mengatakan apa pun yang dipikirkan oleh beberapa pengembang acak di internet ' adalah hal yang benar untuk mereka lakukan.'”

Keduanya membuat poin yang valid. Ketika Anda tidak dapat menggunakan kode sumber kecuali Anda setuju dengan pendirian politik pembuatnya, bagaimana Anda dapat menggunakannya dengan percaya diri? 

Hati Miller mungkin berada di tempat yang tepat — Slava Ukraini! — tetapi apakah perangkat lunak sumber terbuka yang terinfeksi muatan berbahaya merupakan cara yang tepat untuk melindungi invasi Rusia ke Ukraina? Tidak. 

Metode sumber terbuka hanya berfungsi karena kami saling percaya. Ketika kepercayaan itu rusak, apa pun alasannya, maka kerangka kerja fundamental open-source rusak. Seperti yang dikatakan Greg Kroah-Hartman, pemelihara kernel Linux untuk cabang stabil, ketika mahasiswa dari University of Minnesota dengan sengaja mencoba memasukkan kode yang buruk ke dalam kernel Linux untuk percobaan pada tahun 2021 mengatakan, “Apa yang mereka lakukan adalah perilaku jahat yang disengaja dan tidak dapat diterima dan sama sekali tidak etis.”

Orang-orang telah lama berargumen bahwa open-source harus menyertakan ketentuan etika juga. Misalnya tahun 2009 Lisensi Publik Umum Pengecualian (eGPL), revisi dari GPLv2, mencoba untuk melarang "pengecualian", seperti pengguna dan pemasok militer, menggunakan kodenya. Itu gagal. Lisensi lain seperti Lisensi JSON dengan klausa manis naifnya "perangkat lunak akan digunakan untuk kebaikan, bukan kejahatan" masih ada, tetapi tidak ada yang memaksakannya.  

Baru-baru ini, aktivis dan pengembang perangkat lunak Coraline Ada Ehmke memperkenalkan lisensi sumber terbuka yang mengharuskan penggunanya untuk bertindak secara moral. Secara khusus, dia Lisensi hipokratis ditambahkan ke Lisensi sumber terbuka MIT sebuah klausa yang menyatakan: 

“Perangkat lunak tidak boleh digunakan oleh individu, perusahaan, pemerintah, atau kelompok lain untuk sistem atau aktivitas yang secara aktif dan sengaja membahayakan, membahayakan, atau mengancam kesejahteraan fisik, mental, ekonomi, atau umum dari individu atau kelompok yang kurang mampu di pelanggaran terhadap Deklarasi Universal Hak Asasi Manusia PBB.”

Kedengarannya bagus, tapi itu bukan open source. Anda lihat, open-source dengan sendirinya merupakan posisi etis. Etikanya tertuang dalam Yayasan Perangkat Lunak Bebas (FSF)'s Empat Kebebasan Esensial. Ini adalah dasar untuk semua lisensi sumber terbuka dan filosofi intinya. Seperti yang dikatakan oleh pakar hukum sumber terbuka dan profesor hukum Columbia Eben Moglen pada saat itu bahwa lisensi etis tidak dapat berupa perangkat lunak bebas atau lisensi sumber terbuka: 

"kebebasan nol, hak untuk menjalankan program untuk tujuan apa pun, berada di urutan pertama dalam empat kebebasan karena jika pengguna tidak memiliki hak tersebut sehubungan dengan program komputer yang mereka jalankan, mereka pada akhirnya tidak memiliki hak apa pun atas program tersebut sama sekali. Upaya untuk memberikan izin hanya untuk penggunaan yang baik, atau melarang yang buruk di mata pemberi lisensi, melanggar persyaratan untuk melindungi kebebasan nol.” 

Dengan kata lain, jika Anda tidak dapat membagikan kode Anda karena alasan apa pun, kode Anda tidak benar-benar open-source. 

Argumen lain yang lebih pragmatis tentang melarang satu kelompok menggunakan perangkat lunak sumber terbuka adalah bahwa memblokir sesuatu seperti alamat IP adalah sikat yang sangat luas. Sebagai Florian Roth, perusahaan keamanan Sistem Nextron' Kepala Riset, yang menganggap “menonaktifkan alat gratis saya di sistem dengan pengaturan bahasa dan zona waktu tertentu,” akhirnya memutuskan untuk tidak melakukannya. Mengapa? Karena dengan begitu, “kami juga akan menonaktifkan alat pada sistem kritikus dan pemikir bebas yang mengutuk tindakan pemerintah mereka.” 

Sayangnya, bukan hanya orang yang mencoba menggunakan sumber terbuka untuk tujuan etis yang lebih tinggi yang menyebabkan masalah bagi perangkat lunak sumber terbuka. 

Awal tahun ini, pengembang JavaScript Marak Squires dengan sengaja menyabotase library Javascript open-source miliknya yang tidak jelas namun sangat penting 'colors.js' dan 'faker.js.” Hasil? Puluhan ribu program JavaScript meledak.

Mengapa? Masih belum sepenuhnya jelas, tetapi dalam postingan GitHub yang telah dihapus, Squires menulis, “Dengan hormat, Saya tidak akan lagi mendukung Fortune 500s (dan perusahaan berukuran lebih kecil lainnya) dengan pekerjaan gratis saya. Tidak banyak lagi yang bisa dikatakan. Ambil ini sebagai kesempatan untuk mengirimi saya kontrak tahunan enam digit atau membayar proyek dan meminta orang lain mengerjakannya.” Seperti yang Anda bayangkan, upaya memerasnya untuk mendapatkan gaji tidak berhasil dengan baik baginya. 

Dan, kemudian ada orang yang dengan sengaja memasukkan malware ke dalam kode sumber terbuka mereka untuk kesenangan dan keuntungan. Misalnya, perusahaan keamanan DevOps JFrog menemukan 17 paket berbahaya JavaScript baru di repositori NPM yang dengan sengaja menyerang dan mencuri token Discord pengguna. Ini kemudian dapat digunakan pada Komunikasi Discord dan platform distribusi digital.

Selain membuat program open-source baru yang berbahaya yang terlihat tidak bersalah dan bermanfaat, penyerang lain mengambil perangkat lunak lama yang ditinggalkan dan menulis ulang untuk memasukkan backdoor pencurian koin kripto. Salah satu program tersebut adalah event-stream. Itu memiliki kode berbahaya yang dimasukkan ke dalamnya untuk mencuri dompet bitcoin dan mentransfer saldo mereka ke server Kuala Lumpur. Ada beberapa episode serupa selama bertahun-tahun.

Dengan setiap langkah seperti itu, kepercayaan pada perangkat lunak open-source berkurang. Karena open-source sangat penting bagi dunia modern, ini adalah tren yang buruk. 

Apa boleh buat? Nah, untuk satu hal, kita harus mempertimbangkan dengan sangat hati-hati kapan, jika pernah, kita harus memblokir penggunaan kode sumber terbuka. 

Lebih praktisnya, kita harus mulai mengadopsi penggunaan Yayasan Linux Pertukaran Data Paket Perangkat Lunak (SPDX) dan Perangkat Lunak Bill of Material (SBOM). Bersama-sama ini akan memberi tahu kita dengan tepat kode apa yang kita gunakan dalam program kita dan dari mana asalnya. Kemudian, kita akan jauh lebih mampu membuat keputusan yang tepat.

Saat ini, orang yang sering menggunakan kode sumber terbuka tanpa mengetahui secara pasti apa yang mereka jalankan atau memeriksanya untuk masalah. Mereka menganggap semuanya baik-baik saja dengan itu. Itu tidak pernah menjadi asumsi yang cerdas. Hari ini, itu benar-benar bodoh. 

Bahkan dengan semua perubahan baru-baru ini, open-source masih lebih baik dan lebih aman daripada alternatif perangkat lunak berpemilik kotak hitam. Tapi, kita harus memeriksa dan memverifikasi kode alih-alih mempercayainya secara membabi buta. Ini satu-satunya hal yang cerdas untuk dilakukan ke depan.

Cerita Terkait:



sumber