Control-flow Enforcement (CET)
Ayrıca CET olarak da adlandırılır
CET (Control-flow Enforcement Technology), başta gölge yığınlar (shadow stacks) ve dolaylı dal izleme (indirect branch tracking) olmak üzere kontrol akışını korumak için donanım mekanizmaları ekler. Donanım desteği ile belirli bir işlemdeki etkin koruma farklı durumlardır.
Bilmeniz gerekenler
CET (Control-flow Enforcement Technology), başta gölge yığınlar (shadow stacks) ve dolaylı dal izleme (indirect branch tracking) olmak üzere kontrol akışını korumak için donanım mekanizmaları ekler. Donanım desteği ile belirli bir işlemdeki etkin koruma farklı durumlardır.
Nasıl çalışır
Gölge yığınlar korumalı dönüş adresi durumunu korurken, dolaylı dal izleme, izlenen dolaylı dalların hedeflerini kısıtlar. Farklı kontrol akışı aktarımlarını ele alırlar ve ayrı numaralandırma ve etkinleştirmeye sahiptirler. İşletim sistemi, yükleyici, uygulama ikilisi ve kütüphaneler korumalı bir yürütme ortamının çalışmasını sağlamaya katılır.
Nerede yararlıdır
Uygun şekilde oluşturulmuş bir uygulama, işletim sistemi tarafından yönetilen bir gölge yığın ile çalışabilir; böylece eşleşmeyen bir dönüş adresi, yürütmeyi sessizce yeniden yönlendirmek yerine tanımlanmış istisnayı tetikler. Uyumluluk politikası, eski modüller için ve kullanıcı modu ile gözetmen modu koruması arasında farklılık gösterebilir.
Destek ve etkinleştirme durumu nasıl kontrol edilir
Gölge yığın yeteneği için CPUID.07H.00H:ECX 7. bitini ve dolaylı dal izleme için EDX 20. bitini kontrol edin, ardından işletim sisteminin belgelenmiş işlem koruma durumunu inceleyin. Kullanılabilir bir CPU biti tek başına çalışan bir program için zorlamayı garanti edemez.
Yetenek, etkinleştirme ve yaptırım ayrı ayrı kontrol edilmelidir. Bir işlemci bir korumayı destekleyebilirken işletim sistemi, uygulama veya sanal makine ilkesi bunu etkinleştirmeyebilir. Veritabanındaki bir destek alanı, çalışan bir sistemin kanıtı değildir.
Özelliğin sağlamadığı durumlar
Bir CET alanı, her iki alt özelliğin de mevcut veya etkin olduğunu kanıtlamaz. CET bir ikiliyi güvenilir kılmaz, her bellek bozulması hatasını önlemez veya güncellemelerin yerini almaz. Bir korumayı genel olarak devre dışı bırakmak, bir uygulama çökmesi için rutin bir düzeltme değildir.
Uygulamada uyumluluk ve performans
İşletim sistemini, bellenimi ve etkilenen çalışma zamanını güncel tutun. Bir koruma uyumluluk sorunu ortaya çıkarırsa, önce satıcı tanılamalarını ve desteklenen güncellemeleri kullanın. Kapsamlı bir koruma anahtarı ilgisiz uygulamaları etkileyebilir ve açık bir dağıtım ve kurtarma ilkesini izlemelidir.
Pratik bir doğrulama kontrol listesi
- İlgili tam işlemci veya platform modelini ve uygulama, işletim sistemi ve çalışma zamanı sürümlerini kaydedin. Gerçek hatanın veya gereksinimin metnini koruyun.
- Bu tam model için üretici referansını kontrol edin, ardından programın çalıştığı ortamda geçerli yeteneği ve etkinleştirilmiş durumu inceleyin.
- Seçilen ikili dosyanın veya arka ucun her gereksinimini karşılaştırın. Benzer şekilde adlandırılmış bir özellik, diğer ad veya genel teknoloji etiketi yeterli değildir.
- Uygulamanın hedeflenen uygulamayı seçtiğini onaylayın. Gereksinimler karşılanmadığında belgelenmiş tanılamalarını ve desteklenen bir geri dönüşü kullanın.
- Her seferinde desteklenen bir değişiklik yapın ve aynı iş yükünü tekrarlayın. Orijinal yapılandırmayı ve kurtarma yolunu kullanılabilir durumda tutun.
Özellik listeleniyor ancak yazılım kullanamıyorsa
Hata veren tam bileşenle başlayın. Bir donanım veritabanı kayıtlı yeteneği açıklar; işletim sistemi veya hipervizör farklı bir geçerli ortam sunabilir. Geçersiz komut hatası, gerçek hatalı komutun ve ikili yapının da incelenmesini gerektirir, çünkü bozulma veya ilgisiz, desteklenmeyen bir komut benzer bir belirti üretebilir.
Tam platform için desteklenen uygulama, sürücü veya çalışma zamanı sürümünü yükleyin ve gerekirse satıcının belgelenmiş temel veya geri dönüş derlemesini kullanın. Bir yazılım güncellemesi, işlemcide eksik olan bir komutu oluşturamaz. Bellenim ve güvenlik politikası değişiklikleri, genel bir optimizasyon tarifi yerine sistem üreticisinin prosedürünü ve bir kurtarma planını izlemelidir.
Bu açıklamanın kaynakları ve kapsamı
Intel 64 ve IA-32 Mimarileri Yazılım Geliştirici Kılavuzu · Linux çekirdeği: Control-flow Enforcement Technology gölge yığını
Bu referanslar mimari davranışı ve yazılım gereksinimlerini belirler. Bağlantılı bir donanım modeli sayfasındaki her özellik değerini bağımsız olarak doğrulamazlar. Model desteği için ilgili sayfanın üretici kanıtlarını kullanın ve geçerli sistem yapılandırmasını kontrol edin. Bu makale bir kıyaslama, sertifikasyon veya bağımsız inceleme tarihi sağlamaz.
Kaynaklar ve doğrulama
Editoryal mülkiyet: Feex. Bağımsız bir inceleme tarihi kaydedilmemiştir. Nasıl araştırıyoruz.
- Intel 64 ve IA-32 Mimarileri Yazılım Geliştirici Kılavuzu · Cilt 1 ve 2, adlandırılmış komut ailelerini ve CPUID'yi açıklar; Cilt 3, durum, sayfalama, VMX ve koruma denetimlerini açıklar. Mimari belgeleri belirli bir model için desteği doğrulamaz.
- Linux çekirdeği: Control-flow Enforcement Technology gölge yığını · Donanım desteğini, ikili işaretleyicileri, yükleyici etkinleştirmesini ve iş parçacığı başına etkin korumayı ayırt eder. IBT'yi ve gölge yığınları ayrı olanaklar olarak tanımlar.
Bu makale yararlı oldu mu?
Evet veya hayır yeterlidir. İsterseniz bir neden seçin veya kısa bir not ekleyin.
Teşekkürler. Bu, bu sayfayı geliştirmemize yardımcı olur.