Bağımlılık Karışıklığı Saldırılarını Savuşturmak için Yazılım Tedarik Zinciri Stratejileri

Bağımlılık Karışıklığı Saldırılarını Savuşturmak için Yazılım Tedarik Zinciri Stratejileri

Bağımlılık Karışıklığı Saldırılarını Savuşturmak için Yazılım Tedarik Zinciri Stratejileri PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

“İsmin içinde ne var? Gül dediğimiz şey, başka isimle de aynı derecede tatlı kokardı.” Shakespeare 2'da bu sözleri (Romeo ve Juliet, Perde 2, Sahne 1596) yazdığında, ismin sadece bir gelenek olduğunu söylüyordu. İçsel bir anlamı yoktur. Juliet, Romeo'yu isminden dolayı değil, kendisi olduğu için seviyor.

Ancak Shakespeare, bilmeden bağımlılık karmaşası saldırılarını da tanımlıyordu.

Bağımlılık karışıklığı, kodunuzda kullandığınız paketlerin size ait olmamasıdır. Aynı ada sahiptirler ancak üretimde çalışan kodunuz değildir. Aynı isim ama paketlerden biri gül gibi kokuyor, diğeri ise... kokuyor.

Son araştırma raporları, kuruluşların %41 ila %49'unun bağımlılık karışıklığı saldırılarına karşı risk altında olduğunu tahmin ediyor. OX Security'nin yeni araştırması, bir kuruluşun bağımlılık karışıklığı saldırısı riski altında olduğunda varlıklarının %73'ünün savunmasız olduğunu gösteriyor. Araştırma orta ve büyük ölçekli kuruluşlara odaklandı (1K+, 8K+, 80K+ çalışanlar) geniş bir sektör yelpazesinde (finans, oyun, teknoloji ve medya) risk buldu ve her ölçekteki kuruluşta her sektördeki riski buldu. Araştırma ayrıca 1 milyardan fazla kullanıcıya sahip neredeyse tüm uygulamaların, bağımlılık karışıklığına açık olan bağımlılıklar kullandığını da ortaya çıkardı.

Bu makale, bağımlılık karmaşasını ve bunu nasıl önleyeceğinizi anlamanıza yardımcı olmayı amaçlamaktadır.

Çift, Çift

Bağımlılıklar (paketler olarak da bilinir) yazılımınızın yapı taşlarıdır. Tipik olarak bu yazılım parçaları, ister tüm topluluklar tarafından ister bir şirket içinde geliştirilmiş olsun, ortak ve gerekli bir görevi yerine getirir.

Paket yöneticileri sıklıkla bağımlılıkları kurmak ve onları güncel tutmak için kullanılır. Paketin adı için genel ve özel kayıtları tararlar ve diğer her şey eşit olmak kaydıyla en yüksek sürüm numarasını seçerler. Saldırganlar, genel kayıt defterine aynı adı taşıyan ancak daha yüksek sürüme sahip "sahte" bir paket yerleştirerek bundan yararlanır.

Bir paket yöneticisi, biri genel kayıt defterinde, diğeri özel kayıt defterinde olmak üzere iki özdeş paketle karşılaştığında karışıklığa neden olur; dolayısıyla adı "bağımlılık karışıklığı"dır. İki paket aynı olduğundan, yönetici otomatik olarak daha yüksek sürüme sahip olanı kurmayı seçecektir. - bu durumda saldırganın kötü amaçlı paketi.

Bu, korsanlara yazılımınıza bir arka kapı açma olanağı verir. Bu noktadan itibaren veri ihlalleri gerçekleştirebilir, fikri mülkiyet hırsızlığı gerçekleştirebilir ve yazılım tedarik zincirinin güvenini tehlikeye atabilirler. Ayrıca ciddi düzenleyici cezaları tetikleyecek uyumluluk ihlallerine de yol açabilirler.

Zahmet ve Bela

Bağımlılık karışıklığı saldırısına yönelik çeşitli yaklaşımlar vardır.

  • Ad aralığı. Kötü amaçlı bir yazılım kitaplığını Python Paket Dizini (PyPI) veya JavaScript'ler gibi genel bir kayıt defterine yükleyerek npm kayıt defteri - yani benzer şekilde adlandırılmış Güvenilir, dahili olarak kullanılan bir kitaplığa, ad alanı/URL kontrolünü atlayan veya özel bir kayıt defterinden almaya zorlamayan sistemler yanlışlıkla kötü amaçlı kodu alabilir. son PyTorch bağımlılığı kafa karışıklığı olayı böyle bir örnektir.
  • DNS sahteciliği. DNS sahtekarlığı gibi bir teknik kullanılarak sistemler, meşru dahili URL'ler/yollar gibi görünen şeyleri görüntülerken, bağımlılıkları kötü amaçlı depolardan çekmeye yönlendirilebilir.
  • Komut. Derleme/kurulum komut dosyalarını değiştirerek veya sürekli entegrasyon / sürekli teslimat (CI/CD) ardışık düzen yapılandırmaları nedeniyle sistemler, yazılım bağımlılıklarını yerel bir depo yerine kötü amaçlı bir kaynaktan indirmeleri için kandırılabilir.

İyi ve Özenle Yapılan İşler

Bağımlılık karışıklığına karşı korunmak için bu uygulamaları uygulayın.

  • Paket yöneticisinde politikaları ayarlayın. Paket yöneticilerinin genel bir pakete özel bir pakete göre öncelik vermesine izin vermeyin.
  • Her zaman bir .npmrc dosyası ekleyin. Popüler NPM'yi paket yöneticisi olarak kullanıyorsanız, her zaman belirli bir kuruluş kapsamında paketlerin nereden getirileceğini belirten bir .npmrc dosyası ekleyin.
  • Paket adını genel bir kayıt defterinde ayırın. Bağımlılık karışıklığı saldırılarına karşı korunmanın bir başka yolu, korsanların kullanamaması ve dolayısıyla paket yöneticisini kötü amaçlı bir paket yüklemesi için "kandıramaması" için paket adını genel bir kayıt defterinde saklamaktır.

Bağımlılık karışıklığı saldırılarına karşı tam koruma sağlamak için kuruluşlar her zaman şunları kullanmalıdır: tüm dahili paketler için organizasyon kapsamları, dahili kayıt defterinize yayınlarken bile. Organizasyon kapsamları aynı zamanda NPM'nin kamu siciline de kaydedilmeli, böylece herhangi birinin kapsamı ele geçirmesi ve karışıklıktan faydalanması önlenmelidir.

Paket adları da halka açık olarak kaydedilmelidir. Örneğin bir kuruluş, popüler PIP'i Python bağımlılıkları için paket yöneticisi olarak kullanıyorsa, tanınabilir ve tüm projelerde çalışacak katı bir son eke sahip dahili paketler oluşturmalıdır. Aynı adı taşıyan boş bir paketi, yer tutucu olarak genel kayıt defteri PyPI'ye yükleyin.

Paket adını genel bir kayıt defterinde ayırmanın bir başka nedeni de, başka birisinin bunu (kötü niyetli olarak veya değil) ayırması durumunda, geliştiricilerin özel kayıt defterindeki tüm paket adlarını henüz genel kayıt defterinde ayrılmamış bir adla değiştirmek zorunda kalacak olmasıdır. Bu uzun ve sıkıcı bir süreç olabilir.

Tüm paket kayıtlarının kullanıcıların paket adlarını ayırtmasına izin vermediğini unutmamak önemlidir; bu nedenle, bunu sağlayan bir tane bulduğunuzdan emin olun.

Bir Ayı Tarafından Takip Edilen Çıkış

Bağımlılık karışıklığı saldırıları, dünya çapındaki kuruluşlar için ciddi ve yakın bir siber güvenlik tehdidi oluşturmaktadır. Kuruluşların yaklaşık yarısı risk altındadır ve bu kuruluşların varlıklarının %73'ü risk altındadır. Büyüyen bu tehdide karşı koymak için kuruluşların sağlam önleyici tedbirler alması ve siber güvenlik için en iyi uygulamaları benimsemesi gerekiyor.

Shakespeare'in gülleri yüzlerce yıldır bağımlılık kafa karışıklığı saldırıları riskinin habercisi olabilir, ancak Ozan'ın başka bir alıntısı bunlara karşı korunmak için bazı bilgelik içerebilir: "Bırakın her göz kendi adına müzakere etsin ve hiçbir temsilciye güvenmesin." (Hiçbir Şeyden Çok Gürültü, Perde 2, Sahne 1)

Zaman Damgası:

Den fazla karanlık okuma