Visual Studio yalnızca VPN'de mi yavaş? CRL ve OCSP'yi kontrol edin
Bir WDAC ilkesi uygulandığında, tek bir yavaş başlatma tünel değil bir iptal sorgusu olabilir. İlkeyi gevşetmeden önce hangi adımın engellediğini kanıtlayın.
Visual Studio evde normal açılır, sonra aynı dizüstü bilgisayar kurumsal tünele bağlanır ve her başlatma yarım dakika açılış ekranında kalır. İlkeyi kaldırın, gecikme de onunla gider; tüneli kaldırın, aynı şey olur. Her iki gözlem de doğrudur, bu yüzden iki bileşen sürekli birbirini suçlar. Belirleyici soru, bir sertifika iptal sorgusunun yalnızca tünelin sunduğu bir yolu mu beklediği, yoksa hiç yol bulamadığı mıdır.
Başlatmayı değil, getirmeyi ölçün
Bir WDAC ilkesi, imzalı bir SiPolicy.p7b olarak dağıtıldığında, hangi görüntülerin makinede çalışabileceğine karar verir. Kod bütünlüğü, yürütmeden önce bir görüntünün imza zincirini doğrular ve bu doğrulama bir iptal sorusu içerebilir. Yanıt, sertifikanın kendi içinde adlandırdığı CRL dağıtım noktasına veya OCSP yanıtlayıcısına bağlıdır.
Bunlar sıradan ağ istekleridir, bu yüzden maliyetleri yanıtlayıcının nerede olduğuna bağlıdır. Yalnızca tünel üzerinden erişilebildiğinde veya adı yalnızca tünelin arkasındaki bir DNS sunucusu üzerinden çözüldüğünde, doğrulama tünel hazır olana kadar bekler. Visual Studio başlangıçta çok sayıda imzalı derleme ve uzantı yükler ve görüntü başına küçük bir gecikme görünür bir duraklamaya dönüşür. Hiçbir şey bozuk değildir ve ilke tam olarak yapılandırıldığı gibi davranır, bu yüzden ilkeyi kaldırmak sorunu çözüyor gibi görünür.
İmzalı her görüntü bir ağ çağrısı tetikleyebilir
Diskte zaten bulunan imzalı bir ikili dosyayla başlayın ve platformdan onu bir başlatmanın kullandığı aynı getirme davranışıyla doğrulamasını isteyin. Komutu bir kez tünelde, bir kez dışında çalıştırın, ardından nihai hüküm yerine getirme satırlarını karşılaştırın.
certutil -verify -urlfetch C:\Tools\Contoso.Editor.dll
nslookup ocsp.contoso.example
Test-NetConnection ocsp.contoso.example -Port 80
Çıktı zinciri, CRL ve OCSP adreslerini ve her getirmenin başarılı olup olmadığını listeler. Tünelde zaman aşımına uğrayıp dışında yanıt veren bir yanıtlayıcı, ihtiyacınız olan kanıttır ve yavaşlık izleniminden çok daha ağır basar. Getirme yavaş ama başarılı olursa, sonraki adımın o ana bilgisayarı doğrudan test edebilmesi için adresi not edin.
Yanıtlayıcının ana bilgisayar adını çözün ve erişilebilirliği uygulama dışında test edin, çünkü çözülemeyen bir adı hiçbir istemci ayarı asla onarmaz. CodeIntegrity işlem günlüğü kanıtın diğer yarısını sağlar ve bir doğrulama olayını yavaş başlatmanın zaman damgasına bağlar.
Kontrolü kaldırmadan gecikmeyi kısaltın
İlkeyi devre dışı bırakmak veya denetim moduna geçirmek gecikmeyi ortadan kaldırır ve kuruluşun dağıttığı kontrolü kaldırır, bu yüzden bunu yanlış onarım olarak görün. Daha dar seçenekler, yanıtlayıcıya tünel üzerinden erişilebilmesi için yönlendirme değişikliği, yanıtlayıcı ana bilgisayarları için bölünmüş tünelde istisna, ad çözülemez bir adrese çözüldüğünde DNS düzeltmesi veya iptal verileri için desteklenen bir önbellek proxy'sidir. Her birinin farklı sahibi vardır: PKI ekibi yanıtlayıcının erişilebilirliğine, ağ ekibi tünel bölünmesine, uç nokta ekibi ise ilkeye sahiptir.
Her iptal ana bilgisayarını tünelden çıkarmak otomatik olarak güvenli değildir, çünkü iç yanıtlayıcı bilerek iç olabilir. Sertifika kontrollerini sessizce genel internete gönderen bir kural yazmadan önce istisnayı PKI'yı işleten ekiple doğrulayın. Bu onay olmadan yapılan değişiklik, bir sonraki ilke yenilemesinde geri alınan türdendir.
Değişiklikten sonra soğuk başlatmayı doğrulayın
Soğuk başlatmayı her iki durumda ölçün ve sayıları saklayın, çünkü derlemeler önbelleğe alındıktan sonra sıcak başlatma neredeyse hiçbir şey kanıtlamaz. Başlatmayı yeni bir oturumdan tekrarlayın, böylece uzantıların yükleme yolu yeniden çalışsın.
Get-WinEvent -LogName Microsoft-Windows-CodeIntegrity/Operational -MaxEvents 40 |
Where-Object { $_.TimeCreated -gt (Get-Date).AddMinutes(-10) }
Get-ChildItem C:\Windows\System32\CodeIntegrity\CiPolicies\Active
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
Onarılan yapılandırma hâlâ yanıtlayıcıyla iletişim kurar veya PKI ekibinizin onayladığı bir önbellek yolu kullanır ve günlük doğrulamanın zaman aşımına uğramak yerine tamamlandığını gösterir. Yeni imzalanmış bir uygulamanın hâlâ açıldığını doğrulayın, çünkü her şeye izin veren bir ilke başarılı bir onarım değildir. Etkin ilke klasörünü ve uygulama durumunu da kontrol edin, böylece hata ayıkladığınız ilkenin çalışan ilke olduğu bilinsin. Sertifika zincirini, yanıtlayıcının adresini ve başlatma zaman damgalarını aynı bilette tutun, çünkü yenileme genellikle yanıtlayıcıyı taşır ve istisna veya DNS kuralını eski bırakır.