Провера стања уређаја преко VPN-а не блокира? Прво испратите извештај
Агент на крајњој тачки пријављује здраво стање, али интерна апликација се ипак отвара. Прођите кроз прикупљач, пресуду и блок, па докажите одбијање једним захтевом.
Ако лаптоп чији су антивирусни потписи престали да се ажурирају пре неколико недеља и даље може да отвори вашу интерну апликацију, документ политике је ретко оно што није у реду. Три одвојена система морају да се сложе пре него што приступ буде одбијен: нешто мери крајњу тачку, нешто претвара то мерење у пресуду дозволи или одбиј, а нешто заиста одбацује саобраћај. Када неусклађени уређај ипак уђе, тачно једна од тих веза недостаје или верује доказима којима не би требало. Провере испод иду тим редом и свака има тачку заустављања.
Блок је последњи корак, а не први
Аутентификација и стање уређаја одговарају на различита питања. Успешна пријава доказује да је приступница предочена; она не говори ништа о софтверу који ради на машини која ју је предочла. Управо тај јаз омогућава копираном клијентском профилу да на нездравог домаћина пренесе сесију која изгледа здраво.
Рад на усклађености крајњих тачака већ има речник за тај ланац. Референтни модел 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 has | Verdict | What it protects against |
|---|---|---|
| Timestamp inside the policy window, protective service running | Admit to normal applications | Nothing yet; the other checks still apply |
| Timestamp older than the window | Deny, admit remediation page only | Signature rollback and dormant laptops |
| Service disabled or reporting off | Deny, escalate to the endpoint owner | An agent reporting stale success |
| No report at all for this session | Treat as deny, never as healthy | Agents 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
}
Два детаља лако се пропусте. Најпре понављање: извештај забележен док је машина била здрава не сме се прихватити за каснију сесију на истом уређају, па тражите временску ознаку везану уз тренутну везу. Затим уклањање: деинсталација агента треба да произведе исто одбијање као застарео извештај, а не чист пролаз, и то је случај који се најчешће никада не тестира.
Када се матрица поклопи с табелом, предајте три ставке ономе ко следећи управља пролазом: команде, праг и четири очекивана исхода. Управо је то предавање прави резултат, јер дизајн стања који живи само у документу политике склизне први пут када алат крајње тачке промени своје поље извештавања.