Če prenosnik, katerega protivirusni podpisi so se prenehali posodabljati pred tedni, še vedno lahko odpre vašo notranjo aplikacijo, je dokument s pravilnikom redko tisto, kar je narobe. Preden je dostop zavrnjen, se morajo uskladiti trije ločeni sistemi: nekaj meri končno točko, nekaj to meritev spremeni v razsodbo dovoli ali zavrni, in nekaj promet zares zavrže. Ko neustrezna naprava vseeno vstopi, natanko enega od teh členov ni ali pa zaupa dokazom, ki jim ne bi smel. Spodnja preverjanja gredo v tem vrstnem redu in vsako ima točko ustavljanja.

Blokada je zadnji korak, ne prvi

Preverjanje pristnosti in stanje naprave odgovarjata na različni vprašanji. Uspešna prijava dokazuje, da so bile predložene poverilnice; ne pove ničesar o programski opremi, ki teče na stroju, ki jih je predložil. Prav ta vrzel omogoča kopiranemu profilu odjemalca, da prenese na videz zdravo sejo na nezdrav gostitelj.

Delo na skladnosti končnih točk že ima besedišče za to verigo. Referenčni model NEA v RFC 5209 razdeli nalogo na zbiralnik, korak ocene in točko uveljavljanja ter jasno pove, da odjemalec, ki laže o svojem stanju, stoji zunaj modela. Ta pridržek je pomembnejši od diagrama: zaupanja vreden platformni modul samoprijavljene meritve ne spremeni v dejstvo.

Ohranite zbiralnik pošten glede obsega. Poročati mora o atributih, ki jih imenuje vaš pravilnik, na napravi, ki zahteva dostop, in o malo drugega. Popisni agent, ki našteje vsak nameščen paket, je drugačno orodje od zbiralnika stanja, razlika pa je hkrati problem hrambe in natančnosti. Če poročila ni mogoče povezati z eno identiteto naprave, ocenjevalec ugiba, kateri stroj je pravkar spustil skozi.

Nadzorna plošča z rdečim stanjem ni nadzor. Vprašajte, kam lahko zavrnjeni uporabnik še pride: do wikija, do skupne mape, do vrat zbirke podatkov? Popravek potrebuje eno ozko površino, vse drugo pa spada za blokado.

Preberite poročilo, preden preberete pravilo

Začnite pri viru, ne pri zeleni kljukici odjemalca. V sistemu Windows lokalna meritev prihaja iz Defendera ali iz izdelka, ki se je registriral pri Security Center, in oboje je berljivo brez konzole ponudnika:

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

Drugi ukaz vrne celo število z imenom productState. Njegovi biti so ohlapno dokumentirani in ponudniki različno pakirajo zastavice vklopa in aktualnosti, zato ga potrdite, namesto da bi ga razčlenjevali. Paketi tretjih ponudnikov po odstranitvi pustijo tudi vnos v Security Center, ta pa poroča o programski opremi, ki je ni več na disku.

Starost je polje, ki ga ljudje preskočijo. Časovni žig podpisa nekaj pomeni le glede na uro stroja, ki izvaja oceno, zato ga pretvorite v interval, namesto da bi ga ocenili na oko:

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

Zdaj ima pravilnik eno število za branje. Če vaše pravilo pravi 72 ur, je to število, ki ga uporablja, in prenosnik, ki spi teden dni, ne uspe, ne da bi kdo razlagal oznako. Zapišite prag ob ukazu, ker se oba razideta, ko se orodje končne točke zamenja.

Vsako stanje naprave spremenite v pisno razsodbo

Večina sporov o stanju je v resnici sporov o neznani vrstici. Odločite jo pred prvim incidentom, v tabeli, ki poimenuje dokaz, razsodbo in lastnika, da nihče ne improvizira ob konzoli prehoda.

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

Prav v spodnji vrstici se izdelki razlikujejo. Nekatera prehodi povezavo zavrnejo in pojasnijo, zakaj; druga pustijo tunel gor in uporabijo omejen pravilnik; redka se vrnejo k zadnjemu znanemu dobremu poročilu. Zagovarjati je mogoče le prva dva, in vredno je preizkusiti, katerega dela vaš.

Ohranite identiteto in dovoljenje na lastnih tirih. Prenosnik, ki prestane vsak preizkus stanja, še vedno potrebuje pravilno človeško avtorizacijo za aplikacijo, potrdilo naprave pa dokazuje posedovanje ključa, ne stanja datotečnega sistema. Stiskanje treh v en boolean je pot, po kateri račun pomoči dobi trajen dostop do produkcije.

Preverite pot uveljavljanja z zahtevo, ne z nadzorno ploščo

Uveljavljanje je lastnost zahteve, zato ga izmerite z eno. Postavite neustrezni stroj v tunel in izvedite klic, kot bi ga izvedel resničen uporabnik:

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

Odgovor 200 z naprave, ki bi morala biti blokirana, pomeni, da odločitev nikoli ni dosegla poti podatkov. Dva običajna vzroka: pravilnik je pripet na skupino, v katero se preizkusni račun nikoli ni pridružil, ali je aplikacija dosegljiva po poti, ki je VPN ne poseduje.

Najprej preverite predpostavko usmerjanja. Če se notranje ime razreši na naslov, ki ga odjemalec že doseže po lokalnem LAN-u, je tunel nepomemben in noben pravilnik se ne bo uporabil. Primerjajte ta naslov s potjo, ki jo prehod potiska. Na OpenVPN pravilnik za posameznega odjemalca živi v datotekah s ključem po skupnem imenu, zato ga je lahko pregledati:

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

Datoteka, ki vsebuje disable, tega odjemalca popolnoma odklopi, medtem ko vrstica push "route ..." zoži, kam lahko pride. Oboje je uveljavljanje in oboje je vidno vsakomur, ki poročilo razhroščuje.

Preizkusite štiri primere na enem preizkusnem računu

Zadnje preverjanje je majhna matrika, ne srečna pot. Peljite en preizkusni račun skozi štiri stanja: aktualno, potekel podpis, zaščita izklopljena, agent ni nameščen. Za vsakega zapišite razsodbo v dnevnik ocene, status HTTP, ki ga aplikacija vrne, in ali se je stran za popravek naložila.

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
}

Dve podrobnosti zlahka spregledate. Najprej ponovitev: poročila, zajetega, ko je bil stroj zdrav, se ne sme sprejeti za poznejšo sejo na isti napravi, zato iščite časovni žig, vezan na trenutno povezavo. Nato odstranitev: odstranitev agenta bi morala dati enako zavrnitev kot zastarelo poročilo, ne čistega prehoda, in prav ta primer se najpogosteje nikoli ne preizkusi.

Ko se matrika ujema s tabelo, predajte tri stvari tistemu, ki bo prehod vodil naprej: ukaze, prag in štiri pričakovane izide. Prav ta predaja je resnični rezultat, ker se zasnova stanja, ki živi samo v dokumentu s pravilnikom, premakne prvič, ko orodje končne točke spremeni svoje poročevalsko polje.

Sorodni članki