Bağımlılık Sorunları: Dünyanın Açık Kaynak Yazılım Güvenliği Sorununu Çözme


Bir sonraki harika yazılım parçasını yaratmak için kendi dehasına ve teknik zekasına güvenen yalnız bir programcı fikri her zaman zordu. Bugün her zamankinden daha fazla bir efsane. Rekabetçi piyasa güçleri, yazılım geliştiricilerin bilinmeyen sayıda başka programcı tarafından oluşturulan koda güvenmeleri gerektiği anlamına gelir. Sonuç olarak, çoğu yazılım en iyi şekilde brikolaj olarak düşünülür – çeşitli, genellikle açık kaynaklı bileşenler, genellikle bağımlılıklar olarak adlandırılır ve yeni bir uygulamada özel kod parçalarıyla birleştirilir.

Bu yazılım mühendisliği paradigması – programcılar, başkalarının çabalarını tekrar tekrar tekrarlamak yerine açık kaynaklı yazılım bileşenlerini yeniden kullanıyorlar – büyük ekonomik kazanımlara yol açtı. Göre mevcut en iyi analiz, açık kaynaklı bileşenler artık çoğu yazılım uygulamasının yüzde 90’ını oluşturuyor. Ve ekonomik açıdan önemli ve yaygın olarak kullanılan açık kaynak bileşenlerinin listesi — Google’ın derin öğrenme çerçevesi TensorFlow veya Facebook sponsorluğundaki rakibi PyTorchher yerde bulunan şifreleme kitaplığı OpenSSLveya kapsayıcı yönetim yazılımı Kubernet’ler – uzun ve uzuyor. Askeri ve istihbarat topluluğu da açık kaynaklı yazılımlara bağımlıdır: Palantir gibi programlar terörle mücadele operasyonları için çok önemliF-35 içerirken milyonlarca kod satırı.

Sorun, açık kaynaklı yazılım tedarik zincirinin bilinmeyen, muhtemelen kasıtlı güvenlik zayıflıkları sunabilmesidir. bir önceki analiz Kamuya açık olarak bildirilen tüm yazılım tedarik zinciri tavizlerinin çoğu, kötü niyetli saldırıların çoğunun açık kaynaklı yazılımları hedef aldığını ortaya çıkardı. Başka bir deyişle, SolarWinds gibi tescilli yazılımlara yönelik manşetleri kaplayan yazılım tedarik zinciri saldırıları, aslında vakaların azınlığını oluşturuyor. Sonuç olarak, modern yazılım bağımlılık ağacının muazzam karmaşıklığı nedeniyle saldırıları durdurmak artık zor: diğer bileşenlere bağlı olan bileşenler, diğer bileşenlere bağlı. ebediyen. Yazılımınızdaki güvenlik açıklarının neler olduğunu bilmek, yazılım geliştiriciler için tam zamanlı ve neredeyse imkansız bir iştir.

Neyse ki, umut var. Açık kaynaklı yazılımları daha güvenli hale getirmek için yazılım üreticilerinin ve devlet düzenleyicilerinin atabileceği üç adım öneriyoruz. İlk olarak, üreticiler ve tüketiciler yazılım şeffaflığını benimsemeli ve yazılımın bir ağ bağlantısı üzerinden geçen gizemli bloblardan ibaret olmadığı denetlenebilir bir ekosistem yaratmalıdır. İkincisi, yazılım üreticileri ve tüketiciler, bilinçli tedarik zinciri risk yönetimini sağlamak için yazılım bütünlüğü ve analiz araçlarını benimsemelidir. Üçüncüsü, hükümet reformları, açık kaynaklı yazılım tavizlerinin sayısını ve etkisini azaltmaya yardımcı olabilir.

Bağımlılığa Giden Yol

Yeniden kullanılabilir yazılım bileşenlerinin yükselişinin geleneksel hesapları, genellikle 1960’lara kadar uzanır. Bell Laboratories’den Douglas McIlroy gibi yazılım uzmanları, yeni yazılım geliştirmenin muazzam maliyetine dikkat çekmişti. Görevi kolaylaştırmak için McIlroy, bir “yazılım bileşenleri” yan sanayi makineler, kullanıcılar ve uygulamalar arasında yaygın olarak uygulanabilecek toplu üretim yazılım bileşenleri için – veya başka bir deyişle, tam olarak modern açık kaynaklı yazılımların sunduğu şey.

Açık kaynak başladığında, başlangıçta gözetim, bazı yönetim ve kalite kontrol sağlayan teknik topluluklar etrafında birleşti. Örneğin, Debian, Linux tabanlı işletim sistemi, hangi yazılım paketlerinin Debian dağıtımının bir parçası olacağı ve olmayacağı konusunda standartları koruyan ve uygulayan küresel bir açık kaynaklı yazılım geliştiricileri ağı tarafından desteklenmektedir. Ancak bu nispeten yakın gözetim, büyük ölçüde programlama dili tarafından düzenlenen daha serbest, tartışmasız daha yenilikçi bir paket kayıtları sistemine yol açtı. Bu kayıtları, yazılım geliştiriciler için uygulama mağazaları olarak düşünün ve geliştiricinin yeni uygulamalar oluşturmak için ücretsiz açık kaynaklı bileşenleri indirmesine izin verin. Bir örnek, idealist bir gönüllüden kurumsal bir çalışana ve kötü niyetli bir programcıya kadar herkesin kod yayınlamasını sağlayan Python programlama dili için paketlerin bir kaydı olan Python Paket Endeksi’dir. Bu kayıtların sayısı şaşırtıcı ve şimdi her programcının bunları kullanması gerekiyor.

Bu yazılım modelinin etkinliği, toplumun çoğunu açık kaynaklı yazılıma bağımlı hale getirir. Açık kaynak savunucuları, mevcut sistemi çağırarak savunmak için hızlıdır. Linus yasası: “Yeterli göz verilirse, tüm böcekler sığdır.” Yani, yazılım kaynak kodunu incelemek ücretsiz olduğu için, çevrimiçi çalışan ve kod paylaşan yazılım geliştiricileri, toplumu etkilemeden önce sorunları bulacaktır ve sonuç olarak, bu görünmez ordu nedeniyle toplum açık kaynaklı yazılıma bağımlılığı konusunda çok fazla endişelenmemelidir. onu koruyacaktır. Bu, eğer şaşıysanız, 1993’te doğru olabilir. Ama o zamandan bu yana çok şey değişti. 2022’de ne zaman olacak yüz milyonlarca Yeni açık kaynak kod satırlarının yazılması, çok az göz var ve derin hatalar olacak. Bu nedenle, Ağustos 2018’de, kripto para birimi çalma kodunun 7 milyondan fazla kez indirilen bir yazılım parçasına kaydırıldığını keşfetmek tam iki ay sürdü.

Etkinlik Akışı

Hikaye, geliştiricinin Dominik Tarr “event-stream” adlı açık kaynaklı bir JavaScript paketinin yayınlama haklarını yalnızca “right9ctrl” tanıtıcısı tarafından bilinen başka bir tarafa devretti. Aktarım, on milyonlarca yazılım geliştiricinin uğrak yeri olan popüler bir kod barındırma platformu olan GitHub’da gerçekleşti. User right9ctrl, o sırada haftada yaklaşık iki milyon kez indirilen olay akışını sürdürmeyi teklif etmişti. Tarr’ın kararı mantıklı ve dikkat çekici değildi. Bu açık kaynaklı yazılım parçasını izin verilen bir lisans altında ücretsiz olarak yaratmıştı – yazılım olduğu gibi sağlandı – ancak artık kendisi kullanmıyordu. Ayrıca halihazırda birkaç yüz parça başka açık kaynaklı yazılımı herhangi bir tazminat ödemeden bakımını yaptı. Bu yüzden, right9ctrl her kimse, kontrol talep ettiğinde, Tarr talebi kabul etti.

Bir açık kaynaklı yazılımın kontrolünün başka bir tarafa devredilmesi, her zaman sonuçsuz bir şekilde gerçekleşir. Ama bu sefer bir kötü niyetli bükülme. Tarr kontrolü devrettikten sonra, right9ctrl kurbanın bilgisayarından bitcoin çalmaya çalışan yeni bir bileşen ekledi. Milyonlarca bilgisayar, geliştiriciye kadar bu kötü amaçlı yazılım paketini indirdi. Jayden Seriç Ekim 2018’de bir anormallik fark etti.

Olay akışı, kod madenindeki kanaryaydı. Son yıllarda, bilgisayar güvenliği araştırmacıları, bir dizi yeni teknik kullanan saldırganlar buldu. Bazıları taklit ediyor alan adı çömelme: bir paket adını yanlış yazan yazılım geliştiricilerini kötü amaçlı yazılım indirmeleri için kandırmak (dajngo vs. Django). Diğer saldırılar yararlanır yazılım aracı yanlış yapılandırmalarıgeliştiricileri, yazılım paketlerini yanlış paket kayıt defterinden indirmeleri için kandırır. Bunların sıklığı ve şiddeti saldırılar son on yılda artmaktadır. Ve bu hesaplar, açık kaynaklı yazılımlardaki tartışmasız çok daha fazla sayıdaki kasıtsız güvenlik açıklarını bile içermiyor. Son zamanlarda, yaygın olarak kullanılan log4j yazılım paketinin kasıtsız güvenlik açığı, Beyaz Saray zirvesi açık kaynaklı yazılım güvenliği üzerine. Bu güvenlik açığı keşfedildikten sonra, bir gazeteci sadece biraz abartarak bir makaleye başlık verdi, “İnternet Yanıyor.”

Üç Adımlı Plan

Neyse ki, ABD hükümeti de dahil olmak üzere yazılım üreticilerinin ve tüketicilerinin, toplumun bu riskleri en aza indirirken açık kaynaklı yazılımın faydalarını elde etmesini sağlayacak birkaç adım atabileceği birkaç adım var. Halihazırda hükümetten destek alan ilk adım ABD Ticaret Bakanlığı ve endüstriden de, yazılımın değerlendirilebilmesi ve anlaşılabilmesi için şeffaf hale getirilmesini içerir. Bu, kullanımı teşvik etme çabalarıyla başlamıştır. yazılım malzeme listesi. Bu fatura, bir yazılım parçasının bileşenlerinin tam listesi veya envanteridir. Bu listeyle, yazılımın güvenliği ihlal edilmiş olabilecek bileşenleri araması daha kolay hale gelir.

Uzun vadede, bu yasa tasarısı, yazılımı kimin yazdığı ve nasıl oluşturulduğu hakkında bilgi içeren bir bileşen listesinin ötesine geçmelidir. Günlük yaşamdan mantık ödünç almak için, açıkça belirtilmiş ancak bilinmeyen ve analiz edilmemiş bileşenlere sahip bir gıda ürünü hayal edin. Bu liste iyi bir başlangıç, ancak bu bileşenlerin daha fazla analizi olmadan çoğu insan geçecektir. Bireysel programcılar, teknoloji devleri ve federal kuruluşlar, yazılım bileşenlerine benzer bir yaklaşım benimsemelidir. Bunu yapmanın bir yolu kucaklamak olurdu Yazılım Eserleri için Tedarik Zinciri Düzeyleri, kurcalamaya karşı koruma sağlayan kuruluşların yazılım tedarik zincirleri için bir dizi yönerge.

Bir sonraki adım, yazılım-güvenlik şirketlerini ve araştırmacıları, ilk olarak yazılımı imzalayan ve doğrulayan ve ikinci olarak, yazılım tedarik zincirini analiz eden ve yazılım ekiplerinin bileşenler hakkında bilinçli seçimler yapmasına izin veren araçlar oluşturmasını içerir. bu Sigstore projesi, Linux Vakfı, Google ve bir dizi başka kuruluş arasındaki bir işbirliği, açık kaynaklı yazılımların gözetim zincirini şeffaf ve denetlenebilir hale getirmek için dijital imzaları kullanmaya odaklanan bu tür bir çabadır. Bu teknik yaklaşımlar, kurcalamaya karşı korumalı bir mührün dijital eşdeğeri kadardır. Savunma Bakanlığı’nın Platform One yazılım ekibi, Sigstore öğelerini zaten benimsemiştir. Ek olarak, saldırılara karşı koymak için dünyanın yazılım tedarik zincirini toplayan, düzenleyen ve analiz eden bir yazılım tedarik zinciri “gözlemevi” de yardımcı olabilir. Potansiyel olarak bir üniversite konsorsiyumu tarafından yürütülen bir gözlemevi, aynı anda açık kaynaklı yazılım ihlallerinin yaygınlığını ve ciddiyetini ölçmeye yardımcı olabilir, tespite olanak sağlayan temel verileri sağlayabilir ve farklı çözümlerin etkinliğini nicel olarak karşılaştırabilir. bu Yazılım Mirası Veri Kümesi böyle bir gözlemevinin tohumlarını sağlar. Hükümetler, bu ve benzeri güvenlik odaklı girişimleri desteklemeye yardımcı olmalıdır. Teknoloji şirketleri ayrıca çeşitli “beslenme etiketi” projelerbir yazılım projesinin tedarik zincirinin “sağlığına” bir bakışta genel bir bakış sağlayan .

Bununla birlikte, bu nispeten teknik çabalar, daha geniş hükümet reformlarından fayda sağlayacaktır. Bu, açık kaynaklı güvenlik açıklarını belirlemek ve ifşa etmek için teşvik yapısının düzeltilmesiyle başlamalıdır. Örneğin, “DeWitt cümleleriYazılım lisanslarında yaygın olarak bulunan ”, yazılımın güvenliğine ilişkin belirli değerlendirmeleri yayınlamadan önce satıcının onayını gerektirir. Bu, toplumun hangi güvenlik uygulamalarının işe yarayıp hangilerinin çalışmadığı konusundaki bilgisini azaltır. Milletvekilleri, bu rekabet karşıtı uygulamayı yasaklamanın bir yolunu bulmalıdır. İç Güvenlik Bakanlığı, açık kaynaklı yazılım hata ödülleri için kar amacı gütmeyen bir fon başlatmayı da düşünmelidir, bu da araştırmacıları bu tür hataları bulup düzelttikleri için ödüllendirir. Son olarak, son zamanlarda önerildiği gibi Siber Uzay Solaryum Komisyonu, bir siber istatistik bürosu, yazılım tedarik zinciri tehlike verilerini izleyebilir ve değerlendirebilir. Bu, ilgili tarafların yinelenen, kendine özgü veri kümeleri oluşturmaya sıkışmamasını sağlayacaktır.

Bu reformlar olmadan, modern yazılım Frankenstein’ın canavarına, nihayetinde yaratıcısına yönelen şüpheli parçaların hantal bir derlemesine benzeyecek. Ancak reformla birlikte, ABD ekonomisi ve ulusal güvenlik altyapısı, açık kaynak işbirliğinin yarattığı dinamizm ve verimlilikten yararlanmaya devam edebilir.

John Speed ​​Meyers, bir güvenlik veri bilimcisidir. Zincir koruma. Zack Newman, Chainguard’da kıdemli bir yazılım mühendisidir. Tom Pike, Ulusal İstihbarat Üniversitesi’ndeki Oettinger Bilim ve Teknoloji Okulu’nun dekanıdır. Jacqueline Kazil, Rebellion Defense’de uygulamalı bir araştırma mühendisidir. Ulusal güvenlik ve açık kaynaklı yazılım güvenliği ile ilgilenen herkes, yeni gelişmekte olan bir şirketin GitHub sayfasında daha fazla bilgi edinebilir. açık kaynaklı yazılım mahalle izle. Bu yayında ifade edilen görüşler yazarlara aittir ve Ulusal İstihbarat Direktörü Ofisi veya başka herhangi bir kurum, kuruluş veya ABD devlet kurumu tarafından onaylandığı anlamına gelmez.

Resim: hazır fotoğraf




Kaynak : https://warontherocks.com/2022/05/dependency-issues-solving-the-worlds-open-source-software-security-problem/

Yorum yapın