Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Kości pamięci DDR3/DDR4 podatne na rowhammer – PoC: wykonanie kodu z uprawnieniami kernela
Pokazała się zupełnie nowa klasa realnie krytycznych i wykorzystywalnych w najnowszych kościach pamięci podatności. Już jakiś czas temu badacze z googlowego Projektu Zero zaprezentowali w pełni softwareowy atak na sprzęt – a dokładniej na kości pamięci. Efekt? Uzyskanie pełnych uprawnień w OS.
O potencjalnie dziwnych zachowaniach kości DDR3 wiadomo już od dłuższego czasu (~2010), ale to niedawno:
- badacze z Google pokazali działające exploity (2015) polegające na „młotkowaniu” pamięci,
- inni z kolei co dopiero potwierdzili, że podatne są również pewne układy DDR4 – zatem obiecywane metody ochrony w DDR4 niekoniecznie się sprawdziły.
O co chodzi w podatności rowhammer? W skrócie, okazuje się że odpowiednio dobrane sekwencje odczytu pamięci z konkretnych komórek umożliwiają pewną zmianę innych fragmentów pamięci (tzw. bit-flipping), do których bazowy proces w ogóle nie powinien mieć dostępu:
(…) by repeatedly accessing two “aggressor” memory locations within the process’s virtual address space, they can cause bit flips in a third, “victim” location. The victim location is potentially outside the virtual address space of the process.
Wracając do konkretnych exploitów – już rok temu dla DDR3 Project Zero pokazał:
- wyjście z sandboxa NaCL
- przejęcie pełnej kontroli do maszyny działającej pod Linuksem (poprzez dostęp read/write do całej pamięci) – startując z nieuprawnionego procesu:
One exploit uses rowhammer-induced bit flips to gain kernel privileges on x86-64 Linux when run as an unprivileged userland process.
Ochrona?
Tutaj sytuacja cały czas wygląda krucho – wydaje się że producenci nowego sprzętu wprowadzają mechanizmy zabezpieczejące, ale różnie z tym bywa. Pomocne może być aktualizowanie BIOSu, czy używanie pamięci z kontrolą parzystości – ECC.
–Michał Sajdak
Niestety ten atak jest przereklamowany trwa dlugo i strasznie obciaza CPU co moze zostac latwo zauwazone lub atak przerwany resetem wykonanym przez wnerwionego uzytkownika :)
Długo, czyli na przykład?
(nie sprawdzałem i jakoś nie bardzo mam chęć nawet – dlatego pytam)…
Ale jeśli będzie trwał kilka/naście godzin to spokojnie w ciągu nocy można wypruć niejeden serwer…