Ако лаптоп чији су антивирусни потписи престали да се ажурирају пре неколико недеља и даље може да отвори вашу интерну апликацију, документ политике је ретко оно што није у реду. Три одвојена система морају да се сложе пре него што приступ буде одбијен: нешто мери крајњу тачку, нешто претвара то мерење у пресуду дозволи или одбиј, а нешто заиста одбацује саобраћај. Када неусклађени уређај ипак уђе, тачно једна од тих веза недостаје или верује доказима којима не би требало. Провере испод иду тим редом и свака има тачку заустављања.

Блок је последњи корак, а не први

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

Рад на усклађености крајњих тачака већ има речник за тај ланац. Референтни модел NEA у RFC 5209 дели посао на прикупљач, корак процене и тачку спровођења и отворено каже да је клијент који лаже о сопственом стању изван модела. Та напомена је важнија од дијаграма: поуздан модул платформе не претвара самопријављено мерење у чињеницу.

Држите прикупљач искреним у погледу обима. Треба да пријави атрибуте које ваша политика именује, на уређају који тражи приступ, и мало шта друго. Агент за инвентар који наводи сваки инсталирани пакет другачији је алат од прикупљача стања уређаја, а разлика је истовремено проблем задржавања и проблем тачности. Ако извештај не може бити везан за један идентитет уређаја, проценитељ нагађа коју је машину управо пустио.

Надзорна табла са црвеним статусом није контрола. Питајте до чега одбијени корисник још може доћи: вики, мрежни фолдер, порт базе података? Исправка тражи једну уску површину, а све остало припада иза блока.

Прочитајте извештај пре него што прочитате правило

Крените од извора, а не од зелене квачице клијента. На Windows-у локално мерење долази од Defendera или од производа који се регистровао у Security Center, и обоје се може читати без конзоле добављача:

Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct | Select-Object displayName, productState

Друга команда враћа цео број под називом productState. Његови битови су лабаво документовани и добављачи различито пакују заставице укључености и ажурности, па га потврдите уместо да га рашчлањујете. Пакети трећих страна такође остављају унос у Security Center након деинсталације, а он извештава о софтверу којег више нема на диску.

Старост је поље које људи прескачу. Временска ознака потписа има смисла само према сату машине која спроводи процену, па је претворите у интервал уместо да је процењујете оком:

$sig = (Get-MpComputerStatus).AntivirusSignatureLastUpdated
[int](New-TimeSpan -Start $sig -End (Get-Date)).TotalHours

Сада политика има један број за читање. Ако ваше правило каже 72 сата, то је број који користи, а лаптоп који спава недељу дана пада без тога да ико тумачи ознаку. Запишите праг уз команду, јер се њих двоје разилазе када се алат крајње тачке замени.

Претворите свако стање уређаја у писану пресуду

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

Evidence the assessor hasVerdictWhat it protects against
Timestamp inside the policy window, protective service runningAdmit to normal applicationsNothing yet; the other checks still apply
Timestamp older than the windowDeny, admit remediation page onlySignature rollback and dormant laptops
Service disabled or reporting offDeny, escalate to the endpoint ownerAn agent reporting stale success
No report at all for this sessionTreat as deny, never as healthyAgents that fail open under load

Доњи ред је место где се производи разликују. Неки пролази одбијају везу и објашњавају зашто; други пуштају тунел и примењују ограничену политику; ретки се враћају на последњи познати добар извештај. Само су прва два одбрањива и вреди испробати који ваш ради.

Држите идентитет и дозволу у властитим тракама. Лаптоп који прође сваки тест стања ипак треба исправну људску ауторизацију за апликацију, а сертификат уређаја доказује поседовање кључа, а не стање датотечног система. Сабијање троје у један boolean начин је на који рачун хелпдеска добије стални приступ продукцији.

Проверите пут спровођења захтевом, а не надзорном таблом

Спровођење је својство захтева, па га измерите једним. Ставите неусклађену машину на тунел и упутите позив какав би упутио стварни корисник:

curl -sS -o /dev/null -w '%{http_code}
' --max-time 5 https://app.internal.example/health

Одговор 200 са уређаја који би требало да буде блокиран значи да одлука никада није стигла на путању података. Два уобичајена узрока: политика је везана за групу којој се тестни рачун никада није придружио, или је апликација доступна преко руте коју VPN не поседује.

Прво проверите претпоставку усмеравања. Ако се интерно име разрешава на адресу до које клијент већ долази преко локалне LAN мреже, тунел је небитан и никаква се политика неће применити. Упоредите ту адресу са рутом коју пролаз гура. На OpenVPN политика по клијенту живи у датотекама кључаним по заједничком имену, па ју је лако прегледати:

ls /etc/openvpn/ccd/
cat /etc/openvpn/ccd/laptop-17

Датотека која садржи disable потпуно искључује тог клијента, док линија push "route ..." сужава до чега може доћи. Обоје је спровођење и обоје је видљиво свакоме ко отклања грешке на извештају.

Тестирајте четири случаја на једном пробном рачуну

Завршна провера је мала матрица, а не срећна стаза. Проведите један тестни рачун кроз четири стања: актуелно, истекао потпис, заштита онемогућена, агент није инсталиран. За свако запишите пресуду у дневник процене, HTTP статус који апликација враћа и да ли се учитала страница за исправку.

foreach ($case in 'current', 'stale', 'disabled', 'absent') {
  Get-MpComputerStatus | Select-Object AMServiceEnabled, AntivirusSignatureLastUpdated
  curl.exe -sS -o NUL -w "%{http_code}
" --max-time 5 https://app.internal.example/health
}

Два детаља лако се пропусте. Најпре понављање: извештај забележен док је машина била здрава не сме се прихватити за каснију сесију на истом уређају, па тражите временску ознаку везану уз тренутну везу. Затим уклањање: деинсталација агента треба да произведе исто одбијање као застарео извештај, а не чист пролаз, и то је случај који се најчешће никада не тестира.

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

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