Visual Studio lėtas tik per VPN? Patikrinkite CRL ir OCSP
Kai taikoma WDAC taisyklė, vienas lėtas paleidimas gali būti atšaukimo užklausa, o ne tunelis. Įrodykite, kuris žingsnis blokuoja, prieš sušvelnindami taisyklę.
Visual Studio namuose įsijungia įprastai, tada tas pats nešiojamasis kompiuteris prisijungia prie įmonės tunelio ir kiekvienas paleidimas pusę minutės stovi paleidimo ekrane. Pašalinkite taisyklę ir vėlavimas dingsta kartu su ja; pašalinkite tunelį ir nutinka tas pats. Abu pastebėjimai teisingi, todėl du komponentai nuolat kaltina vienas kitą. Lemiamas klausimas – ar sertifikato atšaukimo užklausa laukia kelio, kurį suteikia tik tunelis, ar visai jo neranda.
Matuokite gavimą, o ne paleidimą
Viena WDAC taisyklė, įdiegta kaip pasirašytas SiPolicy.p7b failas, nusprendžia, kurie atvaizdai gali veikti kompiuteryje. Kodo vientisumas prieš vykdymą patikrina atvaizdo parašų grandinę, ir ta patikra gali apimti atšaukimo klausimą. Atsakymas priklauso nuo CRL platinimo taško arba OCSP atsakiklio, kurį sertifikatas nurodo savo viduje.
Tai įprasti tinklo užklausos, todėl jų kaina priklauso nuo to, kur yra atsakiklis. Kai jis pasiekiamas tik per tunelį, arba jo vardas išsprendžiamas tik per DNS serverį už tunelio, patikra laukia, kol tunelis bus paruoštas. Visual Studio paleidimo metu įkelia daug pasirašytų rinkinių ir plėtinių, o nedidelis vėlavimas kiekvienam atvaizdui tampa matomu sustojimu. Niekas nepažeista ir taisyklė elgiasi būtent taip, kaip sukonfigūruota, todėl atrodo, kad taisyklės pašalinimas išsprendžia problemą.
Kiekvienas pasirašytas atvaizdas gali sukelti tinklo kvietimą
Pradėkite nuo pasirašyto dvejetainio failo, kuris jau yra diske, ir paprašykite platformos jį patikrinti tokiu pačiu gavimo elgesiu, kokį naudoja paleidimas. Paleiskite komandą vieną kartą per tunelį ir vieną kartą už jo, tada palyginkite gavimo eilutes, o ne galutinį nuosprendį.
certutil -verify -urlfetch C:\Tools\Contoso.Editor.dll
nslookup ocsp.contoso.example
Test-NetConnection ocsp.contoso.example -Port 80
Išvestis išvardija grandinę, CRL ir OCSP adresus bei tai, ar kiekvienas gavimas pavyko. Atsakiklis, kuris per tunelį baigia laiką ir atsako už jo, yra reikalingas įrodymas, ir jis sveria daug daugiau nei lėtumo įspūdis. Jei gavimas pavyksta lėtai, užsirašykite adresą, kad kitas žingsnis galėtų tiesiogiai išbandyti tą hostą.
Išspręskite atsakiklio hosto vardą ir patikrinkite pasiekiamumą už programos ribų, nes neišsprendžiamo vardo niekada nepataisys jokia kliento nuostata. CodeIntegrity operacijų žurnalas pateikia antrąją įrodymo pusę, susiedamas patikros įvykį su lėto paleidimo laiko žyma.
Sutrumpinkite vėlavimą nepašalindami kontrolės
Taisyklės išjungimas arba perkėlimas į audito režimą pašalina vėlavimą ir pašalina organizacijos įdiegtą kontrolę, todėl laikykite tai neteisingu taisymu. Siauresnės parinktys yra maršrutizavimo pakeitimas, kad atsakiklis būtų pasiekiamas per tunelį, išimtis padalintame tunelyje atsakiklio hostams, DNS pataisymas, kai vardas išsprendžiamas į nepasiekiamą adresą, arba palaikomas podėliavimo tarpinis serveris atšaukimo duomenims. Kiekviena turi skirtingą savininką: PKI komanda atsako už atsakiklio pasiekiamumą, tinklo komanda – už tunelio padalijimą, o galinių taškų komanda – už taisyklę.
Kiekvieno atšaukimo hosto pašalinimas iš tunelio nėra automatiškai saugus, nes vidinis atsakiklis gali būti vidinis sąmoningai. Patvirtinkite išimtį su komanda, kuri valdo PKI, prieš rašydami taisyklę, kuri tyliai siunčia sertifikatų patikras į viešąjį internetą. Pakeitimas be tokio patvirtinimo yra tas, kuris atšaukiamas kitą kartą atnaujinus taisyklę.
Po pakeitimo patikrinkite šaltą paleidimą
Išmatuokite šaltą paleidimą abiejose būsenose ir išsaugokite skaičius, nes šiltas paleidimas beveik nieko neįrodo, kai rinkiniai jau podėlyje. Pakartokite paleidimą iš naujos sesijos, kad plėtinių įkėlimo kelias vėl būtų išbandytas.
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
Sutaisyta konfigūracija vis dar susisiekia su atsakikliu arba naudoja podėliavimo kelią, kurį patvirtino jūsų PKI komanda, ir žurnalas rodo, kad patikra baigiama, o ne baigiasi laikas. Patvirtinkite, kad neseniai pasirašyta programa vis dar paleidžiama, nes taisyklė, leidžianti viską, nėra sėkmingas taisymas. Patikrinkite ir aktyvios taisyklės aplanką bei vykdymo būseną, kad būtų žinoma, jog derinama taisyklė yra ta, kuri veikia. Laikykite sertifikatų grandinę, atsakiklio adresą ir paleidimo laiko žymas tame pačiame biliete, nes atnaujinimas paprastai perkelia atsakiklį ir palieka išimties ar DNS taisyklę pasenusią.