Ĉu la VPN-aparata stata kontrolo ne blokas? Unue sekvu la raporton
Via finpunkta agento raportas sanan staton, tamen la interna aplikaĵo malfermiĝas plu. Trairu la kolektilon, la verdikton kaj la blokadon, poste pruvu la malpermeson per unu peto.
Se tekkomputilo, kies kontraŭvirusaj subskriboj ĉesis ĝisdatiĝi antaŭ semajnoj, ankoraŭ povas malfermi vian internan aplikaĵon, la politika dokumento malofte estas tio, kio malĝustas. Tri apartaj sistemoj devas interkonsenti antaŭ ol aliro estas rifuzata: io mezuras la finpunkton, io konvertas tiun mezuron en verdikton permesi aŭ rifuzi, kaj io efektive faligas la trafikon. Kiam nekomforma aparato tamen eniras, ĝuste unu el tiuj ligoj mankas aŭ fidas pruvojn, kiujn ĝi ne devus. La kontroloj sube iras laŭ tiu ordo, kaj ĉiu havas haltpunkton.
La blokado estas la lasta paŝo, ne la unua
Aŭtentigo kaj aparata stato respondas malsamajn demandojn. Sukcesa ensaluto pruvas, ke legitimilo estis prezentita; ĝi diras nenion pri la programaro ruliĝanta sur la maŝino, kiu prezentis ĝin. Ĝuste tiu breĉo ebligas al kopiita klienta profilo porti sane aspektan seancon sur nesanan gastigan maŝinon.
La laboro pri finpunkta konformeco jam havas vortaron por tiu ĉeno. La informa NEA-referenca modelo en RFC 5209 dividas la taskon en kolektilon, taksoŝtupon kaj plenum-punkton, kaj diras malkaŝe, ke kliento, kiu mensogas pri sia propra stato, staras ekster la modelo. Tiu kaŭcio pli gravas ol la diagramo: fidata platforma modulo ne igas memraportitan mezuron fakto.
Tenu la kolektilon honesta pri la amplekso. Ĝi devus raporti la atributojn, kiujn via politiko nomas, sur la aparato petanta aliron, kaj malmulte alie. Inventara agento, kiu listigas ĉiun instalitan pakaĵon, estas alia ilo ol stata kolektilo, kaj la diferenco estas samtempe konserva kaj precizeca problemo. Se la raporto ne ligeblas al unu aparata identeco, la taksanto divenas, kiun maŝinon ĝi ĵus malfermis.
Panelo montranta ruĝan staton ne estas regilo. Demandu, kion rifuzita uzanto ankoraŭ povas atingi: la vikion, la dosierpartigon, la datumbazan pordon? Riparo bezonas unu mallarĝan surfacon, kaj ĉio alia apartenas malantaŭ la blokado.
Legu la raporton antaŭ ol legi la regulon
Komencu ĉe la fonto anstataŭ ĉe la verda marko de la kliento. En Windows la loka mezurado venas de Defender aŭ de tiu ajn produkto, kiu registris sin ĉe Security Center, kaj ambaŭ estas legeblaj sen vendista konzolo:
Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct | Select-Object displayName, productState
La dua komando redonas entjeron nomatan productState. Ĝiaj bitoj estas loze dokumentitaj kaj vendistoj pakaĵas la flagojn de ŝalto kaj aktualeco malsame, do konfirmu ĝin anstataŭ analizi ĝin. Triapartaj pakaĵoj ankaŭ lasas la enskribon en Security Center post malinstalo, kaj tiu raportas pri programaro, kiu jam ne estas sur la disko.
Aĝo estas la kampo, kiun homoj preterpasas. Subskriba tempomarko signifas ion nur rilate al la horloĝo de la maŝino, kiu faras la takson, do konvertu ĝin en intervalon anstataŭ taksi ĝin per okulo:
$sig = (Get-MpComputerStatus).AntivirusSignatureLastUpdated
[int](New-TimeSpan -Start $sig -End (Get-Date)).TotalHours
Nun la politiko havas unu numeron por legi. Se via regulo diras 72 horoj, tiu estas la numero, kiun ĝi uzas, kaj tekkomputilo dormanta semajnon fiaskos sen ke iu interpretu etikedon. Notu la sojlon apud la komando, ĉar la du malharmoniiĝas, kiam la finpunkta ilo estas anstataŭigita.
Konvertu ĉiun aparatan staton en skribitan verdikton
Plej multaj disputoj pri stato estas fakte disputoj pri la nekonata vico. Decidu ĝin antaŭ la unua okazaĵo, en tabelo, kiu nomas la pruvon, la verdikton kaj la posedanton, por ke neniu improvizu ĉe la pordega konzolo.
| 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 |
La malsupra vico estas kie produktoj malsamas. Iuj pordegoj rifuzas la konekton kaj klarigas kial; aliaj lasas la tunelon leviĝi kaj aplikas limigitan politikon; malmultaj reiras al la laste konata bona raporto. Nur la du unuaj estas defendeblaj, kaj indas testi, kiun faras la via.
Tenu identecon kaj permeson ankaŭ en propraj lenoj. Tekkomputilo, kiu trapasas ĉiun statoteston, ankoraŭ bezonas la ĝustan homan rajtigon por la aplikaĵo, kaj aparata atestilo pruvas posedon de ŝlosilo, ne la staton de la dosiersistemo. Kunpremi la tri en unu bulean valoron estas la maniero, per kiu helpdeska konto akiras daŭran aliron al produktaĵo.
Kontrolu la plenuman vojon per peto, ne per panelo
Plenumado estas eco de peto, do mezuru ĝin per unu. Metu nekomforman maŝinon sur la tunelon kaj faru la vokon, kiun farus reala uzanto:
curl -sS -o /dev/null -w '%{http_code}
' --max-time 5 https://app.internal.example/health
200 de aparato, kiu devus esti blokita, signifas, ke la decido neniam atingis la datuman vojon. Du kutimaj kaŭzoj: la politiko estas alligita al grupo, al kiu la testa konto neniam aliĝis, aŭ la aplikaĵo estas atingebla tra itinero, kiun la VPN ne posedas.
Kontrolu unue la itinero-supozon. Se la interna nomo solviĝas al adreso, kiun la kliento jam atingas tra la loka LAN, la tunelo estas nerelevanta kaj neniu politiko aplikiĝos. Komparu tiun adreson kun la itinero, kiun la pordego puŝas. Ĉe OpenVPN la politiko por kliento loĝas en dosieroj ŝlositaj per la komuna nomo, do facilas inspekti:
ls /etc/openvpn/ccd/
cat /etc/openvpn/ccd/laptop-17
Dosiero enhavanta disable tute malkonektas tiun klienton, dum linio push "route ..." mallarĝigas, kion ĝi povas atingi. Ambaŭ estas plenumado, kaj ambaŭ videblas al ĉiu, kiu sencimigas la raporton.
Testu la kvar kazojn sur unu provkonto
La fina kontrolo estas malgranda matrico, ne feliĉa vojo. Pelu unu testan konton tra kvar statoj: aktuala, eksvalida subskribo, protekto malŝaltita, agento ne instalita. Por ĉiu registru la verdikton en la taksa protokolo, la HTTP-staton, kiun la aplikaĵo redonas, kaj ĉu la riparpaĝo ŝargiĝis.
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 detaloj facile maltrafiĝas. Unue la ripetado: raporto kaptita dum la maŝino estis sana ne rajtas esti akceptita por posta seanco sur la sama aparato, do serĉu tempomarkon ligitan al la nuna konekto. Poste la forigo: malinstalo de la agento devus produkti la saman malpermeson kiel eksvalida raporto, ne puran trapason, kaj ĝuste tiu kazo plej ofte neniam testiĝas.
Kiam la matrico kongruas kun la tabelo, transdonu tri aferojn al tiu, kiu sekve funkciigos la pordegon: la komandojn, la sojlon kaj la kvar atendatajn rezultojn. Ĝuste tiu transdono estas la reala liveraĵo, ĉar stata dezajno, kiu vivas nur en politika dokumento, drivas la unuan fojon, kiam la finpunkta ilo ŝanĝas sian raportan kampon.