28 chwil wstydu GRUBa
Co jakiś czas świat obiegają sensacje na temat dziur znalezionych w przeróżnym oprogramowaniu. Są to nieraz niedomówienia małe ale i zdarzają się potknięcia gigantyczne. Jak na tej skali umiejscowić ostatnie doniesienia z obozu GRUBa, który okazał się wrażliwy na tak trywialny błąd jak 28 naciśnięć klawisza Backspace? Podatny na tę przypadłość GRUB 2 w wersji 1.98 (grudzień 2009) do wersji 2.02 (grudzień 2015) potraktowany wspomnianym ciosem specjalnym gubi się i zrzuca użytkownika do konsoli GRUB Rescue Shell. Warunki są dwa – GRUB musi być zabezpieczony hasłem (bo to dziura właśnie w tym zabezpieczeniu) oraz włamywacz musi mieć fizyczny dostęp do komputera.
Odkryty przez dwóch badaczy z zespołu Cybersecurity Group na Politechnice w Walencji problem dotyczy rzeczonego GRUBa i jego funkcji grub_password_get(). W wyniku dodanego w 2009 roku kodu powstała możliwość spowodowania stanu niedomiaru w obsłudze zmiennej opisanej za pomocą liczby całkowitej. To powoduje błąd w pamięci a program wędruje tam, gdzie mu wskażemy – w tym przypadku 28 naciśnięciami klawisza Backspace. Wszystkie dystrybucje Linuksa wydały już odpowiednią aktualizację (poprawkę w kodzie zaoferowali i wskazali sami odkrywcy błędu).
Śmiechu warte? A i owszem. Niemniej dzieje ludzkości naszpikowane są takimi błahostkami i przeoczeniami. Istotniejszą kwestią jest to, na ile może ten błąd może zagrozić bezpieczeństwu naszych danych. Zastanówmy się:
- Włamywacz musi mieć fizyczny dostęp do komputera. Ale mając taki czy będzie się trudził liczeniem naciśnięć klawisza Backspace i potem męczył się ze składnią w GRUB Rescue Shell, czy po prostu dobierze się do dysków i naszych danych w inny sposób?
- Chyba żadna dystrybucja domyślnie nie zabezpiecza hasłem menu startu systemu. A czy którykolwiek zwykły użytkownik zabezpiecza samodzielnie ten element?
- Błąd nie dotyczy Linuksa, a GRUBa 2. Jeżeli uruchamiamy komputer za pomocą UEFI, LILO, GRUB w starszej wersji, lub jakiegokolwiek innego loadera – jesteśmy bezpieczni.
Oczywiście to nie umniejsza skali połajanki jaka należy się ludziom pracującym nad GRUB 2. Opieka nad tak kluczowym elementem naszego komputera jak bootloader wymaga większego skupienia i wyobraźni w przewidywaniu efektów działania programu. Niemniej, społeczność nie śpi i otwarty kod umożliwia przeprowadzenie dochodzenia i wykrycie takich – nie bójmy się tego słowa – michałków.