PYPI'daki kötü niyetli bir Python paketi, Unicode'u, geliştiricilerin hesap kimlik bilgilerini ve tehlikeye atılan cihazlardan diğer hassas verileri çalarken ve eksfiltrasyon yaparken algılamadan kaçınmak için bir gizleme tekniği olarak kullanır.
"OnyxProxy" olarak adlandırılan kötü amaçlı paket, kaynak kodundaki farklı Unicode yazı tiplerinin bir kombinasyonunu kullanır.
Oniksproxy'nin keşfi, tekniği açıklayan bir rapor yayınlayan Phylum'daki siber güvenlik uzmanlarından geliyor.
Paket artık PYPI'da mevcut değil, dün platformdan kaldırıldı. Ancak, 15 Mart'ta platformda yayınlanmasından bu yana, kötü amaçlı paket 183 indirme topladı.
Unicode, 100.000'den fazla karakteri kapsayan ortak bir standart altında çeşitli setleri/şemaları birleştirerek, çok çeşitli komut dosyalarını ve dilleri kapsayan bir standart kodlayan kapsamlı bir karakterdir.
Farklı dillerde ve platformlarda birlikte çalışabilirlik ve tutarlı metin temsilinin korunmasına yardımcı olmak ve kodlama çatışmalarını ve veri bozulması sorunlarını ortadan kaldırmak için oluşturulmuştur.
"Onyxproxy" paketi, Unicode karakterlerinin bir karışımını kullanan binlerce şüpheli kod dizesine sahip bir "setup.py" paketi içerir.
Bu dizelerdeki metin, farklı yazı tiplerinin yanı sıra, görsel denetimlerde neredeyse normal görünse de, Python tercümanları için bu karakterleri temelde farklı olarak ayrıştıracak ve tanıyacak büyük bir fark yaratıyor.
Örneğin, Phylum, Unicode'un "N" harfi için beş varyant olduğunu ve farklı dillerde, matematikte kullanılmak üzere "S" harfi için 19 varyant var vb. Unicode'da temsil edilir.
Python'un tanımlayıcılar için Unicode karakterlerini kullanma desteği, yani kod değişkenleri, işlevler, sınıflar, modüller ve diğer nesneler, kodlayıcıların aynı görünen ancak farklı işlevlere işaret eden tanımlayıcılar oluşturmasına olanak tanır.
Oniksproxy durumunda, yazarlar daha büyük olan ve çok sayıda varyant olan "__Import__", "Alt İşlem" ve "CryptunprotectData" tanımlayıcılarını kullandılar.
Python'un Unicode desteği, kötü niyetli dize eşleşmelerini gizlemek için kolayca istismar edilebilir, bu da hala kötü niyetli davranışlar gerçekleştirirken kodun zararsız görünmesini sağlar. Bu durumda, hassas verilerin çalınması ve geliştiricilerden kimlik doğrulama jetonları.
Bu gizleme yöntemi özellikle sofistike olmasa da, vahşi doğada kullanıldığını görmek endişe vericidir ve Unicode'un Python Obfuscation için daha geniş bir istismar işareti olabilir.
"Ancak, bu yazar bu şaşkın kodu kopyaladığında, Python tercümanının iç kısımlarını, yeni bir tür gizlenmiş kod oluşturmak için nasıl kullanılacağını bilecek kadar akıllıdır, bu da kodun tam olarak ne olduğunu çok fazla açıklamadan biraz okunabilir bir tür çalmaya çalışmak, "Phylum.
Python'daki Unicode riskleri geçmişte Python geliştirme topluluğunda kapsamlı bir şekilde tartışılmıştır.
Diğer araştırmacılar ve geliştiriciler de daha önce Python'daki Unicode desteğinin programlama dilini yeni bir güvenlik istismar sınıfına karşı savunmasız hale getireceği, gönderilen yamaları ve kodu incelemek zorlaştıracağı konusunda uyardı.
Kasım 2021'de akademik araştırmacılar, insan gözden geçirenlerin bu kötü niyetli enjeksiyonları tespit etmesini zorlaştırırken, güvenlik açıklarını kaynak koduna enjekte etmek için Unicode kontrol karakterlerini kullanan "Truva Kaynağı" adlı teorik bir saldırı sundular.
Sonuç olarak, bu saldırılar şimdi doğrulanmıştır ve savunucular ortaya çıkan bu tehditlere karşı daha sağlam tespit mekanizmaları uygulamalıdır.
Kötü niyetli PYPI paketlerinde W4SP Stealer kötü amaçlı yazılım tarafından hedeflenen geliştiriciler
Yeni gizli 'Bip' kötü amaçlı yazılım, kaçınma tespitine odaklanıyor
Bilgi Çalma Kötü Yazılımları ile Hacker Bombardı PYPI Platformu
Google Reklamlar, Antivirüs Kaçış İçin Yapılan "Sanallaştırılmış" kötü amaçlı yazılımları itin
Yeni Stealthy Python Sıçan Kötü Yazılım Saldırılarda Pencereleri Hedefliyor
Kaynak: Bleeping Computer