Visual Studio startar normalt heime, så koplar den same laptoppen seg til bedriftstunnelen og kvar oppstart står eit halvt minutt på oppstartsskjermen. Fjern policyen og forseinkinga forsvinn med han; fjern tunnelen og det same skjer. Begge observasjonane er riktige, og difor får dei to komponentane stadig skulda for kvarandre. Det avgjerande spørsmålet er om eit tilbakekall-oppslag ventar på ei rute som berre tunnelen tilbyr, eller om det ikkje finn noko i det heile.

Mål hentinga, ikkje oppstarten

Ein WDAC-policy, rulle ut som ein signert SiPolicy.p7b, avgjer kva bilete som får køyre på maskina. Kodeintegritet validerer signaturkjeda til eit bilete før køyring, og den valideringa kan innehalde eit spørsmål om tilbakekall. Svaret avheng av CRL-distribusjonspunktet eller OCSP-respondaren som sertifikatet namngir inne i seg.

Dette er vanlege nettverksførespurnader, så kostnaden avheng av kvar respondaren ligg. Når han berre er tilgjengeleg gjennom tunnelen, eller namnet berre blir løyst gjennom ein DNS-server bak tunnelen, ventar valideringa til tunnelen er klar. Visual Studio lastar ved oppstart eit stort tal signerte assemblyar og utvidingar, og ei lita forseinking per bilete blir ein synleg stopp. Ingenting er feil, og policyen oppfører seg nøyaktig som konfigurert, og difor ser det ut som om fjerning av policyen løyser problemet.

Kvart signerte bilete kan utløyse eit nettverkskall

Start med ei signert binærfil som allereie ligg på disken, og be plattforma verifisere henne med same henteåtferd som ein oppstart brukar. Køyr kommandoen éin gong på tunnelen og éin gong utanfor, og samanlikn deretter hentelinjene i staden for den endelege dommen.

certutil -verify -urlfetch C:\Tools\Contoso.Editor.dll
nslookup ocsp.contoso.example
Test-NetConnection ocsp.contoso.example -Port 80

Utdataa listar opp kjeda, CRL- og OCSP-adressene og om kvar henting lukkast. Ein respondar som får tidsavbrot på tunnelen og svarar utanfor, er beviset du treng, og det veg langt tyngre enn eit inntrykk av tregleik. Viss hentinga lukkast sakte, noter adressa slik at neste trinn kan teste den verten direkte.

Slå opp vertsnamnet til respondaren og test tilgjengelegheita utanfor applikasjonen, for eit namn som ikkje blir løyst, blir aldri reparert av ei klientinnstilling. Driftsloggen til CodeIntegrity gjev den andre halvdelen av beviset og knyter ei valideringshending til tidsstempelet for den trege oppstarten.

Kort ned forseinkinga utan å fjerne kontrollen

Å deaktivere policyen eller byte han til revisjonsmodus fjernar forseinkinga og fjernar kontrollen organisasjonen rulle ut, så sjå på det som den gale reparasjonen. Dei smalare alternativa er ei rutingsendring slik at respondaren er tilgjengeleg gjennom tunnelen, eit unntak i den delte tunnelen for respondervertane, ei DNS-korreksjon når namnet blir løyst til ei utilgjengeleg adresse, eller ein støtta hurtigbufferproxy for tilbakekalldata. Kvar har ein annan eigar: PKI-teamet eig tilgjengelegheita til respondaren, nettverksteamet eig tunneldelinga, og endepunktsteamet eig policyen.

Å utelukke kvar tilbakekallvert frå tunnelen er ikkje automatisk trygt, sidan ein intern respondar kan vere intern med vilje. Stadfest utelukkinga med teamet som driv PKI-en, før du skriv ei regel som stille sender sertifikatsjekkar til det offentlege internettet. Ei endring gjord utan den stadfestinga er den typen som blir rulla tilbake ved neste policyoppdatering.

Verifiser ein kaldstart etter endringa

Mål ein kaldstart i begge tilstandar og ta vare på tala, for ein varmstart beviser nesten ingenting når assemblyane er bufra. Gjenta oppstarten frå ei ny økt slik at innlastingsbana for utvidingane blir prøvd igjen.

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

Ein reparert konfigurasjon kontaktar framleis respondaren, eller brukar ei hurtigbufferbane PKI-teamet ditt godkjende, og loggen viser at valideringa blir fullført i staden for å gå ut på tid. Stadfest at eit nyleg signert program framleis startar, for ein policy som tillèt alt er ikkje ein vellukka reparasjon. Sjekk også mappa for den aktive policyen og håndhevingsstatusen, slik at det er kjent at policyen du feilsøkjer er den som køyrer. Hald sertifikatkjeda, adressa til respondaren og oppstartstidspunkta i same sak, for ei fornying flyttar vanlegvis respondaren og lèt unntaks- eller DNS-regelen bli utdatert.

Relaterte artiklar