2.4 · Seviye 0 · Dijital Dünyanın Temelleri
İşletim sisteminin görevi
çekirdek, kullanıcı alanı ve uygulamalar arasındaki sınır
Siber Güvenlik Akademisi — M02, Bilgisayar Nasıl Çalışır · 1.907 kelime · 4 saha durumu · ≈ 9 dk okuma · 13 dk dinleme
Saha durumlarındaki kişiler ve kurumlar kurgusaldır; kaynaklar gerçektir. Bu akademi savunma odaklıdır: saldırılar mekanizma düzeyinde anlatılır, adım adım saldırı tarifi verilmez. Uygulamalar yalnız kendi cihazında, kendi hesabında ya da yalıtılmış bir laboratuvarda yapılır; başkasının sistemine izinsiz erişim suçtur. Dersler hukuki danışmanlığın yerini tutmaz.
Açılış
Gülay Hanım, Kaan'a ekibin geçmişinden bir sabahı anlattı. İki bin yirmi dört yılının Temmuz ayında bir cuma sabahı, şirketin dizüstü bilgisayarları birer birer mavi ekran vermeye başlamıştı. Bilgisayarlar yeniden başlıyor, açılırken tekrar çöküyor, bir döngüye giriyordu. Önce bir saldırıdan şüphelendiler. Değildi. Bilgisayarları koruyan bir güvenlik yazılımı gece bir içerik güncellemesi almıştı ve güncellemedeki bir hata, yazılımın çalıştığı en derin katmanda bir çökmeye yol açıyordu.
Kaan anlamadı: sıradan bir program çöktüğünde pencere kapanır, bilgisayar çalışmaya devam ederdi. Bu program neden bilgisayarın tamamını çökertmişti? Gülay Hanım'ın cevabı bu dersin konusu. O güvenlik yazılımı, işini yapabilmek için, bilgisayarda sıradan programların asla giremediği bir bölgede çalışıyordu: işletim sisteminin çekirdeğinde. Orada bir hata, bir pencerenin değil, bütün makinenin çökmesi demekti.
O gün dünya genelinde milyonlarca bilgisayar etkilenmişti. Bu ders o katmanları, işletim sisteminin onları neden birbirinden ayırdığını ve bu ayrımın savunmanın tamamını nasıl taşıdığını anlatıyor.
Tek fikir
İşletim sistemi, programlar ile donanım arasında duran ve her erişimi denetleyen hakemdir. Gücünü çekirdek ile kullanıcı alanı arasındaki sınırdan alır: programlar donanıma doğrudan dokunamaz, yalnız işletim sisteminden ister.
Nasıl çalışır
Önceki derslerde bilgisayarın parçalarını, verinin baytlarını ve dosyaların düzenini gördük. Bunları bir arada işleten yazılım işletim sistemidir: Windows, macOS, Linux, Android ve iOS. İşletim sisteminin işi üç kelimeyle özetlenebilir: paylaştırmak, ayırmak ve denetlemek.
Paylaştırır, çünkü tek bir işlemci ve tek bir bellek aynı anda onlarca program tarafından kullanılır; işletim sistemi her birine sırayla zaman ve alan verir. Ayırır, çünkü bir programın başka bir programın belleğine karışmasına izin vermez. Denetler, çünkü bir program bir dosyayı okumak, ağa bağlanmak ya da kamerayı açmak istediğinde, buna izni olup olmadığına işletim sistemi karar verir.
Bu ayrım işlemcinin kendisinde kuruludur. Kullanıcı alanındaki bir program bellekteki bütün adreslere erişemez, donanım aygıtlarına doğrudan komut gönderemez. Bunları yapmak istediğinde işletim sisteminden ister.
Bu düzenin güvenlik açısından değeri, her önemli erişimin tek bir kapıdan geçmesidir. Kapı sağlam ve her geçişi kontrol ediyorsa, programların her birini ayrı ayrı güvenilir kılmak zorunda kalmazsın; hatalı ya da kötü niyetli bir program kendi alanında kalır.
Ama çekirdeğe girebilen tek şey işletim sisteminin kendisi değildir. Donanımla konuşması gereken yazılımlar da oraya yerleşir.
Bu, bir sürücünün ya da çekirdeğe yerleşen herhangi bir yazılımın, bütün sistemin güvenliğini ve kararlılığını taşıdığı anlamına gelir. Kullanıcı alanında bir program çöktüğünde işletim sistemi onu kapatır ve yoluna devam eder. Çekirdekte bir hata olduğunda ise korunacak bir üst katman yoktur; sistem durur. Bazı güvenlik yazılımları da kötü amaçlı yazılımları en derinde görebilmek için çekirdekte çalışır. Bu onlara güç verir, ama Gülay Hanım'ın anlattığı sabahın gösterdiği gibi, büyük bir sorumluluk da yükler.
Sahada
Savunma
Bu dersin savunması, çekirdek ile kullanıcı alanı arasındaki sınırı güçlü tutmak ve o sınırın içine kimin girdiğini denetlemektir.
İlk savunma işletim sistemini güncel tutmaktır. Çekirdekteki bir zafiyet, bir programın kendi alanından çıkıp en yüksek yetkiyi ele geçirmesine imkân verebilir ve bu tür zafiyetler düzenli olarak bulunup kapatılır. Desteği biten bir işletim sistemi bu düzeltmeleri artık almaz; Bora'nın istasyonu gibi ayrıca yalıtılması gerekir. Güncellemeyi modülün son dersinde ayrıca ele alacağız.
İkinci savunma çekirdeğe yerleşen yazılımı sınırlamaktır. Sürücüler yalnız üreticinin resmi kaynağından ve dijital imzayla kurulur. Modern işletim sistemleri bunu zorlar: Windows imzasız sürücüleri varsayılan olarak yüklemez ve bazı sürümlerde çekirdeğin bütünlüğünü ayrıca koruyan bir bellek bütünlüğü özelliği sunar; macOS sistem bütünlüğü korumasıyla işletim sisteminin kendi dosyalarını, yönetici yetkisiyle bile değiştirilmekten korur. Bu korumaları kapatmak, bir oyunun ya da bir programın istemesi için bile, sınırı zayıflatır.
Üçüncü savunma kullanıcı alanındaki yalıtımdan yararlanmaktır. Tarayıcıların her siteyi ayrı çalıştırması, telefonların her uygulamayı kendi alanına koyması, tam aracılığın kullanıcıya en yakın hâlidir. Bu yalıtımı korumak için uygulamaları resmi mağazalardan kurmak ve telefonlarda bu korumaları aşan yöntemleri kullanmamak gerekir.
Son olarak çekirdek düzeyinde çalışan güvenlik yazılımlarının bile bir risk taşıdığını kabul etmek gerekir. Gülay Hanım'ın ekibi o sabahtan sonra iki şey değiştirdi: kritik bilgisayarların kurtarma anahtarlarına hızla erişilebilecek bir düzen kurdu ve güvenlik yazılımının güncellemelerini, mümkün olan yerlerde, önce küçük bir bilgisayar grubuna uygulamaya başladı. Güvenlik aracı da bir yazılımdır ve hata yapabilir; dayanıklılık bunu hesaba katmayı gerektirir.
Uygulama
Bu uygulamada kendi bilgisayarının işletim sistemini ve çekirdeğini koruyan ayarlara bakacaksın. Bütün adımlar yalnız okuma yapar; hiçbir ayarı değiştirmen gerekmez.
Bir koruma kapalıysa hemen açmak zorunda değilsin; bazı eski sürücülerle uyumsuz olabilir. Ama neden kapalı olduğunu öğren ve not et.
Defter: Envanterdeki her bilgisayarın yanına işletim sistemi sürümü, güncelleme desteğinin sürüp sürmediği ve çekirdek koruma özelliğinin durumu. Kapalı bir koruma varsa nedeni; değişiklik günlüğünde bu kontrolü yaptığın tarih.
Hata köşesi
Yaygın yanlış"Bir program çökerse bilgisayar da çöker."
Kullanıcı alanında çalışan bir program çöktüğünde işletim sistemi onu kapatır ve diğer programlar çalışmaya devam eder; sınır tam olarak bunun için vardır. Bütün sistemi çökerten hatalar çekirdekte ya da çekirdekle aynı yetkiyle çalışan sürücülerde olur. Bu ayrım, bir yazılıma çekirdek düzeyinde erişim vermenin neden büyük bir karar olduğunu gösterir.
Yaygın yanlış"Güvenlik yazılımı ne kadar derinde çalışırsa o kadar iyidir."
Derinlik görünürlük sağlar ama riski de büyütür; çekirdekteki bir hata bütün makineyi durdurabilir. İki bin yirmi dört Temmuz'undaki olay bir saldırı değil, böyle bir hatanın sonucuydu. Derinlemesine çalışan yazılımın güncellemelerini kademeli uygulamak ve kurtarmaya hazırlıklı olmak gerekir.
Yaygın yanlış"Sürücü sadece donanımı çalıştıran küçük bir program."
Sürücülerin çoğu çekirdekle aynı yetkiyle çalışır; kötü niyetli ya da zafiyetli bir sürücü, bilgisayarın en yetkili katmanına açılan bir kapıdır. Bu yüzden sürücüler yalnız üreticinin resmi kaynağından ve dijital imzalı olarak kurulmalıdır.
Etik ve sınırlar
İşletim sisteminin koruma katmanları, bir cihazın sahibinin ve kullanıcısının çıkarlarını korur. Kendi cihazında bu korumaları incelemek, ayarlarını okumak ve neden açık olduklarını öğrenmek senin hakkındır. Bir iş yerinde ise bu korumaları kapatmak, bir yazılımın çalışması için gerekli olsa bile, senin kararın değildir; kurumun bilgi işlem sorumlusunun yetkisindedir ve çoğu zaman yazılı bir istisna kaydı gerektirir. Bir başkasının cihazında bu sınırları aşmaya çalışmak, örneğin bir telefonun ya da bilgisayarın yetki sınırlarını sahibinin izni olmadan kırmak, o cihazın sahibine karşı yapılmış bir müdahaledir ve bilişim suçları kapsamında değerlendirilebilir. Bu akademi sınırları anlamayı öğretir, aşmayı değil.
Kapanış
- İşletim sistemi programlar ile donanım arasında duran hakemdir: kaynakları paylaştırır, programları birbirinden ayırır ve her önemli erişimi denetler.
- Çekirdek en yüksek yetkiyle çalışır; programlar donanıma ancak sistem çağrısıyla, işletim sisteminin denetiminden geçerek ulaşır ve bu sınır tam aracılık ilkesinin uygulamasıdır.
- Çekirdeğe yerleşen sürücüler ve güvenlik yazılımları bütün sistemi taşır; onları resmi ve imzalı kaynaklardan kurmak, işletim sistemini güncel tutmak ve çekirdek korumalarını açık bırakmak sınırı güçlü tutar.
Üç soru
- Tarayıcıdaki bir sekme çöktüğünde diğer sekmeler neden çalışmaya devam eder?
- Bir yazıcı sürücüsünü bir indirme sitesinden kurmak neden sıradan bir programı kurmaktan daha risklidir?
- İki bin yirmi dört Temmuz'undaki olayda bir güvenlik yazılımının hatası neden bilgisayarların tamamen çökmesine yol açtı?
Yanıtlar
- Modern tarayıcılar her siteyi ayrı bir süreçte ve kısıtlı izinlerle çalıştırır; işletim sistemi bu süreçleri birbirinden ayırır. Bir sekmenin süreci çöktüğünde yalnız o süreç kapanır, diğerlerinin belleğine ve işleyişine dokunamaz. Aynı sınır, kötü niyetli bir sitenin diğer sekmelerdeki verilere erişmesini de zorlaştırır.
- Sürücülerin çoğu çekirdek düzeyinde, işletim sisteminin kendisiyle aynı yetkiyle çalışır. Kaynağı belirsiz bir sürücü kötü niyetli ya da hatalı olabilir ve bu durumda bilgisayarın en yetkili katmanına yerleşmiş olur. Bu yüzden sürücüler yalnız üreticinin resmi sitesinden ve dijital imzalı olarak kurulmalıdır.
- O güvenlik yazılımı işini yapabilmek için çekirdek düzeyinde çalışıyordu. Kullanıcı alanındaki bir program çöktüğünde işletim sistemi onu kapatıp devam edebilir, ama çekirdekteki bir hatayı yakalayacak üst bir katman yoktur; sistem durur. Hatalı içerik güncellemesi bu yüzden milyonlarca bilgisayarda tekrarlayan çökmelere yol açtı.
Sonraki derse köprü
Bu derste işletim sisteminin her erişimi denetlediğini söyledik. Ama neye göre denetliyor? Bir program bir dosyayı açmak istediğinde, işletim sistemi bunun "izinli" olup olmadığını neye bakarak anlıyor? Cevap, programı çalıştıran hesapta ve o hesabın yetkisinde yatıyor. Sıradaki ders süreçler ve izinler dersi: çalışan bir program, bir kullanıcı hesabı ve yönetici yetkisi arasındaki farkı ele alıyor.
Anlamadığın bir yer mi var?
Mentor yalnız bu dersin metnine dayanarak cevap verir. Metinde geçmeyen bir şey sorarsan uydurmaz, geçmediğini söyler.