Ga naar inhoud

Haal de geheimen uit logbestanden en HAR-bestanden voordat u ze deelt

Blog / Gepubliceerd 

"Kun je mij een HAR-bestand sturen?" is een redelijk verzoek van een ondersteuningsingenieur en gevaarlijk om klakkeloos aan te voldoen. Een HAR-export is een volledige registratie van een browsersessie: elk verzoek, elke antwoordheader, elk verzonden cookie en vaak ook de antwoordteksten. Als u er een onbewerkt overhandigt, heeft de ontvanger de mogelijkheid om op elke site in die opname als u op te treden, zolang die sessies actief zijn.

Hetzelfde geldt, minder voor de hand liggend, voor de logfragmenten die mensen de hele dag in tickets, Slack-threads en chatvensters plakken. Het is de moeite waard om routine te hebben.

Wat staat er eigenlijk in een HAR-bestand

HAR is JSON en is volledig van opzet. Bij een normale export vindt u:

De HAR-bestandsreiniger neemt de export over en verwijdert de onderdelen die de inloggegevens dragen (cookies, auth headers, tokens) terwijl de verzoek- en antwoordstructuur intact blijft, wat de persoon die uw probleem debugt feitelijk nodig heeft. Plak het, haal een opgeschoond bestand op en voeg dat toe.

Kijk naar wat je verzendt

Blind ontsmetten is beter dan niet ontsmetten, maar de nuttige gewoonte is eerst kijken. Kopieer de headers van het verdachte verzoek uit uw dev-tools en voer ze door de HTTP-header-parser: het verdeelt een onbewerkt blok in naam/waarde-paren die u kunt lezen, waardoor het duidelijk wordt wanneer er een is X-Internal-Auth of een leverancierspecifieke tokenheader die een algemeen redactiepatroon niet als geheim zou hebben herkend.

Koekjes verdienen hun eigen look. Plak een Cookie of Set-Cookie lijn in de cookie-parser en je krijgt elke cookie uitgebroken met zijn attributen - HttpOnly, Secure, SameSite, vervaldatum. Dat is een redactiecontrole (“welke zijn sessietokens?”) en een veiligheidsbeoordeling tegelijk: een sessiecookie zonder HttpOnly of met een looptijd van een jaar is een bevinding op zich, en je kijkt er al naar.

Terminaluitvoer heeft twee problemen

Geplakte terminallogboeken bevatten geheimen (verbindingsreeksen, tokens in curl-opdrachten, omgevingsdumps) en ze bevatten ook ANSI-escape-reeksen. Dat zijn de redenen waarom een kleurrijke boomstam verandert ESC[0;32m ruis wanneer het in een ticket belandt, en ze maken de tekst voor iedereen moeilijk te lezen en moeilijk voor u om te doorzoeken. De ANSI-stripper verwijdert de kleur- en cursorbesturingscodes en verlaat de tekst.

Vervolgens redigeren. De gegevensredacteur vindt de terugkerende categorieën – e-mailadressen, IP-adressen, telefoonnummers, kaartnummers, sleutelvormige reeksen – en vervangt deze consistent, zodat het logboek nog steeds als een samenhangend spoor leest in plaats van een muur van te worden [REDACTED]. Consistentie is van belang bij het debuggen: als dezelfde gebruikers-ID overal wordt vervangen door dezelfde tijdelijke aanduiding, kan de lezer nog steeds één verzoek over vijftig regels volgen.

Patroonmatching zal geen geheim onthullen dat op gewone tekst lijkt, dus lees het resultaat voordat u het verzendt. Interne hostnamen, klantnamen in vrije tekstvelden en bestandspaden met gebruikersnamen zijn de drie dingen die elke geautomatiseerde passage overleven.

Redactie is geen rotatie

Het belangrijkste punt, en datgene wat mensen overslaan: als een referentie al ergens naartoe is gestuurd, had deze niet mogen verdwijnen, en het verwijderen ervan uit een document heeft geen zin. De ontvanger mag het hebben. Het kan zich in een e-mailarchief, een ticketsysteem, een chat-backend, iemands lokale downloadmap of de logbestanden van een modelaanbieder bevinden.

Draaien. Maak de sessie ongeldig, trek het token in, rol de API-sleutel. Maak vervolgens het bestand schoon. In die volgorde, want het schoonmaken duurt een minuut en de rotatie is het onderdeel dat de opname daadwerkelijk afsluit.

Plakken in een chatvenster is publiceren

Debuggen met een assistent is nu normaal, en een stacktrace met een verbindingsreeks erin gaat naar een derde partij zodra je op enter drukt. Afhankelijk van het product en het plan kan die tekst worden bewaard, door een mens worden beoordeeld of voor training worden gebruikt. Beschouw elke plak in een gehost model als een overdracht naar een externe partij (want dat is het) en zuiver het precies zoals u een bijlage bij een externe e-mail zou opschonen.

Dit is het geval wanneer lokale tooling geen voorkeur heeft, maar het hele punt: elke hier genoemde tool draait in je browser, dus de niet-geredigeerde versie van het bestand wordt nooit ergens naartoe geüpload terwijl het op weg is om te worden opgeschoond. Het opschonen van een logboek dat geheimen bevat door het in een website te plakken die het op een server verwerkt, betekent dat het geheim al is verdwenen, hoe de opgeschoonde uitvoer er ook uitziet.

Een checklist die de moeite waard is om vast te pinnen

  1. Neem de HAR op in een privévenster met alleen het relevante tabblad open en begin met opnemen na je bent ingelogd.
  2. Voer de export door het ontsmettingsmiddel.
  3. Open het opgeschoonde bestand en zoek ernaar token, secret, key, auth, password en uw eigen domeinnamen.
  4. Strip ANSI-codes van elke terminaluitvoer en redigeer vervolgens de identificatiegegevens.
  5. Lees het resultaat van begin tot eind. Het is korter dan je denkt.
  6. Roteer alles dat live was in het origineel.
  7. Stuur het via een kanaal dat vervalt, niet een kanaal dat voor altijd wordt gearchiveerd.

Zes minuten werk tegen een lek van inloggegevens dat anders voor onbepaalde tijd in de rij voor tickets zou blijven staan.

Geschreven door Ján Turský

Maker van TextArray — bouwt gratis tools waarbij de privacy centraal staat en die volledig in uw browser worden uitgevoerd.