Visual Studio yalnız VPN-də ləngdir? CRL və OCSP-ni yoxlayın
WDAC siyasəti tətbiq edildikdə, bir ləng işə salma tunel deyil, ləğv sorğusu ola bilər. Siyasəti yumşaltmazdan əvvəl hansı addımın mane olduğunu sübut edin.
Visual Studio evdə normal başlayır, sonra eyni noutbuk korporativ tunelə qoşulur və hər işə salma yarım dəqiqəlik splash ekranında qalır. Siyasəti götürün — gecikmə də onunla gedir; tuneli götürün — eyni şey olur. Hər iki müşahidə doğrudur, buna görə də iki komponent bir-birini günahlandırmağa davam edir. Həlledici sual budur: sertifikat ləğvi sorğusu yalnız tunelin təmin etdiyi yolda gözləyir, yoxsa ümumiyyətlə belə bir yol tapa bilmir?
Yükləmənin vaxtını ölçün, işə salmanın yox
Bir WDAC siyasəti, imzalanmış SiPolicy.p7b kimi yerləşdirilmiş, maşında hansı obrazların işləyə biləcəyini müəyyən edir. Kod bütövlüyü icradan əvvəl obrazın imza zəncirini yoxlayır və bu yoxlama ləğv sualını əhatə edə bilər. Cavab sertifikatın içində adlandırdığı CRL paylama nöqtəsindən və ya OCSP cavabvericisindən asılıdır.
Bunlar adi şəbəkə sorğularıdır, ona görə də dəyəri cavabvericinin harada yerləşdiyindən asılıdır. Yalnız tunel vasitəsilə əlçatan olduqda və ya adı yalnız tunelin arxasındakı DNS serveri vasitəsilə həll olunduqda, yoxlama tunelin hazır olmasını gözləyir. Visual Studio başlanğıcda çoxlu sayda imzalanmış assembly və genişlənmə yükləyir və hər obraz üçün kiçik gecikmə görünən dayanmaya çevrilir. Heç nə pozulmayıb və siyasət tam konfiqurasiya edildiyi kimi davranır, buna görə də siyasətin çıxarılması problemi həll edirmiş kimi görünür.
Hər imzalanmış obraz şəbəkə çağırışına səbəb ola bilər
Artıq diskdə olan imzalanmış binar fayldan başlayın və platformadan onu işə salmanın istifadə etdiyi yükləmə davranışı ilə yoxlamasını istəyin. Əmri bir dəfə tuneldə, bir dəfə də ondan kənarda işə salın, sonra yekun hökm yerinə yükləmə sətirlərini müqayisə edin.
certutil -verify -urlfetch C:\Tools\Contoso.Editor.dll
nslookup ocsp.contoso.example
Test-NetConnection ocsp.contoso.example -Port 80
Çıxış zənciri, CRL və OCSP ünvanlarını və hər yükləmənin uğurlu olub-olmadığını sadalayır. Tuneldə vaxtı bitən və kənarda cavab verən cavabverici sizə lazım olan sübutdur və bu, lənglik təəssüratından qat-qat ağır çəkir. Yükləmə yavaş-yavaş uğur qazanırsa, ünvanı qeyd edin ki, növbəti addım həmin hostu birbaşa yoxlaya bilsin.
Cavabverici hostun adını həll edin və əlçatanlığı tətbiqdən kənarda yoxlayın, çünki həll olunmayan adı heç bir müştəri parametri düzəltməyəcək. CodeIntegrity əməliyyat jurnalı sübutun digər yarısını verir və yoxlama hadisəsini ləng işə salmanın vaxt damğası ilə əlaqələndirir.
Nəzarəti silmədən gecikməni azaldın
Siyasəti söndürmək və ya audit rejiminə keçirmək gecikməni yox edir və təşkilatın yerləşdirdiyi nəzarəti götürür, ona görə də bunu yanlış təmir hesab edin. Daha dar variantlar bunlardır: cavabvericinin tunel vasitəsilə əlçatan olması üçün marşrut dəyişikliyi, cavabverici hostlar üçün bölünmüş tunel istisnası, ad əlçatmaz ünvana həll olunduqda DNS düzəlişi və ya ləğv məlumatları üçün dəstəklənən keş proxy-si. Hər birinin fərqli sahibi var: PKI komandası cavabvericinin əlçatanlığına, şəbəkə komandası tunelin bölünməsinə, son nöqtə komandası isə siyasətə sahibdir.
Hər ləğv hostunu tuneldən çıxarmaq avtomatik olaraq təhlükəsiz deyil, çünki daxili cavabverici qəsdən daxili ola bilər. Qayda yazmazdan əvvəl istisnanı PKI-ni idarə edən komanda ilə təsdiqləyin, çünki həmin qayda sertifikat yoxlamalarını səssizcə açıq internetə göndərir. Belə təsdiq olmadan edilən dəyişiklik növbəti siyasət yeniləməsində geri qaytarılan dəyişiklikdir.
Dəyişiklikdən sonra soyuq başlanğıcı yoxlayın
Hər iki vəziyyətdə soyuq başlanğıcı ölçün və rəqəmləri saxlayın, çünki assembly-lər keşləndikdən sonra isti başlanğıc demək olar ki, heç nə sübut etmir. Genişlənmə yükləmə yolunun yenidən işləməsi üçün işə salmanı təzə sessiyadan təkrarlayı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
Təmir edilmiş konfiqurasiya yenə də cavabverici ilə əlaqə saxlayır və ya PKI komandanızın təsdiqlədiyi keş yolundan istifadə edir, jurnal isə yoxlamanın vaxtının bitməsi əvəzinə tamamlandığını göstərir. Yeni imzalanmış tətbiqin hələ də işə salındığını təsdiqləyin, çünki hər şeyə icazə verən siyasət uğurlu təmir deyil. Aktiv siyasət qovluğunu və tətbiq vəziyyətini də yoxlayın ki, sazladığınız siyasətin həqiqətən işləyən olduğu bilinsin. Sertifikat zəncirini, cavabverici ünvanını və işə salma vaxt damğalarını eyni biletdə saxlayın, çünki yenilənmə adətən cavabvericini köçürür və istisna və ya DNS qaydasını köhnə qoyur.