VPN-innloggingsvarsel er ikkje inntrengingsvarsel: følg økta
Ei uvanleg innlogging er eit grunnlag for gjennomgang, ikkje ein dom. Knyt autentiseringsposten til ei økt og deretter til det økta rørte ved, før du kallar det inntrenging.
Eit VPN-varsel som blir utløyst på eit nytt land verkar avgjerande, og det er det sjeldan. Autentisering seier at eit forsøk vart godteke; økta seier kva tilkopling som bar det; ressurspostar seier kva som skjedde inne i den tilkoplinga. Kvar svarar på eit ulikt spørsmål. Ein regel som slår alle tre saman, gir tretti saker på måndag og overser den verkelege saka på fredag.
Ei utanlandsk adresse er eit spørsmål, ikkje eit svar
Reiser, mobiloperatørar som går ut i eit anna land, ein bedriftswebproxy og ein omfordelt carrier-grade NAT-pool flyttar alle den tilsynelatande kjelda utan å flytte åtakkaren. Innloggingsposten speglar kvar tilkoplinga kom inn i nettet, ikkje kven som heldt eininga.
Den motsette feilen er verre fordi han er stille. Eit stole passord brukt frå byen til brukaren sjølv gir ei innlogging som svarar til kvar tidlegare innlogging i geografikontrollen.
Å handsame geografi som dommen har ein målbar kostnad. Reisande berbare maskiner skaper ein jamn straum av gjennomgangar, gjennomgåarane lærer å lukke dei utan å lese, og vanen held til ei verkeleg sak landar i same kø.
Tre posttypar svarar på tre ulike spørsmål
Start med det dei utrulla produkta faktisk sender ut, ikkje med det ein produktbrosjyre antyder at dei kan sende ut. Autentiseringsavgjerda nemner den påståtte identiteten, metoden og resultatet. Livssyklusen til økta nemner tilkoplinga, gatewayen og den tildelte adressa, frå start til stopp.
| Record | Question it answers | What it cannot prove |
|---|---|---|
| Authentication decision | Which identity was accepted or rejected, by which method, at what time | That the person operating the device was the account owner |
| Session lifecycle | Which connection, gateway and assigned address were active, and for how long | What the session did with that access |
| Resource event | Which read, write or denied operation a service observed | Which human behind the session triggered it |
| Policy change | Whether an administrator altered the rule that governs the access | Whether the change was reviewed or intended |
Ei tom celle er eit hol i innsamlinga, ikkje ei frifinning. Viss ressursshendingar aldri kjem, betyr fråværet av ei mistenkeleg lesing at pipelinen ikkje har noko å rapportere, og eit stille dashbord skildrar pipelinen snarare enn nettet. Skriv ned kva postar utrullinga faktisk produserer før du lovar ein regel som er avhengig av dei, og nemn eigaren av kvar manglande feed.
Rekneskapsdetaljane er der økter blir kontrollerbare. RADIUS-rekneskap som skildra i RFC 2866 ber start-, stopp- og mellomliggande oppdateringar knytte til ein øktidentifikator, så ei økt med ein start og ingen stopp er eit hol du kan nemne i staden for eit mysterium.
Kopla saman på økta, ikkje på brukarnamnet
Éin konto har legitimt fleire økter samstundes: ein berbar, ein telefon, ei laboratoriemaskin som er late tilkopla over natta. Å knyte kvar hending for det brukarnamnet smeltar tre einingar til éi historie og les deretter kombinasjonen som kompromittering. Tildelte adresser blir også resirkulerte, så ein samankopling som framleis svarar til ei adresse etter at økta er over, dreg eininga frå førre månad inn i dagens hending. Hald øktnøkkelen ved sida av adressa, og avgrens samsvaret til tidsvindauget økta faktisk dekte.
Der omsetjing fjernar den opphavlege kjelda før ein teneste ser ho, bruk identiteten som overlever ved den grensa, til dømes eit gjensidig TLS-subjekt eller ein einskil innloggingspåstand. Å finne opp ein ein-til-ein-kopling mellom ei adresse og ein person er den same feilen med ekstra steg.
Eit varsel utan eigar er eit dashbord
Kvar regel treng ein føresetnad, dei godarta forklaringane som skaper han, bevisa som skal hentast, og personen som handlar. Ein gjenteken avvist administrativ operasjon, ei byge av mislukka passord og ein taus innsamlar er tre ulike hendingar med tre ulike klokker.
Varsling er ikkje inndemming, og ei distribusjonsliste avgrensar ingenting. Å endre ei levande økt krev komponenten som kan gjere det, anten det er gatewayen som droppar tilkoplinga, eller identitetsleverandøren som trekkjer tilbake økta. Utdaterte feedar og manglande stopp-postar høyrer også heime i regelteksten, fordi ein innsamlar som ikkje har sendt noko på eit døgn, ser nøyaktig ut som eit stille nett frå dashbordet. Skilnaden er berre synleg i pipelinen sjølv.
Kontroller innsamlingsvegen før du trur på ei stille veke
Bevis pipelinen ende til ende før du justerer ein einaste regel. Kommandoane nedanfor stadfestar at lyttarane for autentisering og rekneskap er oppe, at ein testlegitimasjon blir avvist av rett grunn, og at økthendingar framleis kjem inn:
ss -uanp | grep -E ':(1812|1813)\b' radtest alice 'not-the-password' 127.0.0.1 0 testing123 journalctl -u openvpn-server@server --since '-30 min' | grep -c 'Peer Connection Initiated' timedatectl | grep -E 'System clock|synchronized'
Ein Access-Reject frå testen beviser at førespurnaden nådde tenaren og at den delte løyndomen stemte, og det er den delen folk hoppar over. Ein timeout peikar i staden på løyndomen, lyttaren eller eit filter framfor han, og kvart varsel nedanfor er uverifiserbart til det er retta.
Klokkestoda betyr noko fordi korrelasjonsvindauge føreset semje. Ein gateway som avvik med minutt gjer ei elles rein øktsamankopling umogleg, og gjennomgåarane kompenserer ved å utvide vindauget til samankoplinga sluttar å skilje. Kontroller avviket før du redigerer regelen.
Køyr deretter éin regel gjennom ein ufarleg test: generer ei innlogging frå ei uventa adresse, stadfest at varselet blir utløyst, stadfest at den som svarar kan hente økta og ressursshendingane hennar, og stadfest at saka ber øktidentifikatoren. Ein regel som gir ei samanhengande historie, står. Ein regel som gir ein haug med logglinjer, er framleis eit dashbord. Skriv resultatet ved regelen slik at neste gjennomgang startar med bevis i staden for intuisjon.