Kui sülearvuti, mille viirusetõrje allkirjad lakkasid nädalate eest uuenemast, suudab endiselt sinu sisemise rakenduse avada, on harva just poliitikadokument see, mis valesti on. Enne juurdepääsu keelamist peavad kokku leppima kolm eraldi süsteemi: üks mõõdab lõpp-punkti, teine muudab selle mõõtmise luba või keela otsuseks ja kolmas tõesti viskab liikluse välja. Kui mittevastav seade siiski sisse pääseb, puudub täpselt üks neist lülidest või usaldab see tõendeid, mida ei peaks. Allpool olevad kontrollid käivad selles järjekorras ja igaühel on peatuspunkt.

Blokeering on viimane samm, mitte esimene

Autentimine ja seadme olek vastavad erinevatele küsimustele. Õnnestunud sisselogimine tõestab, et volitus esitati; see ei ütle midagi tarkvara kohta, mis töötab masinas, mis selle esitas. Just see lünk lubab kopeeritud kliendiprofiilil kanda terve väljanägemisega sessiooni ebatervesse hosti.

Lõpp-punktide vastavustööl on selle ahela jaoks juba sõnavara. RFC 5209 informatiivne NEA-võrdlusmudel jagab töö kogujaks, hindamissammuks ja jõustamispunktiks ning ütleb otse, et klient, kes valetab oma enda oleku kohta, jääb mudelist välja. See mööndus on tähtsam kui diagramm: usaldusväärne platvormimoodul ei muuda ise teatatud mõõtmist faktiks.

Hoia koguja ulatuse suhtes aus. See peaks teatama atribuute, mida sinu poliitika nimetab, seadmel, mis juurdepääsu palub, ja vähe muud. Inventuuriagent, mis loetleb iga paigaldatud paketi, on teine tööriist kui olekukoguja, ja erinevus on korraga nii säilitamise kui ka täpsuse probleem. Kui aruannet ei saa siduda ühe seadme identiteediga, oletab hindaja, millise masina ta just lubas.

Punast olekut näitav armatuurlaud ei ole kontroll. Küsi, milleni keelatud kasutaja veel pääseb: vikini, failijagamiseni, andmebaasi portini? Parandus vajab üht kitsast pinda ja kõik muu kuulub blokeeringu taha.

Loe aruannet enne, kui loed reeglit

Alusta allikast, mitte kliendi rohelisest linnukesest. Windowsis tuleb kohalik mõõtmine Defenderist või sellest tootest, mis end Security Centeris registreeris, ja mõlemat saab lugeda ilma tarnija konsoolita:

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

Teine käsk tagastab täisarvu nimega productState. Selle bitid on lõdvalt dokumenteeritud ja tarnijad pakivad lubamise ning ajakohasuse lipud erinevalt, seega kinnita seda, mitte ära parsi. Kolmandate osapoolte paketid jätavad pärast desinstallimist alles ka Security Centeri kirje ja see teavitab tarkvarast, mida kettal enam ei ole.

Vanus on väli, mille inimesed vahele jätavad. Allkirja ajatempel tähendab midagi ainult hindamist tegeva masina kella suhtes, seega teisenda see intervalliks, mitte ära hinda seda silma järgi:

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

Nüüd on poliitikal üks number, mida lugeda. Kui sinu reegel ütleb 72 tundi, on see number, mida see kasutab, ja nädala maganud sülearvuti kukub läbi, ilma et keegi silti tõlgendaks. Kirjuta lävi käsu kõrvale, sest need kaks triivivad lahku, kui lõpp-punkti tööriist välja vahetatakse.

Muuda iga seadme olek kirjalikuks otsuseks

Enamik olekuvaidlusi on tegelikult vaidlused tundmatu rea üle. Otsusta see enne esimest juhtumit tabelis, mis nimetab tõendi, otsuse ja omaniku, et keegi ei improviseeriks lüüsi konsoolis.

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

Toodete erinevus on just alumises reas. Mõned lüüsid keelduvad ühendusest ja selgitavad, miks; teised lasevad tunnelil tõusta ja rakendavad piiratud poliitikat; vähesed langevad tagasi viimase teadaoleva hea aruande juurde. Kaitstavad on ainult kaks esimest ja tasub proovida, millist sinu oma teeb.

Hoia identiteet ja luba ka omades radades. Sülearvuti, mis läbib iga olekutesti, vajab rakenduse jaoks ikkagi õiget inimlikku autoriseerimist, ja seadme sertifikaat tõestab võtme valdamist, mitte failisüsteemi olekut. Kolme üheks tõeväärtuseks kokku suruda on viis, kuidas tugiteenuse konto saab tootmiskeskkonda alalise juurdepääsu.

Kontrolli jõustamise teekonda päringuga, mitte armatuurlauaga

Jõustamine on päringu omadus, seega mõõda seda ühega. Pane mittevastav masin tunnelisse ja tee kõne, mille teeks päris kasutaja:

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

Vastus 200 seadmelt, mis peaks olema blokeeritud, tähendab, et otsus ei jõudnud kunagi andmete teele. Kaks tavalist põhjust: poliitika on kinnitatud grupile, millega testkonto kunagi liitus, või rakendus on kättesaadav marsruudil, mida VPN ei oma.

Kontrolli esmalt marsruutimise eeldust. Kui sisemine nimi laheneb aadressiks, milleni klient juba kohaliku LAN-i kaudu jõuab, on tunnel ebaoluline ja ükski poliitika ei rakendu. Võrdle seda aadressi marsruudiga, mida lüüs lükkab. OpenVPN puhul elab kliendi poliitika failides, mis on võtmetatud üldnimega, seega on seda lihtne kontrollida:

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

Fail, mis sisaldab disable, lahutab selle kliendi täielikult, samas kui rida push "route ..." kitsendab, milleni see pääseb. Mõlemad on jõustamine ja mõlemad on nähtavad kõigile, kes aruannet siluvad.

Testi nelja juhtumit ühel proovikontol

Viimane kontroll on väike maatriks, mitte õnnelik teekond. Juhi üks testkonto läbi nelja oleku: ajakohane, aegunud allkiri, kaitse välja lülitatud, agent pole paigaldatud. Igaühe kohta kirjuta otsus hindamislogisse, HTTP-olek, mille rakendus tagastab, ja kas parandusleht laaditi.

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
}

Kaks detaili on kergesti märkamata. Esiteks kordamine: aruannet, mis jäädvustati masina tervena olemise ajal, ei tohi sama seadme hilisema sessiooni jaoks vastu võtta, seega otsi praeguse ühendusega seotud ajatemplit. Seejärel eemaldamine: agendi desinstallimine peaks andma sama keeldumise nagu aegunud aruanne, mitte puhta läbimise, ja just seda juhtumit ei testita kõige sagedamini kunagi.

Kui maatriks sobib tabeliga, anna lüüsi järgmisele haldajale kolm asja: käsud, lävi ja neli oodatud tulemust. Just see üleandmine on tegelik tulemus, sest ainult poliitikadokumendis elav olekudisain triivib esimest korda siis, kui lõpp-punkti tööriist muudab oma aruande välja.

Seotud artiklid