VPN-aanmeldingswaarschuwingen zijn geen inbraakwaarschuwingen: kijk naar de sessie
Een ongebruikelijke aanmelding is een aanleiding tot herziening, geen vonnis. Koppel het authenticatierecord aan een sessie en daarna aan wat die heeft aangeraakt, voordat je het een inbraak noemt.
Een VPN-waarschuwing die bij een nieuw land afgaat, voelt beslissend, en dat is hij meestal niet. Authenticatie zegt dat een poging is geaccepteerd; de sessie zegt welke verbinding hem droeg; resourcerecords zeggen wat er binnen die verbinding gebeurde. Elk antwoordt op een andere vraag. Een regel die alle drie samenvoegt, levert dertig tickets op maandag en mist de echte zaak op vrijdag.
Een buitenlands adres is een vraag, geen antwoord
Reizen, mobiele providers die in een ander land uitgaan, een bedrijfswebproxy en een opnieuw toegewezen carrier-grade NAT-pool verplaatsen allemaal de schijnbare bron zonder de aanvaller te verplaatsen. Het aanmeldingsrecord weerspiegelt waar de verbinding het netwerk binnenkwam, niet wie het apparaat vasthield.
De omgekeerde fout is erger omdat hij stil is. Een gestolen wachtwoord dat uit de stad van de gebruiker zelf wordt gebruikt, levert een aanmelding op die bij de geografiecontrole met elke eerdere aanmelding overeenkomt.
Geografie als het vonnis behandelen heeft meetbare kosten. Reizende laptops veroorzaken een gestage stroom herzieningen, beoordelaars leren ze sluiten zonder te lezen, en de gewoonte blijft tot een echte zaak in dezelfde wachtrij belandt.
Drie recordtypen beantwoorden drie verschillende vragen
Begin bij wat de uitgerolde producten werkelijk uitsturen, niet bij wat een productfolder suggereert dat ze zouden kunnen uitsturen. De authenticatiebeslissing noemt de beweerde identiteit, de methode en het resultaat. De levenscyclus van de sessie noemt de verbinding, de gateway en het toegewezen adres, van begin tot stop.
| 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 |
Een lege cel is een gat in de verzameling, geen vrijspraak. Als resourcegebeurtenissen nooit aankomen, betekent het ontbreken van een verdachte leesactie dat de pijplijn niets te melden heeft, en een stil dashboard beschrijft de pijplijn in plaats van het netwerk. Schrijf op welke records de uitrol werkelijk produceert voordat je een regel belooft die ervan afhangt, en noem de eigenaar van elke ontbrekende feed.
De boekhoudkundige details zijn waar sessies controleerbaar worden. RADIUS-boekhouding zoals beschreven in RFC 2866 draagt start-, stop- en tussentijdse updates die aan een sessie-identificatie zijn gekoppeld, dus een sessie met een start en zonder stop is een gat dat je kunt benoemen in plaats van een raadsel.
Koppel op de sessie, niet op de gebruikersnaam
Eén account houdt wettig meerdere sessies tegelijk: een laptop, een telefoon, een laboratoriummachine die de nacht over verbonden bleef. Elke gebeurtenis voor die gebruikersnaam koppelen smelt drie apparaten tot één verhaal en leest de combinatie vervolgens als compromittering. Toegewezen adressen worden ook hergebruikt, dus een join die na het einde van de sessie nog steeds bij een adres past, sleept het apparaat van vorige maand de gebeurtenis van vandaag in. Bewaar de sessiesleutel naast het adres en beperk de overeenkomst tot het tijdvenster dat de sessie werkelijk dekte.
Waar vertaling de oorspronkelijke bron verwijdert voordat een dienst die ziet, gebruik de identiteit die op die grens overleeft, zoals een wederzijds TLS-subject of een single sign-on-bewering. Een een-op-een-koppeling tussen een adres en een persoon verzinnen is dezelfde fout met extra stappen.
Een waarschuwing zonder eigenaar is een dashboard
Elke regel heeft een voorwaarde nodig, de onschuldige verklaringen die hem opleveren, het bewijs dat moet worden opgehaald en de persoon die handelt. Een herhaald geweigerde administratieve handeling, een uitbarsting van mislukte wachtwoorden en een stille verzamelaar zijn drie verschillende incidenten met drie verschillende klokken.
Melding is geen indamming, en een distributielijst beperkt niets. Een live sessie wijzigen vereist het onderdeel dat daartoe in staat is, of dat nu de gateway is die de verbinding laat vallen of de identiteitsprovider die de sessie intrekt. Verouderde feeds en ontbrekende stoprecords horen ook in de regeltekst, want een verzamelaar die een dag niets heeft gestuurd, ziet er vanaf het dashboard precies uit als een stil netwerk. Het verschil is alleen in de pijplijn zelf zichtbaar.
Controleer het verzamelpad voordat je een stille week vertrouwt
Bewijs de pijplijn van begin tot eind voordat je één regel afstelt. De onderstaande opdrachten bevestigen dat de luisteraars voor authenticatie en boekhouding actief zijn, dat een testreferentie om de juiste reden wordt geweigerd en dat sessiegebeurtenissen nog steeds binnenkomen:
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'
Een Access-Reject uit de test bewijst dat het verzoek de server bereikte en dat het gedeelde geheim overeenkwam, en dat is het deel dat mensen overslaan. Een time-out wijst juist op het geheim, de luisteraar of een filter ervoor, en elke waarschuwing stroomafwaarts is onverifieerbaar totdat dat is opgelost.
De klokstand is belangrijk omdat correlatievensters overeenstemming veronderstellen. Een gateway die minuten afwijkt, maakt een verder schone sessiejoin onmogelijk, en beoordelaars compenseren door het venster te verbreden tot de join niet meer onderscheidt. Controleer de afwijking voordat je de regel bewerkt.
Laat daarna één regel door een onschadelijke test lopen: genereer een aanmelding vanaf een onverwacht adres, bevestig dat de waarschuwing afgaat, bevestig dat de responder de sessie en de resourcegebeurtenissen kan ophalen, en bevestig dat het ticket de sessie-identificatie draagt. Een regel die een samenhangend verhaal oplevert, slaagt. Een regel die een berg logregels oplevert, is nog steeds een dashboard. Leg het resultaat naast de regel vast, zodat de volgende herziening met bewijs begint en niet met intuïtie.