Python Bytecode Güvenliği: Kaynak Kod Denetimini Aşan Riskler
Ampirik araştırma, Python .pyc bytecode'unun kaynak kod denetimini atlayarak CPython çalışma zamanında ciddi güvenlik risklerine yol açtığını ortaya koyuyor.
Yeni bir ampirik çalışma, Python paket güvenliğinin büyük ölçüde kaynak koda dayandığını, ancak CPython'ın .pyc dosyaları ve derlenmiş modüller aracılığıyla bytecode'u doğrudan çalıştırabildiğini gösteriyor. Araştırmacılar 1 milyondan fazla PyPI paketini tarayarak binlerce bytecode içeren artefakt tespit etti; bunların önemli bir kısmı kaynak kodu içermeyen, sadece derlenmiş .pyc dosyalarından oluşuyor.
Çalışma ayrıca decompiler araçlarının modern CPython sürümlerinde neredeyse tüm dosyalar için kaynak kod üretebildiğini, ancak bu üretimin işlevsel eşdeğerliği garanti etmediğini vurguluyor. Daha kritik olarak, hem gerçek PyPI bytecode'u hem de kasıtlı olarak bozulmuş bytecode, decompiler ve CPython çalışma zamanında istisnalara, zaman aşımlarına ve hatta native süreç çökmelerine yol açıyor.
Fuzzing testleri, işaretçi referans hatalarının hakim olduğu binden fazla benzersiz çalışma zamanı bulgusu ortaya çıkardı; bunların önemli bir bölümü bellek bozulması belirtileri taşıyor ve büyük çoğunluğu belgelenmiş güvensiz giriş sınırının ötesine geçebiliyor. Kritik nokta: bu bulguların hiçbiri sıradan Python kaynak kodundan yeniden üretilemiyor. Bu da bytecode'un, kaynak kod denetiminden bağımsız, kendi başına bir güvenlik saldırı yüzeyi oluşturduğunu gösteriyor ve mevcut güvenlik araçlarının bu boşluğu kapsamadığına işaret ediyor.