Saldırılarla mücadele edilirse ve npm gibi açık kaynak kayıtlarında yasal yazılımların ele geçirilmesi yeterince zorlayıcı değildi, uygulama üreticileri giderek artan bir şekilde yazılımın kendi kendini sabote etmesinin sonuçlarını yaşıyor. Bir geliştirici, bir hevesle, fikrini değiştirebilir ve açık kaynak koduyla ne isterse onu yapabilir, çoğu zaman zaten herhangi bir garanti olmaksızın “olduğu gibi” gelir. Ya da, bu yıl artan bir trend tarafından görüldüğü gibi, geliştiriciler protesto aracı olarak kendi yazılım kitaplıklarını kasıtlı olarak sabote ediyor ve yazılımı “protesto yazılımına” dönüştürüyor.
Temmuz ayında, yaygın olarak kullanılan geliştirici Atomik yazar Python kütüphanesi Markus Unterwaditzer geçici olarak kodunu sildi Site, kayıt defterindeki tüm indirmelerin ilk %1’ine düşen projeler olan “kritik projelerin” sahipleri için iki faktörlü kimlik doğrulamayı zorunlu kılacağını söyledikten sonra popüler kod kayıt defteri PyPI’den. Unterwaditzer’in Atomik yazar proje kriterlere uyuyordu ve hesabının iki faktörlü kimlik doğrulamaya kaydolması gerekiyordu. bir gönderide “Bir avuç şirket için (boş zamanım pahasına) SOC2 uyumluluğunu garanti etmek için can sıkıcı ve haklı bir hareket” olarak koduna güveniyor.
Bazıları bunu şuna benzetti: Proje geliştiricisinin protesto amacıyla yaygın olarak kullanılan kodunu silmesinin ardından kısa süreliğine internetin büyük bir bölümünü kıran 2016 sol taraf olayı. Geliştirici Azer Koçulu, npm paketinin adı “kik” olduğu için mesajlaşma uygulaması Kik ile bir ticari marka anlaşmazlığı yaşadı. Npm, anlaşmazlıkta Kik’in tarafını tuttuktan sonra Koçulu tüm kodunu geri çekti – 273 modül topluca popüler olanlar da dahil olmak üzere sol ped kitaplık – npm kayıt defterinden. Bunu yapmak tamamen onun gücü dahilindeydi, ancak anında sorunlar yarattı. O zamanlar, çok popüler olan sol ped paket tırmık vardı 15 milyondan fazla indirmeve bugün bile kütüphane haftada milyonlarca kez indirildi. Bu nedenle, Mart 2016’da, dünyanın dört bir yanındaki geliştiricilerin projeleri bozulduğunda kafaları karıştı ve dehşete düştü. sol ped uygulamalarının dayandığı bileşen artık bulunamadı.
Yıllar önce izole bir protesto gibi görünen şey, 2022’de kendi kütüphanelerini sabote eden geliştiriciler tarafından yeniden canlandırıldı – bazen büyük şirketlere karşı çıkmak, ancak daha yakın zamanda Rusya’nın Ukrayna’yı işgalini protesto etmek için.
Protesto yazılımlarının son yükselişi
2022’ye bir hafta, yoğun olarak kullanılan npm projelerine dayanan binlerce uygulama renkler ve sahtekar kırdı ve kullanıcıların ekranlarına anlamsız metinler yazdırmaya başladı. Bu meşru kütüphaneleri kaçıran ve değiştiren kötü niyetli bir aktör değildi. Projelerin geliştiricisi Mark Squires’ın sahip olduğu ortaya çıktı. kasıtlı olarak kendi işini bozdu büyük şirketlere protesto mesajı göndermek için.
Squires’ın protestosu, Log4j proje yürütücülerini, çoğunlukla açık kaynak gönüllülerini, Aralık tatillerinde kritik güvenlik açığını yamalamakla zorlayan Log4Shell güvenlik açığı tarafından harekete geçirildi. Squires daha önce vardı ifade edilen hayal kırıklığı Fortune 500 şirketlerinde finansal destek sunmadan veya bakımlarına sponsor olmadan açık kaynak kodunu ücretsiz olarak kullanıyor. Log4Shell güvenlik açığı, yalnızca işletmelerin uygulamalarında Log4j’ye her yerde güvendiği duygusunu güçlendirdi. yeterince yapmadım bu kritik projeleri sürdüren ücretsiz gönüllülere boş zamanlarında destek olmak.
Squires’ın protestosu yalnızca kısa bir süre için dondurulan projeleri dondurdu. renkler kütüphane, aylar sonra geliştiricilerin Rusya’nın Ukrayna’daki savaşına itiraz etmek için yüzlerce saat adadıkları kendi projelerini sabote etmeleri ile birlikte bir protesto yazılımı trendi izledi.
Mart 2022’de, Rus birliklerinin Ukrayna topraklarına girmesinden haftalar sonra, popüler npm projesi düğüm-ipc – her hafta bir milyondan fazla kez indirildi – başladı makineleri silmek şüpheli Rus ve Belarus geliştiricilerin. Projenin geliştiricisi Brandon Nozaki Miller’ın, yüklü olduğu bilgisayarları bozmak için kodu sabote ettiği iddia ediliyor. Söylemeye gerek yok, sabote edilmiş versiyonları düğüm-ipc – şimdi etkili bir şekilde kötü amaçlı yazılım – npm kayıt defterinden kaldırıldı.
O zamandan beri, protesto yazılımı teması, daha barışçıl protestolara düşkün geliştiricilere dönüştü. gibi açık kaynaklı projelerin daha yeni sürümleri event-source-polyfill, es5-haricive tarz bileşenler Rusya merkezli kullanıcıları savaşa karşı harekete geçmeye çağıran bir mesaj göstermeniz yeterli. Bu nedenle, bu sürümler, kayıt defterinin ilkelerini ihlal etmedikleri için npm’de kalır.
Protesto yazılımı yayınlamak da geliştirici için kolay bir karar olmayabilir. Sabote edilen projenin tüm versiyonları üzerinde ekstra inceleme yapar ve topluluğun geliştiriciye olan güvenini zedeleyebilir. Geçmişte veya gelecekte yazdıkları herhangi bir yazılıma bir daha asla güvenilebilir mi?
Evan Jacobsarkasındaki birincil koruyuculardan biri tarz bileşenler, TechCrunch’a projesinin bir aktivizm geçmişine sahip olduğunu söyledi, “en önemlisi bizim desteğimiz [Black Lives Matter] Eşit Adalet Girişimi’ne yapılan bağışları dikkate almaları için kullanıcılarımıza hareket ve tavsiye.” “Rus hükümetinin Batılı haber sitelerini sansürlemeye başladığını duymuştum ve tipik olmayan bir kanal aracılığıyla özlü, bilgilendirici bir mesaj iletmek için eşsiz bir fırsatımız olduğunu fark ettim: npm paket kurulumlarımız.”
Jacobs, Rusların savaş hakkında devlet müdahalesinden arınmış doğru haberler almasının çok önemli olduğunu hissetti. Değiştirdi tarz bileşenlerhangi vardı 15 milyondan fazla aylık indirme Nisan ayından itibaren, Rusya merkezli kullanıcılara “Ukrayna’da Rus ordusu tarafından işlenen birçok vahşeti” özetleyen iki dilli bir mesaj göstermek için.
“Etkisi oldu mu? Muhtemelen asla bilemeyeceğiz,” dedi Jacobs. “Bununla birlikte, bilgileri yayma şansına tamamen değdiğini düşünüyorum ve Rusya’da başka türlü neler olduğunu görmemiş olabilecek yazılım çalışanlarının dikkatini çekmeyi umuyorum.”
Başka bir geliştirici, Mariusz Nowak, yaratıcısı es5-harici proje, Rusya ve Beyaz Rusya merkezli kullanıcıları BBC’nin Tor hizmeti gibi doğru haber kaynaklarına yönlendirmek için kütüphanenin sonraki sürümlerini değiştirdi. Nowak, TechCrunch’a kodu değiştirme kararından bahsetti ve bunun Rus medyası üzerindeki katı devlet kontrolüne atıfta bulunarak “Rusların neler olup bittiğinden tam olarak emin olmadıklarını ve propaganda medyalarının etkisi altında olduklarını” söyledi. Nowak, “Bu mesaj yalnızca Rusya’da yazılım yüklerseniz görünür, dünyanın diğer bölgelerinde gerçekten görünmez,” dedi.
Nowak, açık kaynak kütüphanesini aktivizm için kullanmanın daha geniş topluluk nezdinde güvenilirliğini etkilemediğini söyledi. bir avuç öfkeli cevap başlangıçta.
Jacobs ve Nowak, savaşı protesto etmek için açık kaynak kodlarını yeniden düzenleme konusunda yalnız değiller. Yazılım tedarik zinciri güvenliği başlangıcı Socket, TechCrunch’a şunları söyledi: yuvajs-pinoHaftalık 100.000’den fazla indirme ile popüler bir npm projesi, Ukrayna’da devam eden krize dikkat çekmek için ana “benioku” dosyasını güncelledi. Paketle birlikte gelen bir yükleme komut dosyası da bir konsol mesajı yazdırır kurulur kurmaz.
‘Doğrulayamayacağınız şeye güvenemezsiniz’
Açık kaynak geliştiricileri, artık projeleri için yeni özellikler uygulamakla sınırlı kalmayan, ancak bir amaç için projelerini değiştirerek daha büyük sosyal konularda görüşlerini aktif olarak ifade eden yeni ve yaratıcı yollar keşfediyorlar. Ayrıca, ödeme yapan bir müşterinin beklentilerine göre çalışması gereken özel kodun aksine, çoğu açık kaynak lisansı, hem tüketici hem de geliştirici için oldukça serbesttir ve kodlarını, bir geliştiricinin neye sahip olmaması gerektiği konusunda hiçbir garanti sunmayan lisanslarla sunar. Protesto yazılımlarını savunucular için gri bir alan haline getirerek, kodlarına asla uymayacaktır.
Aslında, Sonatype’da bir güvenlik araştırmacısı olarak, protesto yazılımlarının erken aşamalarda bizim için nasıl bir zorluk oluşturduğunu ve otomatik kötü amaçlı yazılım algılama algoritmalarımızı şimdiye kadar nasıl değiştireceğimizi gözlemledim. kendini sabote etmek gibi projelerle renkler ve sahtekar. Geleneksel olarak sistem, açık kaynak depolarına yüklenen yazım hatası yapan kötü amaçlı yazılımları tespit etmek için tasarlandı, ancak kötü niyetli kaçırmalar veya geliştiricilerin uyarı yapmadan kendi kitaplıklarını değiştirmesi gibi durumlar, protesto yazılımlarının nasıl çalıştığının karmaşıklıklarının daha derin bir şekilde anlaşılmasını gerektiriyordu.
Tema ayrıca, Microsoft’un bir yan kuruluşu olan GitHub’a ait olan npm gibi büyük açık kaynak kayıtlarını, bu uç durumlarla uğraşmak zorunda kalırken bir yol ayrımına getirdi.
Socket’in kurucusu Feross Aboukhadijeh, TechCrunch’a GitHub gibi kayıtların zor durumda olduğunu söyledi. “Bir yandan, bakımcıların ifade özgürlüğü hakkını ve inandıkları amaçları desteklemek için platformlarını kullanma becerisini desteklemek istiyorlar. Ancak diğer yandan GitHub, kötü amaçlı kodun npm kullanıcılarına karşı sorumluluğu vardır. npm sunucularından sunulmaz. Aboukhadijeh, bu bazen zor bir dengeleme eylemidir” dedi.
Derlemenizdeki bir bileşenin yalnızca onaylanmış sürümlerini aldığınızdan emin olmak için basit bir çözüm, npm bağımlılık sürümlerinizi sabitleyin. Bu şekilde, bir projenin gelecekteki sürümleri sabote edilse veya ele geçirilse bile, yapınız en son, kusurlu olanı almak yerine “sabitlenmiş” sürümü kullanmaya devam eder. Ancak bu, bir bileşenin mevcut sürümlerinin yeniden yayınlanabildiği PyPI gibi tüm ekosistemler için her zaman etkili bir strateji olmayabilir. ctx PyPI projesi.
“’Protesto yazılımı’ etrafındaki konuşma, gerçekten yazılım tedarik zinciri güvenliği hakkında bir konuşmadır. Doğrulayamayacağınız şeye güvenemezsiniz, ”diyor yazılım tedarik zinciri güvenliği konusunda uzmanlaşmış bir girişim olan Chainguard’ın kurucu ortağı ve CEO’su Dan Lorenc TechCrunch’a.
Lorenc’in protesto yazılımlarını önlemeye yönelik tavsiyesi, iyi açık kaynak güvenlik hijyenini ve geliştiricilerin protesto yazılımlarını daha kolay ve erken geliştirmelerine yardımcı olabilecek en iyi uygulamaları takip etmektir. “Bağımlılıklarınızı bilmek ve anlamak, ortamlarınızda kullandığınız açık kaynak kodunu düzenli olarak taramak ve denetlemek bir başlangıçtır.”
Ancak Lorenc, protesto yazılımları hakkındaki tartışmanın, soruna katkıda bulunacak ve açık kaynaklı yazılım savunucularını gerçekten önemli olana odaklanmaktan alıkoyacak taklitçileri çekebileceği konusunda uyarıyor – kötü niyetli aktörleri uzak tutmak. Protesto yazılımları ile birlikte bilinmeyen bilinmeyenler kalır. Protesto yazılımı için hangi konu çok küçük veya çok büyük?
Hiç kimse, bir açık kaynak geliştiricinin koduyla neler yapabileceğini pratikte dikte edemezken – bu, geliştiricilerin her zaman sahip olduğu bir güçtür, ancak şimdi yeni kullanmaya başlıyorlar.