Giriş: Nx Paketinin Güvenlik Açığı
Son dönemde, nx build sistemi kullanıcılarını derinden etkileyen bir tedarik zinciri saldırısı gerçekleşti. Bu saldırı, popüler npm paketinin kötü niyetli versiyonlarının yayınlanmasına yol açtı ve kullanıcıların sistemlerinden hassas bilgileri toplama yeteneğine sahipti. Kötü amaçlı versiyonlar, dosya sistemini taramaya, kimlik bilgilerini toplamaya ve bu bilgileri kullanıcının hesabı altında GitHub’a göndermeye yönelik kod içeriyordu. Nx, 3.5 milyon haftalık indirmeye sahip olan açık kaynaklı ve teknoloji bağımsız bir yapı platformudur.
Saldırının Nedenleri ve İlgili Paketler
Saldırının sebebi, belirli bir workflow‘un zayıf bir şekilde yapılandırılmasıydı. Bu yapılandırma, bir pull request (PR)’de özel olarak hazırlanmış bir başlık kullanarak çalıştırılabilir kod enjekte etme yeteneğini sağladı. Uzmanlar, bu durumun pull_request_target tetikleyicisinin kullanılmasıyla gerçekleştiğini ve bu tetikleyicinin, normal pull_request tetikleyicisine göre daha yüksek izinler sunduğunu belirtti. Örneğin, GITHUB_TOKEN kullanılarak belirli bir publish.yml iş akışı tetikleniyor ve böylece kötü amaçlı kodun uygulanması mümkün hale geliyordu.
Aşağıda, etkilenen versiyonların listesi yer almaktadır:
- nx: 21.5.0, 20.9.0, 20.10.0, 21.6.0, 20.11.0, 21.7.0, 21.8.0, 20.12.0
- @nx/devkit: 21.5.0, 20.9.0
- @nx/enterprise-cloud: 3.2.0
- @nx/eslint: 21.5.0
- @nx/js: 21.5.0, 20.9.0
- @nx/key: 3.2.0
- @nx/node: 21.5.0, 20.9.0
- @nx/workspace: 21.5.0, 20.9.0
Bu versiyonlar npm kayıtlarından kaldırılmıştır.
Kötü Amaçlı Paketlerin Etkileri
Kötü amaçlı paketler, yükleme işlemi sonrasında etkinleşen bir postinstall script içeriyordu. Bu script, sistemde metin dosyalarını taramak, kimlik bilgilerini toplamak ve elde edilen bilgileri Base64 biçiminde bir GitHub reposuna göndermek için tasarlanmıştı. Ayrıca, .zshrc ve .bashrc dosyalarını değiştirerek, terminal açıldığında kullanıcılardan sistem parolası isteyecek şekilde düzenlemeler yapıyordu. Eğer kullanıcı parolasını girerse, sistem derhal kapatılabiliyordu.
Alınan Önlemler ve Kullanıcı Tavsiyeleri
Saldırı sonrası, GitHub kullanıcılara çözümler sunmaya başladı. Kullanıcılara, etkilenen paketleri kullanmayı bırakmaları, GitHub ve npm kimlik bilgilerini değiştirmeleri ve .zshrc ile .bashrc dosyalarında tanımadıkları talimatları kontrol ederek kaldırmaları önerildi. Nx ekibi, npm ve GitHub token’larını değiştirmeye, organizasyon içinde şüpheli aktiviteleri denetlemeye ve publish erişimini iki faktörlü kimlik doğrulama (2FA) gerektirecek şekilde güncellemeye başladı.
Gelecekteki Saldırılar ve Gelişmeler
Yapılan araştırmalar, sızdırılan GitHub token’larının yüzde 90’ının hâlâ geçerli olduğunu gösteriyor. Bu durumu ciddiye alan güvenlik uzmanları, geliştirici makinelerinde çalışan kötü amaçlı yazılımların hızlı bir şekilde yayıldığına dikkat çekiyor. AI CLI araçları, bu tür sızmalarda sistem içindeki bilgileri çalmak için kullanılıyor. StepSecurity, bu durumun, geliştirici AI yardımcılarının tedarik zinciri sömürüsünde bir araç olarak kullanıldığına dikkat çekti.
Saldırıların gelecekte hangi yönlere kayabileceğine dair farklı görüşler var. Geliştiricilerin karşılaştığı bu yeni tehdit, özellikle AI araçlarının kötüye kullanımı açısından dikkat çekici. Takip edilen siber güvenlik trendleri, kullanıcıların bu tür açıkları daha da ciddiye alması gerektiğini ortaya koyuyor.
Sonuç olarak
Bu tedarik zinciri saldırısı, yazılım geliştirme alanında güvenlik açıklarının ne denli tehlikeli olabileceğini bir kez daha gözler önüne seriyor. Kullanıcıların dikkatli olması, sistemlerini korumak adına atması gereken adımların başında geliyor. Teknik ekiplerin bu tür durumlardan ders çıkarması ve güvenliğin artırılması, gelecekte benzer olayların önlenmesi açısından kritik önem taşımakta.


