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

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

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

Upowszechnienie się demona systemd w linuksowych systemachprzyniosło problem, którego nie spodziewali się nawet najwięksikrytycy 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śniepowinno być – a cała sprawa może być dobrą ilustracjąfundamentalnego dla uniksopodobnych systemów założenia, żewszystko jest plikiem.

Wydane z uprawnieniamiadministratora (sudo) polecenie rm -rf / pozwala na usunięciepraktycznie całego systemu operacyjnego z komputera, wymuszającrekursywne wykasowanie wszystkich plików. Oprócz aspektu złośliwegożartu (który można traktować jako odpowiednik namawianiaużytkowników Windowsów do usunięcia katalogu C:\WINDOWS)polecenie ma na pewno aspekt edukacyjny – można zobaczyć, jakuniksowy 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 niespodziewa, że taka operacja może sprawić, że komputera już nieuruchomimy. Tak jednak dzieje się w wypadku niektórych modelilaptopów, w których producent niezbyt starannie zadbał oimplementację UEFI. Demon zarządzania systemowymi usługami ustawiaujawnionym jako pliki zmiennym EFI prawa do zapisu w katalogu/sys/firmware/efi/efivars/ – i ich skasowanie powoduje skasowanieustawień firmware komputera. W najgorszym wypadku z maszyną takąniczego już nie zrobimy, nie wystartujemy jej z żadnego innegonośnika, nie wejdziemy nawet do ustawień „biosu”.

Problem takiego właśniemontowania zmiennych EFI został zgłoszonyjako 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 mamożliwość modyfikowania ustawień EFI – obecnie po to, bywymusić restart w trybie konfiguracji (systemctl reboot --firmware).Z czasem można się spodziewać, że będzie potrafił jeszczewięcej, i z tego co pisze sam twórca systemd widać, że efivarspozostaną możliwe do zapisu. Co więcej, podpięcie tych zmiennychw trybie tylko do odczytu psuje działanie niektórych aplikacji.

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

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

Niezadowolonym z takiego stanurzeczy najprawdopodobniej pozostanie jedynie korzystanie z ARM-owychkomputerków, wolnych od systemu-pod-systemem, który zastąpił namna PC starego, dobrego BIOS-a. Na UEFI na pecetach jesteśmy bowiemjuż skazani, możemy się jedynie cieszyć, że nikt z branżymobilnej nie podpatrzył tego pomysłu.

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (114)