Blokkerer ikkje VPN-einingstilstandskontrollen? Følg rapporten først
Endepunktagenten din rapporterer sunn tilstand, men den interne appen opnar likevel. Gå gjennom innsamlar, avgjerd og blokkering, og prov deretter avslaget med éin førespurnad.
Viss ein berbar datamaskin der antivirussignaturane slutta å oppdatere seg for veker sidan framleis kan opne den interne appen din, er det sjeldan policydokumentet som er feil. Tre separate system må vere samde før tilgang blir nekta: noko måler endepunktet, noko gjer målinga om til ei avgjerd om å tillate eller avslå, og noko slepp faktisk trafikken gjennom. Når eit ikkje-samsvarande eining likevel kjem inn, manglar nøyaktig eitt av desse ledda eller stolar på prov det ikkje burde. Kontrollane nedanfor går i den rekkjefølgja, og kvar har eit stoppunkt.
Blokkeringa er det siste trinnet, ikkje det første
Autentisering og tilstand svarar på ulike spørsmål. Ei vellukka innlogging provar at ein legitimasjon vart lagt fram; ho seier ingenting om programvara som køyrer på maskina som la han fram. Det er nettopp dette gapet som gjer at ein kopiert klientprofil kan flytte ei sunn utsjåande økt over på ein usunn vert.
Arbeidet med endepunktssamsvar har allereie eit ordforråd for kjeda. NEA-referansemodellen i RFC 5209 deler oppgåva i ein innsamlar, eit vurderingstrinn og eit handhevingpunkt, og seier rett ut at ein klient som lyg om sin eigen tilstand fell utanfor modellen. Det atterhaldet er viktigare enn diagrammet: ein betrudd plattformmodul gjer ikkje ei sjølvrapportert måling til eit faktum.
Hald innsamlaren ærleg om omfanget. Han skal rapportere attributta som policyen din namngjev, på eininga som ber om tilgang, og lite anna. Ein inventaragent som listar kvar installert pakke er eit anna verktøy enn ein tilstandsinnsamlar, og skilnaden er både eit oppbevarings- og eit nøyaktigheitsproblem. Viss rapporten ikkje kan knytast til éin einingidentitet, gissar vurderaren kva maskin han nettopp sleppte gjennom.
Eit dashbord som viser raud status er ikkje ein kontroll. Spør kva ein avvist brukar framleis kan nå: wikien, fildelinga, databaseporten? Utbetring treng éi smal flate, og alt anna høyrer til bak blokkeringa.
Les rapporten før du les regelen
Start ved kjelda i staden for ved den grøne haka til klienten. I Windows kjem den lokale målinga frå Defender eller frå produktet som registrerte seg hos Security Center, og begge kan lesast utan leverandørkonsoll:
Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct | Select-Object displayName, productState
Den andre kommandoen returnerer eit heiltal kalla productState. Bitane er laust dokumenterte, og leverandørar pakkar flagga for aktivering og ajour ulikt, så stadfest det i staden for å tolke det. Tredjepartspakkar etterlèt òg Security Center-oppføringa etter avinstallering, og ho rapporterer om programvare som ikkje lenger ligg på disken.
Alder er feltet folk hoppar over. Eit signaturtidsstempel betyr berre noko mot klokka til maskina som gjer vurderinga, så gjer det om til eit intervall i staden for å anslå det på augemål:
$sig = (Get-MpComputerStatus).AntivirusSignatureLastUpdated
[int](New-TimeSpan -Start $sig -End (Get-Date)).TotalHours
No har policyen eitt tal å lese. Viss regelen din seier 72 timar, er det talet han brukar, og ein berbar datamaskin som søv ei veke feilar utan at nokon tolkar ein etikett. Skriv ned terskelen ved sida av kommandoen, for dei to glir frå kvarandre når endepunktverktøyet blir bytt ut.
Gjer kvar einingstilstand om til ei skriftleg avgjerd
Dei fleste tvistane om tilstand er eigentleg tvistar om den ukjende rada. Avgjer henne før den første hendinga, i ein tabell som namngjev provet, avgjerda og eigaren, slik at ingen improviserer ved gatewaykonsollen.
| 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 |
Botnrada er der produkta skil seg. Nokre gatewayar avviser sambandet og forklarar kvifor; andre lèt tunnelen kome opp og brukar ein avgrensa policy; få fell tilbake til den sist kjende gode rapporten. Berre dei to første er forsvarlege, og det er verdt å teste kva din gjer.
Hald identitet og løyve i sine eigne spor. Ein berbar datamaskin som består kvar tilstandstest treng framleis rett menneskeleg autorisasjon for appen, og eit einingensertifikat provar at ein sit på ein nøkkel, ikkje tilstanden til filsystemet. Å presse dei tre saman til éin boolsk verdi er måten ein helpdesk-konto endar med permanent tilgang til produksjon.
Kontroller handhevingvegen med ein førespurnad, ikkje eit dashbord
Handheving er ein eigenskap ved ein førespurnad, så mål han med éin. Set ei ikkje-samsvarande maskin på tunnelen og gjer kallet ein ekte brukar ville gjera:
curl -sS -o /dev/null -w '%{http_code}
' --max-time 5 https://app.internal.example/health
Ein 200 frå ei eining som skulle vore blokkert betyr at avgjerda aldri nådde datatvegen. To vanlege årsaker: policyen er knytt til ei gruppe testkontoen aldri vart med i, eller appen er tilgjengeleg via ein rute VPN-et ikkje eig.
Kontroller ruteantasettet først. Viss det interne namnet løyser seg til ei adresse klienten allereie når over det lokale LAN-et, er tunnelen irrelevant og ingen policy vil gjelde. Samanlikn den adressa med ruta gatewayen skyv. På OpenVPN lever policyen per klient i filer som er nøkla på det felles namnet, så det er lett å inspisere:
ls /etc/openvpn/ccd/
cat /etc/openvpn/ccd/laptop-17
Ei fil som inneheld disable koplar den klienten heilt ut, medan ei push "route ..."-line snevrar inn kva han kan nå. Begge er handheving, og begge er synlege for alle som feilsøkjer rapporten.
Test dei fire tilfella på éin testkonto
Den siste kontrollen er ein liten matrise, ikkje ein lukkeleg veg. Køyr éin testkonto gjennom fire tilstandar: gjeldande, utlopen signatur, vern deaktivert, agent ikkje installert. For kvar av dei, noter avgjerda i vurderingsloggen, HTTP-statusen appen returnerer, og om utbetringssida vart lasta.
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
}
To detaljar er lette å oversjå. Først gjenavspeling: ein rapport som vart fanga medan maskina var sunn, må ikkje godtakast for ei seinare økt på same eining, så leit etter eit tidsstempel bunde til den gjeldande sambandet. Deretter fjerning: avinstallering av agenten skal gje same avslag som ein utdatert rapport, ikkje ein rein passasje, og det er tilfellet som oftast aldri blir testa.
Når matrisen stemmer med tabellen, overlet tre ting til den som driv gatewayen neste gong: kommandoane, terskelen og dei fire venta resultata. Nettopp den overleveringa er den eigentlege leveransen, fordi eit tilstandsdesign som berre lever i eit policydokument, glir første gong endepunktverktøyet endrar rapporteringsfeltet sitt.