Ako laptop čiji su antivirusni potpisi prestali da se ažuriraju prije sedmica i dalje može otvoriti vašu internu aplikaciju, politički dokument je rijetko ono što nije u redu. Tri odvojena sistema moraju se složiti prije nego pristup bude odbijen: nešto mjeri krajnju tačku, nešto pretvara to mjerenje u presudu dozvoli ili odbij, i nešto zaista odbacuje saobraćaj. Kada neusklađeni uređaj ipak uđe, tačno jedna od tih veza nedostaje ili vjeruje dokazima kojima ne bi trebalo. Provjere ispod idu tim redom i svaka ima tačku zaustavljanja.

Blok je posljednji korak, ne prvi

Autentifikacija i stanje uređaja odgovaraju na različita pitanja. Uspješna prijava dokazuje da je pristupnica predočena; ona ne govori ništa o softveru koji radi na mašini koja ju je predočila. Upravo taj jaz omogućava kopiranom klijentskom profilu da na nezdravi host prenese sesiju koja izgleda zdravo.

Rad na usklađenosti krajnjih tačaka već ima rječnik za taj lanac. Referentni model NEA u RFC 5209 dijeli posao na sakupljač, korak procjene i tačku sprovođenja i otvoreno kaže da je klijent koji laže o vlastitom stanju izvan modela. Ta napomena je važnija od dijagrama: pouzdani modul platforme ne pretvara samoprijavljeno mjerenje u činjenicu.

Držite sakupljač iskrenim u pogledu obima. Treba da prijavi atribute koje vaša politika imenuje, na uređaju koji traži pristup, i malo šta drugo. Agent za inventar koji navodi svaki instalirani paket drugačiji je alat od sakupljača stanja uređaja, a razlika je istovremeno problem zadržavanja i problem tačnosti. Ako izvještaj ne može biti vezan za jedan identitet uređaja, procjenjivač nagađa koju je mašinu upravo pustio.

Nadzorna tabla s crvenim statusom nije kontrola. Pitajte do čega odbijeni korisnik još može doći: wiki, dijeljeni folder, port baze podataka? Ispravka traži jednu usku površinu, a sve ostalo pripada iza bloka.

Pročitajte izvještaj prije nego što pročitate pravilo

Pođite od izvora, a ne od zelene kvačice klijenta. Na Windowsu lokalno mjerenje dolazi od Defendera ili od proizvoda koji se registrirao u Security Center, i oboje se čita bez konzole dobavljača:

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

Druga komanda vraća cijeli broj pod imenom productState. Njegovi bitovi su labavo dokumentirani i dobavljači različito pakuju zastavice uključenosti i ažurnosti, pa ga potvrdite umjesto da ga raščlanjujete. Paketi trećih strana također ostavljaju unos u Security Center nakon deinstalacije, a on izvještava o softveru kojeg više nema na disku.

Starost je polje koje ljudi preskaču. Vremenska oznaka potpisa ima smisla samo prema satu mašine koja provodi procjenu, pa je pretvorite u interval umjesto da je procjenjujete okom:

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

Sada politika ima jedan broj za čitanje. Ako vaše pravilo kaže 72 sata, to je broj koji koristi, a laptop koji spava sedmicu pada bez toga da iko tumači oznaku. Zapišite prag uz komandu, jer se njih dvoje razilaze kada se alat krajnje tačke zamijeni.

Pretvorite svako stanje uređaja u pisanu presudu

Većina sporova o stanju uređaja zapravo su sporovi o nepoznatom redu. Odlučite to prije prvog incidenta, u tabeli koja imenuje dokaz, presudu i vlasnika, da niko ne improvizuje za konzolom mrežnog prolaza.

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

Donji red je mjesto gdje se proizvodi razlikuju. Neki prolazi odbijaju vezu i objašnjavaju zašto; drugi puštaju tunel i primjenjuju ograničenu politiku; rijetki se vraćaju na posljednji poznati dobar izvještaj. Samo prva dva su odbranjiva i vrijedi isprobati koji vaš radi.

Držite identitet i dozvolu u vlastitim trakama. Laptop koji prođe svaki test stanja ipak treba ispravnu ljudsku autorizaciju za aplikaciju, a certifikat uređaja dokazuje posjedovanje ključa, a ne stanje datotečnog sistema. Sabijanje troje u jedan boolean je način na koji račun helpdeska dobije stalni pristup produkciji.

Provjerite put sprovođenja zahtjevom, ne nadzornom tablom

Sprovođenje je svojstvo zahtjeva, pa ga izmjerite jednim. Stavite neusklađenu mašinu na tunel i uputite poziv kakav bi uputio stvarni korisnik:

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

Odgovor 200 s uređaja koji bi trebao biti blokiran znači da odluka nikada nije stigla na putanju podataka. Dva uobičajena uzroka: politika je vezana za grupu kojoj se testni račun nikada nije pridružio, ili je aplikacija dostupna preko rute koju VPN ne posjeduje.

Prvo provjerite pretpostavku o rutiranju. Ako se interno ime razrješava na adresu do koje klijent već dolazi preko lokalne LAN mreže, tunel je nebitan i nikakva politika se neće primijeniti. Uporedite tu adresu s rutom koju prolaz gura. Na OpenVPN politika po klijentu živi u datotekama ključanim po zajedničkom imenu, pa je lako pregledati:

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

Datoteka koja sadrži disable potpuno isključuje tog klijenta, dok linija push "route ..." sužava do čega može doći. Oboje je sprovođenje i oboje je vidljivo svakome ko otklanja greške na izvještaju.

Testirajte četiri slučaja na jednom probnom računu

Završna provjera je mala matrica, a ne sretna staza. Provedite jedan testni račun kroz četiri stanja: aktuelno, istekao potpis, zaštita onemogućena, agent nije instaliran. Za svako zapišite presudu u dnevnik procjene, HTTP status koji aplikacija vraća i da li se stranica za ispravku učitala.

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
}

Dva detalja se lako propuste. Prvo ponavljanje: izvještaj zabilježen dok je mašina bila zdrava ne smije se prihvatiti za kasniju sesiju na istom uređaju, pa tražite vremensku oznaku vezanu za trenutnu vezu. Zatim uklanjanje: deinstalacija agenta treba proizvesti isto odbijanje kao zastario izvještaj, a ne čist prolaz, i to je slučaj koji se najčešće nikada ne testira.

Kada se matrica poklopi s tabelom, predajte tri stavke onome ko sljedeći vodi prolaz: komande, prag i četiri očekivana ishoda. Upravo je to predavanje pravi rezultat, jer dizajn stanja koji živi samo u političkom dokumentu sklizne prvi put kada alat krajnje tačke promijeni svoje polje izvještavanja.

Povezani članci