23.06.20224 min

Maciej OlanickiRedakcja Bulldogjob

Linus Torvalds o stanie Linuksa, języku Rust i bezpieczeństwie open source 

Podczas wystąpienia twórcy Linuksa podczas Open Source Summit nie zabrakło podsumowania 30-letniej historii Linuksa i zapowiedzi dotyczących jego przyszłości.

Linus Torvalds o stanie Linuksa, języku Rust i bezpieczeństwie open source 

W teksańskim Austin trwa Open Source Summit. Tradycyjnie imprezę otworzyło wystąpienie Linusa Torvaldsa, który podzielił się swoimi spostrzeżeniami na temat Linuksa i jego przyszłości, ale także kierunku, w jakim zmierza światek open source jako całość w szczególnie ważnym aspekcie – bezpieczeństwa.


Rozwój Linuksa – nie nerwowo, a chytrze

Dla Linusa Torvaldsa ostatnie miesiące muszą przebiegać w sentymentalnym nastroju. Niedawno dzieło jego życia (choć zapewne nie zabrakłoby głosów, że jest nim Git), o którym bez cienia przesady można powiedzieć, że zmieniło świat, obchodziło 30 urodziny. Po przebiegu keynote otwierającego tegoroczne OSS widać, że Torvalds nie stroni przy tej okazji od podsumowań.

Jednym z nich była refleksja nad tym, jak w ogóle rozwijany jest Linux. Sam twórca stwierdził bez ogródek, że proces ten przebiega w zasadzie niezmiennie od przynajmniej 15 lat. Przyznaje także, że sam przebieg tego, jak Linux wzbogaca się o nowości, jest umiarkowanie ekscytujący, czy wręcz nudny. Ale w przypadku tak ważnego programu musi taki być. „Chcesz mieć stabilny proces, aby ludzie nie denerwowali się tym, jak zmienia się cała infrastruktura” – twierdzi Torvalds. 

W tym nieśpiesznym, lecz przemyślanym procesie najbardziej ma go natomiast cieszyć to, że Linux wciąż jest projektem żywym, a także  – mimo ostrożności w kwestii wzbogacania się o nowe, rewolucyjne zmiany – prężnie się rozwijającym i mającym przed sobą świetnie perspektywy na przyszłość. 

Cóż, trudno sobie dziś wyobrazić świat bez Linuksa.  Gdyby w wyniku jakiegoś całkowicie wydumanego wydarzenia konieczne byłoby porzucenie dotychczasowego paradygmatu rozwoju jądro, to projekt najpewniej nadal byłby finansowany i utrzymywany przez takie korporacje jak Microsoft, Intel czy Amazon, które zresztą już dziś mają ogromny wkład w to, jak wygląda kernel. Znak czasu. Trudno sobie byłoby to wyobrazić u zarania tysiąclecia, gdy Linux był dla Microsoftu „rakiem”.


Rust w Linuksie być może już w 5.20

Można jednak odnieść wrażenie, że określanie rozwoju Linuksa mianem nudnego to niemała przesada. Chwilę później Torvalds poinformował bowiem, że do mainline’u już w wersji 5.20 mogą trafić pierwsze komponenty napisane w języku Rust! Po wielu miesiącach eksperymentów i testów mamy więc do czynienia z prawdziwą rewolucją, nawet jeśli symboliczną – oto po 30 latach rozwoju Linuksa zagości w nim kod napisany w nowym języku.

Zmiana ta jest jednak nie tylko symboliczna, ma swój bardzo praktyczny wybór – wszak jeśli do czegoś Torvalds nas przez te 30 lat przyzwyczaił, to do tego, że nie robi rzeczy bez potrzeby. Dobitnym przykładem jest opisany tutaj Linux 5.18, czyli pierwsze wydanie napisane w języku C zgodnym ze standardem C99. Wcześniej kernel pisany był zgodnie ze specyfikacją C89 liczącą sobie… 33 lata. Dlaczego nie zdecydowano się na aktualizację standardu wcześniej? No właśnie, nie było takiej potrzeby.

Rust w Linuksie to przede wszystkim bezpieczeństwo pamięci oraz wydajność. Przekonał się o tym zresztą Microsoft, którego specjaliści wyliczyli, że zdecydowana większość problemów  z pamięcią (70% wszystkich podatności z własną sygnaturą CVE począwszy od 2006 roku!) wynika z braków w C i C++. Rust jako język oferujący bezpieczną warstwę abstrakcji dla potencjalnie ryzykownych operacji oraz inne cechy bezpośrednio przekładające się na brak możliwości odtworzenia takich wycieków, jakie mają w kodzie C/C++ jest ich naturalnym następcą. 


Open source bez gwarancji bezpieczeństwa

Swoje wystąpienie Tovalds zakończył odniesieniem do często podnoszonej w ostatnim czasie kwestii bezpieczeństwa open source. Wszak mieliśmy do czynienia z takimi katastrofami jak opisywana podatność Log4Shell, która swój gigantyczny zasię osiągnęła w dużej mierze właśnie za sprawą popularności opensource’owej biblioteki Log4j. Nie sposób też pominąć coraz popularniejszego prostestware, w którym twórcy popularnych wolnych paczek npm umyślnie je zatruwają w ramach sprzeciwu wobec konkretnej sprawy czy kontestacji.

Twórca Linuksa odpowiada na te problemy truizmem: open source, jak cokolwiek innego, nigdy nie będzie w stu procentach bezpieczne. „Każdy, kto myśli, że możesz osiągnąć 100% bezpieczeństwa, żyje w jakimś wymarzonym świecie, który po prostu nie jest tą rzeczywistością” – mówi Torvalds. Według niego bezpieczeństwo oprogramowania, systemów, a nawet sprzętu powinno się osiągać dzięki wielopoziomowości kolejnych warstw bezpieczeństwa, tak aby podatność na jednej z nich, jak choćby wspomniana Log4Shell, nie zagroziła innym.

W tym kontekście warto zastanowić się, jak bezpieczeństwo open source ma się do bezpieczeństwa oprogramowania komercyjnego o niejawnym kodzie źródłowym. Nie brakuje przecież głosów, że do wolnego oprogramowania każdy może dodać coś od siebie, również złośliwe oprogramowanie. Podobnie było nawet z Linuksem – przed rokiem „naukowcy” w ramach eksperymentu świadomie dorzucali do kernela wadliwy kod, za co zresztą ich alma mater, Uniwersytet Minnesoty, otrzymała całkowity zakaz prac nad Linuksem. 

Z drugiej strony, czy ogólnodostępny, jawny kod, który można poddać licznym audytom bezpieczeństwa, i na który spojrzeć może każda para oczu nie jest przez swoją transparentność teoretycznie bardziej bezpieczny niż tajemnica? Wszak nikt nie wie, co jest w zamkniętym kodzie i jeśli jego producent o to nie zadba, również mogą się tam znaleźć (i w praktyce bez przerwy się znajdują) groźne podatności. To nieco paradoksalne, jak na czasy, w którym tak modnie jest mówić o paradygmacie zero trust.

<p>Loading...</p>