Jakoś tak siedząc i leniwie rozmyślając o wnętrznościach systemu, doszedłem nagle do dość interesującego wniosku. Po kolei, to mniej więcej szło tak:
I tu pojawiła się mi się piłeczka taka, jaka pojawiała się Pomysłowemu Dobromirowi. Przecież to rozwiązanie oznacza, że dane w pagefile.sys zapisywane są z pominięciem całego stosu! A więc i bez pośrednictwa fvevol.sys, który dla każdej innej informacji zapisywanej na dysku zajmuje się jej zaszyfrowaniem. Czy to oznacza, że zawartość RAM zapisywana jest w czasie BSOD bez szyfrowania?
Takie pytania sprawiają, że można zmienić plany na sobotni wieczór. Po szybkich konsultacjach z Paulą Januszkiewicz zadziałaliśmy dwutorowo. Paula doświadczalnie zaczęła badać co z zawartości pamięci RAM fizycznie znajdzie się w dumpie leżącym na dysku chronionym BitLockerem a ja zacząłem zabawę z WinDbg.
Wyniki pozwalają spać spokojnie. Ani bezpośrednie doświadczenia ani próby zrozumienia co w systemie się dzieje nie dają powodów do niepokoju. Jednym z elementów BitLockera jest sterownik dumpfve.sys wczytywany również drugi raz jako dump_dumpfve.sys Sterownik ten nawet w chwili totalnej katastrofy, jaką zwykle jest BSOD zadba, aby wszystko zostało zaszyfrowane. Korzyści są oczywiste: dane są skutecznie chronione. A konsekwencje mniej pozytywne? Zwiększa się ilość elementów, od których zależy poprawne zapisanie zrzutu pamięci, co może oznaczać, że zwiększy się również ilość przypadków, gdy system nie podejmie się jego wykonania aby nie uszkodzić danych na dysku.
Prawdę mówiąc, takie podejście mnie uspokaja. W zrzucanej na dysk pamięci są przecież klucze szyfrujące i dostanie się do nich mocno naraziłoby bezpieczeństwo całego rozwiązania. W każdym razie BitLocker po raz kolejny się obronił i po raz kolejny jasno pokazał, że ludzie, którzy go zaprojektowali, przemyśleli sobie naprawdę wiele scenariuszy.
Na koniec będzie zagadka i zadanie domowe:
Autor: Grzegorz Tworek [MVP]
W pierwszej chwili pomyślałem, że własnie do zabezpieczenia przed np BSOD, bo w końcu jego nazwa to: Full Volume Encryption Crashdump Hibernate Filter Driver. Skoro jednak do tego celu głównie używa dump_dumpfve.sys to stawiałbym na pomost do współpracy między innymi dostawcami systemów szyfrowania (firmy trzecie), co mogłoby mieć związek z zadaniem domowym :)
Jest wykorzystywany podczas hibernacji?
Odpowiedź Komodo jest trafna. Gratujuję i Tobie (nie byłeś pierwszy, na facebooku Marcin Jurko też dobrze odpowiedział).
A co do odpowiedzi Tobiasza... hmm... choć to teoretycznie możliwe, to nie kojarzę takiego zastosowania. Ale się przyjrzę :)
@Komodo - gratki i ode mnie :)
@Grzegorz - spróbuje odkopać, miałem gdzieś przed oczami kilkanaście miesięcy temu artykuł o tym... (choć tam chyba były tylko rozważania teoretyczne, a nie przykład praktycznego zastosowania...)
To musial byc mily wieczor :) Ciekaw jestem, gdzie organizujecie te 'undergroundowe' spotkania, chetnie bym kiedys wpadl na 'jointa' z windbg ;)
A bo to w obecnych czasach potrzebne jest jakieś konkretne miejsce...? ;)