‘Dirty COW’ aslında 9 yıldır Linux çekirdeğinde bizimle beraber olan bir zafiyet.
Kirli İnek Nedir?
Resmi olarak CVE-2016-5195 etiketine sahip Kirli İnek açığı, temel olarak bahsetmek gerekirse sisteme yüklü herhangi bir yazılımın ya da bir şekilde çalıştırılması başarılan zararlı kodun sisteme root seviyesinde erişim sağlamasına olanak sağlıyor. Linux çekirdeğindeki yazmaya bağlı kopyalama (copy-on-write) önbelleğine alınan veri ‘yarış durumu’ (race condition) oluşturularak root’a ait sadece okunabilir bellek alanının kurcalanabilmesine imkan sağlayan bu açık, kullanıcıya root’a ait dosyaları da değiştirme yolunu açmış oluyor.
Aslında Dirty COW yapısal anlamda diğer sistem açıklarından pek de farklı veya özel değil. Ancak, bu açığın 2007’de duyurulan Linux 2.6.22 çekirdeğinden bu yana kullanılan bütün Linux sistemleri etkilediğini düşünecek olursak özel ilgili hak ettiğini görebiliriz. Yani 2.6.22 ve üstü çekirdeğe sahip bütün sistemlerde root yetkisi gayet basit şekilde elde edilebiliyor.
Neden ‘Dirty COW’?
Yazmaya bağlı kopyalama mekanizmasının kontrolünde kullanılan kirli biti (dirty bit)’in düzgün kontrol edilemeyişinden kaynaklandığından dolayı açığa Dirty COW ismi verilmiş. Linus Torvalds bu açığı 11 yıl önce başarısız bir şekilde düzeltmeye çalıştığını, o zaman bu yarış durumunu tetiklemek zor olduğundan o şekliyle bıraktığını da itiraf etmiş. Kötü yönden bakıldığında bu açık 9 yıldır piyasada ve muhtemelen yeraltı piyasasında on-yüzbinlerce dolara alıcı buluyordu, iyi yönden bakıldığında ise Android kullanıcılarına telefonlarını root’lama imkanı sağlayacak yeni bir yöntem ortaya çıktı. Piyasada root yüzü görmemiş telefonlar göz önüne alındığında yepyeni bir umut kapısı şu an Android camiası için aralanmış oldu.
Son Durum
Linux çekirdeği ve Linux işletim sistemleri dağıtıcıları elbette ki kendi yazılımlarına bu açığı kapatacak güncellemeyi duyurdular. Ancak bilindiği üzere Android’in güncelleme yapısı bu kadar kolay ve kısa süreli çözümler sağlayacak duruma henüz ulaşmış değil. Android L öncesi yazılıma sahip birçok telefon için de güncelleme desteği çekilmiş olduğuna göre kullanıcılarını açıkta bırakan telefon üreticilerin ne yapacağı bana kalırsa merak konusu. Yeni sistemlere bu açığın ne sağlayacağına gelecek olursak eğer, geçici hafızadan ‘root shell’ çalıştırılarak sistem bütünlüğünün bozulması ve ‘dm-verity‘nin devredışı bırakılması gibi işlemler de Android topluluğunun yetenekli üyelerine kalmış durumda.
‘Dirty COW’ konusunda teknik ayrıntıya fazla girmek istemedim, ama eğer talep olursa açığın neden kaynaklandığına yönelik daha açıklayıcı bir yazı da yazabilirim. Yorum satırlarında dilek, öneri ve sorularınızı bekliyorum 🙂