"Ücretli müşterilerimizin X'e ihtiyacı var, bunu ne zaman düzelteceksiniz?"
(twitter.com/maximilianhils)- Düzenlemeye tabi sektörlerdeki (bankalar, federal kurumlar vb.) müşterilere sahip bir kurumsal kullanıcı, açık kaynak araç mitmproxy için bir sonraki sürüm takvimini herkese açık bir issue üzerinden talep etti ve bilinen High·Critical güvenlik açıkları nedeniyle kendi müşterilerinin bu yazılımı kullanamadığını söyleyerek baskı kurdu
- Söz konusu güvenlik açığı, mitmproxy'nin kullanmadığı bir kütüphane bölümünde bulunuyor; dolayısıyla gerçek kullanıcılar fiilen etkilenmiyor
- Ana geliştirici bu talebi reddetmek yerine, zamanında bir yama sürümü gerekiyorsa ücretli destek sözleşmesi (support contract) yapılabileceğini söyledi ve profilindeki e-posta adresini işaret etti
- Kurumsal kullanıcı ise bu yanıtı "şaka ya da ustaca gizlenmiş bir gasp girişimi" olarak algıladığını belirterek bir itiraz e-postası gönderdi
- Asıl nokta, sürüm takvimi sorusunun meşru olması ama "katkı veya finansmanla buna nasıl yardımcı olabiliriz" şeklinde işbirlikçi bir tutumun gerekli olması; ilk yorumu yazan kişi daha sonra samimi bir özür gönderdi
Olayın arka planı
- Eklenen bağlam açıklamasına göre, mitmproxy ile birlikte dağıtılan bir kütüphanede bir güvenlik açığı var; ancak bu açık mitmproxy'nin kullanmadığı bir bölümde olduğundan gerçek kullanıcıları etkilemiyor
- Konu dışarıda viral olduktan (went viral) sonra ek bağlam da paylaşıldı
Kurumsal kullanıcının ilk talebi (GitHub issue)
- 16 saat önce bir kullanıcı, başka bir proje üyesi olan @Prinzhorn'u anarak bir sonraki sürüm için hedef tarihi (target date) sordu
- Bankalar, federal kurumlar gibi düzenlemeye tabi sektörlerdeki (regulated industries) müşterilerin, kurallar gereği bilinen High·Critical seviyede açıklar içeren yazılımları kullanmasının yasak olduğunu açıkladı
- Bekleme konusunda kendi kurumsal tutumlarını belirlemek istediklerini, ancak bunun için bir tür hedef tarihe ihtiyaç duyduklarını söyledi
Ana geliştirici mhils'in yanıtı
- Üye mhils, 15 saat önce verdiği yanıtta, şirketin uyumluluk gereksinimlerini karşılamak için zamanında bir yama sürümü ile ilgileniliyorsa bir destek sözleşmesi yapmaya istekli olduğunu belirtti
- İletişim bilgisinin profilindeki e-posta adresinde olduğunu söyledi (":-)" ifadesiyle birlikte)
İtiraz e-postası ("Concerning response")
- Ardından us.ibm.com alan adına ait bir adresten github@hi.ls adresine "Concerning response" başlıklı bir e-posta gönderildi (Jul 14, 2023 tarihli)
- "Mr. Hils" diye başlayan e-postada, konuyu tırmandırmak ya da GitHub issue takipçisini gereksiz sözlerle doldurmak yerine, doğrudan bir yanıt alabilmek için hedef tarih talebini daha iyi açıklamaya çalıştığı belirtildi
- Bu takip e-postasının rahatsız edici algılanmamasını umduğunu, böyle bir niyetinin olmadığını da açıkça ekledi
- Vurgulanan bölümde, ana geliştiricinin yanıtının resmî proje yanıtı değil bir şaka, ya da daha kötüsü ustaca gizlenmiş bir gasp girişimi (thinly veiled extortion attempt) olduğu varsayımını dile getirdi (ardından proje resmî belgelerini incelerken cümle yarım kalıyor)
Ana geliştiricinin pozisyonunun özeti
- Yanıtın şaka olmadığını açıkça belirtti
- "Ücretli müşterilerimizin X'e ihtiyacı var, bunu ne zaman düzelteceksiniz" tarzı bir yaklaşımın, açık kaynak projelere kendini tanıtmanın en iyi yolu olmayabileceğini söyledi
- Sürüm takvimi sorusunun kendi başına rahatsız edici olmadığını ve geçerli (valid) bir soru olduğunu kabul etti
- Ancak bağlamın, "biz bunun gerçekleşmesiyle ilgileniyoruz, bunu başarmaya nasıl yardımcı olabiliriz" (katkı veya finansman) olması gerektiğini; "müşterilerimize sorun çıkarıyorsunuz" olmaması gerektiğini vurguladı
Kapanış
- İlk yorumu yazan kişi samimi bir özür (genuine apology) gönderdi ve ana geliştirici bunu içtenlikle takdir etti
- Herkese iyi niyet varsayımıyla hareket etmeleri (assume good intentions) ve nazik davranmaları çağrısında bulundu
1 yorum
Hacker News görüşleri
Bu issue'yu okursanız https://github.com/mitmproxy/mitmproxy/issues/6051 IBM'in talebinin tweette göründüğünden çok daha makul olduğunu görürsünüz.
Sorun, mitmproxy'nin bir bağımlılığında CVE olması; mitmproxy Mart ayında bağımlılığı güncellemiş, ancak bu güncellemeyi içeren kararlı bir sürümü henüz yayımlamamış. IBM tarafı “ne zaman release tag'i atmayı planlıyorsunuz, müşterilere iletebileceğimiz bir takvim var mı” diye soruyor.
Özellikle “ne zaman düzelteceksiniz” diye sormuyorlar. Zaten düzeltilecek bir şey yok; daha çok “bu bağımlılık güncellemesini içeren yeni sürümü ne zaman çıkarmayı planlıyorsunuz” diye soruyorlar.
Bu sorunun kendi başına haksız olduğunu düşünmüyorum. Elbette böyle bir düzeltmenin belirli bir süre içinde dağıtılmasını istiyorlarsa destek sözleşmesi talep etmek de haksız değil; ama “destek sözleşmeleri için e-posta ile iletişime geçin” şeklindeki anında yanıt biraz aşırı görünüyor.
Maximilian'ın para ödemeyen birine yayın takvimi sunma yükümlülüğü yok; IBM gerçekten bir zaman çizelgesine ihtiyaç duyuyorsa bunun için ödeme yapmasını önermesi de hiç tuhaf değil. IBM bunu bu kadar önemli görüyorsa bugün bile kendi mitmproxy iç sürümünü oluşturabilir.
“Destek sözleşmeleri için e-posta ile iletişime geçin” dememin nedeni 1) o thread'de bu konu için bir patch release çıkarmayacağımızı zaten belirtmiş olmamız ve 2) karşı tarafın kendi ücretli müşterileri üzerindeki etkisini vurgulamasıydı.
Bu yüzden orada söylenecek başka pek bir şey yoktu. Daha iyi ifade edilebileceğine katılıyorum, ama yanıtımın tamamen aşırı olduğunu hissetmiyorum.
CVE'nin kendisi de saçma ve biz o bağımlılığın ilgili kısmını kullanmıyoruz.
Talep eden taraf ücretsiz emekten fayda sağlarken bakım sorumlusu neden bedavaya çalışmak zorunda olsun?
Haksız olan FrugalGuy'ın bunu kendiliğinden hakkıymış gibi gören tavrı. Bir açık kaynak bakım sorumlusundan bedavaya çalışmasını isteyip sonra bunu haraç diye suçlamak için epey özel bir ikiyüzlülük gerekir. Yarı zamanlı olarak özgür açık kaynak projesi yapan bir gönüllüye talepleri dayatamazsınız.
OP benim. Açık konuşayım: sürüm sorusunun kendisi hiç sorunlu değil, gayet geçerli.
Ancak bağlam “biz bununla ilgileniyoruz, gerçekleşmesi için nasıl yardımcı olabiliriz” olmalı. Katkı ya da para yoluyla. “Senin yüzünden müşterilerimiz sorun yaşıyor” olmamalı.
Talepte bulunan kişinin tek bir yanlış söz yüzünden perişan olmasını istemiyorum; büyük şirketlerin özgür açık kaynak yazılımla sağlıklı bir ilişki kurmasını istiyorum.
Böyle bir sözleşme önermesi aslında oldukça nazik bir davranış. FrugalGuy “pull request gönder” yanıtını da alabilirdi; bundan memnun olur muydu bilmiyorum.
Ama sorun zaten yapılmış bir düzeltme için release olmamasıysa, bunun katkı ya da parayla nasıl çözüleceğini pek bilmiyorum.
Bu, kendi “düzelttiği” şeyin ne olduğunu bile bilmeyen bilgi güvenliği aptallarının tipik örneği gibi geliyor. Otomasyon sistemi bir CVE olduğunu söyleyince bunun mutlaka “patch”lenmesi gerektiğini düşünen türden insanlar
CVE’nin iddiasının ne olduğuna, kendi somut kullanım biçimlerinin gerçekten savunmasız olup olmadığına bakmazlar. Bilmezler, ilgilenmezler ve programcı da değillerdir. Tek bildikleri bir onay kutusunu temizlemeleri gerektiğidir
h2database’de de benzer bir şey olmuştu. Bir “güvenlik araştırmacısı”, yapılmaması söylenen şeyi yaparsanız kötü şeyler olacağını keşfetti ve yine de CVE talep edip aldı. İnceleyince saçmalık olduğu anlaşılıyor, ama bu insanlar için önemli olan tek şey bir CVE’nin var olması
h2database geliştiricisinin söylediği: https://github.com/h2database/h2database/issues/3686#issueco...
“Gönüllüler tarafından geliştirilen bir açık kaynak projesini kullanan ‘büyük şirketlere’ neden zerre kadar sempati duymam gerektiğini anlamakta zorlanıyorum. Şirket parasıyla birini işe alıp halletsinler ya da benzer bir ticari kütüphaneye para ödesinler”
Belirli bir durumda istisna verme yetkileri olsa bile, bu kararı gerekçelendirmek için daha fazla evrak doldurmaları gerekebilir. O ek evrak işleri yavaşlatır ve performans değerlendirme metriklerinde aleyhlerine işler
“Parolayı komut satırıyla verirseniz sistemdeki diğer süreçler bunu ps ile görebilir”
Çok bariz. Bu “yüksek önem dereceli” bir CVE ise bana da güvenlik araştırmacısı diyebilirsiniz. Aynı şeye izin verip yanına “bunu böyle yapmayın” uyarısı koyan en az beş altı uygulama sayabilirim
Bilgi güvenliği ekibi raporda görünen zafiyeti yukarı taşır, yönetici paniğe kapılır
Geliştirici sürekli güncelleme yapmak zorunda kalır. Çalışma zamanı olmayan bağımlılıklar bile buna dahildir. İstisna başvurusu yapılabilir, ama o tamamen ayrı bir baş ağrısıdır
Sonra yönetici geliştirme işlerinin neden yavaşladığını merak eder
Kalan yanıtları gerçekten birinin inceleyip incelemediğinden de şüpheliyim
Benim projelerimden birinde de birden “ne zaman düzelteceksiniz”, “ben de etkileniyorum ve bu önemli” gibi yorumlarda patlama olmuştu. Böyle ani bir ilgi oldukça tuhaftı
Sonra, yaklaşık aynı dönemde, bir şirketin yöneticisinin çalışanlarına, gerçekte olduğundan çok daha fazla kişinin etkilendiği izlenimi vererek bana baskı yapmalarını söylediğini anlatan bir özür e-postası aldım
Görünüşe göre biri, kendi iş yerinde agresif veya tehditkâr bir üslubun çok etkili olduğunu öğrenmiş, ama buradaki pazarlık konumunun tamamen farklı olduğunu anlamamış
“Ne zaman olacağını bilmem gerekiyor ki plan yapabileyim” ile “Senin çalışman sayesinde para kazanıyorum, bunu yapmalısın, lütfen acele et” arasında ince bir fark var
Talepte bulunan kişi arka plan bilgisini çıkarsa, üslup birincisine daha yakın, ikincisine daha az yakın olurdu
Bu gerekçe başka birçok kullanıcı için de önemli görünüyorsa, bakım yapan kişinin bir özellik eklemeyi veya hatayı düzeltmeyi daha hızlı yapıp yapmayacağına karar vermesine yardımcı olabilir. Bir geçici çözüm varsa onu bulmaya da yardımcı olur
Geliştiriciyi haraca bağlamak diye nitelemek haksızdı, ama ilk mesajın kendisinde sorun olduğunu düşünmüyorum
Açık kaynağı kullanırken bir de destek talep eden şirketlerin hak görme duygusu inanılmaz. Kullanım kısıtlaması olan lisansların daha yaygın kullanılmasını isterdim; OSI’nin de sadece “Bu açık kaynak değil!!!” demekle yetinmemesini isterdim
Böyle lisanslar bu tür durumların önüne geçebilir
Her hâlükârda OSI ve FSF’nin burada sert bir tutum alması iyi. Öncelikleriniz onlarınkiyle uyuşmuyorsa, sizi memnun etmek için neden değişsinler ki?
Beğendiğiniz lisansı kullanın gitsin. Onlar onaylamasa bile. Bunun neden sorun olduğunu anlamıyorum. En başta onların değerlerini paylaşmıyorken, bu kuruluşlar neden sizin lisans tercihinize onay mührü basmak zorunda olsun?
Kurumsal sponsorlar için kullanım kısıtlamalarını desteklememek bir kusur değil, bir özellik
Açık kaynak ve özgür yazılım tanımlarının etrafında muazzam bir dogmatizm de var. Bu tanımlara uymazsanız, üzerinize çullanılıp saldırıya uğramanız kolay; bu tanımlar da çoğu zaman kutsal metin gibi ele alınıyor. Savunucuları, 2023 gerçeklerine göre bir uyarlama gerekebileceği ihtimalini bile kabul etmek istemiyor
Çatışmadan kaçınmak için yeni terimler oluştursanız bile, açık kaynak ve özgür yazılım savunucuları kendi dillerinde ısrar edip anlatıyı kontrol etmeye çalışıyor. O dil, kendi çevreleri içinde olumsuz çağrışımlar taşıyacak şekilde tasarlanmış
Kullanıcının yazılımı herhangi bir amaçla çalıştırma özgürlüğü özgürlük 0’dır; Stallman kullanım kısıtlamalarının neden faydalı olmadığını çok ikna edici biçimde açıklıyor: https://www.gnu.org/philosophy/programs-must-not-limit-freed...
Garanti reddi maddelerinde olduğu gibi, özgür yazılım koşulsuz verilir. İstediğiniz gibi değiştirme özgürlüğü size hediye edilmişken bir de ücretsiz destek ve bakım talep etmek kabalıktır. Lisansı değiştirmenin böyle kaba insanları ortadan kaldıracağını sanmıyorum
Ayrıca lisans dışında, şirketlerden çok açık kaynağa daha dost olabilecek seçenekler de bulunabilir. Örneğin birinin kritik bir issue açmak için yeniden üretim kodunu herkese açık paylaşmasının gerekmesi gibi
80’lerde desteğin genellikle ücretsiz verildiği dönemlerde bile, şirketlerin korsan yazılımlarla böyle şeyler yaptığına dair çok hikâye duydum. Bu tür numaraları azaltan tek şey ücretli destek sözleşmeleriydi
Gerçekçi karşılık, lisans ihlali nedeniyle dava açmaktan ibaret; ama bırakın orta ölçekli şirketleri, büyük şirketlere karşı bunu yapacak imkâna sahip açık kaynak geliştiricisi pek yok
“FrugalGuy”ın davranışı olgunluktan uzak ve çocukça, ancak mitmproxy bakımcısı daha iyi bir yöntemle, kibar ama net biçimde, yanlış anlaşılmaya ya da drama çıkmasına yer bırakmayan bir yanıt verebilirdi
“mitmproxy lisansı uyarınca bu yazılım hiçbir garanti olmadan olduğu gibi sağlanır; proje bakımcıları şu anda başka önceliklere ve çıktılara bağlı durumdadır”
“Bu nedenle Github issue tracker’daki beyanlar tek başına bir issue’nun önceliklendirilmesini gerekçelendirmek için yeterli değildir. Issue önceliğini yükseltmenin tek yolu bir destek sözleşmesi yapmaktır; bu da [here] üzerinden sunulmaktadır. Koşulları ayrıca memnuniyetle görüşürüz”
Bir mühendisin bir yıllık maaşı kadar bir tutar, bazı şirket ölçeklerinde hiçbir şey sayılmayacak bir para; düzeltmenin birkaç hafta içinde yapılabileceğini düşünüyorum ve bu adil olur
Ya da gerçekten para ödemek istemiyorlarsa, kendi şirketlerinden bir mühendisi birkaç ay ayırıp ücretli müşterilerinin ihtiyaç duyduğu kısmı yamalasın ve upstream’e katkıda bulunsunlar
Düzeltme: Bir mühendisin bir yıllık toplam ücreti dediğim şey, benim sınırlı ve hatalı bir tahminimden ibaret. Tam olarak ne kadar değerinde olduğunu söyleyecek konumda değilim; ancak kod tabanına aşina olmayan bir mühendis için muhtemelen birkaç aylık emek gerekeceğini tahmin ediyorum
Ancak bunu yapmak başka uyumluluk sorunları doğurabilir; muhtemelen bu yüzden yapmamışlardır. Elbette bu açık kaynak projesinin sorunu değil
https://github.com/mitmproxy/mitmproxy/issues/6051#issuecomm...
“Bir sonraki release için hedef tarih var mı?” diye basitçe sormak sorun değil. Çünkü bu bir talep değil
“Bekleme yönünde şirket içi gerekçemizi oluşturmaya çalışıyoruz, bir hedef tarihe ihtiyacımız var” ifadesindeki “ihtiyaç”, mitmproxy geliştiricisinden talep etmek gibi değil, başka insanların ondan talep ettiği bir şey gibi okunuyor
Bu yorumda bir istekte bulunulurken o isteğin ticari ve kişisel motivasyonu açıklanıyor. Gasp gibi kelimelerle e-posta üzerinden geri dönene kadar sorun yoktu
Orijinal yazıda hem bağlam hem işveren vardı. Yazarın bundan bilerek kaçınmaya çalıştığı açıkken gerçek GitHub issue’sunu yaymak da berbat bir davranış
FrugalGuyha, diyecek söz bulamıyorum