Kötü Niyetli npm Paketleriyle Windows Uzak Erişim Truva Atı Tespit Edildi

Siber güvenlik araştırmacıları, PostCSS araçları olarak gizlenen ve Windows uzak erişim truva atı dağıtan kötü niyetli bir dizi npm paketini keşfetti. Bu paketler, son bir ay içinde “abdrizak” adlı bir npm kullanıcısı tarafından yayınlandı ve halen npm’den indirilebiliyor. Bu durum, yazılım geliştirme ekosistemlerindeki zincirleme bağımlılıkların ve üçüncü parti kütüphanelerin ne kadar kritik bir güvenlik açığı oluşturabileceğini bir kez daha gözler önüne seriyor. Siber güvenlik dünyasında bu tür saldırılara “supply chain attacks” yani tedarik zinciri saldırıları denmektedir ve geliştiricilerin kullandığı paketlerin güvenliği, doğrudan son kullanıcının sistem güvenliğini etkileyebilir.
“Aes-decode-runner-pro ve postcss-minify-selector-parser, katmanlı AES/özel kodlamalı paketler olarak sunuluyor ve meşru postcss-selector-parser’a bağımlılar” diyor JFrog analizinde. Bu, saldırganların, popüler ve güvenilir görünen bir kütüphanenin (postcss-selector-parser) kimliğine bürünerek veya ona bağımlı olarak kendi zararlı kodlarını eklediği anlamına geliyor. AES (Advanced Encryption Standard) ve özel kodlama kullanımı, zararlı kodun tespit edilmesini zorlaştırmak için uygulanan bir yöntemdir. Bu tür şifreleme katmanları, statik analiz araçlarının zararlı yükü kolayca bulmasını engeller ve dinamik analiz gereksinimini artırır. “Postcss-minify-selector, PostCSS seçici küçültücü olarak sunuluyor ve postcss-minify-selector-parser’a bağımlı.” Bu bağımlılık ilişkisi, saldırının yayılma ve etkisini artırma potansiyelini gösteriyor. Yani bir zararlı paket, başka bir zararlı pakete bağımlı olarak çalışabiliyor, bu da saldırı zincirini daha karmaşık ve tespit edilmesi daha zor hale getiriyor.
Paketlerin Analizi
İndirilen pakete bakılmaksızın, saldırı zinciri aynı Windows kötü yazılımlarının dağıtılmasına yol açıyor. Paketler, bir JavaScript düşmanı içeriyor ve “settings.ps1” adlı bir PowerShell betiğini diske yazıp çalıştırıyor. Bu ilk aşama, genellikle sistem kaynaklarını minimumda kullanarak ve meşru görünen betik isimleri kullanarak gizlenmeye çalışır. PowerShell, Windows sistemlerinde yönetim görevleri için yaygın olarak kullanıldığı için, kötü niyetli betiklerin bu ortamda çalıştırılması daha az şüphe uyandırır. “settings.ps1” gibi bir isim, bir yapılandırma dosyasının veya ayarlar betiğinin adı gibi görünebilir, bu da güvenlik analistlerinin dikkatini dağıtabilir. Bu betiğin temel görevi, bir sonraki aşama yükü indirmek ve çalıştırmaktır.
PowerShell betiği, “nvidiadriver[.]net” adresinden “curl.exe” kullanarak bir sonraki aşama yükünü indiriyor. Bu, saldırganların genellikle dinamik DNS veya aldatıcı alan adları kullanarak komuta ve kontrol (C2) sunucularını gizlemeye çalıştığını gösterir. “nvidiadriver[.]net” gibi bir alan adı, meşru bir donanım sürücüsü sağlayıcısı gibi görünebilir, bu da kullanıcıların veya sistemlerin bu bağlantıya güvenmesini sağlamak için tasarlanmıştır. `curl.exe` kullanımı, standart bir ağ aracı olduğu için şüpheli görünmeyebilir. Bu indirilen yük, genellikle daha karmaşık ve tehlikeli bileşenleri barındırır.
İndirilen yük, “update.vbs” adlı bir Visual Basic betiğini çalıştırmak için kullanılan bir ZIP arşividir. ZIP arşivinin kullanılması, birden fazla dosyayı bir araya getirerek indirme işlemini kolaylaştırır ve aynı zamanda dosyaların gizlenmesine yardımcı olabilir. Visual Basic betiği (VBScript), Windows’ta yaygın olarak kullanılan bir betik dilidir ve genellikle sistem görevlerini otomatikleştirmek için kullanılır. Ancak, saldırganlar tarafından da sistem üzerinde zararlı eylemler gerçekleştirmek için kullanılabilir. “update.vbs” gibi bir isim, bir sistem güncellemesi gibi görünebilir ve bu da kullanıcının veya sistemin betiği çalıştırmasını teşvik edebilir. Bu betik, Python çalışma ortamını kurmak ve “loader.py” betiğini çalıştırmakla sorumludur. Python’ın kullanılması, saldırganlara platformlar arası uyumluluk ve güçlü bir programlama yeteneği sunar. Python çalışma ortamının kurulması, kötü amaçlı yazılımın sistemde daha kalıcı olmasını ve daha karmaşık görevleri yerine getirmesini sağlar.
“Loader.py” betiği, kötü niyetli yazılımların temel mantığını tetikliyor. Bu betik, genellikle diğer zararlı bileşenleri yükler, yapılandırmaları ayarlar ve asıl saldırı eylemlerini başlatır. Bu aşama, kötü amaçlı yazılımın asıl amacını yerine getirmesini sağlar.
Kötü niyetli yazılımlar, konak makine bilgilerini toplamak, Google Chrome’dan kimlik bilgilerini sızdırmak, Chrome eklentilerinden veri toplamak, kabuk komutları çalıştırmak ve bir komuta ve kontrol (C2) sunucusu ile dosyaları indirmek/yüklemek için tasarlanmıştır. Bu özellikler, Python yerel uzantı modüllerinin bir seti aracılığıyla gerçekleştiriliyor: config.pyd, api.pyd, audiodriver.pyd, command.pyd, auto.pyd ve util.pyd. Bu `.pyd` dosyaları, Python’ın C veya C++ gibi dillerde yazılmış yerel kütüphaneleri çağırmasını sağlayan modüllerdir. Bu, performans artışı sağlayabilir ve doğrudan işletim sistemi fonksiyonlarına erişim imkanı sunar.
- config.pyd: Sistem yapılandırmasını okuyabilir, ağ ayarlarını veya diğer hassas bilgileri ele geçirebilir.
- api.pyd: Belirli API çağrılarını gerçekleştirebilir, bu da sistemdeki diğer uygulamalarla etkileşim kurmasına olanak tanır.
- audiodriver.pyd: Ses kaydı veya mikrofona erişim gibi sesle ilgili işlemleri gerçekleştirebilir.
- command.pyd: Sistemde rastgele komutlar çalıştırabilir, bu da saldırganın makine üzerinde tam kontrol sağlamasına olanak tanır.
- auto.pyd: Otomatikleştirilmiş görevleri yerine getirebilir, örneğin sistem başlangıcında çalışacak şekilde ayarlanabilir.
- util.pyd: Genel yardımcı fonksiyonları içeren, dosya işlemleri, şifreleme/deşifreleme veya ağ iletişimi gibi çeşitli görevleri yerine getirebilir.
Bu modüller, kötü amaçlı yazılımın oldukça geniş yeteneklere sahip olmasını sağlar ve tespitini zorlaştırır.
Siber Güvenlik Uzmanlarına Uyarı
“Bu durum, küçük bir parçacık benzeri paketin, meşru derleme araçlarıyla ilgili görünürken, çok aşamalı bir Windows yükünü gizleyebileceğini gösteriyor” diyor JFrog. Bu, geliştiricilerin ve güvenlik analistlerinin, küçük ve önemsiz gibi görünen paketlere bile şüpheyle yaklaşması gerektiğini vurgular. Özellikle npm gibi paket yöneticilerinde, binlerce paket bulunmaktadır ve bunların tamamının tek tek güvenlik taramasından geçirilmesi pratik olarak imkansızdır. Bu nedenle, bağımlılık grafiğinin derinlemesine incelenmesi ve şüpheli paketlerin belirlenmesi hayati önem taşır. “Savunucular için önemli ders, benzer derleme bağımlılıklarının potansiyel teslim mekanizmaları olarak, yalnızca zararsız adlandırmaya yönelik gürültü olarak değil, hassasiyetle behandeltilmesi gerektiğidir.” Bu, sadece paketlerin isimlerine veya açıklamalarına bakarak karar vermek yerine, kodlarının analiz edilmesi, bağımlılıklarının detaylıca incelenmesi ve potansiyel zararlı davranışlarının araştırılması gerektiğini ifade eder. Paketlerin sadece “gürültü” olarak geçiştirilmemesi, her birinin potansiyel bir güvenlik riski taşıyabileceği gerçeğinin kabul edilmesi gerekir.
Bu keşif, npm ve TypeScript ekosistemini hedef alan diğer üç kampanyayla eş zamanlı gerçekleşti. Bu durum, siber suçluların sürekli olarak farklı vektörler ve platformlar kullanarak saldırılarını çeşitlendirdiğini göstermektedir. TypeScript’in popülerliği, onu da saldırganlar için cazip bir hedef haline getirmiştir. Bir paket, tam özellikli bir Linux truva atı olan MYRA’yı teslim ettiğini iddia ederek, “apintergrationpost” adlı kötü niyetli bir paket keşfedildi. Bu, saldırganların sadece Windows değil, farklı işletim sistemlerini de hedef aldığını ve birden fazla türde kötü amaçlı yazılım dağıtabildiğini gösteriyor. MYRA gibi tam özellikli truva atları, uzaktan erişim, veri çalma ve sistem kontrolü gibi çok çeşitli zararlı eylemleri gerçekleştirebilir.
Türk Kullanıcılar ve Şirketler İçin Riskler
Türkiye’deki kullanıcılar ve şirketler, siber tehditlere karşı özellikle hassas olabilir. Küresel siber güvenlik tehditleri coğrafi sınırlamalara tabi olmadığı için, Türkiye’deki bireyler ve kurumlar da bu tür saldırılardan doğrudan etkilenebilirler. Gelişmiş ülkelerdeki güvenlik önlemleri ve farkındalık seviyesi ile karşılaştırıldığında, gelişmekte olan ülkelerde siber güvenlik altyapısı ve farkındalığı daha düşük olabilir, bu da onları daha savunmasız hale getirebilir. Bu nedenle, npm paketlerini indirirken dikkatli olmak ve paketlerin güvenilirliğini kontrol etmek son derece önemlidir. Güvenilir kaynaklardan gelen paketleri tercih etmek, pacote ait yorumları ve sorunları incelemek, yazarın geçmişini araştırmak gibi adımlar atılmalıdır. Ayrıca, şirketlerin ve geliştiricilerin, siber güvenlik önlemlerini güçlendirmek için düzenli olarak eğitim ve bilinçlendirme faaliyetleri düzenlemeleri şiddetle tavsiye edilir. Çalışanların fidye yazılımları, oltalama saldırıları ve güvenli kod yazma prensipleri hakkında eğitilmesi, genel güvenlik duruşunu önemli ölçüde iyileştirecektir.
Peki, Bu Kötü Niyetli Paketlerle Ne Yapmalısınız?
Kötü niyetli paketlerle karşılaşmamak için, npm paketlerini indirirken dikkatli olmak ve paketlerin güvenilirliğini kontrol etmek önemlidir. Bu, sadece paketlerin isimlerine ve popülerliklerine bakmakla sınırlı kalmamalıdır. Güvenlik taraması yapan araçlar kullanılmalı, paketlerin son güncellemeleri ve geliştirici topluluğundaki itibarları araştırılmalıdır. Paketlerin bağımlılıkları da dikkatlice incelenmeli, şüpheli veya bilinmeyen bağımlılıklara sahip paketlerden kaçınılmalıdır. Ayrıca, şirketlerin ve geliştiricilerin, siber güvenlik önlemlerini güçlendirmek için düzenli olarak eğitim ve bilinçlendirme faaliyetleri düzenlemeleri mutlaka gereklidir. Siber güvenlik, sadece teknik önlemlerle değil, aynı zamanda insan faktörünü de güçlendirerek sağlanır. Geliştiricilere güvenli kod yazma pratikleri, bağımlılık yönetimi stratejileri ve potansiyel tehditler hakkında sürekli eğitim verilmelidir. Güvenlik odaklı bir geliştirme kültürü oluşturmak, bu tür saldırılara karşı en etkili savunmadır. Mevcut projelerde kullanılan tüm bağımlılıkların düzenli olarak güncellenmesi ve güvenlik açıklarına karşı taranması da kritik öneme sahiptir. Otomatik güvenlik tarama araçları ve bağımlılık denetleme yazılımları, bu süreci otomatikleştirmeye yardımcı olabilir. Bir güvenlik açığı tespit edildiğinde, ilgili paketlerin en kısa sürede güncellenmesi veya alternatifleri ile değiştirilmesi gerekmektedir.
İlgili Makaleler
- ›Windows 11'de Otomatik İmzalı SSL Sertifikaları Oluşturma Rehberi
- ›Sahte 7-Zip Yükleyicileri, Cihazları Konut Proxy Ağına Katıyor
- ›Gizlenen Kimlik Avı Dalgaları Geleneksel E-posta Kalkanlarını Kırıyor
- ›Kimlik Doğrulama Adımı: Siber Saldırıların Yeni Cephesi
- ›Tenda Router Yazılımlarında Gizli Yönetici Arka Kapısı Riski