University of Minnesota Linux Ban wyświetla pytania dotyczące Open Source
Opublikowany: 2022-03-11Zasadniczo istnieją dwa rodzaje hakerów: ci, którzy włamują się do systemów komputerowych, aby znaleźć luki w zabezpieczeniach, aby je naprawić, oraz przestępcy, którzy wykorzystują słabości do kradzieży danych i przetrzymywania organizacji jako zakładników.
Jest też Kangjie Lu, adiunkt na Uniwersytecie Minnesota, który specjalizuje się w bezpieczeństwie komputerowym. Ostatnio zyskał rozgłos za celowe tworzenie luk w najbardziej znanym na świecie systemie oprogramowania open source, jądrze Linux. Po tym, jak opublikował artykuł naukowy na temat swoich wyczynów, zespół ds. jądra Linuksa zbanował uniwersytet i cofnął poprzednie poprawki.
Celowe luki w zabezpieczeniach jądra systemu Linux
Rewelacje wywołały pytania dotyczące bezpieczeństwa open source i jądra systemu operacyjnego, podstawowego składnika niezliczonych urządzeń i serwerów. Lu ukrył luki w drobniejszych poprawkach, które on i jego doktorant przesłali do ogromnego repozytorium kodu oprogramowania Linuksa, obalając metodę współpracy, która jest niezbędna do zapewnienia bezpieczeństwa programu.
„Odnieśli niepokojący sukces”, mówi Alexander Sereda, kierownik projektu z Toronto, który dołączył do sieci Toptal w 2020 roku. „Ich złośliwy kod przeszedł nadzór społeczności, który ma wyeliminować tego rodzaju zgłoszenia”.
Podczas gdy systemy Windows i macOS dominują na komputerach stacjonarnych, systemy operacyjne oparte na Linuksie są zdecydowanie najbardziej popularne w przypadku serwerów i superkomputerów, a Google używa zmodyfikowanej wersji jądra dla systemu Android. Giganci technologiczni, tacy jak Red Hat, zbudowali swoje firmy w zakresie oprogramowania dla przedsiębiorstw wokół open source, a nawet Microsoft, który przez lata był postrzegany jako czołowy przeciwnik ekosystemu open source, pojawił się: w 2018 roku kupił GitHub, największy host open- projekty źródłowe; dziś dystrybucje Linuksa można znaleźć w Microsoft Store.
Trudno przecenić wszechobecność jądra Linuksa i oprogramowania open source, które ewoluowało od hobbystów i idealistów do fundamentu dzisiejszego rynku oprogramowania. Istnieją dosłownie miliony projektów open-source, które programiści mogą przeszukiwać, a ponieważ są one bezpłatne i w większości niezawodne, ponad 90% komercyjnych aplikacji zawiera takie komponenty. Według corocznych badań firmy Synopsys zajmującej się projektowaniem krzemu i oprogramowaniem zabezpieczającym, liczba ta stale rośnie.
Bycie niezawodnym jest tak samo ważne jak bycie wolnym, a społeczność open-source szczyci się dostarczaniem programów, które są równe, jeśli nie lepsze, niż oprogramowanie zastrzeżone. Ruch pojawił się w latach 90. z główną zasadą, wymyśloną przez dewelopera i autora Erica Raymonda, że „przy wystarczającej liczbie gałek ocznych wszystkie błędy są płytkie”. To open source jak dotąd przetrwało stosunkowo bez szwanku — nawet gdy świat zmaga się z bezprecedensową epidemią hakowania i oprogramowania ransomware — jest tylko dalszym potwierdzeniem, że taka otwarta współpraca może być nadal skuteczna.
Ale, jak Lu wykazał w swoich badaniach, żadne zabezpieczenia nie są doskonałe, nawet w przypadku czegoś tak krytycznego i ściśle monitorowanego jak jądro Linuksa. Podczas gdy pisanie bezpiecznego kodu może być proste, znalezienie luk w kodzie po fakcie może być niezwykle trudne — „jak usunięcie mleka z herbaty po jego zamieszaniu” — mówi Sereda. Chociaż oprogramowanie open source generalnie radzi sobie doskonale, poza kilkoma znaczącymi czkawkami, takimi jak błąd Heartbleed, który pojawił się w 2014 r., istnieje coraz więcej dowodów na to, że programiści ze swojej strony idą zbyt wiele na skróty, włączając wolne oprogramowanie do swoich produkty.
Zagrożenia bezpieczeństwa open source
W swoim raporcie rocznym z 2021 r. Synopsys ujawnia, że każda skontrolowana przez nią firma z branży technologii marketingowych miała w swojej bazie kodu open source, a 95% tych baz kodu zawierało luki. Podobne wyniki uzyskano, patrząc na sektor opieki zdrowotnej, sektor usług finansowych oraz branże handlu detalicznego i handlu elektronicznego. Istnieje wiele przyczyn słabych wyników, ale głównym z nich jest to, że oprogramowanie staje się coraz bardziej skomplikowane, a przez to coraz trudniej jest śledzić i monitorować komponenty.
Open source ma znacznie lepsze wyniki w zakresie bezpieczeństwa niż produkty zastrzeżone, ale to nie gwarantuje, że zawsze będzie najwyższej jakości, mówi Sam Watkins, niezależny programista full-stack, który dołączył do sieci Toptal w 2021 roku. „Mamy znacznie większy problem, jakim są nadmiernie skomplikowane programy. To niepewne, ale nie ze złych zamiarów”.
Problem zatem niekoniecznie polega na tym, że open source jest zbyt otwarte. Zamiast tego jest to luka, która utrzymuje się, ponieważ żaden dostawca nie rozsyła łat dla społeczności, nawet gdy cykle oprogramowania wciąż się kurczą, mówi Timothy Mackey, główny strateg bezpieczeństwa w Synopsys. Napięte budżety zmuszają programistów do używania niedoskonałych skrótów, takich jak uproszczone systemy oceny, w celu wybierania komponentów — według popularności, a nie jakości. Istnieje wiele usług, które oferują programistom takie skróty, w tym Openbase, Stack Builder i Open Source Index, który wyróżnia najpopularniejsze projekty na GitHub.
Zarządzanie luką w zabezpieczeniach oprogramowania Open Source
Według programistów i naukowców, chociaż te systemy ocen typu open source są wartościowe, podczas ważenia opcji należy zapewnić większą walidację i rozważenie, a nie tylko chwytanie komponentów, które wydają się najlepiej pasować. Każda organizacja powinna ustanowić zestaw najlepszych praktyk, który zawiera zasady starannego doboru oprogramowania, uwzględniającego ilość wymaganego wsparcia i występujące ryzyko. Firmy powinny również śledzić i często aktualizować wszystkie swoje komponenty open source.

Niektóre inne najlepsze praktyki, które nasi eksperci wskazali do rozważenia, obejmują:
- Korzystanie z automatyzacji, weryfikowanie procesów, dokumentowanie wszystkiego i używanie Git do śledzenia zmian w bazie kodu.
- Tworzenie pozytywnej społeczności, w tym pomaganie ludziom, którzy dopiero zaczynają korzystać z oprogramowania open source, którzy mogą stać się ważnymi współpracownikami.
- Zapewnienie możliwości audytu wszystkich łańcuchów dostaw typu open source.
- Korzystanie z kontenerów typu open source, które współdzielą jądro systemu operacyjnego hosta.
- Identyfikowanie najbardziej krytycznych komponentów open source, a następnie śledzenie ich problemów z bezpieczeństwem, współpraca z ich programistami i wnoszenie wkładu z powrotem do projektów nadrzędnych z poprawkami i finansowaniem.
Ann Barcomb, adiunkt w Schulich School of Engineering Uniwersytetu Calgary, dodaje, że najlepiej byłoby, gdyby organizacje korzystały z zestawu najlepszych praktyk do tworzenia bibliotek wstępnie zatwierdzonych produktów, aby oprogramowanie nigdy nie było wybierane arbitralnie. Przyznaje jednak, że proces ten jest czasochłonny, kosztowny i mało praktykowany.
„Chcesz większego bezpieczeństwa, ale to bezpieczeństwo ma ogromną cenę”, mówi Ayush Poddar, niezależny programista back-end, który dołączył do Toptal w 2021 roku.
Platformy takie jak Black Duck, Sonatype, Snyk i WhiteSource zapewniają automatyzację, aby pomóc znaleźć komponenty open source w stosie programu komputerowego i zidentyfikować luki w zabezpieczeniach. Narzędzia te są jednak ograniczone, a nadążanie za poprawkami kodu to kolejny problem, który się tylko pogarsza — amerykańska agencja ds. bezpieczeństwa cybernetycznego i infrastruktury często zgłasza setki nowych luk w zabezpieczeniach oprogramowania tygodniowo.
„Nie można przetestować każdej kombinacji sposobu wykonania każdego fragmentu kodu” — mówi Aidan McManus, emerytowany dyrektor techniczny, który nadzorował architekturę i inżynierię IT w firmie CA Technologies. „Zajęłoby to lata”.
Mats Heimdahl, szef Wydziału Informatyki i Inżynierii Uniwersytetu Minnesota, zauważa, że Kangjie i jego badacze również znaleźli wiele złych łat w jądrze, które były niezależne od zgłoszonych przez nich błędów. „Moim zdaniem jest całkiem jasne, że ręczny proces recenzji wykonywany przez przepracowanych i niedocenianych wolontariuszy (nawet przez niezwykle wykwalifikowanych i oddanych opiekunów) nieuchronnie będzie niedoskonały” – napisał Heimdahl w e-mailu.
Fakt, że luki w zabezpieczeniach rosną, rodzi fundamentalne pytania dotyczące sposobu zarządzania otwartym oprogramowaniem. Chociaż przyspiesza innowacje, jest zasadniczo wspólnym zasobem, obszerną biblioteką bezpłatnego oprogramowania, która pozwala zaoszczędzić konsumentom 60 miliardów dolarów rocznie, a także zwiększa zyski firm dzięki obniżeniu kosztów rozwoju. Może być po prostu zbyt wielu gapowiczów, którzy nie mają wystarczających środków na utrzymanie i bezpieczeństwo.
University of Minnesota Linux Kernel Ban: poznano ograniczenia
Chociaż nic nie wskazuje na to, że sprawdzanie poprawek się zmieniło, Linux Foundation ustanawia zestaw najlepszych praktyk dla badaczy pracujących z jądrem i zaleciła, aby University of Minnesota wyznaczył recenzenta do swoich zgłoszeń. Jak mówi Barcomb, tak naprawdę nie ma alternatywy dla przeglądu kodu, a społeczność obecnie wykonuje rozsądną robotę, aby nie dopuścić do złośliwego kodu. Biorąc pod uwagę autonomię wymaganą do pracy z wiedzą, mówi: „najlepsze, co możesz zrobić, to mieć procesy identyfikowania naruszeń zaufania i odpowiednio reagować, w najlepszym przypadku przed wprowadzeniem zmian”.
Heimdahl zauważa, że jego instytucja organizuje komitet, który ma doradzać w sprawie nadsyłanych łat w oczekiwaniu na zniesienie zakazu.
Linux był kiedyś pomysłem kogoś z zewnątrz, odważnym kontrapunktem dla tradycyjnego myślenia o oprogramowaniu własnościowym, ale ewoluował w coś, co bardziej przypomina projekt komercyjny. Huawei, Intel i Red Hat stoją na czele setek firm, które regularnie dodają kod do jądra Linuksa. Podczas gdy wiele z tych firm przekazuje również pieniądze Fundacji Linuksa i podmiotom stowarzyszonym Open Source Initiative, być może nadszedł czas na bardziej systematyczne podejście do obsługi oprogramowania w celu poprawy bezpieczeństwa w przyszłości — takiego, które lepiej doceni korzyści płynące z takiego kluczowe systemy open source.
„Ludzie po prostu przyjmują za pewnik, że open source działa”, mówi Christopher Tozzi, starszy wykładowca w Rensselaer Polytechnic Institute. „Istnieje zupełnie nowe pokolenie ludzi, którzy tak naprawdę nie myśleli o tych kwestiach”.
