Dışarıya aktar (0) Yazdır
Tümünü Genişlet
Expand Minimize

Veri Yürütme Engellemesi

Veri yürütme engellemesinin işlevi nedir?

Veri Yürütme Engellemesi (DEP), kötü niyetli kod kullanarak güvenlik açığından yararlanma olaylarına karşı korunmaya yardımcı olmak amacıyla bellek üzerinde ek denetimler yapan bir donanım ve yazılım teknolojisi kümesidir. Windows Server 2003 Service Pack 1'de DEP hem donanım, hem de yazılım tarafından uygulanır.

Donanım tarafından uygulanan DEP

Donanım tarafından uygulanan DEP, konum açıkça yürütülebilir kod içermediği takdirde bir işlemdeki tüm bellek konumlarını yürütülemez olarak işaretler. Yürütülemez bellek konumlarına kod ekleme ve bu konumlarda kod yürütme girişiminde bulunan bir saldırı sınıfı vardır. DEP, saldırıları izleyerek ve bir özel durum oluşturarak bu saldırıların önlenmesine yardımcı olur.

Donanım tarafından uygulanan DEP, belleği, kodun o bellekten yürütülmemesi gerektiğini belirten öznitelikle işaretlemesi için işlemci donanımını kullanır. DEP, "sanal bellek sayfası başına" temelinde, genellikle bellek sayfasını işaretlemek için sayfa tablosu girdisinde (PTE) bir biti değiştirerek işlev görür.

DEP'nin fiili donanım uygulaması ve sanal bellek sayfasının işaretlenmesi, işlemci mimarisine göre değişir. Ancak, donanım tarafından uygulanan DEP'yi destekleyen işlemciler, kod uygun öznitelik ayarıyla işaretlenmiş bir sayfadan çalıştırıldığı zaman, bir özel durum oluşturabilmektedir.

Advanced Micro Devices (AMD) ve Intel Corporation, DEP ile uyumlu olan Windows uyumlu mimarileri tanımlamış ve piyasaya sunmuştur.

Windows Server 2003 Service Pack 1'in 32 bitlik sürümleri, AMD tarafından tanımlandığı gibi yürütmesiz sayfa koruması (NX) işlemci özelliğini veya Intel tarafından Yürütmeyi Devre Dışı Bırak biti (XD) olarak tanımlanan özelliği kullanır. Bu işlemci özelliklerini kullanmak için, işlemci Fiziksel Adres Uzantısı (PAE) modunda çalışıyor olmalıdır. Windows'un 64 bitlik sürümleri, 64 bit uzantılı işlemcilerde NX veya XD işlemci özelliğini ve IPF işlemcilerinde erişim hakları sayfa tablosu girdisi (PTE) alanının bazı değerlerini kullanır.

Gelecekteki tüm 32 bitlik ve 64 bitlik işlemcilerin, donanım tarafından uygulanan DEP için destek sağlayacağı umulmaktadır. Microsoft, DEP teknolojilerinin kullanımını ve gelişimini teşvik etmek için işlemci satıcılarıyla çalışmaya devam etmektedir.

Yazılım tarafından uygulanan DEP

Windows Server 2003 Service Pack 1'e ek bir DEP güvenlik denetimi grubu eklenmiştir. Yazılım tarafından uygulanan DEP olarak bilinen bu denetimler, Windows'da özel durum işleme mekanizmalarının güvenlik açıklarından yararlanma olaylarını azaltmak üzere tasarlanmıştır. Yazılım tarafından uygulanan DEP, Windows Server 2003 Service Pack 1'i çalıştırabilen herhangi bir işlemcide çalışır. Yazılım tarafından uygulanan DEP, varsayılan olarak, işlemcinin donanım tarafından uygulanan DEP yeteneklerini dikkate almaksızın, yalnızca sınırlı sistem ikililerini korur.

Bu özellik kimler için geçerlidir?

Uygulama ve sürücü geliştiricilerinin, DEP'yi ve bir destekleme platformunda yazılım çalıştırmanın gerektirdiklerini bilmeleri gerekir. Tam zamanında (JIT) kodu üreten veya varsayılan işlem yığınından bellek çalıştıran uygulamaların, DEP gereksinimlerine dikkat etmeleri gerekir.

Sürücü geliştiricileri, donanım tarafından uygulanan DEP'yi destekleyen platformlardaki PAE modu konusunda bilgi sahibi olmaya teşvik edilir. Windows Server 2003, Standard Edition Service Pack 1 çalıştıran sistemlerde PAE modu davranışı, sürücü uyumluluğunu artırmak için değiştirilir.

Bu özelliğe Windows Server 2003 Service Pack 1'de hangi yeni işlevler eklenmiştir?

32 bit ve 64 bit Windows sürümleri ve uygulamalarında veri yürütme engellemesi

Ayrıntılı açıklama

Donanım tarafından uygulanan DEP

Uygulama ve sürücü geliştiricileri için tutarlılık sağlamak amacıyla, bellek koruma modeli (DEP dahil), hem 32 bit, hem de 64 bit Windows sürümleri için aynı şekilde tasarlanmıştır.

Uygulama geliştiricilerinin, kullanıcı modunda DEP davranışını bilmeleri gerekir. Kullanıcı modu DEP özel durumu, Windows sisteminde STATUS_ACCESS_VIOLATION (0xc0000005) ile sonuçlanır. EXCEPTION_RECORD yapısı içinde bulunan ExceptionInformation birinci parametresi, meydana gelen erişim ihlali türünü içerir. ExceptionInformation[0] için verilen 8 değeri, erişim ihlalinin bir yürütme ihlali olduğunu gösterir.

Çoğu işlemde, STATUS_ACCESS_VIOLATION özel durumu, işlenmemiş bir özel durum olarak kalacak ve işlemin sonlandırılması ile sonuçlanacaktır.

DEP, çekirdek modundaki sürücülere de uygulanır. Çekirdek modunda bellek bölgeleri için DEP seçilerek etkinleştirilip devre dışı bırakılamaz. 32 bit Windows sürümlerinde, DEP varsayılan olarak yığına uygulanır. Bu; yığına, disk belleğine alınan havuza ve oturum havuzuna DEP uygulanan 64 bit Windows sürümlerindeki çekirdek modu DEP'sinden farklıdır.

Aygıt sürücülerinin, DEP etkinken yığından kod yürütmelerine izin verilmez. Çekirdek modunda bir DEP erişim ihlali 0xFC: ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY hatası ile sonuçlanır.

Yazılım tarafından uygulanan DEP

Yazılım tarafından uygulanan DEP, Windows'daki özel durum işleme mekanizmaları üzerinde ek denetimler gerçekleştirir. Programın resim dosyaları Güvenli Yapılandırılmış Özel Durum İşleme (SafeSEH) ile oluşturulduysa, yazılım tarafından uygulanan DEP, özel durum gönderilmeden önce, özel durum işleyicisinin resim dosyasında bulunan işlev tablosuna kaydedilmesini sağlar.

Programın resim dosyaları SafeSEH ile oluşturulmadıysa, yazılım tarafından uygulanan DEP, özel durum gönderilmeden önce, özel durum işleyicisinin yürütülebilir olarak işaretlenmiş bellek bölgesinde bulunmasını sağlar.

DEP uygulama kapatma davranışı

Uygulamaların çoğu DEP ile ilgili bir sorunla karşılaşmaz. Ancak, bir uygulama DEP ile ilgili bir sorunla karşılaşırsa, kullanıcıyı sorun hakkında uyaran bir Veri Yürütme Engellemesi iletisi görüntülenir.

Veri Yürütme Engellemesi iletisi, uygulamada bir DEP sorunu meydana geldiğini gösterir ve kullanıcının DEP hakkında daha fazla bilgi edinmesine ve kapatılan uygulama için isteğe bağlı olarak DEP'yi devre dışı bırakmasına olanak verir.

ImportantÖnemli
Bir uygulamada DEP sorunu meydana gelirse, Microsoft güncelleştirme için uygulama satıcısına başvurmanızı önerir. Bir uygulama için DEP'yi devre dışı bırakmadan önce, bunun güvenlik açısından doğuracağı sonuçlar dikkatle değerlendirilmelidir. Veri Yürütme Engellemesi ileti penceresindeki Ayarları Değiştir düğmesini kullanarak DEP ayarlarını kapalı bir uygulama için değiştirme yeteneği, sistem çapındaki DEP yapılandırmasına bağlıdır. Bir uygulamanın DEP korumasında, ancak sistem çapındaki DEP yapılandırması OptOut moduna ayarlıysa değişiklik yapılabilir.

Veri Yürütme Engellemesi iletisi, Microsoft'a DEP sorunu ile ilgili bir bildirim gönderme olanağı sağlayan Windows Hata Bildirimi penceresinden hemen önce görüntülenir.

Windows Server 2003 Service Pack 1'de Veri Yürütme Engellemesi iletisi, Yöneticinin sistemde etkileşimli olarak bir sonraki oturum açışında görüntülenir. Windows Server 2003 Service Pack 1'deki davranış Windows XP Service Pack 2'dekinden farklıdır, çünkü Windows Hata Bildirimi varsayılan olarak sıralama modunda yapılandırılır. Sıralama modu, hata bildirimi iletilerinin, yöneticinin sistemde etkileşimli olarak bir sonraki oturum açışına dek sıralanmasına neden olur.

Windows Hata Bildirimi hakkında daha fazla bilgi edinmek veya Windows Hata Bildirimi'ni DEP ve bir uygulama sorunundan hemen sonra Windows Hata Bildirimi iletisi görüntülenecek şekilde yapılandırmak için, http://go.microsoft.com/fwlink/?LinkId=38443 adresindeki Microsoft Web sitesinde "Using Windows Server 2003 in a Managed Environment: Windows Error Reporting (Windows Server 2003'ü Yönetilen Ortamda Kullanma: Windows Hata Bildirimi)" makalesine bakın.

Windows Hata Bildirimi, bir uygulama DEP nedeniyle kapandığında bir hata imzası oluşturur. Hata imzası, Windows Hata Bildirimi iletişim kutusundaki "burayı tıklatın" bağlantısı izlenerek görüntülenebilir. Bir DEP sorunu hata imzası aşağıdaki özniteliklere sahiptir:

 

Parametre Örnek Değer Açıklama

Olay Türü

BEX

Bir arabellek taşması (/GS) veya DEP özel durumu olduğunu gösterir (BEX64, 64 bit Windows sürümlerinde bir arabellek taşması (/GS) veya DEP özel durumu olduğunu gösterir)

P1

DEPDemo.exe

Sorunla karşılaşan yürütülebilir uygulamanın adı

P2

5.1.2600.2180

Sorunla karşılaşan yürütülebilir uygulamanın sürümü

P3

416725f2

Hata uygulaması damgası

P4

DEPDemo.exe

Hata modülü adı

P5

5.1.2600.2180

Hata modülü sürümü

P6

416725f2

Hata modülü damgası

P7

00002060

Hata uzaklığı (Hata adresinde bir modül yüklü değilse yönerge adresi)

P8

C0000005

STATUS_ACCESS_VIOLATION özel durumunu gösterir (Bu parametre c0000409 ise, sorun /GS ile ilgili bir hatadır)

P9

00000008

STATUS_ACCESS_VIOLATION yürütmesini gösterir (00000002, Intel Itanium mimarisi için 64 bit Windows sürümlerinde STATUS_ACCESS_VIOLATION yürütmesini gösterir)

Son olarak, bazı uygulamalarda DEP ile ilgili bir sorunla karşılaşıldığında, Windows Hata Bildirimi yapılandırması dikkate alınmaksızın, Veri Yürütme Engellemesi iletisi görüntülenmeyebilir. Bu uygulamalar, DEP tarafından ortaya koyulan STATUS_ACCESS_VIOLATION özel durumunu işler veya varsayılan Win32 UEF'yi geçersiz kılan işlenmemiş özel durum filtresini (UEF) yükler. Varsayılan Win32 UEF, Veri Yürütme Engellemesi ve Windows Hata Bildirimi iletilerini tetiklemekten sorumludur. Veri Yürütme Engellemesi iletisi, bir uygulamanın SetErrorMode() işlevini SEM_NOGPFAULTERRORBOX bayrağıyla çağırması durumunda da görüntülenmeyebilir.

Bu değişiklik neden önemlidir? Hangi tehlikelerin azaltılmasına yardımcı olur?

DEP'nin sağladığı en önemli yarar, varsayılan yığın, çeşitli yığınlar ve bellek havuzları gibi veri sayfalarından kod yürütülmesini önlemeye yardımcı olmasıdır. Sistemin normal işleyişinde, kod genellikle varsayılan yığından yürütülmez. Donanım tarafından uygulanan DEP, bu konumlardan çalıştırılan kodu algılar ve yürütme gerçekleştiğinde bir özel durum oluşturur. Özel durum işlenmemişse, işlem sonlandırılır. Kodun çekirdek modunda korunmuş bellekten yürütülmesi, hatayla sonuçlanır.

Bir işlemi sonlandırmak veya bir hatayla sistemin başarısız olmasına neden olmak, istenen deneyimler olarak görünmese de, kötü niyetli kodların yürütülmesini engellemenize yardımcı olur. Kötü niyetli kodların sistemde yürütülmesini engellemek, sistemin zarar görmesini veya zararlı etkileri, sonlandırılmış bir işlem veya bir sistem hatasından kolayca daha ileriye gidebilecek kötü niyetli kodların yayılmasını önleyebilir.

DEP, virüs veya başka bir saldırının işleme yürütülebilir kod eklediği ve eklenen bu kodu yürütmeyi denediği saldırıları engellemeye yardımcı olabilir. DEP içeren bir sistemde, eklenen kodun yürütülmesi bir özel durum ile sonuçlanmalıdır. Yazılım tarafından uygulanan DEP, Windows'daki özel durum işleme mekanizmalarının güvenlik açıklarından yararlanma olaylarını azaltmaya yardımcı olabilir.

DEP'nin ikinci bir yararı, uygulama ve sürücü geliştiricileri için iyi mühendislik ve en iyi uygulamalarla ilgilidir. DEP, geliştiricileri, sayfaları açıkça yürütülebilir olarak işaretlemeden veri sayfalarından alınan kodları yürütmemeleri için zorlar.

Farklı çalışan nedir?

Uygulama Uyumluluğu

Bazı uygulama davranışlarının DEP ile uyumsuz olması beklenir. (Tam zamanında kod üretimi gibi) dinamik kod üretimi yapan ve üretilen kodu açıkça Yürütme izni ile işaretlemeyen uygulamaların DEP ile uyumsuzluk sorunları olabilir. SafeSEH ile oluşturulmamış uygulamaların özel durum işleyicileri yürütülebilir bellek bölgelerinde bulunmalıdır.

DEP'yi ihlal etme girişiminde bulunan uygulamalar, STATUS_ACCESS_VIOLATION (0xC0000005) durum kodlu bir özel durum alacaklardır. Bir uygulama yürütülebilir belleğe gereksinim duyarsa, Virtual* bellek dağıtım işlevlerinin bellek koruma değişkeninde PAGE_EXECUTE, PAGE_EXECUTE_READ, PAGE_EXECUTE_READWRITE veya PAGE_EXECUTE_WRITECOPY seçerek bu özniteliği uygun bellekte açıkça ayarlamalıdır. malloc() ve HeapAlloc() işlevleri kullanılarak yığın ayırma işlemleri yapılamaz.

Sürücü uyumluluğu

DEP ile ilgili Sürücü uyumluluğu sorunları, çoğunlukla PAE modundan kaynaklanan uyumluluk sorunlarına odaklanır.

noteNot
PAE yalnızca, donanım tarafından uygulanan DEP'yi destekleyen işlemcilerle çalışan, 32 bit Windows sürümlerini çalıştıran sistemlerde gereklidir.

DEP kendiliğinden, kod üretimi yapan sürücülerle uyumluluk sorunları yaratabilir veya gerçek zamanda yürütülebilir kod üretmek için diğer teknikleri kullanabilir. Bu tür davranışlarda olan çoğu sürücü düzeltilmiş olsa da, DEP'nin 64 bit Windows sürümleri için "her zaman açık" olması dolayısıyla, tüm sürücülerin güncelleştirilmiş olması garanti edilemez. Ancak, bu teknikleri kullanan az sayıda sürücü vardır ve DEP'nin tek başına sürücü uyumluluğu ile ilgili çok sayıda soruna neden olması beklenmez.

Sürücü uyumluluğu ile ilgili en önemli konu 32 bit sistemlerde Fiziksel Adres Uzantısı (PAE) modunu çalıştırmaktır. PAE modu, işlemcilerin 4 gigabayt'tan (GB) fazla bellekleri adreslemesini sağlar. PAE bellek sayfalama şemalarıyla PAE olmayan bellek sayfalama şemaları arasındaki temel fark, PAE modunda gerekli olan ek sayfalama düzeyidir (iki yerine üç düzey).

Bazı sürücüler PAE etkin olduğunda yüklemeyi başaramayabilir, çünkü aygıt 64 bit adresleme yapamıyor olabilir veya sürücüler PAE modunun 4 GB'den fazla rasgele erişim belleği (RAM) gerektirdiğini varsayabilir. Bu tür sürücüler, PAE modunda her zaman 64 bit adresler almayı bekler ve kendilerinin veya aygıtlarının adresi yorumlayamadığını kabul eder.

Diğer sürücüler PAE modunda yükleme yapabilir, ancak sistem sayfa tablosu girdilerini (PTE) doğrudan değiştirerek sistem kararsızlığına sebep olabilirler. Bu sürücüler PAE modunda 32 bit PTE bekler, fakat 64 bit PTE alırlar.

En büyük sürücü PAE uyumluluğu sorunu, doğrudan bellek erişimi (DMA) aktarımlarını ve eşlem kayıt ayırmayı içerir. DMA'yı destekleyen birçok aygıt, genellikle 32 bit bağdaştırıcılar, 64 bit fiziksel adresleme gerçekleştiremez. 32 bit modda çalıştırıldığında, aygıt tüm fiziksel adres alanlarını adresleyebilir. PAE modunda, 4 GB'nin üzerinde fiziksel adreste veri bulunması olasıdır. Bu türde kısıtlamaları olan aygıtların bu senaryoda çalışmasına izin vermek için, Windows 2000 Server ve sonraki işletim sistemleri, bir eşleme saklayıcısıyla gösterilen 32 bit adres sağlayarak DMA işlemine çift arabelleğe kayıt olanağı sunar. Aygıt, 32 bit adrese DMA işlemi uygulayabilir ve çekirdek, belleği, sürücüye sağlanan 64 bit adrese kopyalar.

Sistem PAE devre dışıyken çalıştırıldığında, 32 bit aygıtların sürücüleri, eşleme saklayıcılarının gerçek bellek ile desteklenmesini hiçbir zaman gerektirmezler. Bu, tüm aygıtların ve sürücülerin 32 bit adres alanında bulunması nedeniyle çift arabelleğe kaydın gerekli olmadığı anlamına gelir. 32 bit aygıt sürücülerinin 64 bit işlemci tabanlı bilgisayarlar üzerinde sınanması sonucunda, istemci tarafından sınanan, DMA yeteneği olan sürücülerin çoğunun sınırsız eşleme saklayıcıları bekleyeceği tahmin edilmektedir.

Uyumluluk sorunlarını kısıtlamak için, Windows Server 2003 Standard Edition Service Pack 1, 32 bit HAL DMA davranışını taklit eden donanım ayırma katmanı (HAL) değişikliklerini içerir. Değiştirilen HAL, sistem PAE modunda çalıştırılırken sınırsız eşlem kayıtları verir. Ayrıca, çekirdek bellek yöneticisi 4 GB üzerindeki fiziksel adresleri yok sayar. 4 GB engeli üzerindeki sistem RAM'leri, Windows tarafından adreslenemez hale getirilir ve sistemde kullanılamaz duruma gelir. Adres alanını 4 GB ile sınırlayarak, 32 bit DMA veri yolu yöneticisi yeteneği olan aygıtlar 4 GB engelin üzerinde işlem görmeyeceklerdir. Bu değişiklikler işlemleri çift arabellekleme gereksinimini kaldırdığından, bazı sürücülerde çift arabelleğ kayıt desteğinin uygun şekilde uygulanmasıyla ilgili bir sınıf hatayı ortadan kaldırır.

Service Pack 1 içeren Windows Server 2003, Enterprise Edition'ın ve Service Pack 1 içeren Windows Server 2003, Datacenter Edition'ın PAE davranışlarının hizmet paketi içermeyen sürümlerden farklı olmadığını unutmayın.

HAL ve bellek yöneticisindeki bu değişikliklerin sonucu olarak, DEP'nin etkin olduğu Windows Server 2003 Service Pack 1 çalıştıran sistemlerde, aygıt sürücü uyumluluğu üzerindeki etkinin çok az olacağı beklenmektedir.

Sistem uyumluluğu

DEP uyumluluğu ile ilgili son konu, 4 GB'nin üzerinde fiziksel RAM için tasarlanamayacak olsalar da, PAE modunun etkin olduğu sistemlerden kaynaklanmaktadır. Microsoft, iç sınama sırasında, donanım tarafından uygulanan DEP'yi destekleyen bazı işlemci sistemlerinin, işlemci PAE modunda çalışırken açılamadığını veya başka kararlılık sorunları olduğunu fark etmiştir.

PAE modu, NX işlemci özelliği kullanımı için gereklidir. Böylece, sistem tasarımcılarının ve üretim bilgisi mühendislerinin, sistem yonga seti ve ürün bilgisinin 4 GB üzerinde fiziksel RAM destekleyecek şekilde tasarlanmamış olmasına rağmen, sistemin PAE modunda çalışıyor olabileceğini bilmeleri gerekir.

Özellikle üzerinde durulması gereken bir konu da, işletim sistemi tarafından yürütülen yönergeleri belirlemek için sayfa tablosu girdilerini yorumlayan sistem ürün bilgisidir. Sayfa tablosu girdilerinin uzunluğu, işlemci PAE modunda çalıştırılırken 64 bit olarak artırılır. Sistem tasarımcıları ve ürün bilgisi geliştiricilerinin, işletim sistemi tarafından yürütülen yönergelerin güvenli şekilde belirlenmesi ile ilgili daha fazla bilgi için işlemci ve yonga seti satıcılarına başvurmaları teşvik edilmektedir.

AMD işlemcileriyle çalışan sistem tasarımcıları, "BIOS ve AMD Athlon 64 ve AMD Opteron İşlemcileri Çekirdek Geliştirici Kılavuzu"ndan ek bilgi edinebilir. Bu kılavuzu edinmek için, http://go.microsoft.com/fwlink/?LinkId=28165 adresindeki AMD Athlon 64 Web sitesine gidin ve "BIOS and Kernel Developer’s Guide for AMD Athlon 64 and AMD Opteron Processors (BIOS ve AMD Athlon 64 ve AMD Opteron İşlemcileri Çekirdek Geliştirici Kılavuzu)" seçeneğini tıklatın.

Intel, Sistem Yönetimi Modu (SMM) ile ilgili genel kullanıma açık ayrıntılı bilgi vermemektedir. Intel işlemcileriyle çalışan sistem tasarımcılarının daha fazla bilgi için doğrudan Intel'e başvurmaları önerilir.

PAE moduna yönelik Windows desteğiyle ilgili daha fazla bilgi için, http://go.microsoft.com/fwlink/?LinkId=45912 adresindeki Microsoft Web sitesinde bulunan "Physical Address Extension - PAE Memory and Windows (Fiziksel Adres Uzantısı - PAE Bellek ve Pencereleri)" konusuna bakın.

Bu sorunları nasıl çözebilirim?

Belleğin yürütülebilir bölgelerini gerektiren uygulamalar, bellek ayırma işlemi sırasında PAGE_EXECUTE, PAGE_EXECUTE_READ, PAGE_EXECUTE_READWRITE veya PAGE_EXECUTE_WRITECOPY özniteliklerini kullanmalıdır. Ayrıca, uygulamalar varsayılan işlem yığınından yürütülemez. DEP ile uyumsuz eylemler gerçekleştiren çoğu uygulama, uyumlu olmak için güncelleştirilmelidir. Uygulamalar da SafeSEH ile oluşturulmalıdır veya uygulamalar, özel durum işleyicilerinin açıkça yürütülebilir olarak işaretlenmiş bellekte bulunmalarını sağlamalıdır.

Bir uygulama, yürütülebilir belleği uygun bellek koruma seçenekleriyle ayırmak için, VirtualAlloc() uygulama programı arabirimi (API) işlevini kullanabilir. En azından, PAGE_EXECUTE bellek koruma seçeneği kullanılmalıdır. Yürütülebilir kod üretildikten sonra, uygulamanın ayrılmış belleğe yazma erişimine izin vermemek için bellek korumalarını ayarlaması önerilir. Uygulamalar, VirtualProtect() API işlevini kullanarak, ayrılmış belleğe yazma erişimine izin vermeyebilir. Yazma erişimine izin vermemek, işlem adres alanının yürütülebilir bölgeleri için en yüksek düzeyde koruma sağlar.

Kötü niyetli bir işlem, yürütülebilir bir bölgeye kod ekleme girişiminde bulunursa, erişim STATUS_ACCESS_VIOLATION yazma özel durumuyla sonuçlanır. Uygulama, adres alanının yürütülebilir bölgelerinin olabildiğince küçük olmasına çalışmalıdır. Bu durum, işlem adres alanına yürütülebilir belleğin eklenebileceği ve yürütülebileceği daha küçük bir saldırı alanı yaratır.

Ayrıca, karmaşık uygulamalar sanal belleklerinin yerleşimini denetleyebilir ve yürütülebilir bölgeler oluşturabilir. Bu uygulamalar, yürütülebilir bölgeleri yürütülemeyen bölgelerin altında yer alan bir bellek alanına yerleştirmeye çalışmalıdır. Yürütülebilir bölgelerin yürütülemeyen bölgelerin altına yerleştirilmesindeki amaç, arabellek taşmasının yürütülebilir belleğe taşmasını önlemektir.

Az sayıda yürütülebilir dosya ve kitaplık, resim dosyasının veri bölümünde yürütülebilir kod içerebilir. Bazı durumlarda uygulamalar, veri bölümlerine küçük kod kesimleri (genellikle thunk olarak adlandırılır) yerleştirebilir. Ancak DEP, resim dosyasının bellekte yüklenmiş bölümlerini, bölüme yürütülebilir özniteliği uygulanmadığı takdirde, yürütülemez olarak işaretler.

Bu nedenle, veri bölümlerindeki yürütülebilir kodun kod bölümüne taşınması veya yürütülebilir kodu içeren veri bölümünün açıkça yürütülebilir olarak işaretlenmesi gerekir. Yürütülebilir kod içeren bölümler için, ilgili bölüm başlığının Özellikler alanına IMAGE_SCN_MEM_EXECUTE (0x20000000) yürütülebilir özniteliği eklenmelidir.

Microsoft Visual Studio ürünleriyle dağıtılan Microsoft bağlayıcısı, bir bölüme /SECTION bağlayıcı seçeneğini kullanarak yürütülebilir özniteliğini ekleyebilir. /SECTION bağlayıcı seçeneğinin biçimi aşağıdaki gibidir:

/SECTION: Ad ,[E][R][W][S][D][K][L][P][X][,ALIGN=#]

E değeri yürütülebilir özniteliği gösterir (0x20000000). /SECTION ve diğer Microsoft bağlayıcı seçenekleri hakkında daha fazla bilgi için, http://go.microsoft.com/fwlink/?LinkId=28167 adresindeki MSDN Web sitesine bakın.

Ayrıca, mevcut bir resmin bölüm özniteliklerini değiştirmek için Microsoft COFF İkili Dosya Düzenleyicisi (Editbin.exe) hizmet programı kullanılabilir. Editbin hizmet programının aşağıdaki biçimde bir /SECTION seçeneği vardır:

/SECTION: Ad [= yeniad ][,[[!]{CDEIKOMPRSUW}][A{1248PTSX}]]

C ve E değerleri, sırasıyla, kodu ve yürütülebilir öznitelikleri gösterir. Editbin yardımcı programı ve /SECTION seçeneği hakkında daha fazla bilgi için, http://go.microsoft.com/fwlink/?LinkId=28168 adresindeki MSDN Web sitesine bakın.

Microsoft, Windows Server 2003 Service Pack 1'de DEP'den yararlanmak için Microsoft .NET Framework 1.0 ve 1.1 sürümlerine yönelik hizmet paketleri sağlamıştır. Microsoft .NET Framework kullanan uygulamalar normal çalışmalarına devam edecek, ancak ilgili Microsoft .NET Framework Service Pack yüklenmeden etkinleştirildikleri takdirde DEP'den yararlanamayacaklardır.

Microsoft, Microsoft .NET Framework'ü yeniden dağıtan uygulama geliştiricilerinin, DEP'den yararlanan Microsoft .NET Framework 1.0 sürümü Service Pack 3 veya 1.1 sürümü Service Pack 1'e güncelleştirme yapmalarını önerir.

Windows Server 2003 Service Pack 1'de hangi ayarlar eklendi veya değiştirildi?

DEP'nin sistem çapında yapılandırılması

Windows Server 2003 Service Pack 1'deki DEP davranışının Windows XP Service Pack 2'dekiyle (SP2) arasındaki en önemli fark, sunucu işletim sisteminde varsayılan yapılandırmanın tüm uygulamaları ve hizmetleri korumaya yönelik olmasıdır. Windows XP SP2'de DEP, yalnızca önemli Windows işletim sistemi programları ve hizmetleri için varsayılan olarak açılırdı.

Sistemin DEP yapılandırması Boot.ini anahtarlarıyla denetlenir. Ayrıca, son kullanıcıların sistemde yönetici olarak oturum açmaları durumunda kolaylıkla DEP ayarlarını yapılandırabilmesini sağlamak amacıyla Denetim Masası'ndaki Sistem üzerinde değişiklikler yapılmıştır.

Sistem DEP yapılandırma ayarları, 32 bit veya 64 bit Windows sürümlerinde çalışırken yalnızca 32 bit uygulamalar ve işlemler için geçerlidir. 64 bit Windows sürümlerinde, donanım tarafından uygulanan DEP varsa, her zaman 64 bit işlemlere ve çekirdek bellek alanlarına uygulanır ve DEP'yi devre dışı bırakacak sistem yapılandırma ayarları yoktur.

Windows, hem donanım tarafından uygulanan DEP, hem de yazılım tarafından uygulanan DEP için dört adet sistem çapında yapılandırma desteği sağlar.

DEP Yapılandırması

Yapılandırma Açıklama

OptIn

(Windows XP SP2 ve Windows XP 64 bit sürümü için varsayılandır)

Donanım tarafından uygulanan DEP'yi çalıştırabilen işlemci sistemlerinde, DEP, yer alan sınırlı sistem ikili dosyaları ve uygulamaları için varsayılan olarak etkinleştirilir. Bu seçenekle, yalnızca Windows sistem ikili dosyaları DEP tarafından varsayılan olarak kapsanır.

OptOut

(Windows Server 2003 Service Pack 1 için varsayılandır)

DEP tüm işlemler için varsayılan olarak etkinleştirilir. Kullanıcılar, Denetim Masası'ndaki Sistemi kullanarak DEP uygulaması olmayan belirli uygulamaların listesini el ile oluşturabilir. BT uzmanları DEP korumasından bir veya daha fazla uygulamayı çıkarmak için Uygulama Uyumluluğu Araç Takımı'nı kullanabilir. DEP için Sistem Uyumluluk Çözümleri ("shim") uygulanır.

AlwaysOn (Her zaman açık)

Bu, tüm sistem için tam DEP kapsamı sağlar. Tüm işlemler her zaman DEP açık olarak çalıştırılır. Belirli uygulamaları DEP korumasının dışında tutmak için bir özel durum listesi bulunmaktadır. DEP için Sistem Uyumluluk Çözümleri ("shim") uygulanmaz. Uygulama Uyumluluğu Araç Takımı'nı kullanarak çıkarılan uygulamalar DEP açıkken çalıştırılır.

AlwaysOff (Her zaman kapalı)

Bu, donanım tarafından uygulanan DEP desteğine bakılmaksızın, sistemin hiçbir kısmı için DEP kapsamı sağlamaz. Önyükleme girdisinde /noexecute=alwaysoff seçeneğinin yerine /execute seçeneği koyulmadığı sürece, 32 bit Windows sürümlerinde işlemci PAE modunda çalışır.

Donanım tarafından uygulanan DEP ile yazılım tarafından uygulanan DEP aynı şekilde yapılandırılır. Sistem çapında DEP ilkesi OptIn olarak ayarlanırsa, aynı Windows ana ikili dosyaları ve uygulamaları donanım ve yazılım tarafından uygulanan DEP tarafından korunur. Sistem donanım tarafından uygulanan DEP'yi çalıştıramıyorsa, Windows ana ikili dosyaları ve uygulamaları yalnızca yazılım tarafından uygulanan DEP tarafından korunur.

Benzer şekilde, sistem çapında DEP ilkesi OptOut olarak ayarlanırsa, DEP koruması dışında tutulan uygulamalar hem donanım, hem de yazılım tarafından uygulanan DEP koruması dışında kalır.

Bu dört sistem çapında DEP yapılandırması, Boot.ini anahtarlarıyla denetlenir. Boot.ini ayarları aşağıdaki gibidir:

/noexecute=policy_level

(burada policy_level (ilke düzeyi) AlwaysOn, AlwaysOff, OptIn veya OptOut olarak tanımlanır).

Boot.ini dosyasındaki herhangi bir /noexecute ayarı, Windows Server 2003 Service Pack 1 yüklendiğinde veya bir Windows işletim sistemi görüntüsü, donanım tarafından uygulanan DEP desteği ile veya bu destek olmaksızın bilgisayarlar arasında taşındığında değiştirilmez.

Windows Server 2003 Service Pack 1'in yüklenmesi sırasında, katılımsız bir yüklemede farklı bir ilke düzeyi belirlenmediği takdirde, varsayılan olarak OptOut ilke düzeyi etkinleştirilir. DEP'yi destekleyen bir Windows sürümü için önyükleme girdisinde /noexecute=ilke düzeyi ayarı yoksa, davranış /noexecute=OptIn seçeneğinin dahil edilmesiyle aynı olur.

Yönetici olarak oturum açan son kullanıcılar, DEP'yi OptIn ve OptOut ilkeleri arasında, Performans Seçenekleri iletişim kutusunun içindeki Veri Yürütme Engellemesi sekmesini kullanarak el ile yapılandırabilir. Aşağıdaki yordam DEP'nin bilgisayarda el ile nasıl yapılandırılacağını açıklamaktadır:

DEP ayarlarını yapılandırmak için
  1. Başlat'ı ve Denetim Masası'nı tıklatıp ardından Sistem’i çift tıklatın.

  2. Gelişmiş sekmesini tıklatın. Sonra, Performans altında, Ayarlar'ı tıklatın.

  3. Veri Yürütme Engellemesi sekmesini tıklatın.

  4. OptIn ilkesini seçmek için, Sadece önemli Windows programları ve hizmetleri için DEP'yi aç'ı tıklatın.

  5. OptOut ilkesini seçmek için, Seçtiklerim dışında kalan tüm Windows programları ve hizmetleri için DEP'yi aç'ı tıklatın.

  6. OptOut ilkesini seçtiyseniz, Ekle'yi tıklatın ve DEP ile kullanmak istemediğiniz uygulamaları ekleyin.

BT uzmanları, sistem çapında DEP yapılandırmasını çeşitli yöntemlerle denetleyebilir. Boot.ini dosyası üzerinde, komut dosyası mekanizmalarıyla veya Windows Server 2003 Service Pack 1'de sağlanan Bootcfg.exe aracıyla doğrudan değişiklik yapılabilir.

Windows Server 2003 Service Pack 1 katılımsız yüklemelerinde, belirli bir DEP yapılandırmasını önceden doldurmak için Unattend.txt dosyasını kullanabilirsiniz. Sistem çapında DEP yapılandırması belirlemek için, Unattend.txt dosyasının [Data] bölümündeki OSLoadOptionsVar girdisini kullanabilirsiniz.

Uygulama başına DEP yapılandırması

Uygulama uyumluluğu amacıyla, DEP OptOut ilke düzeyine ayarlandığı zaman, DEP'yi tekil 32 bit uygulamalar için seçerek devre dışı bırakmak mümkündür. Ancak, 64 bit uygulamalar için DEP her zaman etkindir.

Son kullanıcılar için, DEP'nin seçilerek devre dışı bırakılması için, Sistem Özellikleri'ndeki Veri Yürütme Engellemesi sekmesi kullanılabilir.

BT uzmanları için, Windows Server 2003 Service Pack 1'de DisableNX adında yeni bir uygulama uyumluluğu çözümü sağlanmıştır. DisableNX uygulama uyumluluğu çözümü, uygulandığı program için DEP'yi devre dışı bırakır.

DisableNX uygulama uyumluluğu çözümü, bir uygulamaya Uygulama Uyumluluğu Araç Takımı kullanılarak uygulanabilir. Windows uygulama uyumluluğu hakkında daha fazla bilgi için, http://go.microsoft.com/fwlink/?LinkId=23302 adresindeki Microsoft web sitesinde bulunan "Windows Application Compatibility (Windows Uygulama Uyumluluğu)" konusuna bakın.

Bunu faydalı buldunuz mu?
(1500 karakter kaldı)
Geri bildiriminiz için teşekkür ederiz

Topluluk İçeriği

Ekle
Show:
© 2014 Microsoft