VPN įrenginio būsenos patikra neblokuoja? Pirmiausia atsekite ataskaitą
Jūsų galutinio taško agentas praneša apie sveiką būseną, bet vidinė programa vis tiek atsidaro. Pereikite rinktuvą, sprendimą ir blokavimą, tada įrodykite atsisakymą viena užklausa.
Jei nešiojamasis kompiuteris, kurio antiviruso parašai nustojo atsinaujinti prieš savaites, vis dar gali atidaryti jūsų vidinę programą, politikos dokumentas retai būna tai, kas negerai. Trys atskiros sistemos turi sutarti, kol prieiga bus atmesta: kažkas išmatuoja galutinį tašką, kažkas paverčia tą matavimą leisti arba atmesti sprendimu, o kažkas iš tikrųjų numeta srautą. Kai neatitinkantis įrenginys vis tiek patenka į vidų, tiksliai vienos iš tų grandžių trūksta arba ji pasitiki įrodymais, kuriais neturėtų. Toliau pateikti patikrinimai eina ta tvarka, ir kiekvienas turi sustojimo tašką.
Blokavimas yra paskutinis žingsnis, o ne pirmas
Autentifikavimas ir įrenginio būsena atsako į skirtingus klausimus. Sėkmingas prisijungimas įrodo, kad buvo pateikti prisijungimo duomenys; jis nieko nesako apie programinę įrangą, veikiančią mašinoje, kuri juos pateikė. Būtent šis tarpas leidžia nukopijuotam kliento profiliui perkelti sveikai atrodančią sesiją į nesveiką pagrindinį kompiuterį.
Galutinių taškų atitikties darbas jau turi šios grandinės žodyną. RFC 5209 informacinis NEA orientacinis modelis padalija užduotį į rinktuvą, vertinimo žingsnį ir vykdymo tašką ir aiškiai sako, kad klientas, kuris meluoja apie savo pačio būseną, yra už modelio ribų. Ši išlyga svarbesnė už diagramą: patikimas platformos modulis nepaverčia savarankiškai pateikto matavimo faktu.
Laikykite rinktuvą sąžiningą dėl apimties. Jis turi pranešti apie atributus, kuriuos įvardija jūsų politika, įrenginyje, kuris prašo prieigos, ir mažai ką kita. Inventoriaus agentas, išvardijantis kiekvieną įdiegtą paketą, yra kitas įrankis nei būsenos rinktuvas, o skirtumas yra kartu saugojimo ir tikslumo problema. Jei ataskaitos negalima susieti su viena įrenginio tapatybe, vertintojas spėlioja, kurią mašiną jis ką tik įleido.
Ataskaitų skydelis su raudona būsena nėra kontrolė. Paklauskite, ką atmestas naudotojas dar gali pasiekti: viki, failų bendrinimą, duomenų bazės prievadą? Taisymui reikia vieno siauro paviršiaus, o visa kita priklauso už blokavimo.
Perskaitykite ataskaitą prieš skaitydami taisyklę
Pradėkite nuo šaltinio, o ne nuo kliento žalios varnelės. Windows vietinis matavimas ateina iš Defender arba iš produkto, kuris užsiregistravo Security Center, ir abu skaitomi be tiekėjo konsolės:
Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct | Select-Object displayName, productState
Antroji komanda grąžina sveikąjį skaičių pavadinimu productState. Jo bitai dokumentuoti laisvai, o tiekėjai įjungimo ir aktualumo vėliavėles pakuoja skirtingai, todėl patvirtinkite jį, o ne analizuokite. Trečiųjų šalių paketai taip pat palieka Security Center įrašą po pašalinimo, ir jis praneša apie programinę įrangą, kurios diske jau nebėra.
Amžius yra laukas, kurį žmonės praleidžia. Parašo laiko žyma ką nors reiškia tik vertinimą atliekančios mašinos laikrodžio atžvilgiu, todėl paverskite ją intervalu, o ne vertinkite iš akies:
$sig = (Get-MpComputerStatus).AntivirusSignatureLastUpdated
[int](New-TimeSpan -Start $sig -End (Get-Date)).TotalHours
Dabar politika turi vieną skaičių perskaityti. Jei jūsų taisyklė sako 72 valandas, tai yra skaičius, kurį ji naudoja, ir savaitei miegojęs nešiojamasis kompiuteris nepraeina, niekam neinterpretuojant etiketės. Užsirašykite slenkstį šalia komandos, nes abu jie išsiskiria, kai galutinio taško įrankis pakeičiamas.
Kiekvieną įrenginio būseną paverskite rašytiniu sprendimu
Dauguma ginčų dėl būsenos iš tikrųjų yra ginčai dėl nežinomos eilutės. Nuspręskite tai prieš pirmą incidentą lentelėje, kuri įvardija įrodymą, sprendimą ir savininką, kad niekas neimprovizuotų prie tinklo šliuzo konsolės.
| 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 |
Būtent apatinėje eilutėje produktai skiriasi. Kai kurie šliuzai atmeta ryšį ir paaiškina kodėl; kiti leidžia tuneliui pakilti ir taiko ribotą politiką; keli grįžta prie paskutinės žinomos geros ataskaitos. Tik pirmieji du yra apginami, ir verta patikrinti, kurį daro jūsiškis.
Laikykite tapatybę ir leidimą savo juostose. Nešiojamasis kompiuteris, praėjęs kiekvieną būsenos testą, vis tiek reikia tinkamo žmogiškojo leidimo programai, o įrenginio sertifikatas įrodo rakto turėjimą, o ne failų sistemos būseną. Sutraiškyti tris į vieną loginę reikšmę yra kelias, kuriuo pagalbos tarnybos paskyra gauna nuolatinę prieigą prie produkcijos.
Patikrinkite vykdymo kelią užklausa, o ne ataskaitų skydeliu
Vykdymas yra užklausos savybė, todėl matuokite jį viena užklausa. Įdėkite neatitinkantį įrenginį į tunelį ir atlikite kvietimą, kurį atliktų tikras naudotojas:
curl -sS -o /dev/null -w '%{http_code}
' --max-time 5 https://app.internal.example/health
200 iš įrenginio, kuris turėtų būti blokuojamas, reiškia, kad sprendimas niekada nepasiekė duomenų kelio. Dvi įprastos priežastys: politika pritvirtinta prie grupės, į kurią bandomoji paskyra niekada neįstojo, arba programa pasiekiama maršrutu, kurio VPN nevaldo.
Pirmiausia patikrinkite maršrutizavimo prielaidą. Jei vidinis vardas išsprendžiamas į adresą, kurį klientas jau pasiekia vietiniu LAN, tunelis nesvarbus ir jokia politika nebus taikoma. Palyginkite tą adresą su maršrutu, kurį stumia šliuzas. OpenVPN atveju kiekvieno kliento politika gyvena failuose, užraktintuose bendruoju vardu, todėl ją lengva patikrinti:
ls /etc/openvpn/ccd/
cat /etc/openvpn/ccd/laptop-17
Failas, kuriame yra disable, visiškai atjungia tą klientą, o eilutė push "route ..." susiaurina, ką jis gali pasiekti. Abu yra vykdymas, ir abu matomi kiekvienam, kuris derina ataskaitą.
Išbandykite keturis atvejus vienoje bandomojoje paskyroje
Galutinė patikra yra maža matrica, o ne laimingas kelias. Praleiskite vieną bandomąją paskyrą per keturias būsenas: dabartinė, pasibaigęs parašas, apsauga išjungta, agentas neįdiegtas. Kiekvienam užrašykite sprendimą vertinimo žurnale, HTTP būseną, kurią grąžina programa, ir ar įkelta taisymo puslapis.
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
}
Du duomenys lengvai praleidžiami. Pirma kartojimas: ataskaita, užfiksuota mašinai esant sveikai, neturi būti priimta vėlesnei to paties įrenginio sesijai, todėl ieškokite laiko žymos, susietos su dabartiniu ryšiu. Tada pašalinimas: pašalinus agentą turėtų būti toks pat atsisakymas kaip pasenusios ataskaitos, o ne švarus praėjimas, ir būtent šis atvejis dažniausiai niekada neišbandomas.
Kai matrica sutampa su lentele, perduokite tris dalykus tam, kas toliau valdys šliuzą: komandas, slenkstį ir keturis laukiamus rezultatus. Būtent šis perdavimas yra tikrasis rezultatas, nes būsenos dizainas, gyvenantis tik politikos dokumente, nuslysta pirmą kartą, kai galutinio taško įrankis pakeičia savo ataskaitos lauką.