Python bilgi çalan kötü amaçlı yazılım, tespit edilmekten kaçınmak için Unicode’u kullanır


Ellerini tutan hacker

PyPI üzerindeki kötü amaçlı bir Python paketi, geliştiricilerin hesap kimlik bilgilerini ve güvenliği ihlal edilmiş cihazlardan diğer hassas verileri çalarken ve dışarı sızdırırken tespit edilmekten kaçınmak için bir şaşırtma tekniği olarak Unicode’u kullanır.

“Onyxproxy” adlı kötü amaçlı paket, kaynak koddaki farklı Unicode yazı tiplerinin bir kombinasyonunu kullanarak, otomatik taramaları ve dize eşleştirmeye dayalı olarak potansiyel olarak kötü amaçlı işlevleri tanımlayan savunmaları atlamasına yardımcı olur.

Onyxproxy’nin keşfi, tekniği açıklayan bir rapor yayınlayan Phylum’daki siber güvenlik uzmanlarından geliyor.

Paket, dün platformdan kaldırıldığı için artık PyPI’da mevcut değil. Ancak, 15 Mart’ta platformda yayınlanmasından bu yana, kötü amaçlı paket 183 kez indirildi.

Python’da kötüye kullanılan Unicode

Unicode, çok çeşitli komut dizilerini ve dilleri kapsayan, çeşitli kümeleri/şemaları 100.000’den fazla karakteri kapsayan ortak bir standart altında birleştiren kapsamlı bir karakter kodlama standardıdır.

Farklı diller ve platformlar arasında birlikte çalışabilirliği ve tutarlı metin temsilini korumaya yardımcı olmak ve kodlama çakışmalarını ve veri bozulması sorunlarını ortadan kaldırmak için oluşturulmuştur.

“Onyxproxy” paketi, Unicode karakterlerin bir karışımını kullanan binlerce şüpheli kod dizisi içeren bir “setup.py” paketi içerir.

Unicode karakterlerin bir karışımını kullanma
Unicode karakterlerin bir karışımını kullanma (filum)

Bu dizilerdeki metin, farklı yazı tiplerinin yanı sıra görsel incelemelerde neredeyse normal görünse de, bu karakterleri temelde farklı olarak ayrıştırıp tanıyan Python yorumlayıcıları için büyük bir fark yaratır.

Örneğin Phylum, Unicode’un farklı dillerde, matematikte vb. kullanım için “n” harfi için beş ve “s” harfi için 19 çeşidi olduğunu açıklar. Unicode’da temsil edilir.

Python’un tanımlayıcılar, yani kod değişkenleri, işlevler, sınıflar, modüller ve diğer nesneler için Unicode karakterleri kullanma desteği, 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.

Onyxproxy söz konusu olduğunda, yazarlar “__import__”, “subprocess” ve “CryptUnprotectData” tanımlayıcılarını kullandılar.

Varyantlar, kötü amaçlı tanımlayıcılar için sayılır
Değişkenler, kullanılan tanımlayıcılar için sayılır
(filum)

Python’un Unicode desteği, kötü amaçlı dize eşleşmelerini gizlemek için kolayca kötüye kullanılabilir ve bu da kodun zararsız görünmesine karşın kötü niyetli davranışlar gerçekleştirmeye devam etmesine neden olur. Bu durumda, geliştiricilerden hassas verilerin ve kimlik doğrulama belirteçlerinin çalınması.

Bu gizleme yöntemi özellikle karmaşık olmasa da, vahşi ortamda kullanıldığını görmek endişe vericidir ve Unicode’un Python şaşırtması için daha geniş çapta kötüye kullanıldığının bir işareti olabilir.

“Ancak, bu yazar bu gizlenmiş kodu kimden kopyaladıysa, Python yorumlayıcısının içindekileri yeni bir tür gizlenmiş kod oluşturmak için nasıl kullanacağını bilecek kadar zeki, kodun tam olarak ne olduğunu çok fazla açıklamadan bir şekilde okunabilen bir tür. çalmaya çalışıyor,” diye bitiriyor Phylum.

Python’da Unicode’un 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 açıkları sınıfına karşı savunmasız hale getireceği, gönderilen yamaları ve kodu incelemeyi zorlaştıracağı konusunda uyarmıştı.

Kasım 2021’de akademik araştırmacılar, kaynak koduna güvenlik açıkları eklemek için Unicode kontrol karakterlerini kullanan ve insan gözden geçirenlerin bu kötü amaçlı enjeksiyonları tespit etmesini zorlaştıran “Truva Kaynağı” adlı teorik bir saldırı sundu.

Sonuç olarak, bu saldırılar artık doğrulanmıştır ve savunucuların ortaya çıkan bu tehditlere karşı daha sağlam tespit mekanizmaları uygulamaları gerekmektedir.



Source link