Sześć dni awarii non stop wystarczyło, by odczytać tajemnice PlayStation 4
Chwilę po wydaniu publicznegoexploita na konsolę PlayStation 4, działającego z całkiemświeżym firmware 4.05, jeden z polskich blogerów IT dumnieogłosił, że *czas szabrownictwa na stacjonarnych konsolachodszedł bezpowrotnie. *Ciężkobyć jednak prorokiem w tych kwestiach teraz, gdy scena PS4 jestaktywniejsza niż kiedykolwiek. Tak, to prawda, że jailbreak ipiractwo nie są ze sobą tożsame – ale czy nie było dokładnietak samo w czasach PlayStation 3? Jedno jest pewne: przewaga jakąmiało do tej pory Sony nad niezależnymi deweloperami topnieje zdnia na dzień. Zespół fail0verflow pokazał,jak zdołał zdobyć cały kernel konsoli, rekonstruując go w ciągu6 dni z „okruszków” mierzących zaledwie 16 bajtów.
29.12.2017 | aktual.: 29.12.2017 12:21
Sony samo o to się prosiło. Wsystemie FreeBSD, na którym bazuje system operacyjny PlayStation 4,gdy kernel wpadnie w panikę, tworzy zrzut stanu pamięci poprzezspecjalną funkcję doadump, zapisującą niewielką ilośćinformacji o samym obrazie kernela na nośniku pamięci –informacji bezcennych dla deweloperów. Deweloperzy PlayStation 4pozbyli się oryginalnej funkcji, w jej miejsce budując własnąinfrastrukturę obsługi błędów kernela.
Odpowiednikiem doadump jest tufunkcja mdbg_run_dump, która generuje aż 32 MB danych: stan kerneladla wszystkich procesów, wątków i obiektów pamięci, a do tegometadane o załadowanych bibliotekach. Wszystko to zostaje w prostysposób zakodowane, a następnie zaszyfrowane przed zapisem na dysk.Z perspektywy napastnika, pragnącego wejrzeć w wewnętrzne procesykonsoli, to bardzo ładna infrastruktura.
Jak bowiem odkryli hakerzy zfail0verflow, wykorzystywany w niej tymczasowy bufor możnawykorzystać jako „wyrocznię” do odczytywania danych zwskazanych adresów kernela, wykorzystując exploit w silnikuprzeglądarkowym webkit. Problem jedynie w tym, że do takwygenerowanego zrzutu można dodawać jedynie po 16 bajtów na wątek.Naprawdę, trzeba być bardzo spostrzegawczym człowiekiem, byzauważyć, że 16 bajtów kernela zostaje umieszczonych w zrzuciepamięci po panice.
Zrzut oczywiście byłzaszyfrowany… symetrycznym szyfrem, w dodatku z wykorzystaniem tychsamych kluczy od czasu firmware 1.01 do całkiem świeżych wersji. Wkońcu ktoś w Sony musiał zauważyć, że to chyba złym pomysł bywykorzystywać te same symetryczne klucze, które ujawni jeden udanyzrzut kernela i zaczął je zmieniać, ale to i tak niewielezmieniło, po prostu trzeba było wcześniej pozyskać nowe klucze zpamięci.
Gotowy parser do odkodowaniazrzutu został udostępniony dla innych deweloperów PlayStation, alewiadomo, ręczne odczytanie kernela po 16 bajtów zajęłoby całąwieczność. Udało się jednak ten proces zautomatyzować,zawieszając konsolę w cyklu pięciominutowym, przy uruchomieniujednocześnie 600 wątków (więcej się nie dało, przeglądarka sięzawieszała). Nominalnie odczytanie całego kernela zajęłoby w tensposób 11 dni, ale stosując bardziej rozważne wybieranie adresóww pamięci, team0verflow zdołał zejść do sześciu dni.
Jak jednak przejąć te dane zezrzutu pomiędzy cyklami kolejnych zapisów na dysk? Tu pomógłexploit procesora EAP wbudowanego w mostek południowy Aeoliakonsoli, stworzony przez hakera vpikhur. Pozwolił on na wykrywaniezrzutów na twardym dysku i przerzucanie ich po sieci do peceta.Dzięki temu – oraz pewnym sprzętowym modyfikacjom do sterowaniazasilaczem konsoli przez sieć – wystarczyło uruchomić skrypt,który fail0verflow udostępniło wszystkim zainteresowanym.
Dopiero w firmware 4.50 Sonyzrozumiało, że szyfrowanie symetryczne to słaby pomysł. Teraz byodszyfrować kernel ze zrzutów pamięci, trzeba znać klucz prywatnySony, którego w pamięci już nie znajdziemy – szyfruje on kluczAES wykorzystywany do zaszyfrowania zrzutu. Przedstawione w artykulepodejście nie działa więc już na nowych konsolach.
Więcej exploitów, większy potencjał piractwa
Co to w praktyce oznacza dlazwykłych użytkowników? Dysponując pełnym wglądem w kernelPlayStation 4, niezależni deweloperzy będą mogli znacznie łatwiejznaleźć w nim błędy i stworzyć działające exploity.Niewykluczone, że w ten sposób odkryte i upublicznione zostanąexploity działające na najnowszych wersjach kernela – w tym możei ten stworzonyprzez hakera Qwertuyoruiop, działający podobno nawet na firmware5.03.
Oczywiście od jailbreaka douruchamiania spiraconych gier droga wciąż daleka, ale należyprzypomnieć, że i kwestii zabezpieczeń antypirackich konsola Sonypoległa. Wydany dwa lata temu exploit hakera CTurt dla firmware 1.76pozwolił na ucieczkę procesów z więzienia (jail) – mechanizmuFreeBSD używanego do ograniczenia ich dostępu do zasobów. Wewrześniu tego roku haker zecoxao zaprezentowałmetodę uruchamiania na tak złamanym systemie kopii gier. Oznaczato, że w teorii posiadacze tych starych, nieosiągalnych już wpraktyce na rynku konsol (na eBayu pojedyncze sztuki sprzedawane sąza co najmniej 500 dolarów) mogą uruchamiać na nich 79gier, dostępnych dla firmware 1.76 i wcześniejszych.
Zainteresowanych postępami scenyPlayStation 4 zapraszamy do śledzenia strony sce.party– tam dokumentowane są chronologicznie kamienie milowe na drodzedo pełnego uwolnienia tej najpopularniejszej współczesnej konsoli.