Trellix ve GitHub, Python’un tarfile modülünde 15 yıllık bir yol geçişi güvenlik açığına açık olduğu tespit edilen toplam 61.895 açık kaynak projesini toplu olarak düzeltti.
Firmanın Gelişmiş Araştırma Merkezi ekibi, CVE-2007-4559’un ilk keşfedilmesinden 15 yıl sonra tahminen 350.000 açık kaynak projesinde ve bilinmeyen sayıda kapalı kaynak projesinde kullanıldığını belirledikten sonra Eylül 2022’de yaygınlığını vurguladı. olanlar.
Ekip, ilgisiz bir sorunu araştırırken bu güvenlik açığına rastladı ve ilk başta bunun yepyeni bir sıfır gün olduğunu düşündü, ancak konuyu incelemeye başladıktan sonra, aslında “ekstrakte” eski bir hataya baktıklarını keşfettiler. ve Python’un tarfile modülünde “extractall” fonksiyonları.
CVE-2022-4559 kötüye kullanıldığında, kullanıcı destekli uzak bir saldırganın bir TAR arşivindeki dosya adlarındaki belirli bir sıra aracılığıyla rastgele dosyaların üzerine yazmasına olanak tanıyarak hedef aygıtın rastgele kod yürütülmesini veya kontrolünü sağlar.
Ekim 2007’de, hatanın düşük öneme sahip olduğu kabul edildi ve bazıları Amazon Web Services, Google, Intel ve Netflix tarafından oluşturulanlar ve makine öğrenimi, otomasyon ve Docker kapsayıcılığı için kullanılan diğer birçok uygulama dahil olmak üzere birçok çerçevede yaygın olmaya devam ediyor. .
Trellix baş mühendisi ve güvenlik açığı araştırma direktörü Doug McKee, araştırmacının DEFCON 2022’de yaptığı bir konuşmadan ilham alarak o zamandan beri ekibin savunmasız açık kaynak projelerine yama uygulama işlemini otomatikleştirmek için dört aylık bir çaba üzerinde çalıştığını söyledi. Jonathan Leitschuh. “GitHub aracılığıyla geliştiriciler ve topluluk üyeleri, çekme isteği adı verilen bir işlem aracılığıyla platformdaki projelere veya havuzlara kod gönderebiliyor” dedi. “Bir istek açıldığında, proje sorumluları önerilen kodu inceler, gerekirse işbirliği veya açıklama talep eder ve yeni kodu kabul eder. Bizim durumumuzda, çekme isteği yoluyla gönderilen kod, savunmasız GitHub projelerinin her birine benzersiz yamalar sağladı.
“Yama uygulamalarını otomatik hale getirmek için bir sürecin ana hatlarını çizdiğimiz gibi… Gelişmiş Araştırma Merkezi güvenlik açığı ekibimiz, kalite kontrol dışındaki süreçlerin çoğunu otomatikleştirmeyi başardı. Süreci iki adıma ayırdık, yama aşaması ve çekme isteği aşaması, her ikisi de otomatikti ve basitçe yürütülmesi gerekiyordu.”
GitHub’dan “tar dosyasını içe aktar” anahtar kelimesini içeren depoların ve dosyaların bir listesini aldıktan sonra, Trellix ekibi taranacak benzersiz bir havuz listesi derledi ve bu amaçla oluşturduğu Creosote adlı bir uygulama güvenlik açığı kontrol aracını kullanarak her birini klonlayıp taradı. . Creosote güvenlik açığı bulunan bir depo bulursa, ekip dosyayı yamaladı ve orijinal dosya ve depo meta verileriyle karşılaştırılabilmeleri için yamalı dosyayı içeren bir yerel yama farkı oluşturdu.
Bunu yaptıktan sonra ekip, yerel yol farklarının listesini gözden geçirdi, savunmasız deponun bir çatalını oluşturdu, klonladı ve ardından orijinal dosyayı yamalı dosyayla değiştirdi, eğer bu arada değişmediğini gördülerse – eğer öyleyse, aldılar. diğer değişikliklerin üzerine yazmamaya özen gösterir.
Değişiklikler daha sonra savunmasız depoya işlendi ve depo sahiplerine neler olduğunu açıklamak için çatallı depodan orijinale geri bir çekme isteği oluşturuldu. McKee, yamayı kabul etmenin artık havuz sahiplerine düştüğünü ekledi.
“Savunmasız tarfile modülü, temel Python paketine dahildir ve yaygın bir sorun için hazır bir çözümdür – ayrıca, Python’dan doğrudan bir düzeltme olmaksızın, birçok projenin tedarik zincirine sıkı bir şekilde yerleştirilmiştir” dedi.
“Kalıcılık, geliştiricilere tarfile modülünün doğru şekilde nasıl kullanılacağına dair neredeyse tüm öğrenme materyallerinin nasıl yanlış kullanılacağını öğrettiği gerçeğiyle birlikte geniş bir saldırı yüzeyi oluşturuyor. Güvenlik açığı bulunan projeleri otomatikleştirmeye ve düzeltme ekine yönelik bu çabalar sayesinde, yazılım tedarik zinciri saldırı yüzeyi daraltılmıştır.
McKee, “Saldırı yüzeyini daraltmaya yönelik bu çalışma, sektörümüzde işbirliği olmadan yapılamaz,” diye ekledi. “Bir endüstri olarak, temel güvenlik açıklarını arama ve ortadan kaldırma ihtiyacını göz ardı edemeyiz. Çok zaman alsa bile, açık kaynak projelerinin toplu yama işlemi yapılabilir ve bu, sektörler ve bölgeler genelinde her büyüklükteki kuruluşa fayda sağlayabilir.”
Uygulamalarında kod kitaplıkları ve çerçeveleri kullanan tüm kuruluşları, yazılım tedarik zincirlerinde uygun görünürlük sağlamak için uygun kontroller ve değerlendirme önlemleri almaya çağırdı ve teknolojinin tüm katmanlarında eğitim almak için geliştiricilere güvenmenin önemini vurguladı. yığın.