Reanimacja pamięci ulotnej

2008-02-23 00:00:00 +0000


Powszechnie obowiązujący pogląd na temat pamięci RAM jest taki, że informacja w niej przechowywana jest krótkotrwała - dla jej utrzymania w niezmienionej postaci konieczne jest cykliczne odświeżanie jej za pomocą impulsów elektrycznych. W działającym komputerze takie sygnały są dostarczane przez cały czas. Po wyłączeniu komputera informacja powinna z pamięci RAM znikać. Ale nie znika - a ściślej znika dopiero po określonym czasie, który dodatkowo można wydłużyć.

Zespół z Princeton pokazał, że w typowych kościach pamięci informacja jest przechowywana od kilkudziesięciu sekund do kilku minut po ich wyłączeniu. Od momentu wyłączenia zasilania następuje stopniowy proces rozkładu (“decay”) informacji w kościach RAM, co oznacza że w normalnych warunkach nawet po kilku minutach można odtworzyć większą lub mniejszą część danych z pamięci ulotnej. Jednak ochłodzenie kości powoduje, że czas rozkładu znacząco się wydłuża - wystarczy spryskać kości w laptopie skroplonym powietrzem, by uzyskać zaledwie jednoprocentową utratę danych po 10 minutach. Zastosowanie ciekłego azotu pozwala na utrzymanie danych w kościach w stanie nienaruszonym przez prawie godzinę. Zawartość kości można później odczytać za pomocą prostej aplikacji zrzucającej całość pamięci uruchomionej z zewnętrznego dysku lub przez PXE.

Jest to technika przydatna przede wszystkim dla wymiaru sprawiedliwości. Podstawowym problemem podczas zabezpieczania sprzętu komputerowego jego właśnie informacja zapisana w pamięci operacyjnej. Z jednej strony jest ona celem bardzo atrakcyjnym, bo może zawierać niedawno używane hasła i inne wartościowe informacje nie zapisane na dysku. Z drugiej strony, jeśli dostęp do konsoli komputera jest zablokowany wygaszaczem to nie da dobrać do danych zawartych na dysku. Jeśli jednak wyłączymy komputer by wyjąć dysk to może okazać się, że w ten sposób równocześnie utraciliśmy klucze deszyfrujące, jeśli dysk był zaszyfrowany.

Jeśli chcemy zabezpieczyć komputer w stanie włączonym to możemy natrafić na jeszcze bardziej prozaiczny problem - jeśli nie jest to laptop ze sprawną baterią, to jak wynieść go z przeszukiwanego lokalu nie wyłączając go z prądu? Z pomocą mogą przyjść sprytne urządzenia produkowane przez firmę WiebeTech, które po podłączeniu do listwy wykryją moment odłączenia wtyczki ze ściany i wpuszczą zasilanie “od drugiej strony”, przez swój kabel.

Kolejnym rozwiązaniem do zabezpieczania pamięci operacyjnej jest interfejs Firewire, którego protokół pozwala na zdalne odczytywanie pamięci działającego komputera. Z tej techniki korzystają stosowane przez policję urządzenia tzw. blockery. Jednak nie w każdym przypadku muszą być one skuteczne. Technika zamrażania pamięci z pewnością rozszerzy katalog technik dostępnych wymiarowi sprawiedliwości przy zabezpieczaniu sprzętu.

Jak można się przed tym zabezpieczyć? W skrócie - za pomocą technik programistycznych nie można. Żadne zerowanie pamięci z poziomu aplikacji nie będzie skuteczne, bo dopóki szyfrowanie działa tak długo klucze muszą być w pamięci. Najlepiej jest więc nie zostawiać systemu z podmontowaną zaszyfrowaną partycją, ale nie zawsze jest to możliwe - np. jeśli cały system jest zaszyfrowany, lub zaszyfrowana partycja jest podłączona do serwera. Niewątpliwie do łask muszą powrócić znowu zabezpieczenia obudowy - fizyczny dostęp do kości pamięci w komputerze należy traktować jako element bezpieczeństwa.