PHP dili kaynak kodunun güvenliğini ihlal etmeye çalıştı

Bilinmeyen saldırganlar PHP betik dili kaynak koduna bir arka kapı yerleştirmeye çalıştılar.

Kısa süre önce bilinmeyen saldırganlar, resmi PHP GIT havuzuna kötü amaçlı kodlar ekleyerek büyük ölçekli bir tedarik zinciri saldırısı gerçekleştirmeye çalıştılar. Geliştiriciler arka kapıyı zamanında fark etmemiş olsaydı, birçok Web sunucusuna girip ve tarihteki en büyük tedarik zinciri saldırısına yol açabilirdi.

PHP’de ne oldu?

PHP dilini geliştiren programcılar, GIT sürüm kontrol sistemi üzerine kurulu ortak bir havuz kullanarak kodda değişiklikler yaparlar. Eklemeleri gerçekleştirdikten sonra kod, başka bir incelemeden geçer. Bir rutin kontrol sırasında bir geliştirici, yorumlarda yazım hatası düzeltmesi olarak belirtilen ve aktif bir PHP geliştiricisi olan Nikita Popov adına yapılan şüpheli bir ekleme fark etti. Daha yakından incelendiğinde ise bunun bir arka kapı olduğu ortaya çıktı. Popov böyle bir değişiklik yapmamıştı.

Yapılan daha fazla doğrulama, bu kez Rasmus Lerdorf’a adına, benzer başka bir eklemenin daha havuza yüklendiğini gösterdi. Dikkatli programcılar saatler içinde durumu fark ettiler, bu sebeple yaklaşan PHP 8.1 güncellemesinde (yıl sonunda beklenen bir sürümle birlikte) arka kapı bulunmayacak.

Kod değişikliği neden tehlikeliydi?

Havuzdaki bir arka kapı, saldırganların güvenliği ihlal edilmiş PHP sürümünü kullanan bir web sunucusunda uzaktan kötü amaçlı kodları çalıştırmasına fırsat verebilir. Azalan popülerliğine rağmen PHP, web sunucularının yaklaşık yüzde 80’inde kullanımda olan, web içeriği için en yaygın kullanılan betik dili olmaya devam ediyor. Tüm yöneticiler araçlarını zamanında güncellemese de, makul sayıdaki yönetici dahili veya harici güvenlik düzenlemelerine uymak için sunucularını güncel tutar. Arka kapı PHP’nin yeni sürümüne girmiş olsaydı, büyük olasılıkla birçok şirketin web sunucularına da yayılırdı.

Saldırganlar arka kapıyı nasıl gösterdiler?

Uzmanlar, saldırının güvenliği ihlal edilmiş geliştirici hesaplarından değil, dahili Git sunucusundaki bir güvenlik açığından kaynaklandığından emin. Aslında, birisinin yapılan bir değişikliği başka bir kullanıcıyla ilişkilendirmesi riski uzun zamandır biliniyordu ve bu olaydan sonra PHP destek ekibi git.php.net sunucusunu kullanmayı bıraktı ve GitHub servis havuzuna taşındı (daha önce sadece bir yansıtmaydı).

Nasıl güvende kalınır?

Geliştirme ortamları, siber suçluların ilgisini çeken hedeflerdir. Müşterilerin güvendiği bir yazılım ürününe ait kodun güvenliğini ihlal ettikten sonra sonra, bir tedarik zinciri saldırısı yoluyla aynı anda birden fazla hedefe ulaşabilirler. Dünyanın dört bir yanındaki milyonlarca kullanıcı en popüler projeleri kullanıyor, bu nedenle onları dışarıda dönen dolaplardan korumak özellikle önemlidir.

  • Seçkin ve güvenilir programcılar tarafından yapıldığı varsayılanlar da dahil olmak üzere her kod değişikliğini düzenli olarak iki kez kontrol edin;
  • Geliştirme için kullanılan sunucuların ve hizmetlerin güvenliğini izleyin;
  • Modern siber tehditleri tespit etme konusunda çalışanları eğitmek için bu konuda özelleşmiş çevrimiçi platformları kullanın.
İpuçları