Visual Studio lento só coa VPN? Comprobe CRL e OCSP
Cando se aplica unha política WDAC, un inicio lento pode ser unha consulta de revocación e non o túnel. Demostre que paso bloquea antes de relaxar a política.
Visual Studio arrinca con normalidade na casa, despois o mesmo portátil únese ao túnel corporativo e cada inicio queda medio minuto na pantalla de benvida. Quite a política e a demora vaise con ela; quite o túnel e ocorre o mesmo. Ambas as observacións son certas, por iso os dous compoñentes se botan a culpa mutuamente. A pregunta decisiva é se unha consulta de revocación de certificado espera un camiño que só ofrece o túnel, ou se non atopa ningún.
Mida a descarga, non o arrinque
Unha política WDAC, despregada como ficheiro SiPolicy.p7b asinado, decide que imaxes poden executarse na máquina. A integridade do código valida a cadea de sinaturas dunha imaxe antes da execución, e esa validación pode incluír unha pregunta de revocación. A resposta depende do punto de distribución de CRL ou do respondedor OCSP que o certificado nomea no seu interior.
Son peticións de rede normais, así que o seu custo depende de onde viva o respondedor. Cando só é accesible a través do túnel, ou o seu nome só se resolve mediante un servidor DNS detrás do túnel, a validación espera a que o túnel estea listo. Visual Studio carga ao arrincar un gran número de ensamblados e extensións asinados, e un pequeno atraso por imaxe convértese nunha parada visible. Nada está mal formado e a política compórtase exactamente como está configurada, por iso quitar a política parece corrixilo.
Cada imaxe asinada pode desencadear unha chamada de rede
Comece cun binario asinado que xa estea no disco e pídalle á plataforma que o verifique co mesmo comportamento de descarga que usa un arrinque. Execute o comando unha vez no túnel e outra fóra del, e logo compare as liñas de descarga en lugar do veredicto final.
certutil -verify -urlfetch C:\Tools\Contoso.Editor.dll
nslookup ocsp.contoso.example
Test-NetConnection ocsp.contoso.example -Port 80
A saída enumera a cadea, os enderezos CRL e OCSP e se cada descarga tivo éxito. Un respondedor que esgota o tempo no túnel e responde fóra del é a proba que necesita, e pesa moito máis que unha impresión de lentitude. Se a descarga ten éxito lentamente, anote o enderezo para que o seguinte paso poida probar ese host directamente.
Resolva o nome do host do respondedor e probe a accesibilidade fóra da aplicación, porque un nome que non se resolve nunca o arranxará un axuste do cliente. O rexistro operativo de CodeIntegrity achega a outra metade da proba, vinculando un evento de validación coa marca de tempo do arrinque lento.
Reduza a demora sen quitar o control
Desactivar a política ou cambiala a modo de auditoría fai desaparecer a demora e elimina o control que despregou a organización, así que considéreo a reparación equivocada. As opcións máis estreitas son un cambio de encamiñamento para que o respondedor sexa accesible a través do túnel, unha exclusión no túnel dividido para os hosts do respondedor, unha corrección de DNS cando o nome se resolve a un enderezo inalcanzable, ou un proxy de caché compatible para os datos de revocación. Cada unha ten un propietario distinto: o equipo de PKI posúe a accesibilidade do respondedor, o equipo de rede posúe a división do túnel e o equipo de punto final posúe a política.
Excluír cada host de revocación do túnel non é automaticamente seguro, xa que un respondedor interno pode ser interno a propósito. Confirme a exclusión co equipo que xestiona a PKI antes de escribir unha regra que envía en silencio as comprobacións de certificados á internet pública. Un cambio feito sen esa confirmación é do tipo que se reverte na seguinte actualización da política.
Verifique un arrinque en frío tras o cambio
Mida un arrinque en frío en ambos os estados e garde os números, porque un arrinque en quente non demostra case nada unha vez que os ensamblados están na caché. Repita o arrinque desde unha sesión nova para que a ruta de carga das extensións se exercite de novo.
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
Unha configuración reparada segue contactando co respondedor, ou usa unha ruta de caché que o seu equipo de PKI aprobou, e o rexistro mostra que a validación se completa en lugar de esgotarse. Confirme que unha aplicación asinada recentemente aínda arrinca, porque unha política que o permite todo non é unha reparación correcta. Comprobe tamén o cartafol da política activa e o estado de aplicación, para que se saiba que a política que depura é a que se executa. Manteña a cadea de certificados, o enderezo do respondedor e as marcas de tempo de arrinque no mesmo tícket, porque unha renovación adoita mover o respondedor e deixa obsoleta a regra de exclusión ou DNS.