"Pelanggan berbayar kami membutuhkan X, kapan Anda akan memperbaikinya?"
(twitter.com/maximilianhils)- Seorang pengguna perusahaan yang memiliki pelanggan di industri teregulasi (bank, lembaga federal, dll.) menekan proyek open source mitmproxy di isu publik untuk mengungkap jadwal rilis berikutnya, dengan alasan pelanggannya tidak dapat menggunakan perangkat lunak tersebut karena adanya kerentanan High dan Critical yang sudah diketahui
- Kerentanan tersebut berada di bagian library yang tidak digunakan oleh mitmproxy, sehingga dalam praktiknya tidak berdampak pada pengguna nyata
- Maintainer tidak menolak permintaan itu, tetapi menjawab bahwa jika mereka membutuhkan rilis patch yang tepat waktu, mereka bisa membuat kontrak dukungan berbayar (support contract), dan mengarahkan ke email di profilnya
- Pengguna perusahaan itu kemudian mengirim email protes, mengatakan bahwa ia menganggap jawaban tersebut sebagai "lelucon atau upaya pemerasan yang terselubung tipis"
- Intinya, pertanyaan tentang jadwal rilis itu sendiri sah, tetapi yang penting adalah adanya sikap kolaboratif seperti "bagaimana kami bisa membantu lewat kontribusi atau pendanaan"; penulis komentar asli kemudian mengirimkan permintaan maaf yang tulus
Latar belakang kejadian
- Menurut penjelasan konteks yang dilampirkan, ada kerentanan di sebuah library yang didistribusikan bersama mitmproxy, tetapi ada di bagian yang tidak digunakan oleh mitmproxy sehingga tidak berdampak pada pengguna nyata
- Setelah isu ini menjadi viral (went viral) di luar, konteks tambahan pun dijelaskan
Tuntutan awal dari pengguna perusahaan (isu GitHub)
- 16 jam sebelumnya, seorang pengguna menyebut anggota proyek lain, @Prinzhorn, sambil menanyakan tanggal target untuk rilis berikutnya
- Ia menjelaskan bahwa pelanggan di industri teregulasi (regulated industries) seperti bank dan lembaga federal dilarang oleh aturan untuk memakai perangkat lunak dengan kerentanan High dan Critical yang sudah diketahui
- Mereka ingin menentukan posisi internal soal menunggu, tetapi membutuhkan semacam tanggal target
Tanggapan maintainer mhils
- Anggota mhils menjawab 15 jam sebelumnya bahwa jika mereka tertarik pada rilis patch yang tepat waktu untuk memenuhi persyaratan compliance perusahaan, ia bersedia menyiapkan kontrak dukungan
- Ia juga memberi tahu bahwa informasi kontak ada di email pada profilnya (termasuk penanda ":-)" )
Email protes ("Concerning response")
- Setelah itu, sebuah email dengan subjek "Concerning response" dikirim dari alamat berdomain us.ibm.com ke github@hi.ls (bertanggal Jul 14, 2023)
- Email itu dimulai dengan "Mr. Hils" dan menyatakan bahwa alih-alih memperkeruh situasi atau memenuhi issue tracker GitHub dengan kata-kata yang tidak perlu, maksudnya adalah menjelaskan permintaan tanggal target dengan lebih baik agar mendapat jawaban langsung
- Ia menegaskan bahwa ia berharap email lanjutan ini tidak diterima secara tidak menyenangkan, karena itu bukan niatnya
- Pada bagian yang disorot, ia menulis bahwa ia menganggap jawaban maintainer itu bukan tanggapan resmi proyek melainkan lelucon, atau lebih buruk lagi, upaya pemerasan yang terselubung tipis (thinly veiled extortion attempt) (kalimat kemudian terputus saat ia menyebut sedang meninjau dokumen resmi proyek)
Ringkasan posisi maintainer
- Ia menegaskan bahwa jawabannya bukan lelucon
- Pendekatan seperti "pelanggan berbayar kami membutuhkan X, kapan Anda akan memperbaikinya" mungkin bukan cara terbaik untuk memperkenalkan diri ke proyek open source
- Ia mengakui bahwa pertanyaan tentang jadwal rilis itu sendiri tidak mengganggu dan merupakan pertanyaan yang sah (valid)
- Namun, inti persoalannya adalah konteksnya harus berupa "kami peduli pada pekerjaan ini, bagaimana kami bisa membantu mewujudkannya" (kontribusi atau pendanaan), bukan "Anda sedang menimbulkan masalah bagi pelanggan kami"
Penutup
- Penulis komentar asli kemudian mengirimkan permintaan maaf yang tulus (genuine apology), dan maintainer menyatakan sangat menghargainya
- Ia juga meminta semua orang untuk menganggap ada niat baik (assume good intentions) dan bersikap ramah
1 komentar
Komentar Hacker News
Jika membaca isu inihttps://github.com/mitmproxy/mitmproxy/issues/6051, permintaan IBM jauh lebih masuk akal daripada yang terlihat di tweet
Masalahnya adalah ada CVE pada dependensi mitmproxy, dan meskipun mitmproxy telah memperbarui dependensi itu pada bulan Maret, mereka belum merilis rilis stabil yang mencakup pembaruan tersebut. Pihak IBM sedang menanyakan, “kapan Anda berencana memberi tag rilis, apakah ada jadwal yang bisa disampaikan ke pelanggan?”
Secara khusus, mereka bukan bertanya “kapan ini akan diperbaiki?”. Tidak ada lagi yang perlu diperbaiki, dan pertanyaannya lebih dekat ke “kapan Anda berencana membuat rilis baru yang mencakup pembaruan dependensi ini?”
Saya tidak menganggap pertanyaan seperti ini tidak pantas. Tentu saja, jika mereka ingin perbaikan seperti ini didistribusikan dalam jangka waktu tertentu, tidak tidak pantas juga untuk meminta kontrak dukungan, tetapi jawaban singkat “silakan hubungi lewat email untuk kontrak dukungan” terasa agak berlebihan
Maximilian tidak punya kewajiban memberikan jadwal rilis kepada orang yang tidak membayar, dan jika IBM benar-benar membutuhkan timeline, tidak aneh sama sekali bila ia menyarankan untuk membayar. Jika IBM menganggap ini sepenting itu, mereka bahkan bisa membuat rilis internal mitmproxy sendiri hari ini juga
Alasan saya mengatakan “silakan hubungi lewat email untuk kontrak dukungan” adalah karena 1) saya sudah menyatakan di thread itu bahwa kami tidak akan membuat patch release untuk hal ini dan 2) pihak lawan menekankan dampaknya terhadap pelanggan berbayar mereka
Jadi memang hanya itu yang bisa saya tambahkan di sana. Saya setuju itu bisa diungkapkan dengan lebih baik, tetapi saya tidak merasa jawaban saya sepenuhnya berlebihan
CVE itu sendiri juga keliru, dan kami tidak menggunakan bagian dependensi tersebut
Mengapa maintainer harus bekerja gratis sementara pihak peminta mendapatkan keuntungan dari kerja gratis itu
Yang tidak pantas adalah sikap merasa berhak dari FrugalGuy. Perlu tingkat kemunafikan yang istimewa untuk menuntut maintainer open source bekerja gratis lalu menuduhnya melakukan pemerasan. Anda tidak bisa memaksakan tuntutan kepada sukarelawan yang mengerjakan proyek open source bebas secara paruh waktu
Saya OP. Untuk memperjelas, pertanyaan tentang rilis itu sendiri sama sekali bukan masalah dan sepenuhnya valid
Hanya saja konteksnya seharusnya “kami peduli soal ini, bagaimana kami bisa membantu agar ini terwujud?”. Entah lewat kontribusi atau biaya. Bukan “gara-gara Anda, pelanggan kami jadi bermasalah”
Saya tidak berharap peminta itu sengsara hanya karena salah bicara, tetapi saya berharap perusahaan besar bisa membangun hubungan yang sehat dengan perangkat lunak open source bebas
Fakta bahwa ia menawarkan kontrak seperti itu sebenarnya cukup baik hati. FrugalGuy bisa saja mendapat jawaban “kirim pull request”, dan entah apakah itu akan membuatnya senang
Tetapi kalau masalahnya adalah belum ada rilis untuk perbaikan yang sudah dibuat, saya kurang paham bagaimana itu bisa diperbaiki dengan kontribusi atau uang
Ini terdengar seperti tipikal orang bodoh keamanan informasi yang bahkan tidak tahu apa yang sebenarnya sedang mereka “perbaiki”. Begitu sistem otomatis memberi tahu ada CVE, mereka langsung mengira itu harus di-"patch"
Mereka tidak memeriksa apa sebenarnya klaim dalam CVE itu, atau apakah cara penggunaan mereka yang spesifik memang rentan. Mereka tidak tahu, tidak peduli, dan bukan programmer. Yang mereka tahu cuma ada kotak centang yang harus dihapus
Hal serupa juga pernah terjadi di h2database. Seorang “peneliti keamanan” menemukan bahwa hal buruk bisa terjadi jika Anda melakukan sesuatu yang memang sudah dibilang jangan dilakukan, lalu tetap meminta CVE dan berhasil mendapatkannya. Kalau dilihat lebih dekat, itu omong kosong, tetapi bagi orang-orang seperti ini yang penting hanya fakta bahwa CVE itu ada
Kata pengembang h2database: https://github.com/h2database/h2database/issues/3686#issueco...
“Sulit memahami kenapa saya harus punya sedikit saja simpati pada ‘perusahaan besar’ yang memakai proyek open source buatan sukarelawan. Pakai uang perusahaan untuk mempekerjakan seseorang agar menanganinya, atau bayar library komersial serupa”
Bahkan jika mereka punya wewenang memberi pengecualian untuk situasi tertentu, mereka mungkin harus menulis lebih banyak dokumen untuk membenarkan keputusan itu. Dokumen tambahan itu memperlambat kerja, dan berdampak buruk pada metrik evaluasi kinerja mereka
“Jika kata sandi diberikan lewat command line, proses lain di sistem bisa melihatnya lewat
ps”Ya jelas. Kalau itu layak jadi CVE dengan “tingkat keparahan tinggi”, saya juga bisa menyebut diri saya peneliti keamanan. Saya bisa memikirkan setidaknya lima atau enam aplikasi yang mengizinkan hal yang sama sambil memasang peringatan “jangan lakukan seperti ini”
Tim keamanan informasi menaikkan kerentanan yang muncul di laporan, lalu manajer jadi panik
Pengembang harus terus melakukan update. Bahkan untuk dependensi yang bukan bagian operasional sekalipun. Mengajukan pengecualian memang bisa, tetapi itu masalah tersendiri yang sangat merepotkan
Lalu manajer bertanya-tanya kenapa pekerjaan pengembangan jadi melambat
Saya juga ragu ada yang benar-benar meninjau sisa jawabannya
Salah satu proyek saya juga pernah tiba-tiba dibanjiri komentar seperti “kapan ini akan diperbaiki”, “saya juga terdampak dan ini penting”. Lonjakan perhatian mendadak seperti itu terasa cukup aneh
Lalu pada waktu yang mirip, saya menerima email permintaan maaf yang menjelaskan bahwa atasan di sebuah perusahaan telah menyuruh karyawannya menekan saya dengan berpura-pura bahwa yang terdampak jauh lebih banyak daripada kenyataannya
Sepertinya seseorang belajar di tempat kerjanya bahwa nada agresif atau mengancam sangat efektif, tetapi gagal memahami bahwa posisi tawarnya di sini sama sekali berbeda
Ada perbedaan halus antara “saya perlu tahu kapan ini akan selesai agar bisa membuat rencana” dan “saya dibayar karena pekerjaan Anda, jadi Anda harus melakukan ini, tolong percepat”
Jika si peminta bertanya tanpa membuang informasi latar belakang, nadanya akan lebih dekat ke yang pertama dan lebih jauh dari yang kedua
Jika alasannya tampak penting juga bagi banyak pengguna lain, itu bisa membantu maintainer memutuskan apakah penambahan fitur atau perbaikan bug perlu dipercepat. Jika ada solusi sementara, itu juga bisa membantu menemukannya
Menyebutnya sebagai pemerasan terhadap pengembang memang tidak adil, tetapi saya rasa pesan pertamanya sendiri tidak bermasalah
Rasa berhak dari perusahaan yang memakai open source sambil tetap menuntut dukungan itu luar biasa besar. Saya berharap lisensi dengan pembatasan penggunaan dipakai lebih luas, dan OSI tidak hanya berkata “itu bukan open source!!!”
Lisensi semacam itu bisa mencegah situasi seperti ini
Bagaimanapun, bagus juga OSI dan FSF mengambil sikap keras di sini. Jika prioritas Anda tidak sejalan dengan mereka, mengapa mereka harus berubah demi memuaskan Anda
Pakai saja lisensi yang Anda suka. Meski mereka tidak menyetujuinya. Saya tidak paham kenapa itu jadi masalah. Kalau sejak awal Anda tidak berbagi nilai yang mereka pegang, kenapa organisasi itu harus memberi cap persetujuan pada pilihan lisensi Anda
Bagi sponsor korporat, tidak mendukung pembatasan penggunaan itu bukan cacat, melainkan fitur
Ada juga dogmatisme besar di sekitar definisi open source dan free software. Kalau tidak mengikuti definisi ini, orang mudah dikeroyok dan diserang, dan definisi tersebut sering diperlakukan seperti kitab suci. Para pendukungnya bahkan enggan menerima kemungkinan bahwa penyesuaian mungkin diperlukan agar cocok dengan realitas tahun 2023
Bahkan kalau istilah baru diciptakan untuk menghindari benturan, para pendukung open source dan free software tetap memaksakan bahasa mereka sendiri dan ingin mengendalikan narasi. Bahasa itu dirancang agar punya konotasi negatif di dalam kerangka mereka
Kebebasan pengguna untuk menjalankan perangkat lunak untuk tujuan apa pun adalah kebebasan 0, dan Stallman menjelaskan dengan sangat meyakinkan mengapa pembatasan penggunaan tidak membantu: https://www.gnu.org/philosophy/programs-must-not-limit-freed...
Seperti klausul penafian garansi, free software diberikan tanpa syarat. Bahkan setelah diberi hadiah kebebasan untuk memodifikasinya sesuka hati, tetap menuntut dukungan dan pemeliharaan gratis itu tidak sopan. Mengganti lisensi rasanya juga tidak akan membuat orang-orang tidak sopan seperti itu hilang
Dan mungkin ada pilihan yang lebih ramah open source daripada korporat tanpa harus lewat lisensi. Misalnya, kalau seseorang ingin mengajukan isu penting, mereka harus mempublikasikan kode reproduksinya
Bahkan pada era 80-an, saat dukungan biasanya masih diberikan gratis, saya sering mendengar cerita bahwa perusahaan melakukan hal seperti itu dengan perangkat lunak bajakan. Satu-satunya hal yang mengurangi ulah itu adalah kontrak dukungan berbayar
Respons yang realistis hanyalah menggugat pelanggaran lisensi, tetapi tidak banyak pengembang open source yang punya sarana untuk melakukan itu terhadap perusahaan menengah, apalagi perusahaan besar
Tindakan “FrugalGuy” memang tidak matang dan kekanak-kanakan, tetapi maintainer mitmproxy sebenarnya bisa menjawab dengan cara yang lebih sopan namun tegas, tanpa ruang untuk salah paham atau drama
“Sesuai lisensi mitmproxy, perangkat lunak ini disediakan apa adanya tanpa garansi, dan maintainer proyek saat ini terikat pada prioritas serta deliverable lain”
“Karena itu, pernyataan di issue tracker Github saja tidak cukup untuk membenarkan prioritas isu. Satu-satunya cara untuk menaikkan prioritas isu adalah dengan membuat kontrak dukungan, yang tersedia di [here]. Saya dengan senang hati akan membahas syaratnya lebih lanjut”
Jika nilainya setara gaji tahunan satu engineer, bagi skala perusahaan tertentu itu uang yang nyaris tidak berarti, dan sepertinya perbaikannya bisa dilakukan dalam beberapa minggu, yang terasa adil
Atau kalau benar-benar tidak mau bayar, mereka bisa menugaskan satu engineer perusahaan mereka selama beberapa bulan untuk menambal bagian yang dibutuhkan pelanggan berbayar lalu berkontribusi ke upstream
Koreksi: kompensasi setahun untuk engineer itu hanya perkiraan saya yang terbatas dan tidak akurat. Saya tidak pada posisi untuk mengatakan nilainya tepat berapa, tetapi saya menduga engineer yang belum akrab dengan codebase mungkin akan butuh usaha beberapa bulan
Hanya saja itu mungkin menimbulkan masalah kepatuhan lain, dan mungkin itu sebabnya mereka tidak melakukannya. Tentu saja itu bukan masalah proyek open source
https://github.com/mitmproxy/mitmproxy/issues/6051#issuecomm...
Sekadar bertanya “apakah ada target tanggal untuk rilis berikutnya?” itu bukan masalah. Karena itu bukan tuntutan
Ungkapan “kami sedang mencoba menyusun logika internal untuk menunggu, jadi kami butuh suatu target tanggal” terbaca bahwa kata “butuh” itu bukan tuntutan kepada pengembang mitmproxy, melainkan karena ada pihak lain yang menuntut hal itu darinya
Di komentar ini dia sedang membuat permintaan sambil menjelaskan motivasi komersial dan pribadi di balik permintaan itu. Tidak ada masalah sampai dia kembali lewat email sambil membawa kata-kata seperti pemerasan
Di postingan asli, konteks dan pemberi kerja sama-sama disebutkan. Penulisnya jelas sengaja berusaha menghindarinya, jadi menyebarkan issue GitHub yang sebenarnya juga tindakan yang buruk
FrugalGuy, saya sampai tidak bisa berkata-kata