Coroczny raport dotyczący bezpieczeństwa i analizy ryzyka open source „Open Source Security and Risk Analysis” przynosi złe wieści. Rośnie liczba systemu z lukami wysokiego ryzyka. Kto jest narażony na niebezpieczeństwo? I jak korzystać z open source, by nie trafić do grona wysokiego ryzyka?
Raport „Open Source Security and Risk Analysis” to analiza autorstwa Synopsys – dostawcy narzędzi do testowania bezpieczeństwa aplikacji. Raport zbudowano z danych zebranych przez zespół Synopsys Black Duck Audit Services. Zawiera dane z 1076 zanonimizowanych codebase z 17 branż. Prawie ¾ codebase zawierało komponenty open source z lukami wysokiego ryzyka. Co to adekwatnie znaczy i czy należy się bać systemu open source?
Co to jest codebase i jaki ma związek z open source?
W ramach raportu przetestowano wykorzystywany w firmach codebase. Co adekwatnie oznacza to pojęcie?
Codebase to kompletny kod źródłowy określonego programu lub grupy programów. W uproszczeniu: to swego rodzaju „ciało” oprogramowania, na które składa się kod napisany przez programistów, ale też biblioteki, assety itd. O ile treść autorskiego kodu jest programistom w pełni znana, o tyle nie mają możliwości dogłębnego zrozumienia bibliotek i zewnętrznych narzędzi. Korzystanie z open source często opiera się na zaufaniu do twórców i ich produktów. To powszechnie przyjęta praktyka, która może prowadzić do powstawania luk bezpieczeństwa w aplikacji.
Ostatnio pisaliśmy o programiście, który zostawił swój token w ogólnodostępnym repozytorium na GitHub, a także o problemach, jakie ma GitHub w związku z zagrożeniami bezpieczeństwa. Wszystkie te tematy są ze sobą powiązane. Złożoności współczesnego systemu uniemożliwia, by zespół programistów dokładnie przeanalizował każdą linijkę kodu. Według raportu aż 96% badanego systemu zawierała oprogramowanie open source! Dlatego tak ważne jest wybieranie zaufanego systemu open source i jego bieżące aktualizowanie (więcej o open source przeczytasz: Open source, czyli otwórz się na otwarte oprogramowanie na homodigital.pl).
Co to jest luka wysokiego ryzyka
W ramach raportu Synposys lukę wysokiego ryzyka zdefiniowano na trzy sposoby. Luka wysokiego ryzyka to luka:
- która była już wykorzystana – exploited (znane są przypadki ich użycia)
- której potencjalne wykorzystanie zostało udokumentowane – proof-of-concept
- która jest klasyfikowana jako luka w zabezpieczeniach zdalnego wykorzystywania kodu.
Sytuacja na rynku systemu pod kątem cyberbezpieczeństwa?
Wyniki raportu nie nastrajają optymistycznie. Liczba codebase posiadających przynajmniej jedną lukę, o dowolnym poziomie ryzyka, nie zmieniła się w ciągu ostatniego roku i wynosi stałą wysoką wartość 84%. Jeszcze gorzej wygląda sytuacja codebase z lukami wysokiego ryzyka – liczba ta wzrosła do 74% w 2023 (w 2022 roku było to „zaledwie” 48%).
Z raportu wynika wprost, iż głównym problemem organizacji jest korzystanie z przestarzałych lub nieaktywnych komponentów open source. Każde żyjące oprogramowanie powinniśmy na bieżąco aktualizować. Jego utrzymanie polega między innymi na dbałości o to, by którykolwiek z zewnętrznych komponentów (np. Biblioteka open source) był aktualny. I nie chodzi tu o „drobne” przewiny rodzaju przegapienie najświeższej aktualizacji. Aż 91% omawianych basecode zawiera komponenty nieaktualne o 10 lub więcej wersji, a 14% zawiera podatności starsze niż 10 lat!
Można pomyśleć, iż problem dotyka głównie branż niezwiązanych z technologiami – w końcu cyberbezpieczeństwo to jeden z najpopularniejszych tematów ostatnich lat. To błąd! Branża sprzętu komputerowego i półprzewodników miała najwyższy odsetek luk w zabezpieczeniach open source wysokiego ryzyka – aż 88%! Po piętach depcze mu produkcja, przemysł i robotyka z wynikiem 87%.
Jak zmniejszyć ryzyko narażenia się na niebezpieczeństwo?
Jak sobie radzić z niebezpieczeństwem? Raport Synopsys zawiera listę zasad ułatwiających pracę z kodem open source. Podstawowa rada to oczywiście dbałość o aktualizację oprogramowania. Jak to zrobić? Chociażby prowadząc SBOM – Software Bills of Materials. Jest to aktualna lista używanego w aplikacji systemu open source i third-party.
Ponadto Synopsys radzi śledzić na bieżąco doniesienia informujące o aktualnych zagrożeniach, atakach i podatnościach. Reagowanie i trzymanie ręki na pulsie to najważniejsze zadania osoby odpowiedzialnej za kod. Ostatnia rada dotyczy korzystania z narzędzi SCA – Automated Software Composition. To oprogramowanie ułatwiające zarządzanie kodem i dbanie o bezpieczeństwo.
Przyszłość stoi pod znakiem cyberbezpieczeństwa
Cyberbezpieczeństwo to najważniejsze zagadnienie przyszłości. Który serial obejrzeć? Jak ma zareagować samochód w razie wypadku? Który kandydat do pracy jest najlepszy? Im bardziej opieramy nasze codzienne decyzje na oprogramowaniu, tym ważniejsze staje się zagadnienie bezawaryjności oprogramowania. Nim zaczniemy wszczepiać interfejsy komputer-człowiek, porozmawiajmy o zagrożeniach płynących z nieaktualnego open source. Wszystkim wyjdzie to na dobre.
Autor grafiki: alexdndz