Eliminați secretele din jurnalele și fișierele HAR înainte de a le partaja
„Îmi poți trimite un fișier HAR?” este o solicitare rezonabilă din partea unui inginer de asistență și un lucru periculos de respectat fără să se gândească. Un export HAR este o înregistrare completă a unei sesiuni de browser: fiecare cerere, fiecare antet de răspuns, fiecare cookie trimis și, adesea, corpurile de răspuns. Predarea unuia needitat îi oferă destinatarului posibilitatea de a acționa ca dvs. pe orice site din înregistrarea respectivă, atâta timp cât acele sesiuni sunt active.
Același lucru este valabil, mai puțin evident, pentru fragmentele de jurnal pe care oamenii le lipesc în bilete, firele Slack și ferestrele de chat toată ziua. Merită să ai o rutină.
Ce se află de fapt într-un fișier HAR
HAR este JSON și este complet prin proiectare. Într-un export normal veți găsi:
- Cookie-uri de sesiune pentru fiecare domeniu atins, în întregime, așa cum a fost trimis. Acesta este cel mai mare - un cookie de sesiune este o acreditare purtător, iar destinatarul nu are nevoie de parola dvs. pentru a-l utiliza.
Authorizationantete, inclusiv jetoane purtător și acreditări de bază de autentificare, care sunt trivial decodabile.- Jetoane în șiruri de interogare. Linkuri de resetare a parolei, adrese URL semnate, chei API transmise ca parametri, coduri OAuth la mijlocul fluxului.
- Organismele de solicitare. Tot ceea ce ați introdus într-un formular în timpul înregistrării, inclusiv formularul de conectare dacă înregistrarea a început înainte de a vă conecta.
- Organismele de răspuns. În funcție de opțiunile de export, datele reale - înregistrările clienților, detaliile contului, încărcăturile utile API interne.
- Tot ce ai avut deschis. Un HAR este pentru fiecare filă de browser, dar balizele de analiză, traficul de extensii și reîmprospătările de fundal de la alte servicii ajung și ele.
The Dezinfectant pentru fișiere HAR preia exportul și elimină părțile care poartă acreditările - cookie-uri, antete de autentificare, jetoane - lăsând intactă structura cererii și a răspunsului, de care are nevoie de fapt persoana care depanează problema dvs. Lipiți-l, obțineți un fișier curățat, atașați-l.
Uită-te la ce trimiți
Dezinfectarea orbilor este mai bine decât igienizarea, dar obiceiul util este să caute primul. Copiați anteturile solicitării suspecte din instrumentele dvs. de dezvoltare și rulați-le prin Analizator antet HTTP: împarte un bloc brut în perechi nume/valoare pe care le puteți citi, ceea ce face evident atunci când există un X-Internal-Auth sau un antet de simbol specific furnizorului pe care un model de redactare generic nu l-ar fi recunoscut ca secret.
Biscuiții merită propriul lor aspect. Lipiți a Cookie sau Set-Cookie linie în analizator de cookie-uri și obțineți fiecare cookie rupt cu atributele sale - HttpOnly, Secure, SameSite, expirare. Aceasta este o verificare a redactării („care dintre acestea sunt token-uri de sesiune?”) și o revizuire de securitate în același timp: un cookie de sesiune fără HttpOnly sau cu o expirare de un an este o constatare în sine și deja o privești.
Ieșirea terminalului are două probleme
Jurnalele de terminale lipite poartă secrete - șiruri de conexiune, jetoane în comenzi curl, depozite de mediu - și, de asemenea, poartă secvențe de evadare ANSI. Acesta este motivul pentru care se transformă un buștean colorat ESC[0;32m zgomot când ajunge într-un bilet și fac textul greu de citit de oricine și greu de căutat pentru tine. The Decapant ANSI elimină codurile de culoare și de control al cursorului și părăsește textul.
Apoi redactați. The redactor de date găsește categoriile recurente — adrese de e-mail, adrese IP, numere de telefon, numere de carduri, șiruri în formă de cheie — și le înlocuiește în mod constant, astfel încât jurnalul să citească în continuare ca o urmă coerentă în loc să devină un zid de [REDACTED]. Consecvența contează atunci când depanați: dacă același ID de utilizator este înlocuit cu același substituent peste tot, cititorul poate în continuare să urmeze o solicitare prin cincizeci de rânduri.
Potrivirea modelului nu va prinde un secret care arată ca un text obișnuit, așa că citiți rezultatul înainte de a-l trimite. Numele de gazdă interne, numele clienților în câmpurile de text liber și căile de fișiere care conțin nume de utilizator sunt cele trei lucruri care supraviețuiesc fiecărei treceri automate.
Redactarea nu este rotație
Cel mai important punct, și pe care oamenii îl omite: dacă o acreditare a fost deja trimisă undeva, nu ar fi trebuit să se ducă, eliminarea acesteia dintr-un document nu face nimic. Destinatarul îl poate avea. Poate fi într-o arhivă de e-mail, într-un sistem de bilete, într-un backend de chat, în folderul de descărcare local al cuiva sau în jurnalele unui furnizor de model.
Roti. Invalidați sesiunea, revocați jetonul, rulați cheia API. Apoi curățați fișierul. În această ordine, pentru că curățarea durează un minut, iar rotația este partea care închide efectiv expunerea.
Lipirea într-o fereastră de chat înseamnă publicare
Depanarea cu un asistent este normală acum, iar o urmărire a stivei cu un șir de conexiune merge către o terță parte în momentul în care apăsați enter. În funcție de produs și de plan, acel text poate fi reținut, revizuit de un om sau utilizat pentru instruire. Tratați orice pastă într-un model găzduit ca pe un transfer către o parte din exterior - pentru că asta este - și igienizați-o exact așa cum ați igieniza un atașament la un e-mail extern.
Acesta este cazul în care instrumentele locale nu sunt o preferință, ci esențialul: fiecare instrument numit aici rulează în browserul dvs., astfel încât versiunea neredacată a fișierului nu este încărcată niciodată în nimic în curs de curățare. Dezinfectarea unui jurnal care conține secrete prin lipirea acestuia într-un site web care îl procesează pe un server înseamnă că secretul a părăsit deja, indiferent cum arată rezultatul curățat.
O listă de verificare care merită fixată
- Înregistrați HAR într-o fereastră privată cu numai fila relevantă deschisă și începeți înregistrarea după te-ai autentificat.
- Rulați exportul prin dezinfectant.
- Deschideți fișierul curățat și căutați-l
token,secret,key,auth,passwordși propriile nume de domeniu. - Eliminați codurile ANSI de la orice ieșire a terminalului, apoi eliminați identificatorii.
- Citiți rezultatul de la capăt la capăt. Este mai scurt decât crezi.
- Rotiți orice a fost live în original.
- Trimite-l printr-un canal care expiră, nu unul care arhivează pentru totdeauna.
Șase minute de lucru împotriva unei scurgeri de acreditări care altfel ar sta într-o coadă de bilete pe termen nelimitat.
Creatorul lui TextArray — creează instrumente gratuite, care au prioritate confidențialitatea, care rulează în întregime în browserul tău.