OpenVPN GUI zapisał moje hasło Windows: gdzie ono jest
Zaznacz „zapamiętaj mnie”, a logowanie trafi do rejestru użytkownika, pliku profilu lub skryptu, i każde z nich wymaga własnego czyszczenia, gdy laptop zaginie.
Okno połączenia oferuje pole wyboru zapamiętania logowania, a jego zaznaczenie przenosi dane konta z głowy użytkownika do maszyny. Interfejs nigdy nie mówi gdzie. W Windows kandydatami są obszar rejestru bieżącego użytkownika, plik profilu, który już zawiera logowanie, oraz to, co robi skrypt automatyzacji. Każde miejsce ma innego czytelnika, inny tryb awarii i inne czyszczenie, więc użytecznym pytaniem jest, który proces może odzyskać sekret i na jak długo. Prześledź pole wyboru od okna na zewnątrz, a potem zdecyduj, co naprawdę ujawnia zgubiony laptop.
Zacznij od pola wyboru w oknie połączenia
Zapamiętane wartości są przechowywane dla każdego profilu i każdego konta Windows w ulu użytkownika, a nie we wspólnym magazynie maszyny. Dlatego drugi użytkownik na tym samym komputerze nie widzi zapisanego logowania i dlatego ponowna instalacja klienta nie musi usuwać zapisanego wpisu.
Sam plik profilu przechowuje serwer, port i ustawienia, ale nie sekret, dlatego ludzie najpierw sprawdzają niewłaściwy artefakt. Usunięcie profilu usuwa więc połączenie i zostawia poświadczenia. To najczęstsza niespodzianka podczas czyszczenia. Usuń oba artefakty, nie jeden.
Co ujawnia wartość rejestru
Nazwa konta jest w czytelnym tekście, więc wszystko, co działa jako ten użytkownik, może ją zdekodować bez specjalnego wywołania. Hasło jest inne: jest zapieczętowane przez Windows DPAPI, powiązane z kontem i, zależnie od flag, z konkretną maszyną. Przeniesienie zapieczętowanego bloku na inny komputer i odtworzenie go nie daje więc użytecznego sekretu.
Wylistowanie wartości odpowiada na pytanie operacyjne bez dotykania samego sekretu. Aby potwierdzić istnienie wpisu, nie trzeba niczego odszyfrowywać. Lista służy też jako zapis przed i po na potrzeby czyszczenia.
reg query "HKCU\Software\OpenVPN-GUI\configs" /s
cmdkey /list | findstr /i vpn
reg query "HKCU\Software\OpenVPN-GUI" /s | findstr /i "username password"
Dwie granice warto powiedzieć wprost. Proces w tej samej zalogowanej sesji może wywołać tę samą procedurę zdejmowania ochrony, której używa klient, więc pieczętowanie jest ochroną w spoczynku, a nie przed przejętym pulpitem. A bez pełnego szyfrowania dysku zapieczętowana wartość jest prywatna na tyle, na ile dysk.
Gdy plik profilu już zawiera logowanie
Niektóre portale wydają konfigurację z wpisaną nazwą konta i hasłem, więc klient łączy się po cichu. Wtedy plik jest działającym poświadczeniem, a każda jego kopia to kolejny klucz do tych samych drzwi.
Takie pliki trafiają do kopii zapasowych, wątków czatu i folderów synchronizowanych, i żadna z tych kopii nie przestaje działać po usunięciu oryginału. Edycja pliku lokalnego niczego nie zmienia w pozostałych. Odebranie dostępu oznacza zmianę hasła na serwerze, i to szybko. Czyszczenie na jednym laptopie to osobne, mniejsze zadanie.
Gdzie monit jest dopuszczalny, preferuj go i używaj ustawień pamięci podręcznej klienta. Jeśli wstępnie wypełniony profil jest naprawdę konieczny, trzymaj go poza folderami synchronizowanymi i usuń, gdy praca się skończy.
Automatyzacja przenosi sekret gdzie indziej
Skrypty wprowadzają dwa kolejne kanały: argumenty procesu i syntetyczne naciśnięcia klawiszy. Plik nazwany w wierszu poleceń jest widoczny dla wszystkiego, co potrafi czytać argumenty procesu lub uprawnienia pliku, a hasło wpisane przez narzędzie trafia do okna, które ma akurat fokus. Jeden opublikowany przykład wpisuje w ten sposób hasło pulpitu przed uruchomieniem klienta. Zapisane ziarno hasła jednorazowego zasługuje na taką samą troskę, bo może wygenerować każdy przyszły kod i przeżywa jedno logowanie.
Lepszy wzorzec przechowuje sekret tam, gdzie tylko konto usługi może go odczytać, opiera się na udokumentowanych opcjach ponowienia i źródła poświadczeń klienta i unika wstrzykiwanego pisania przy monitach uprawnień. Jeśli skrypt potrzebuje hasła pulpitu do podniesienia uprawnień, to pytanie o projekt uprawnień, a nie o VPN.
Czyszczenie po utracie urządzenia
Najpierw unieważnij lub wyłącz konto na serwerze, bo lokalne usunięcie nie unieważni kopii, którą ktoś już ma. Potem wyczyść zapamiętane wartości rejestru, usuń profil i wszelkie pliki poświadczeń oraz przeszukaj historię powłoki i katalogi skryptów pod kątem wklejonych haseł.
Zapisz, co usunięto i kiedy dostęp się skończył. Ta para odpowiada na jedyne pytanie, jakie zadaje przegląd incydentu: czy jakakolwiek kopia poświadczeń nadal działała po odejściu urządzenia.