Twee auditvrae klink dieselfde en vereis verskillende soorte bewyse. Watter sessie hierdie adres gekontak het, is beantwoordbaar uit verbinding- en vloeirekords. Watter persoon hierdie bladsy oopgemaak het, is gewoonlik nie, ten minste nie uit daardie rekords nie. Om ’n versamelaar te kies voordat die vraag gekies is, is hoe ’n netwerkspan ’n hostnaam as ’n blaaisgeskiedenis aanbied.

Begin met die gebeurtenis wat die oudit moet bewys

Skryf die vraag as ’n sin met ’n onderwerp, ’n werkwoord en ’n tyd. Daardie dissipline alleen ontbloot die gaping tussen ’n sessierekord en ’n bladsybesoek. ’n Sessielogboek stel vas dat ’n identiteit vir ’n tydperk aanvaar is met ’n toegewysde adres onder ’n aangetekende beleid, en dit kan nie vasstel watter bladsy enigiemand gelees het nie omdat dit nooit die versoek gesien het nie.

Benoem die waarneming voordat die versameling ontwerp word. ’n Veld wat na ’n besoekte werf vernoem is maar eintlik ’n opgeloste naam stoor, is ’n toekomstige fout eerder as ’n gerief. Veldname leef langer as die mense wat hulle gekies het, so kies name wat die bewys beskryf eerder as die gevolgtrekking.

Wat elke rekord kan en nie kan ondersteun nie

Vier rekordtipes verskyn in byna elke ouditontwerp, en elkeen beantwoord ’n ander vraag. Hou hulle apart in die verslag sowel as in die pyplyn, want om hulle te meng is hoe ’n verdedigbare bevinding ’n verleentheid word.

The question being askedRecord that can answer itWhat that record provesWhat still needs a join
Was this address contacted?Flow recordThe connection five-tuple and when it was seenWhich session held the address at that moment
Which account held that address?Session logWhich identity authenticated and the tunnel address it receivedWhich device or person used that account
Was this name looked up?Resolver queryThat this resolver was asked for this nameWhether a page was fetched, and by whom
Was this page viewed?Proxy or application transactionThe request and identity recorded inside that application's scopeTraffic outside that application's visibility
Who was the person?None of the four on its ownAn account in use, at bestA named human, whenever accounts are shared

Lees die laaste kolom net so aandagtig soos die middelste. ’n Vloeirekord beskryf adresse en poorte, en ’n omgekeerde opsoek van ’n adres rekonstrueer nie die naam wat ’n blaaier gebruik het nie, want een adres kan baie onverwante werwe huisves. ’n Resolver-navraag bewys dat ’n vraag gevra is, nie dat ’n bladsy vertoon is nie. ’n Hostnaam wat tydens ’n TLS-onderhandeling sigbaar is, is ook nie die geënkripteerde versoekpad nie.

Elkeen daarvan is ’n werklike waarneming, en nie een van hulle is die waarneming wat mense aanneem nie. ’n Blaaier wat op sy eie geënkripteerde resolver aandring, sit buite die gemoniteerde bestek, en ontleding kan nie herwin wat die logboek nooit gesien het nie. Daardie gaping hoort in die verslag as ’n verklaarde beperking eerder as ’n voetnoot.

Spelende opsoeke en gekaste antwoorde

Blaaiers los name vooraf op, soms sonder om enigiets te laai. Hulle antwoord ook uit die kas sonder om ’n nuwe navraag na die resolver wat jy dophou te stuur, wat beteken die afwesigheid van ’n navraag is nie die afwesigheid van ’n besoek nie. Albei gedragspatrone breek die naïewe vergelyking tussen ’n DNS-logboek en ’n blaaisgeskiedenis.

DNS oor HTTPS voeg ’n tweede grens by: ’n blaaier of ’n gasprogram met sy eie resolver vra nooit die organisasie se logboek iets nie. Presiese transaksies kom net uit die program se eie gebeure of uit ’n instaanbediener wie se logboek jy uitdruklik ondersteun. ’n Gewone HTTPS CONNECT-tonnel laat die instaanbediener sonder enige sig op die bladsypaaie binne-in dit. Om die netwerk te besit is nie toestemming om die program se vertrouensmodel stilweg te vervang nie.

Die adres hoort by ’n sessie, nie by ’n persoon nie

’n Vloeirekord met ’n adres uit die tonnelreeks is ’n beginpunt eerder as ’n antwoord. Koppel daardie adres en tydstempel aan die sessietoewysing wat op daardie oomblik aktief was, want daardie adres kan ’n uur later aan ’n ander sessie toegewys word. Statiese adressering is een manier om daardie assosiasie te behou, en nie die enigste nie.

Waar ’n vertalingsstap verskeie toestelle in een bronadres stroomop van die sensor saamvat, kan die koppeling net die gedeelde poortsessie noem. ’n Gedeelde rekening of ’n sertifikaat wat deur verskeie mense gebruik word, beperk toeskrywing hoe volledig die netwerkdata ook al lyk. Albei hoort in die verslag as beperkings eerder as as voorbehoude vir later.

Teken die tydsone, die klokbron, die waarnemingspunt en elke vertalingsgrens daartussen aan. Afwesigheid verdien dieselfde sorg as teenwoordigheid, want ’n ontbrekende rekord kan beteken dat ’n vloei-inskrywing uitgefaseer het, dat ’n sensor die pakkie nooit gesien het nie of dat ’n programlogboek afgeskakel was.

Ontwerp vir die verklaarde doel, bewys dan die pyplyn

Sodra die vraag vasgestel is, definieer watter velde nodig is, wie dit mag lees en hoe lank dit gehou word. Om meer in te samel omdat berging goedkoop is, skep ’n aanspreeklikheid wat die ondersoek oorleef. Die privaatheidmodel in RFC 6973 raam korrelasie, verkeerde toeskrywing en onnodige versameling as ontwerpkwessies eerder as nagedagtes.

Bewaak die koppeling en die rekords as een voorwerp, want elk alleen is baie minder sensitief as die paar. Valideer dan die ontwerp teen aktiwiteit wat jy toegelaat word om te genereer en reeds verstaan, met die kleinste navraag waarop die verslag sal staatmaak. ’n Pyplyn wat nie ’n bekende gebeurtenis kan herproduseer nie, sal ook nie ’n onbekende een herproduseer nie. Rapporteer die gebeurtenis wat die bewyse ondersteun, in die woorde wat die bewyse toelaat, en laat die leser self die groter gevolgtrekking bereik.

Skryf die beperkings langs die bevinding: wat gekoppel is, wat vertaal is en watter logboek stil gebly het. ’n Bevinding wat sy eie grense noem, oorleef ’n hersiening wat ’n selfversekerde opsomming nie doen nie. Dit is die verskil tussen bewyse en ’n verhaal oor bewyse.

Verwante artikels