Visual Studio lambat hanya pada VPN? Semak CRL dan OCSP
Apabila dasar WDAC dikuatkuasakan, satu pelancaran perlahan boleh jadi pertanyaan pembatalan dan bukan terowong. Buktikan langkah mana yang menyekat sebelum melonggarkan dasar.
Visual Studio bermula seperti biasa di rumah, kemudian komputer riba yang sama menyertai terowong korporat dan setiap pelancaran terhenti setengah minit pada skrin permulaan. Buang dasarnya dan kelewatan itu turut hilang; buang terowongnya dan perkara yang sama berlaku. Kedua-dua pemerhatian tepat, sebab itu kedua-dua komponen terus menyalahkan satu sama lain. Soalan penentunya ialah sama ada pertanyaan pembatalan sijil menunggu laluan yang hanya disediakan oleh terowong, atau tidak menemui sebarang laluan.
Ukur pengambilan, bukan pelancaran
Dasar WDAC, yang digunakan sebagai SiPolicy.p7b yang ditandatangani, menentukan imej mana yang boleh berjalan pada mesin. Integriti kod mengesahkan rantaian tandatangan sesuatu imej sebelum pelaksanaan, dan pengesahan itu mungkin termasuk pertanyaan pembatalan. Jawapannya bergantung pada titik pengedaran CRL atau responden OCSP yang dinamakan oleh sijil di dalamnya.
Ini permintaan rangkaian biasa, jadi kosnya bergantung pada lokasi responden. Apabila ia hanya boleh dicapai melalui terowong, atau namanya hanya diselesaikan melalui pelayan DNS di belakang terowong, pengesahan menunggu terowong sedia. Visual Studio memuatkan banyak himpunan dan sambungan bertandatangan semasa bermula, dan kelewatan kecil bagi setiap imej menjadi terhenti yang kelihatan. Tiada apa yang rosak dan dasar berkelakuan tepat seperti dikonfigurasikan, sebab itu membuang dasar kelihatan membaiki masalah.
Setiap imej bertandatangan boleh mencetuskan panggilan rangkaian
Mulakan dengan binari bertandatangan yang sudah ada pada cakera dan minta platform mengesahkannya dengan tingkah laku pengambilan yang sama seperti pelancaran. Jalankan arahan itu sekali pada terowong dan sekali di luarnya, kemudian bandingkan baris pengambilan dan bukan keputusan akhir.
certutil -verify -urlfetch C:\Tools\Contoso.Editor.dll
nslookup ocsp.contoso.example
Test-NetConnection ocsp.contoso.example -Port 80
Output menyenaraikan rantaian, alamat CRL dan OCSP serta sama ada setiap pengambilan berjaya. Responden yang tamat masa pada terowong dan menjawab di luarnya ialah bukti yang anda perlukan, dan ia jauh lebih berat daripada tanggapan tentang kelambatan. Jika pengambilan berjaya dengan perlahan, catat alamatnya supaya langkah seterusnya boleh menguji hos itu secara langsung.
Selesaikan nama hos responden dan uji kebolehcapaian di luar aplikasi, kerana nama yang gagal diselesaikan tidak akan pernah dibaiki oleh tetapan klien. Log operasi CodeIntegrity membekalkan separuh lagi bukti, mengaitkan peristiwa pengesahan dengan cap masa pelancaran yang perlahan.
Pendekkan kelewatan tanpa membuang kawalan
Menyahdayakan dasar atau menukarnya ke mod audit menghilangkan kelewatan dan membuang kawalan yang digunakan oleh organisasi, jadi anggap itu pembaikan yang salah. Pilihan yang lebih sempit ialah perubahan penghalaan supaya responden boleh dicapai melalui terowong, pengecualian dalam terowong berpecah untuk hos responden, pembetulan DNS apabila nama diselesaikan ke alamat yang tidak boleh dicapai, atau proksi cache yang disokong untuk data pembatalan. Setiap satu mempunyai pemilik berbeza: pasukan PKI memiliki kebolehcapaian responden, pasukan rangkaian memiliki pembahagian terowong dan pasukan titik akhir memiliki dasar.
Mengecualikan setiap hos pembatalan daripada terowong bukanlah automatik selamat, kerana responden dalaman mungkin dalaman dengan sengaja. Sahkan pengecualian itu dengan pasukan yang mengendalikan PKI sebelum menulis peraturan yang menghantar semakan sijil secara senyap ke internet awam. Perubahan yang dibuat tanpa pengesahan itu ialah jenis yang dikembalikan pada penyegaran dasar seterusnya.
Sahkan permulaan sejuk selepas perubahan
Ukur permulaan sejuk dalam kedua-dua keadaan dan simpan nombornya, kerana permulaan hangat hampir tidak membuktikan apa-apa setelah himpunan berada dalam cache. Ulangi pelancaran dari sesi baharu supaya laluan pemuatan sambungan dilatih semula.
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
Konfigurasi yang dibaiki masih menghubungi responden, atau menggunakan laluan cache yang diluluskan oleh pasukan PKI anda, dan log menunjukkan pengesahan selesai dan bukannya tamat masa. Sahkan bahawa aplikasi yang baru ditandatangani masih bermula, kerana dasar yang membenarkan segala-galanya bukan pembaikan yang berjaya. Semak juga folder dasar aktif dan status penguatkuasaan, supaya diketahui dasar yang anda nyahpepijat ialah yang sedang berjalan. Simpan rantaian sijil, alamat responden dan cap masa pelancaran dalam tiket yang sama, kerana pembaharuan biasanya memindahkan responden dan membiarkan peraturan pengecualian atau DNS menjadi lapuk.