Tehdit aktörlerinin, TypeScript-eslint ve @types/node gibi meşru npm paketlerinin kötü amaçlı yazım hatalarını yükledikleri ve paket kayıt defterinde binlerce indirmeye yol açtığı gözlemlendi.
@typescript_eslinter/eslint ve type-node adlı sahte sürümler, sırasıyla bir truva atı indirecek ve ikinci aşama yüklerini alacak şekilde tasarlandı.
Sonatype’den Axe Sharma Çarşamba günü yayınlanan bir analizde, “Yazım hatası saldırıları pek yeni olmasa da, hain aktörlerin bu iki kütüphanede onları meşru gibi göstermek için harcadığı çaba dikkate değer” dedi.
“Ayrıca, “types-node” gibi paketlerin yüksek indirme sayıları, hem bazı geliştiricilerin muhtemelen bu tiposquat’lara kandığına hem de tehdit aktörlerinin kötü niyetli bileşenlerinin güvenilirliğini artırmak için bu sayıları yapay olarak şişirdiğine işaret eden işaretlerdir.”
Sonatype’in analizi, @typescript_eslinter/eslint için npm listesinin, 29 Kasım 2024’te oluşturulan “typescript-eslinter” adlı bir hesap tarafından kurulan sahte bir GitHub deposuna işaret ettiğini ortaya çıkardı. Bu paketle birlikte sunulan, şu adla adlandırılan bir dosyadır: “daha güzel.bat.”
Aynı npm/GitHub hesabına bağlı başka bir paket @typescript_eslinter/prettier olarak adlandırılmıştır. Aynı adı taşıyan iyi bilinen bir kod biçimlendirme aracının kimliğine bürünür, ancak gerçekte sahte @typescript_eslinter/eslint kitaplığını yüklemek üzere yapılandırılmıştır.
Kötü amaçlı kitaplık, “prettier.bat” dosyasını geçici bir dizine bırakacak ve makine her yeniden başlatıldığında otomatik olarak çalışacak şekilde Windows Başlangıç klasörüne ekleyecek kod içerir.
Sharma, “Bir ‘toplu’ dosya olmaktan ziyade, ‘prettier.bat’ dosyası aslında daha önce VirusTotal’da bir truva atı ve damlalık olarak işaretlenmiş bir Windows yürütülebilir dosyasıdır (.exe).
Öte yandan, ikinci paket olan type-node, bir Pastebin URL’sine ulaşmayı ve aldatıcı bir şekilde “npm.exe” olarak adlandırılan kötü amaçlı bir yürütülebilir dosyayı çalıştırmaktan sorumlu olan komut dosyalarını getirmeyi içerir.
Sharma, “Dava, tedarik zinciri güvenlik önlemlerinin iyileştirilmesine yönelik acil ihtiyacın ve üçüncü taraf yazılım kayıt geliştiricilerinin izlenmesinde daha fazla dikkatli olunmasının altını çiziyor” dedi.
Bu gelişme, ReversingLabs’ın ilk olarak Ekim 2024’te Visual Studio Code (VSCode) Marketplace’te tespit edilen birkaç kötü amaçlı uzantıyı tespit etmesinden sonra gerçekleşti; bundan bir ay sonra npm kayıt defterinde ek bir paket ortaya çıktı. Paket toplam 399 kez indirildi.
Artık mağazadan kaldırılan hileli VSCode uzantılarının listesi aşağıdadır:
- EVM.Blockchain-Araç Takımı
- VoiceMod.VoiceMod
- ZoomVideoCommunications.Zoom
- ZoomINC.Zoom-İşyeri
- Ethereum.SoliditySupport
- ZoomWorkspace.Zoom
- ethereumorg.Ethereum için Sağlamlık-Dil
- VitalikButerin.Solidity-Ethereum
- SolidityFoundation.Solidity-Ethereum
- EthereumFoundation.Ethereum için Sağlamlık-Dil
- SOLIDITY.Solidity-Dil
- GavinWood.SolidityLang
- EthereumFoundation.Ethereum Dili İçin Sağlamlık
ReversingLabs araştırmacısı Lucija Valentić, “Kampanya kripto topluluğunun hedeflenmesiyle başladı, ancak Ekim ayının sonuna gelindiğinde yayınlanan uzantılar çoğunlukla Zoom uygulamasını taklit ediyordu.” dedi. “Ve yayınlanan her kötü amaçlı uzantı bir öncekinden daha karmaşıktı.”
Tüm uzantıların ve npm paketinin, uzak bir sunucudan ikinci aşamadaki bir yük için indirici görevi gören, gizlenmiş JavaScript kodu içerdiği tespit edildi. Yükün kesin niteliği şu anda bilinmiyor.
Bulgular, açık kaynaklı sistemlerden araç ve kitaplıkların indirilmesi söz konusu olduğunda dikkatli olunması ve daha büyük bir projeye bağımlılık olarak kötü amaçlı kod eklenmesinden kaçınılması gerektiğini bir kez daha vurguluyor.
Valentić, “Eklenti yükleme ve IDE’lerin işlevselliğini genişletme olasılığı, onları kötü niyetli aktörler için çok çekici hedefler haline getiriyor” dedi. “VSCode uzantıları, bir IDE’ye yüklenirken genellikle bir güvenlik riski olarak göz ardı edilir, ancak bir IDE’nin tehlikeye atılması, kuruluştaki geliştirme döngüsünün daha da tehlikeye atılması için bir iniş noktası olabilir.”