Visual Studio se kod kuće normalno pokreće, a onda isti laptop uđe u korporativni tunel i svako pokretanje pola minute stoji na početnom ekranu. Uklonite pravilo i zastoj odlazi s njim; uklonite tunel i događa se isto. Oba zapažanja su tačna, zato dva dijela stalno prebacuju krivnju jedno na drugo. Odlučujuće pitanje je čeka li provjera opoziva certifikata putanju koju daje samo tunel ili uopće ne nalazi nikakvu.

Mjerite dohvat, ne pokretanje

Pravilo WDAC, postavljeno kao potpisana datoteka SiPolicy.p7b, odlučuje koji se imidži smiju izvršavati na mašini. Integritet koda provjerava lanac potpisa imidža prije izvršavanja, a ta provjera može uključivati pitanje opoziva. Odgovor zavisi od tačke distribucije CRL ili OCSP respondera koji certifikat navodi u sebi.

To su obični mrežni zahtjevi, pa njihova cijena zavisi od toga gdje responder živi. Kada je dostupan samo kroz tunel, ili njegovo ime se razrješava samo preko DNS servera iza tunela, provjera čeka da tunel bude spreman. Visual Studio pri pokretanju učitava veliki broj potpisanih sklopova i proširenja, a malo kašnjenje po imidžu postaje vidljiv zastoj. Ništa nije neispravno i pravilo se ponaša tačno kako je konfigurisano, zato se čini da uklanjanje pravila rješava problem.

Svaki potpisani imidž može pokrenuti mrežni poziv

Počnite s potpisanom binarnom datotekom koja je već na disku i zamolite platformu da je provjeri s istim ponašanjem dohvata koje koristi pokretanje. Pokrenite naredbu jednom na tunelu i jednom izvan njega, pa uporedite redove dohvata umjesto konačne presude.

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

Izlaz navodi lanac, adrese CRL i OCSP i to da li je svaki dohvat uspio. Responder koji istekne na tunelu i odgovori izvan njega je dokaz koji vam treba, i nosi mnogo veću težinu od utiska o sporosti. Ako dohvat uspije sporo, zapišite adresu kako bi sljedeći korak mogao testirati taj host direktno.

Razriješite ime hosta respondera i testirajte dostupnost izvan aplikacije, jer ime koje se ne razrješava nikada neće popraviti klijentska postavka. Operativni dnevnik CodeIntegrity daje drugu polovinu dokaza, povezujući događaj provjere s vremenskom oznakom sporog pokretanja.

Skratite kašnjenje bez uklanjanja kontrole

Isključivanje pravila ili prebacivanje u revizijski način uklanja kašnjenje i uklanja kontrolu koju je organizacija postavila, pa to tretirajte kao pogrešan popravak. Uže opcije su promjena rute tako da responder bude dostupan kroz tunel, izuzetak u podijeljenom tunelu za hostove respondera, ispravka DNS-a kada se ime razriješi na nedostupnu adresu, ili podržani keširajući proxy za podatke o opozivu. Svaka ima drugog vlasnika: PKI tim posjeduje dostupnost respondera, mrežni tim posjeduje podjelu tunela, a tim za krajnje tačke posjeduje pravilo.

Isključivanje svakog hosta za opoziv iz tunela nije automatski sigurno, jer interni responder može biti interno namjerno. Potvrdite izuzetak s timom koji vodi PKI prije nego što napišete pravilo koje tiho šalje provjere certifikata na javni internet. Promjena napravljena bez te potvrde je ona koja se vraća na sljedećem osvježavanju pravila.

Provjerite hladni start nakon promjene

Izmjerite hladni start u oba stanja i sačuvajte brojeve, jer topli start gotovo ništa ne dokazuje kada su sklopovi već u kešu. Ponovite pokretanje iz nove sesije kako bi se putanja učitavanja proširenja ponovo iskoristila.

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

Popravljena konfiguracija i dalje kontaktira responder ili koristi keširajuću putanju koju je odobrio vaš PKI tim, a dnevnik pokazuje da se provjera završava umjesto da istekne. Potvrdite da se novo potpisana aplikacija i dalje pokreće, jer pravilo koje dopušta sve nije uspješan popravak. Provjerite i fasciklu aktivnog pravila i stanje primjene, kako bi se znalo da je pravilo koje ispravljate ono koje radi. Držite lanac certifikata, adresu respondera i vremena pokretanja u istom tiketu, jer obnova obično premješta responder i ostavlja izuzetak ili DNS pravilo zastarjelim.

Povezani članci