Visual Studio се код куће нормално покреће, а затим исти лаптоп уђе у корпоративни тунел и свако покретање пола минута стоји на почетном екрану. Уклоните правило и застој одлази с њим; уклоните тунел и дешава се исто. Оба запажања су тачна, зато два дела стално пребацују кривицу једно на друго. Одлучујуће питање је чека ли провера опозива сертификата путању коју даје само тунел или уопште не налази никакву.

Мерите добављање, не покретање

Правило WDAC, постављено као потписана SiPolicy.p7b, одлучује који се имиџи смеју извршавати на машини. Интегритет кода проверава ланац потписа имиџа пре извршавања, а та провера може укључивати питање опозива. Одговор зависи од тачке дистрибуције CRL или OCSP одговорника који сертификат наводи у себи.

То су обични мрежни захтеви, па њихова цена зависи од тога где се одговорник налази. Када је доступан само кроз тунел, или његово име се разрешава само преко DNS сервера иза тунела, провера чека да тунел буде спреман. Visual Studio при покретању учитава велики број потписаних склопова и проширења, а мало кашњење по имиџу постаје видљив застој. Ништа није неисправно и правило се понаша тачно како је конфигурисано, зато се чини да уклањање правила решава проблем.

Сваки потписани имиџ може покренути мрежни позив

Почните са потписаном бинарном датотеком која је већ на диску и замолите платформу да је провери са истим понашањем добављања које користи покретање. Покрените команду једном на тунелу и једном изван њега, па упоредите редове добављања уместо коначне пресуде.

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

Излаз наводи ланац, адресе CRL и OCSP и то да ли је свако добављање успело. Одговорник који на тунелу истекне и изван њега одговори је доказ који вам треба, и носи много већу тежину од утиска о спорости. Ако добављање успе споро, запишите адресу како би следећи корак могао да тестира тај хост директно.

Разрешите име хоста одговорника и тестирајте доступност изван апликације, јер име које се не разрешава никада неће поправити клијентско подешавање. Оперативни дневник CodeIntegrity даје другу половину доказа, повезујући догађај провере са временском ознаком спорог покретања.

Скратите кашњење без уклањања контроле

Искључивање правила или пребацивање у режим ревизије уклања кашњење и уклања контролу коју је организација поставила, па то третирајте као погрешан поправак. Уже опције су промена руте тако да одговорник буде доступан кроз тунел, изузетак у подељеном тунелу за хостове одговорника, исправка DNS када се име разреши на недоступну адресу, или подржани кеширајући прокси за податке о опозиву. Свака има другог власника: PKI тим поседује доступност одговорника, мрежни тим поседује поделу тунела, а тим за крајње тачке поседује правило.

Изузимање сваког хоста опозива из тунела није аутоматски безбедно, јер интерни одговорник може бити интерни намерно. Потврдите изузетак са тимом који води PKI пре него што напишете правило које тихо шаље провере сертификата на јавни интернет. Промена направљена без те потврде је она која се враћа при следећем освежавању правила.

Након промене проверите хладно покретање

Измерите хладно покретање у оба стања и сачувајте бројеве, јер топло покретање готово ништа не доказује када су склопови већ у кешу. Поновите покретање из нове сесије како би се путања учитавања проширења поново искористила.

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

Поправљена конфигурација и даље контактира одговорника или користи кеширајућу путању коју је одобрио ваш PKI тим, а дневник показује да се провера завршава уместо да истекне. Потврдите да се новопотписана апликација и даље покреће, јер правило које допушта све није успешан поправак. Проверите и фасциклу активног правила и стање примене, како би се знало да је правило које исправљате оно које ради. Држите ланац сертификата, адресу одговорника и времена покретања у истом тикету, јер обнова обично премешта одговорника и оставља изузетак или DNS правило застарелим.

Повезани чланци