Usuń sekrety z dzienników i plików HAR przed ich udostępnieniem
„Czy możesz przesłać mi plik HAR?” to rozsądna prośba ze strony inżyniera wsparcia, której bezmyślne spełnienie jest niebezpieczne. Eksport HAR to pełny zapis sesji przeglądarki: każde żądanie, każdy nagłówek odpowiedzi, każdy wysłany plik cookie, a często także treść odpowiedzi. Przekazanie nagrania w stanie nieedytowanym daje odbiorcy możliwość działania w dowolnej witrynie zawartej w tym nagraniu tak długo, jak długo trwają te sesje.
To samo, w mniej oczywisty sposób, dotyczy fragmentów logów, które ludzie wklejają do zgłoszeń, wątków na Slacku i okien czatów przez cały dzień. Warto mieć rutynę.
Co właściwie znajduje się w pliku HAR
HAR to JSON i jest z założenia wyczerpujący. W normalnym eksporcie znajdziesz:
- Sesyjne pliki cookie za każdą dotkniętą domenę, w całości, zgodnie z wysłaną. To jest najważniejsze — sesyjny plik cookie jest danymi uwierzytelniającymi na okaziciela i odbiorca nie potrzebuje Twojego hasła, aby z niego skorzystać.
Authorizationnagłówki, w tym tokeny okaziciela i poświadczenia uwierzytelniania podstawowego, które można w prosty sposób rozszyfrować.- Tokeny w ciągach zapytań. Linki do resetowania hasła, podpisane adresy URL, klucze API przekazywane jako parametry, kody OAuth w trakcie procesu.
- Poproś o ciała. Wszystko, co wpisałeś w formularzu podczas nagrywania, łącznie z formularzem logowania, jeśli nagrywanie rozpoczęło się przed zalogowaniem.
- Organy odpowiedzi. W zależności od opcji eksportu rzeczywiste dane — rekordy klientów, dane konta, wewnętrzne ładunki API.
- Wszystko inne, co miałeś otwarte. Plik HAR znajduje się na karcie przeglądarki, ale trafiają do niego również sygnały analityczne, ruch z rozszerzeń i odświeżenia w tle z innych usług.
The Narzędzie do czyszczenia plików HAR pobiera eksport i usuwa części zawierające dane uwierzytelniające — pliki cookie, nagłówki uwierzytelniania, tokeny — pozostawiając nienaruszoną strukturę żądań i odpowiedzi, a tego właśnie potrzebuje osoba debugująca Twój problem. Wklej, pobierz oczyszczony plik i załącz go.
Spójrz na to, co wysyłasz
Lepsze jest odkażanie w ciemno niż brak odkażania, ale najpierw warto przyjrzeć się pożytecznemu nawykowi. Skopiuj nagłówki podejrzanego żądania z narzędzi programistycznych i uruchom je za pomocą pliku Analizator nagłówka HTTP: dzieli surowy blok na pary nazwa/wartość, które można odczytać, co czyni oczywistym, gdy istnieje X-Internal-Auth lub nagłówek tokena specyficznego dla dostawcy, którego ogólny wzorzec redakcyjny nie rozpoznałby jako sekret.
Ciasteczka zasługują na swój własny wygląd. Wklej Cookie Lub Set-Cookie linia do analizator plików cookie i otrzymasz każdy plik cookie podzielony na jego atrybuty — HttpOnly, Secure, SameSite, wygaśnięcie. Jest to kontrola redakcyjna („które z nich są tokenami sesji?”) i jednocześnie kontrola bezpieczeństwa: plik cookie sesji bez HttpOnly lub z rocznym terminem ważności jest odkryciem samym w sobie i już się temu przyglądasz.
Wyjście terminala ma dwa problemy
Wklejone dzienniki terminali zawierają sekrety — parametry połączeń, tokeny w poleceniach curl, zrzuty środowiska — a także zawierają sekwencje specjalne ANSI. Z tego powodu zmienia się kolorowa kłoda ESC[0;32m hałas, gdy wyląduje w zgłoszeniu, i utrudniają każdemu przeczytanie tekstu, a tobie przeszukiwanie. The Striptizerka ANSI usuwa kod koloru i kursora oraz pozostawia tekst.
Następnie zredaguj. The redaktor danych wyszukuje powtarzające się kategorie — adresy e-mail, adresy IP, numery telefonów, numery kart, ciągi znaków w kształcie kluczy — i konsekwentnie je zastępuje, dzięki czemu dziennik nadal jest odczytywany jako spójny ślad, a nie staje się ścianą [REDACTED]. Spójność ma znaczenie podczas debugowania: jeśli ten sam identyfikator użytkownika zostanie zastąpiony wszędzie tym samym symbolem zastępczym, czytelnik nadal będzie mógł wykonać jedno żądanie w pięćdziesięciu wierszach.
Dopasowywanie wzorców nie wyłapie sekretu wyglądającego jak zwykły tekst, więc przeczytaj wynik przed jego wysłaniem. Wewnętrzne nazwy hostów, nazwy klientów w polach tekstowych i ścieżki plików zawierające nazwy użytkowników to trzy rzeczy, które przetrwają każdy automatyczny przebieg.
Redakcja nie jest rotacją
Najważniejszy punkt, a zarazem ten, który ludzie pomijają: jeśli referencje zostały już gdzieś wysłane, to nie powinny były się tam znaleźć, usunięcie ich z dokumentu nic nie daje. Odbiorca może je mieć. Może znajdować się w archiwum poczty e-mail, systemie zgłoszeń, zapleczu czatu, czyimś lokalnym folderze pobierania lub dziennikach dostawcy modelu.
Obracać. Unieważnij sesję, unieważnij token, rzuć klucz API. Następnie wyczyść plik. W tej kolejności, bo czyszczenie zajmuje minutę, a obrót to ta część, która faktycznie zamyka naświetlenie.
Wklejenie do okna czatu oznacza publikację
Debugowanie za pomocą asystenta jest teraz normalne, a ślad stosu zawierający parametry połączenia jest przesyłany do strony trzeciej w momencie naciśnięcia klawisza Enter. W zależności od produktu i planu tekst ten może zostać zachowany, przejrzany przez człowieka lub wykorzystany do celów szkoleniowych. Traktuj dowolne wklejanie do hostowanego modelu jako transfer do strony zewnętrznej — bo o to właśnie chodzi — i oczyszczaj je dokładnie tak, jak oczyszczasz załącznik do zewnętrznej wiadomości e-mail.
Dzieje się tak w przypadku, gdy lokalne narzędzia nie są preferencją, ale całym założeniem: każde wymienione tutaj narzędzie działa w przeglądarce, więc niezredagowana wersja pliku nigdy nie jest przesyłana do niczego w drodze do czyszczenia. Oczyszczenie dziennika zawierającego sekrety poprzez wklejenie go do witryny internetowej, która przetwarza go na serwerze, oznacza, że sekret już zniknął, niezależnie od tego, jak wygląda wyczyszczony wynik.
Lista kontrolna warta przypięcia
- Nagraj plik HAR w prywatnym oknie, mając otwartą tylko odpowiednią kartę, i rozpocznij nagrywanie Po zalogowałeś się.
- Przeprowadź eksport przez środek dezynfekujący.
- Otwórz oczyszczony plik i wyszukaj go
token,secret,key,auth,passwordi własne nazwy domen. - Usuń kody ANSI z dowolnego wyjścia terminala, a następnie zredaguj identyfikatory.
- Przeczytaj wynik od końca do końca. Jest krótszy niż myślisz.
- Obróć wszystko, co było aktywne w oryginale.
- Wyślij go kanałem, który wygasa, a nie takim, który archiwizuje na zawsze.
Sześć minut pracy nad wyciekiem danych uwierzytelniających, który w przeciwnym razie czekałby w kolejce po zgłoszenia w nieskończoność.
Twórca TextArray — tworzenia bezpłatnych narzędzi zapewniających prywatność, które działają całkowicie w przeglądarce.