r   e   k   l   a   m   a
r   e   k   l   a   m   a

It's not a bug, it's a feature: linuksowa komenda pozwala nieodwracalnie uszkodzić komputer

Strona główna AktualnościOPROGRAMOWANIE

Upowszechnienie się demona systemd w linuksowych systemach przyniosło problem, którego nie spodziewali się nawet najwięksi krytycy projektu Lennarta Poetteringa. Jedno proste polecenie, nierzadko sugerowane przez starych, złośliwych użytkowników żółtodziobom jako sposób na naprawienie systemowych usterek, pozwala zamienić komputer w cegiełkę. Sęk w tym, że tak właśnie powinno być – a cała sprawa może być dobrą ilustracją fundamentalnego dla uniksopodobnych systemów założenia, że wszystko jest plikiem.

Wydane z uprawnieniami administratora (sudo) polecenie rm -rf / pozwala na usunięcie praktycznie całego systemu operacyjnego z komputera, wymuszając rekursywne wykasowanie wszystkich plików. Oprócz aspektu złośliwego żartu (który można traktować jako odpowiednik namawiania użytkowników Windowsów do usunięcia katalogu C:\WINDOWS) polecenie ma na pewno aspekt edukacyjny – można zobaczyć, jak uniksowy system umiera na naszych oczach. Polecamy to wypróbować, oczywiście w maszynie wirtualnej, dodając jeszcze przy tym flagę --no-preserve-root.

Nikt się jednak raczej nie spodziewa, że taka operacja może sprawić, że komputera już nie uruchomimy. Tak jednak dzieje się w wypadku niektórych modeli laptopów, w których producent niezbyt starannie zadbał o implementację UEFI. Demon zarządzania systemowymi usługami ustawia ujawnionym jako pliki zmiennym EFI prawa do zapisu w katalogu /sys/firmware/efi/efivars/ – i ich skasowanie powoduje skasowanie ustawień firmware komputera. W najgorszym wypadku z maszyną taką niczego już nie zrobimy, nie wystartujemy jej z żadnego innego nośnika, nie wejdziemy nawet do ustawień „biosu”.

r   e   k   l   a   m   a

Problem takiego właśnie montowania zmiennych EFI został zgłoszony jako błąd na trackerze błędów systemd. Czy to jednak błąd? Ależ nie, to zamierzona funkcjonalność (it's not a bug, it's a feature). Demon systemd ma możliwość modyfikowania ustawień EFI – obecnie po to, by wymusić restart w trybie konfiguracji (systemctl reboot --firmware). Z czasem można się spodziewać, że będzie potrafił jeszcze więcej, i z tego co pisze sam twórca systemd widać, że efivars pozostaną możliwe do zapisu. Co więcej, podpięcie tych zmiennych w trybie tylko do odczytu psuje działanie niektórych aplikacji.

Warto zauważyć, że problem nie dotyczy tylko Linuksa. Znany linuksowy deweloper Matthew Garrett zauważył, że potrzebuje 20 linijek kodu, by usunąć efivars pod Windowsem. Linux daje swoim użytkownikom po prostu bardziej bezpośrednie (i co za tym idzie niebezpieczne) narzędzia. Nie systemowe narzędzia są też winne tego zagrożenia, lecz nędzny stan implementacji UEFI, o którym mówi się już od czasów debiutu mechanizmu Secure Boot wraz z Windowsem 8. Jeśli bowiem wszystko byłoby dobrze zrobione, to skasowanie ustawień powodowałoby jedynie reset do fabrycznych ustawień sprzętu.

Czy jednak to sami producenci tak zawiedli? W dyskusjach w Sieci zauważa się, że UEFI jest po prostu zbyt skomplikowane, jak na możliwości przeciętnego producenta sprzętu, a wykorzystany w nim kod to bardzo często tylko kopiuj-wklej z referencyjnej implementacji Intela. Wiele płyt głównych jest następnie sprawdzanych jedynie pod kątem tego, czy ruszy na nich Windows, a jeśli ruszy, to już jest dobrze. Nikt pewnie nie spodziewa się, że przez standardowy interfejs firmware, linuksowy kernel zrobi sobie z jego ustawień swoją własną pseudoprzestrzeń plików.

Niezadowolonym z takiego stanu rzeczy najprawdopodobniej pozostanie jedynie korzystanie z ARM-owych komputerków, wolnych od systemu-pod-systemem, który zastąpił nam na PC starego, dobrego BIOS-a. Na UEFI na pecetach jesteśmy bowiem już skazani, możemy się jedynie cieszyć, że nikt z branży mobilnej nie podpatrzył tego pomysłu.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.