Rust Ekosisteminde Tedarik Zinciri Saldırısı Üç Popüler Paketi Etkiledi
Geliştiricileri hedef alan yeni bir Rust tedarik zinciri saldırısı, popüler arrayref paketinin bakım hesabının ele geçirilmesiyle derleme sırasında bilgi hırsızı çalıştırdı. Saldırganlar 20 Ağustos 2026’da 23 dakikalık süreçte arrayref, append-only-vec ve internment paketlerinin zararlı sürümlerini yayınladı. Saldırının ardından yapılan analizler, etkilenen sistemlerde tarayıcı kimlik bilgilerinin, sistem verilerinin ve erişilebilir gizli anahtarların çalınmış olabileceğini gösterdi.
Saldırganlar Popüler Rust Paketlerini Zararlı Sürümlerle Değiştirdi
20 Ağustos’ta crates.io üzerinde gerçekleşen hareketlilik, saldırganların aynı bakım hesabına bağlı üç paketi art arda hedef aldığını ortaya çıkardı. StepSecurity araştırmacıları arrayref 0.3.10, append-only-vec 0.1.9 ve internment 0.8.7 sürümlerini zararlı paketler olarak belirledi. Saldırganlar aynı operasyon kapsamında aovine, arone, aronenao ve tinymember adlı dört crate’in farklı sürümlerini de yayınladı ancak crates.io bu paketleri daha sonra kaldırdı.
Arrayref’in son 90 günde 53 milyondan fazla indirilmesi, saldırının potansiyel erişim alanını genişletti. Kütüphane toplamda 245 milyondan fazla indirmeye ulaşırken blake3, egui, eframe ve iced gibi Rust projelerinde kullanılıyor. Ethereum ve Solana ekosistemlerinde kullanılan bazı bileşenlerin arrayref bağımlılığı taşıması, tek bir paket hesabındaki ihlalin daha geniş yazılım zincirlerine ulaşabileceğini gösteriyor.
Saldırganlar proc-macro2 paketinin adını taklit eden proc-macro1 adlı bağımlılığı kullanarak üç hedef pakete zararlı kod ulaştırdı. İlk olarak 1.0.106 sürümünü zararsız bir proc-macro2 kopyası olarak yayınlayan saldırganlar, 1.0.107 sürümünde kötü amaçlı içeriği devreye aldı. Typosquatting yöntemiyle hazırlanan sahte paket, geliştiricinin bağımlılık adındaki küçük farklılığı fark etmemesi halinde saldırı zincirinin çalışmasına yol açtı.
proc-macro1 içindeki build.rs betiği, Rust projesi derlenirken otomatik şekilde çalışarak base64 ile kodlanmış parçaları birleştirdi. Betik hedef işletim sistemini belirledikten sonra Linux x86-64, Windows x86-64, macOS x86-64 veya macOS ARM64 için hazırlanan payload’lardan uygun olanı seçti. Rust derleme sürecinin bağımlılıklar tarafından sağlanan betikleri çalıştırabilmesi, saldırganların zararlı kodu uygulama başlatılmadan geliştirici ortamında yürütmesine olanak tanıdı.
Windows sistemlerinde zararlı yazılım %TEMP%\rust-setup.ps1 dosyasını oluşturduktan sonra gizli wscript.exe süreci ile VBS başlatıcısını çalıştırdı. Unix sistemlerinde ise /tmp/rust-setup dosyası oluşturularak çalıştırılabilir hale getirildi ve payload ayrılmış bir süreç üzerinden başlatıldı. Zararlı bileşenin aldığı adres parametresi, araştırmacılar tarafından komuta ve kontrol sunucusuna ait olduğu düşünülen bir bağlantı noktası olarak değerlendirildi.
Wiz araştırmacıları ikinci aşamadaki payload’ın sistem bilgilerini dışarı aktarabildiğini belirledi. Google Chrome, Brave ve Microsoft Edge tarayıcılarının SQLite tabanlı giriş veritabanları sorgulanarak kayıtlı kimlik bilgileri hedeflenirken zararlı yazılım Windows’ta Registry Run anahtarı, macOS’ta LaunchAgent ve Linux’ta systemd üzerinden kalıcılık sağladı. Saldırının bu aşaması, paket kurulumuyla başlayan etkinliğin geliştirici bilgisayarında kalıcı bir tehdide dönüşebileceğini gösterdi.
Saldırganlar 20 Ağustos saat 01.17 UTC’de önde gelen Rust geliştiricisi David Tolnay’ı taklit eden bir GitHub hesabı oluşturdu. Crates.io üzerinde de benzer bir hesap hazırlayan saldırganlar 01.55 UTC’de proc-macro1 paketini yayınladıktan sonra 07.11 UTC’de zararlı 1.0.107 sürümünü devreye aldı. Arrayref 0.3.10 sürümü 07.15 UTC’de meşru droundy hesabı üzerinden yayınlandıktan sonra olay 07.54 UTC’de bildirildi.
Crates.io yöneticileri 08.03 UTC’de proc-macro1 paketini sildi ve 08.41 UTC’de arrayref 0.3.10 sürümünü dizinden kaldırdı. StepSecurity, SafeDep ve Aikido saldırıya ilişkin teknik analizlerini paylaşırken Wiz araştırmacıları kampanyanın altyapısının Mastra ve axios projelerini hedefleyen önceki Kuzey Kore bağlantılı tedarik zinciri saldırılarıyla örtüştüğünü bildirdi. Araştırmacıların bu altyapı benzerliği, saldırının daha geniş bir tehdit faaliyetleri kümesiyle bağlantılı olabileceğine işaret ediyor.
Etkilenme penceresinde paketlerden birini kuran geliştiricilerin sistemlerini güvenliği ihlal edilmiş kabul ederek incelemesi gerekiyor. Güvenlik ekipleri Cargo.lock dosyalarında arrayref 0.3.10, append-only-vec 0.1.9 ve internment 0.8.7 sürümlerini ararken /tmp/rust-setup ile %TEMP%\rust-setup.ps1 dosyalarını da kontrol etmeli. Ağ kayıtlarında 23.254.165[.]112 adresine 9089 veya 443 numaralı portlardan yapılan bağlantılar da saldırının izlerini belirlemek için kullanılabilecek göstergeler arasında yer alıyor.
Doğrulanmış ihlallerde geliştiricilerin erişilebilir tüm kimlik bilgilerini yenilemesi gerekiyor çünkü zararlı yazılım tarayıcı kayıtlarının yanı sıra geliştirici ortamlarında bulunan diğer sırları da hedefleyebiliyor. Kurumların CI token’larını, imzalama anahtarlarını ve diğer gizli bilgileri döndürmesi, güvenli yedeklerden temiz çalışma ortamları oluşturması gerekiyor. Güvenliği doğrulanmış projelerde ise etkilenen bağımlılıkların bilinen güvenli sürümlerinin sabitlenmesi, bakım hesabındaki durum netleşene kadar yeni paket güncellemelerinin kontrollü biçimde değerlendirilmesi gerekiyor.
Rust tedarik zinciri saldırısı, açık kaynak bağımlılıklarının yalnızca kaynak kodu üzerinden değerlendirilmesinin yeterli olmadığını ortaya koyuyor. Geliştirici ekiplerinin paket bakım hesaplarını, sürüm değişikliklerini, bağımlılık adlarını ve derleme sırasında çalışan betikleri birlikte izlemesi benzer saldırıların erken tespit edilmesine katkı sağlayabilir. Özellikle CI/CD ortamlarında bağımlılıkların izole sistemlerde derlenmesi, geliştirici cihazlarında bulunan erişim bilgileri ile imzalama anahtarlarının saldırı zincirine dahil olma riskini azaltabilir.









