Kilitli kasa Vista
Windows Vista, hacker ve virüs saldırılarına karşı en güvenli işletim sistemi haline geldi.
Virüsler, solucanlar, casus yazılımlar ve Truva atları gibi internetten gelen tehlikeler daha çok Windows kullanıcılarını hedef alıyor. Bu da oklukça doğal, zira çok sayıda bilgisayarı ele geçirmek isleyen bir korsan için daha yaygın bir işletim sistemini hedef almak daha mantıklı bir seçim. Microsoft, bu tehdidin bilincinde olarak yeni işletim sisteminde en büyük önceliği sistem güvenliğine vermiş. Windows Vista'daki sayısız güvenlik mekanizması, tüm zamanların en güvenli işletim sistemini vaat ediyor.
En önemli yeniliklerden biri "User Account Control" (UAC). Microsoft gerçi Vista'da da kurulum sırasında oluşturulan kullanıcı hesabının yönetici (administrator) haklarına sahip olması konseptinden vazgeçmiş değil, ancak kurulum sonrasında sisteme ilk girildiğinde ara yüz, sadece standart kullanıcı haklarına sahip olarak çalışıyor. Bir uygulama veya sistem bileşeni gerçeklen de yönetici haklarına ihtiyaç duyduğunda, Vista kullanıcıya buna izin verilip verilmeyeceğini soruyor ve onay veren bir tıklamayı bekliyor. Kısıtlı kullanıcı hesaplarında bunun için bir yönetici şifresinin girilmesi gerekiyor.
UAC uyumlu uygulamalar, "Manifest"lerinde gerekli hakları veren bir kayıt içeriyorlar. Vista, eski uygulamaların da çalışması için bilinen yazılımlara yönelik gerekli ayarların bulunduğu bir veritabanı kullanıyor. Sezgisel (heuristic) bir algoritma sayesinde bilinmeyen kurulum programları tanınabiliyor: Mesela dosya adında "setup" veya "install" ifadeleri bulunuyorsa, Vista güvenlik amaçlı olarak programın yönetici haklarına sahip olarak çalıştırılıp çalıştırılmayacağını soruyor.
Eski yazılımları kısıtlı haklarla çalıştırmak için bir başka destek ise dosya ve Kayıl Defleri sanallaştırması. Çoğu program, ait oldukları kullanıcı profili yerine program dizininde ve hatta bazıları da bir sistem dizininde yapılandırma dosyaları ve benzeri dosyalar kaydediyor. Ancak kısıtlı haklarla buna izinleri olmadığı için, Vista sistem dizinlerine veya şişleme özgü Kayıl Defleri anahtarlarına geçici, sanal bir erişim ve yazına hakkı tanıyor.
Mesela bir program Windows dizininde bir dosya oluşturduğunda, Vista bunu aslında ilgili kullanıcı profilinin AppData\Local\VirtualStore\Windows dizininde kaydediyor. Ancak program bunu Windows dizinindeymiş gibi "görüyor" ve normal bir şekilde dosyayla çalışıyor. Benzer şekilde Kayıt Defterinde HKEY_LOCAL_MACHINE\Software altında yapılan değişiklikler de kullanıcıya ait bir dala aktarılıyor: HKEY_ USERS\Security-ID_Classes\VirtualStore\Machine\Software.
Sistem, manifest'lerinde UAC uyumlu olduğunu bildiren programları sanallaştırmıyor. Notepad ile Windows dizininde bir dosya oluşturmaya çalıştığınızda bir hala mesajıyla karşılaşıyorsunuz. Görev Yönelicisi'nde işlemler listesinden sanallaştırma durumunu görebilir ve gerekirse bazı işlemler için bunu etkinleştirebilir veya iptal edebilirsiniz.
Batmayan sörf tahtası: Daha güvenli Explorer
BATMAYAN SÖRF TAHTASI
Daha güvenli Explorer
Internet Explorer 7, standart ayarlarında korumalı bir kip olan "güvenli kip"te çalışıyor ve sadece ilgili kullanıcının çerezleri, geçici internet dosyaları ve sörf geçmişi gibi ek dizinler allına yazma hakkına sahip. Güvenli kip tüm bölgeler için geçerli, istisnalar ise güvenilen şileler ve yerel ağ; bu iki bölge de alt dizinlerdeki dosyaları göremiyor.
Özel bir sandbox (broker process) ile Vista, tarayıcı eklentilerinin ve ActiveX denetimlerinin, sınırlı haklarla da olsa IE 7'de çalıştırılmasına izin veriyor. Dosya sanallaştırması yanında başka filtreler de CreateProcess() ve CoCreateInstance() işlevlerinde devreye giriyor, böylece eklentiler ancak kullanıcının onayını aldıktan sonra başka eklentileri çalıştırabiliyor.
Vista, sistem hizmetlerine de mümkün olan en az hakkı (least privileges) veriyor. Böylece Vista altında sadece birkaç araç hemen her hakka sahip LocalSystem hesabıyla çalışıyor. Diğer çoğu hizmetse LocalService ve NetworkService gibi hesapların bağlamında çalışıyor ve bu yüzden sistemin geri kalanı üzerinde sınırlı erişim haklarına sahipler. Yani sistem güvenliğini tehlikeye atan bir hizmet, arlık eski Windows sürümlerinde olduğu kadar kötü niyetle kullanılamıyor.
Her hizmet kendine ait bir güvenlik kimliğine (security ID) sahip oluyor, böylece her hizmet için nesnelere erişim ayrı ayrı düzenlenebiliyor. Mesela güvenlik duvarı (firewall), ağ trafiğini güvenlik kimliğine göre filtreliyor. Belli bir port'u kullanması gereken bir ağ hizmeti bu şekilde sadece bu port'u kullanabiliyor. Bir bol yazılımı bir açıktan faydalanarak hizmetin içine sızdığında, dışarıdan komutların çalıştırılmasına veya sistemdeki bilgileri internetten islenmeyen kişilere göndermeye olanak tanıyan başka ek portlar açamıyor. Hesap aidiyeti Denelim Masası'ndaki hizmet yönetimiyle ayarlanabiliyor. Komut salın aracı sc.exe ise hizmetlerin güvenlik ayarlarını daha ayrıntılı bir şekilde yapmanızı sağlıyor.
İzolasyon: Erişim kısıtlamaları
İZOLASYON
Erişim kısıtlamaları
Microsoft'un önerisine rağmen masaüstünde pencere açan sistem hizmetleri de güvenliği tehlikeye atıyordu. Shatterattack adı verilen saldırılarla, islenen herhangi bir programın yüksek imtiyazlı hizmet pencereleriyle iletişim kurması sağlanıyor ve program kodlarına müdahale edilerek daha yüksek haklarla çalıştırılması sağlanabiliyordu.
Microsoft, bunu önlemek için farklı haklara sahip programlar veya hizmetler arasındaki Windows mesaj iletişimi için bir filtre devreye sokmuş: Daha yüksek haklara sahip bir uygulama, daha az imtiyaza sahip bir programa mesaj gönderebilirken, tersi istikametteki bir iletişimi filtre engelliyor.
Bu sayede kısıtlı haklara sahip programları sistem yöneticisi hesabında çalıştırmak bir güvenlik riski taşımıyor. Windows XP altında mesela Internet Explorer'ı düşük haklarla çalıştırmak çok riskli olarak görülüyordu, zira zararlı bir yazılımın bulaşması durumunda daha fazla hakka sahip işlemlere mesaj gönderilip islenen herhangi bir komutun çalıştırılması sağlanıyordu.
Bir sistem hizmeti kullanıcıyla iletişim kurmak islediğinde, Vista otomatik olarak özel bir masaüstüne (Secure Desktop) geçiş yapıyor. Burada güncel masaüstü içeriğinin ekran görüntüsü saydam bir efektle arka planda duruyor. Masaüstlerinin mesaj kuyrukları birbirlerinden tamamen ayrı; kullanıcı uygulamaları güvenli masaüstüne erişim hakkına sahip değiller.
Kaynak koruması: Kernel koruması
KAYNAK KORUMASI
Kernel koruması
Microsoft, Windows Resource Protection (WRP) ile önemli kayıt anahtarlarını ve dosyaları bozulmalardan ve manipülasyondan korumayı amaçlıyor. XP'deki sistem dosyası korumasından farklı olarak Vista, bozuk sistem dosyalanın güvenlik kopyalarıyla değiştirerek tamir etmeye çalışmıyor. Bunun yerine neredeyse tüm sistemin önemli verileri ve anahtarlara yazma hakkını elinden alıyor. LocalSystem ve sistem yöneticisi hile' bu verilerde sadece okuma hakkına sahip. Sadece Trustedlnstaller hizmeti dosyaları bir kurulumdan sonra güncellemeler için değiştirebiliyor veya silebiliyor.
Bunların dışında Microsoft, Vista'da yeni bir hizmet türü ortaya çıkarmış: Protected Services (korumalı hizmetler). Bunların sistem güvenliğiyle bir ilgisi olmasa da, Digital Rights Management (DRM, dijital haklar yönetimi) ile korunmuş içeriklere erişilmesini engelliyorlar. Böylece bu tip hizmetler, izni olmayan yazılımlar arabirimlerine erişmek islediklerinde veya manipülasyonlar tespit ettiklerinde veri akışını kesiyorlar.
64 bitlik Vista sürümünün Kernel koruması roolkit'lere karşı güçlü bir koruma sağlıyor. Bunlar kernel manipülasyonlarıyla virüs tarayıcı kırdan ve diğer programlardan gizlenmeye çalışıyorlar. Vista'nın 32 bitlik sürümlerinde bu kernel koruması mevcut değil.
64 bit kernel korumasının bileşenlerinden biri olan PatchGuard'ın (Kernel Patch Protection) görevi, kernel üzerindeki manipülasyonları Önceden tespit etmek ve işletim sistemini ciddi durumlarda kapatmak. Çekirdek bunun için beş ile on dakika arasında değişen süreler aralığında, kernel hizmetleri işlevleri için adres listeleri (SSDT), Interrupt Descriptor Table (IDT) ve Global Descriptor Table (GDT) gibi korunmuş kernel yapılarını kontrol ediyor. Hatta AMD işlemcili 64 bit sistemlerde çekirdeğin tüm adres alanlarında modifikasyon yasak. PatchGuard bir tutarsızlık tespit elliğinde, sistemi korumak için acil bir şekilde sistemi kapatıyor. Bu esnada sistemde kaydedilmemiş veriler maalesef kayboluyor.
Ne var ki, güvenlik duvarları ve anti virüs programları gibi iyi niyetli yazılımlarda adresleri, fonksiyon çağrılarını filtrelemek ve mesela bir davranışsal engelleyici (behavioristic blocker) ile analiz etmek için kendi rutinlerine yönlendiriyorlar. Bu tip güvenlik yazılımlarına buna rağmen gözetleme işlevi sağlamak için, resmi uygulama arabirimleri tasarlanmış, bunlar başka filtrelerin eklenmesine izin veriyorlar. Bunun için bir dijital imzaya sahip olmaları gerekiyor.
Bu gözetleme arabirimlerinin içerisinde bir dosya sistemi ve kayıl defleri mini filtresi bulunuyor. Güvenlik duvarları, Windows Filtering Platform (WFP) ile gelen ve giden veri paketlerini analiz edip gerekliğinde alarm veriyorlar. Microsoft, kendisi için çalışan bir kernel'in "hotpatching"ine izin veriyor; Özel bir dijital imzaya sahip güvenlik güncelleştirmeleri, sistemin yeniden başlatılması gerekmeksizin etkin hale geliyor. Microsoft, Avrupa Birliği Rekabet Komisyonu'nun baskıları doğrultusunda diğer yazılım üreticilerine de Vista'da kapsamlı bir AP1 sunacak, ancak bu tahminen 2008'de yayınlanacak Service Pack 1'le gerçekleştirilecek.
Kernel modifikasyonlarına karşı koruma için ikinci Önlenişe, 64 bit Vista sürümünün arlık sadece imzalı sürücüleri (Kernel Mode Code Signing) kabul etmesi. Eski 32 bitlik sürücüler 64 bit modunda çalışmıyor. Üreticiler sürücülerini 64 bitlik mod için uyarlamak zorundalar.
Ağ güvenliği: Firewall ve karantina ağı
AĞ GÜVENLİĞİ
Firewall ve karantina ağı
Vista'ya entegre güvenlik duvarı oldukça komplike bir filtre haline getirilmiş. Ancak kullanıcı ilk bakışla bunun pek farkına varmıyor: Kullanıcı arayüzü XP allındakiyle aynı. Microsoft Management Console (MMC) ve buna ait olan snap-in ile bakıldığında ek işlevler görülebiliyor. Bu bağlamda giden trafik de filtre!eniyor ve hatta tamamen kapatılabiliyor. İstemci uygulamalar böyle bir durumda ancak elle giden bağlantılar listesine kaydedilmeleri durumunda ağ bağlantıları kurabiliyorlar. Bu kişisel güvenlik duvarı yazılımlarının özelliklerini andırsa da, Vista konforlu bir öğrenme modu sunmuyor ve standart ayarlarda güvenlik duvarı giden tüm trafiğe izin veriyor.
Güvenlik duvarının MMC ile yapılandırılması acemi kullanıcıların kolayca üstesinden gelemeyecekleri bir iş, burada büyük ihtimalle Üçüncü parti yazılım üreticileri devreye girecekler. Microsoft, uzun zamandır duyurulan Network Access Protection (NAP) için bir istemci de sunuyor, bununla bir sistem ağa bağlanmadan önce güvenlik taramasından geçiriliyor. Kontrol olumsuz sonuçlanırsa, KAP özellikli Longhorn sunucusu ağa bağlantı izni vermiyor. Bunun yerine ağa bağlanmak isleyen bilgisayar bir karantina ağına alınıyor, buradan gerekli güncellemeleri alabiliyor.
Overflow koruması: Bellek taşmasına son
OVERFLOW KORUMASI
Bellek taşmasına son
Çeşitli önlemlerle zararlı kodların buffer-overflow (tampon bellek taşması) gibi yöntemlerle sisteme bulaştırılması engellenmek islenmiş. Bu saldırı yönteminde yaygın bir programlama halasından faydalanılıyor: Programın geliştiricisi programında sabit boyuta sahip bir tampon belleği karşıdan alınacak veriler için hazır tutuyor. Saldırgan, programın beklediğinden daha fazlasını göndererek tampon belleğin taşmasına ve program İçin ayrılan belleğin dışına yazılmasına neden oluyor. Bu şekilde tampon belleğin dışındaki değişkenler veya bir işlevin dönüş adresi değiştirilip, zararlı kodlar çalıştırılabiliyor.
Microsoft, Vista'nın büyük bölümünde kodun tampon bellek taşmasına karşı daha sağlam bir hale gelmesini sağlayan compiler (derleme) seçenekleri kullanmış. Mesela compiler, kritik işlevleri bir stack-cookie ile donatıyor, bu çerez dönüşlerden Önce karşı taraftaki adresin güvenli olup olmadığını kontrol ediyor.
Vista ayrıca sadece veri içeren bellek alanlarında kod çalıştırılmasını yasaklayarak ek bir koruma sağlıyor. Bunun için yeni işlemcilerin donanım desteğinden (NX-Bit) faydalanıyor. Microsoft, bu "veri çalıştırma engelleyicisini Service Pack 2 ile Windows XP altında da sunmuştu. Dolayısıyla çoğu işletim sistemi bileşeni bunun koruması allında. Ancak 32 bitlik Vista'da uyumluluk nedenlerinden ölürü uygulamalar standart olarak bu koruma altında değil. Vista, sadece uygulamalar özel olarak bunu talep elliklerinde veri çalıştırma engelleyicisini devreye sokuyor. Görev Yöneticisi'nde bunu kontrol etmek mümkün. 64 bit programlar standart olarak veri alanlarında kod çalıştıramıyor.
Tüm bu önlemlere rağmen bir sisteme zararlı kodlar bulaşırsa, sistem kodun ayaklarına bir başka çelme daha takıyor: Address Space Layout Randomization (ASLR). Eski Windows sürümlerinde bazı sistem İşlevleri bellekle her zaman aynı adresle bulunuyordu, böylece zararlı kodlar bunlara kolayca ulaşıyordu. Vista, açılıştan sonra her kütüphaneyi rasgele bir adrese atıyor, saldırgan bu yüzden doğru giriş adreslerini tahmin etmek zorunda.
Herşey güvenlik için: BitLocker ile şifreleme
HERŞEY GÜVENLİK İÇİN
BitLocker ile şifreleme
Firma aylarındaki sistem yöneticileri, MP3 çalar veya USB stick gibi USB bellek medyalarını genellikle bir güvenlik tehdidi olarak görüyor. Vista, grup yetkileri vererek USB donanımların işlemcilerde algılanmasını yasaklayabiliyor. Sistem yöneticisi gerekliğinde islediği bir USB aygıtının tanınmasını ve sisteme eklenmesini sağlayabiliyor. Eski Windows sürümlerindeki bir başka sorunsa, bir saldırganın bilgisayara fiziksel erişim imkanına sahip olduğunda, mesela bilgisayarı CD gibi bir medyadan açabilmesi ve işletim sisteminin güvenlik önlemlerini aşarak sabit diske islediği gibi ulaşabilmesiydi. Saldırgan bu şekilde takas veya hazırda bekletme dosyasında gizli bilgilere ulaşabiliyor veya özel araçlarla şifreleri sıfırlayıp sistemi açabiliyordu.
Vista bu tip saldırılara karşı özel bir önlem almış. Enterprise ve Ultimate sürümleriyle yakında çıkacak olan Longhorn Server, BitLocker adında sistem diskini komple şifreleyen bir güvenlik mekanizması sunuyor. Sistem bunun için küçük bir ek başlangıç disk bölümünü kullanıma sunuyor. Vista anahtar bellek olarak da anakart üzerindeki özel bir güvenlik yongasını kullanıyor: Trusted Platform Modüle (TPM). Bu yonga, anahtarı güncel sistem konfigürasyonun kontrol koduyla kaydediyor ve bunu ancak, sistem konfigürasyonu değişmediğinde veriyor. Bu da sistemin güvenliliğini sağlıyor.
TPM, anahtarı vermediğinde kullanıcı için tek yol USB bellekten okuttuğu veya kendi girdiği bir geri yükleme anahtarını kullanmak. Kullanıcı her halükarda geri yükleme şifresini mutlaka birkaç güvenli yerde saklamalı. Zira sadece bu anahtarla bir donanım arızalandığında şifrelenmiş disk bölümüne ulaşabiliyor. Vista, istendiğinde acil durum şifresini bir Active Directory'de (etkin dizin) de kaydediyor. Gelişmiş başlangıç seçenekleri etkin olduğunda, BitLocker ile korunmuş bir bilgisayar açılışla ek bir onaylama talep edebiliyor, mesela özel bir USB bellek veya PIN kodu.
Vista: Tüm zamanların en güvenli işletim sistemi
Özetle: Vista teorik olarak tüm zamanların en güvenli işletim sistemi
Vista, hiç şüphesiz teorik olarak tüm zamanların en güvenli Windows İşletim sistemi. Zararlı yazılımlar ve saldırganlar başarılı bir saldırı veya sızma için şimdiye kadar hiç olmadığı kadar çok sayıda savunma duvarını aşmak zorundalar. Mesela birkaç sene önce Sasser'ın yaptığı gibi bir hizmetteki güvenlik açığından faydalanarak sisteme girmek İsteyen zararlı bir yazılım önce güvenlik duvarını atlatmak zorunda. Bunu başardıktan sonra kendi kodunu çalıştırmalı, sistem İşlevlerinin rastgele adreslerini tahmin etmeli ve ayrıca bu İşlevlerle sistemde kalıcı hale gelebilmek için gerekli erişim haklarını ele geçirmeli. Tüm bunlar içinse daha önce belirttiğimiz gibi bir sürü engel söz konusu.
Vista güvenlik duvarındaki en oynak tuğla her zaman olduğu gibi yine kullanıcının kendisi. Güvenlik uyarılarını ve İşlevlerini dikkate almayarak her talebe olumlu yanıt veren bilinçsiz bir kullanıcı zararlı yazılımların sisteme bulaşmasına neden olabilir. Microsoft'un, pratik günlük kullanımda kullanıcının onayı alınmaksızın onay verilen ve verilmeyen işlemlerle, kullanıcının onayı beklenen İşlemler arasında nasıl bir denge kurduğunu yeni İşletim sistemini kullandıkça göreceğiz.