Geliştiricileri artan bir tedarik zinciri saldırısı riskine maruz bırakabilecek başka bir bulguda, Python Paket Dizini olan PyPI’deki paketlerin yaklaşık üçte birinin, indirildikten sonra otomatik kod yürütmeyi tetiklediği ortaya çıktı.

Checkmarx araştırmacısı Yehuda Gelb, “Pip/PyPI’deki endişe verici bir özellik, geliştiriciler yalnızca bir paketi indirirken kodun otomatik olarak çalışmasına izin veriyor.” söz konusu Bu hafta yayınlanan teknik bir raporda.

“Ayrıca, bu özellik, vahşi ortamda bulduğumuz kötü amaçlı paketlerin çoğunun, daha yüksek enfeksiyon oranları elde etmek için kurulumdan sonra bu kod yürütme özelliğini kullanması nedeniyle endişe verici.”

Python için paketlerin kurulabilmesinin yollarından biri, “pip kurulumu” komutu, sırayla, modülle birlikte gelen “setup.py” adlı bir dosyayı çağırır.

Adından da anlaşılacağı gibi “setup.py” bir kurulum komut dosyası bağımlılıkları da dahil olmak üzere paketle ilişkili meta verileri belirtmek için kullanılır.

Tehdit aktörleri setup.py dosyasına kötü amaçlı kod eklemeye başvursa da Checkmarx, rakiplerin “” olarak adlandırılan şeyi çalıştırarak aynı hedeflere ulaşabileceğini buldu.pip indirme” emretmek.

“pip indirme, pip kurulumu ile aynı çözünürlüğü ve indirmeyi yapar, ancak bağımlılıkları kurmak yerine, indirilen dağıtımları sağlanan dizine toplar (varsayılan dizine göre),” belgeler okur.

PyPi Kod Yürütme

Başka bir deyişle, komut, sisteme yüklemeye gerek kalmadan bir Python paketini indirmek için kullanılabilir. Ancak, ortaya çıktığı gibi, indirme komutunun yürütülmesi, yukarıda belirtilen “setup.py” komut dosyasını da çalıştırarak, içinde bulunan kötü amaçlı kodun yürütülmesine neden olur.

Ancak, sorunun yalnızca pakette tekerlek (.whl) dosyası yerine “setup.py” yürütmesini denklemden çıkaran bir tar.gz dosyası içerdiğinde ortaya çıktığını belirtmekte fayda var.

Gelb, “Paketleri yüklemek yerine indirmeyi seçen geliştiriciler, makul olarak dosyaları indirdikten sonra makinede hiçbir kodun çalışmamasını bekliyorlar,” dedi. Tasarım sorunu bir bugdan ziyade.

pip varsayılan olarak tar.gz dosyaları yerine tekerlekleri kullanmayı tercih etse de, bir saldırgan python paketlerini bir .whl dosyası olmadan kasıtlı olarak yayınlamak için bu davranıştan yararlanabilir ve bu da kurulum komut dosyasında bulunan kötü amaçlı kodun yürütülmesine yol açabilir.

Gelb, “Bir kullanıcı PyPi’den bir python paketi indirdiğinde, pip tercihen .whl dosyasını kullanacak, ancak .whl dosyası eksikse tar.gz dosyasına geri dönecek” dedi.

Bulgular, ABD Ulusal Güvenlik Ajansı (NSA), Siber Güvenlik ve Altyapı Güvenlik Ajansı (CISA) ve Ulusal İstihbarat Direktörü Ofisi (ODNI) ile birlikte geliyor. yayınlanan kılavuz yazılım tedarik zincirini güvence altına almak için.

Ajans, “Siber tehdit daha karmaşık hale gelmeye devam ettikçe, düşmanlar herkesin bildiği açıklara güvenmek yerine yazılım tedarik zincirine saldırmaya başladı.” söz konusu. “Tüm DevOps’lar DevSecOps olana kadar, yazılım geliştirme yaşam döngüsü risk altında olacaktır.”



siber-2