W dzisiejszym dynamicznym świecie technologii każdy system i prawie każda aplikacja wykorzystuje komponenty oprogramowania open source software (OSS). Oprogramowanie o otwartym kodzie źródłowym nie tylko daje ogromne możliwości, swobodę modyfikacji, rozwoju i oferuje szybszy dostęp do innowacji, ale generuje także nowe pytania i wyzwania związane z bezpieczeństwem i zgodnością z przepisami oraz wymogami organizacji. W tym artykule przyjrzymy się temu zagadnieniu z perspektywy trendów i wyzwań, jakie towarzyszą analizie ryzyka w kontekście używania oprogramowania open source.
Oprogramowanie open source to nie tylko kod źródłowy dostępny publicznie. To filozofia i społeczność, która zmienia tradycyjne modele biznesowe i przekształca krajobraz technologiczny, który znamy. Kluczową cechą oprogramowania open source jest jego otwartość na modyfikacje, doskonalenie i dostosowywanie przez szeroką społeczność programistyczną. Otwarte źródło daje wiele możliwości, znajdując zastosowanie w różnych sektorach – od branży IT, poprzez przemysł, obronność, aż po medycynę i finanse, zmieniając fundamentalnie sposób, w jaki organizacje projektują, wdrażają i wykorzystują oprogramowanie.
Rynek otwartego oprogramowania ciągle rośnie, a firm, które go używają, przybywa. Co więcej, przedsiębiorstwa korzystają z rozwiązań open source w coraz szerszym zakresie. Z badań Open Source 360 Survey przeprowadzonych przez amerykańską firmę Black Duck na próbie 900 respondentów wynika, że 90% przedsiębiorstw korzysta z oprogramowania open source. Według raportu State of Open Source Report przygotowanego przez Openlogic oraz Open Source Initiative ponad 39% badanych firm stwierdziło, że w ciągu ostatniego roku zwiększyło wykorzystanie open source, a aż 41% zwiększyło je znacznie. Można również zaobserwować kilkuprocentowy wzrost w przypadku „znacznego” zwiększenia, ponieważ rok wcześniej idenczytnie na to samo pytanie odpowiedziało 36% ankietowanych firm.
Dlaczego analiza ryzyka jest ważna?
Korzystanie z otwartego oprogramowania, jak z każdego innego, oprócz wielu zalet, niesie ze sobą także pewne ryzyka. Warto mieć tego świadomość i wiedzieć, jak je minimalizować. Wśród zagrożeń związanych z używaniem oprogramowania open souce możemy wymienić:
- podatności na ataki w wyniku użycia niesprawdzonego kodu;
- opóźnione dostarczanie poprawek bezpieczeństwa;
- brak obsługi zagrożeń zero-day;
- brak wsparcia i aktualizacji;
- możliwość wprowadzenia złośliwego kodu przez nieznane strony trzecie;
- ataki na łańcuch logistyczny wytwarzania oprogramowania;
- zmiany w licencjach prowadzące do niekompatybilności lub ograniczenia dostępu do kodu.
Analiza ryzyka oprogramowania open source stanowi więc fundamentalny element strategii bezpieczeństwa informatycznego. To proces, który pomaga organizacjom unikać potencjalnych zagrożeń, takich jak ataki cybernetyczne, naruszenia prywatności danych, przestoje czy straty finansowe. Brak właściwej analizy naraża użytkowników oprogramowania na poważne konsekwencje – także reputacyjne.
Trendy w analizie ryzyka oprogramowania open source
W kontekście bezpieczeństwa oprogramowania open source oraz analizy ryzyka możemy wyróżnić kilka trendów, które rewolucjonizują sposób, w jaki podchodzimy do tego zagadnienia.
Software Composition Analysis (SCA) – poznaj swój kod
Jednym z istotniejszych aspektów w kontekście analizy ryzyka oprogramowania open source jest Software Composition Analysis (pl. Analiza Składników Oprogramowania), która pomaga zarządzać ryzykiem open source w sposób zautomatyzowany. SCA ma na celu zidentyfikowanie wszystkich komponentów pochodzących od stron trzecich w danej aplikacji, by skutecznie zminimalizować ryzyko związane z ewentualnymi lukami w zabezpieczeniach, aspektami licencyjnymi czy przestarzałymi elementami.
SCA umożliwia szczegółową analizę poszczególnych komponentów używanych w danym projekcie, ich zależności oraz potencjalnych zagrożeń. Dzięki temu można skutecznie monitorować składniki oprogramowania oraz identyfikować jego słabe punkty. Software Composition Analysis wskazuje potencjalne zagrożenia w kodzie, weryfikuje zgodność z normami i standardami oraz ocenia ryzyko związane z danym składnikiem. Pozwala lepiej zrozumieć strukturę oprogramowania i podejmować bardziej świadome decyzje dotyczące bezpieczeństwa.
Szczegółowa analiza poszczególnych elementów oprogramowania zapewnia wgląd w jego komponenty i biblioteki. Dzięki narzędziom SCA można upewnić się, że każdy komponent open source użyty w danej aplikacji jest zgodny z konkretnymi przepisami. To z kolei skutecznie zmniejsza ryzyko związane z naruszeniem własności intelektualnej oraz minimalizuje prawdopodobieństwo wystąpienia problemów prawno-licencyjnych.
Zero Trust Architecture – rewolucja w bezpieczeństwie
Zero Trust Architecture (ZTA) to nowa koncepcja w bezpieczeństwie IT. W tradycyjnym podejściu koncentrujemy się na zabezpieczaniu serwerów, sieci komputerowych oraz granic sieci komputerowych. Połączeniom po uwierzytelnieniu przyznaje się dostęp do całej sieci, zakładając, że zagrożenia pochodzą głównie z zewnątrz organizacji. W taki sposób wystawia się aktywa organizacji na potencjalne cyberataki. ZTA odwraca to założenie, uznając, że zagrożenia mogą pochodzić zarówno z zewnątrz, jak i wewnątrz sieci. Idea jest prosta: nigdy nie zakładamy, że jesteśmy całkowicie bezpieczni, zawsze weryfikujemy. Należy pamiętać, że ZTA to model bezpieczeństwa, odpowiednie podejście, a nie produkt, który możemy kupić i wdrożyć.
Wyróżniamy kilka podstawowych zasad ZTA:
- dane i usługi traktujemy jak zasoby;
- nie ufamy tożsamości ani lokalizacji sieciowej;
- dostęp do zasobów przyznajemy tylko na czas jednej sesji;
- ustalamy dostęp na podstawie dynamicznych zasad;
- z góry zakładamy, że żadne aktywa nie są godne zaufania;
- stale weryfikujemy zaufanie;
- ściśle egzekwujemy uwierzytelnianie i autoryzację;
- zbieramy jak najwięcej informacji.
Jak widać, w praktyce Zero Trust Architecture to zaktualizowane polityki bezpieczeństwa i praktyki, które pozwalają ograniczyć możliwość wystąpienia poważnego incydentu bezpieczeństwa. ZTA zakłada jednak, że naruszenia są nieuniknione, a środowisko powinno być zaprojektowane w taki sposób, żeby było cyberodporne, zdolne wytrzymać dany atak i zaraportować każde zdarzenie mogące wskazywać na naruszenie polityk bezpieczeństwa.
Integracja DevSecOps – bezpieczeństwo w procesie tworzenia oprogramowania
Koncepcja DevSecOps, która obejmuje integrację procesów programistycznych, zabezpieczających i operacyjnych, staje się standardem w świecie oprogramowania open source. Integracja analizy ryzyka z cyklem rozwoju oprogramowania pozwala wykrywać i eliminować błędy już na etapie tworzenia kodu. DevSecOps ma na celu poprawę bezpieczeństwa i pełną integrację testów bezpieczeństwa w potokach CI/CD. To trend, który ciągle zyskuje na popularności, ponieważ organizacje zdają sobie sprawę, że bezpieczeństwo oprogramowania ściśle wiąże się z procesem jego tworzenia.
W przypadku oprogramowania open source, gdzie projekty rozwijają się szybko, DevSecOps jest niezbędny. Automatyzacja kontroli bezpieczeństwa i jej integracja z procesem deweloperskim pozwala na wcześniejsze wykrywanie i naprawianie potencjalnych problemów.
Obrona przed atakami na łańcuch dostaw
Ataki na łańcuch dostaw stanowią jedną z najbardziej wyrafinowanych i jednocześnie niebezpiecznych form naruszających bezpieczeństwo środowisk IT. Hakerzy, poprzez przenikanie na różnych etapach cyklu życia oprogramowania, mogą wstrzyknąć złośliwy kod, który później zostanie wdrożony w kluczowych systemach. Najbardziej znane incydenty, takie jak atak na SolarWinds czy Codecov, pokazują, jak niebezpieczne mogą być tego typu ataki. Jak się przed nimi chronić? Przede wszystkim konieczna jest szczegółowa analiza dostawców oprogramowania i ich praktyk bezpieczeństwa, ciągła kontrola integralności kodu, a także weryfikacja procedur aktualizacji i zarządzania wersjami.
Jesteśmy jedną z firm, która dzięki zaawansowanym narzędziom i sprawdzonym metodom, jest w stanie identyfikować potencjalne zagrożenia i zalecać odpowiednie środki zaradcze naszym klientom.
Bezpieczeństwo urządzeń końcowych: kluczowe w erze pracy zdalnej
W obecnych czasach, gdy praca zdalna stała się niemal normą, bezpieczeństwo urządzeń końcowych (endpointów) zyskuje na znaczeniu. To na nich pracownicy wykonują swoje zadania. Urządzenia, takie jak laptopy, smartfony, tablety czy też urządzenia Internetu Rzeczy (IoT), stanowią często pierwsze miejsce, gdzie mogą zostać naruszone dane firmy.
Coraz częściej stają się one celem ataków cyberprzestępców wykorzystujących potencjalne słabości w zabezpieczeniach. Właściwa ochrona tych urządzeń jest kluczowa dla ochrony integralności danych i bezpieczeństwa całej organizacji.
Zagrożenia, takie jak malware, phishing czy ransomware, mogą szybko przeniknąć na te urządzenia, narażając całą sieć przedsiębiorstwa. Ochrona urządzeń końcowych to nie tylko technologia, ale także edukacja i ciągły nadzór. Wśród kluczowych aspektów ochrony wyróżniamy:
- szyfrowanie danych: zabezpieczanie danych na urządzeniach końcowych poprzez mechanizmy szyfrowania. W sytuacji kradzieży urządzenia, dane są niewidoczne dla niepowołanych osób;
- uwierzytelnianie wieloskładnikowe: dodatkowa warstwa ochrony, która utrudnia dostęp nawet w sytuacji wycieku hasła;
- aktualizacje i łatki: regularne aktualizacje oprogramowania zabezpieczają przed znanymi lukami i zmniejszają ryzyko ataków;
- monitoring i wykrywanie zagrożeń: narzędzia monitorujące pozwalają szybko reagować na ewentualne ataki;
- szkolenie pracowników: edukacja w zakresie bezpieczeństwa cybernetycznego jest kluczowa. Pracownicy muszą być świadomi zagrożeń i wiedzieć, jak się przed nimi chronić.
Nie możemy polegać jedynie na zabezpieczeniach sieciowych czy serwerowych. W dynamicznym świecie pracy zdalnej bezpieczeństwo urządzeń końcowych jest równie istotne. To kompleksowe podejście, które uwzględnia technologię, edukację i ciągły nadzór, jest kluczem do ochrony w dzisiejszych czasach.
Sztuczna inteligencja i uczenie maszynowe – przyszłość bezpieczeństwa
Kolejnym istotnym trendem jest wykorzystywanie sztucznej inteligencji (AI) i uczenia maszynowego (ML) w procesach związanych z bezpieczeństwem informatycznym. Te nowoczesne technologie oferują nie tylko efektywną analizę, ale również dostarczają cennych wskazówek, pomagając organizacjom identyfikować potencjalne problemy związane z oprogramowaniem.
Dzięki szerokiej, zautomatyzowanej i wnikliwej analizie danych historycznych i bieżących narzędzia te pozwalają na precyzyjne ocenianie potencjalnych zagrożeń. Dostarczają również informacji, które mogą pomóc w podejmowaniu bardziej świadomych decyzji dotyczących tworzenia, wykorzystania, wdrażania i utrzymania oprogramowania open source w konkretnych środowiskach. Działają jak nieustannie czuwający nad bezpieczeństwem ekspert, który jest w stanie zidentyfikować nawet najbardziej subtelne luki w zabezpieczeniach.
Jednym z przykładów wykorzystania sztucznej inteligencji w analizie ryzyka oprogramowania open source jest jej zdolność do skanowania kodu źródłowego w poszukiwaniu potencjalnych podatności i nieprawidłowości. AI potrafi analizować setki tysięcy linii kodu i identyfikować miejsca, które mogą być potencjalnie niebezpieczne. Następnie generuje raporty i sugestie dla programistów, jak poprawić bezpieczeństwo kodu. Ponadto, AI i ML pozwalają na ciągłe monitorowanie i analizę zachowań oprogramowania, co jest niezwykle ważne w przypadku dynamicznie rozwijających się projektów open source. Mogą one wykrywać nieprawidłowości czy nieoczekiwane zmiany w zachowaniu oprogramowania mogące wskazywać na potencjalne zagrożenia.
W praktyce, organizacje, które wykorzystują sztuczną inteligencję i uczenie maszynowe w analizie ryzyka oprogramowania open source, mogą szybciej podejmować lepsze decyzje, identyfikować zagrożenia na wcześniejszych etapach tworzenia bądź integrowania kodu i minimalizować ryzyko ataków oraz naruszeń bezpieczeństwa. Sztuczna inteligencja i uczenie maszynowe zmieniają oblicze bezpieczeństwa informatycznego. Warto więc zwrócić uwagę na te trendy i rozważyć ich implementację w strategii bezpieczeństwa informatycznego.
Automatyzacja kluczowym elementem efektywności
Automatyzacja podnosi efektywność analizy, umożliwiając szybką identyfikację ryzyka i natychmiastową reakcję. To jeden z kluczowych elementów strategii bezpieczeństwa informatycznego, który pozwala minimalizować ryzyko. Automatyzacja umożliwia szybkie skanowanie kodu źródłowego w poszukiwaniu potencjalnych podatności, monitorowanie zmian w repozytoriach oprogramowania open source oraz generowanie raportów i alertów, gdy wykryte zostaną potencjalne zagrożenia.
Dzięki automatyzacji, w połączeniu ze sztuczną inteligencją i uczeniem maszynowym, organizacje mogą zaoszczędzić czas i zasoby, które wcześniej byłyby poświęcone na powtarzalne czynności wykonywane ręcznie przez specjalistów. Co więcej, narzędzia są w stanie wykrywać subtelne zagrożenia, które mogłyby umknąć uwadze eksperta. Dzięki czemu można skutecznej zarządzać ryzykiem i minimalizować potencjalne zagrożenia.
Wyzwania w analizie ryzyka oprogramowania open source
Mimo że oprogramowanie open source przynosi wiele korzyści, takich jak dostępność kodu źródłowego, innowacyjność i potencjał dostosowywania do potrzeb organizacji, to jednak z jego wykorzystaniem wiążą się pewne wyzwania i ryzyka.
Brak standardów – subiektywność analizy
Jednym z głównych wyzwań w analizie ryzyka oprogramowania open source jest brak jednolitych standardów. Oznacza to, że proces ten może być subiektywny i stosunkowo trudny do ustandaryzowania na poziomie ogólnym, branżowym. W praktyce organizacje często tworzą własne procedury i kryteria oceny ryzyka, co może jednak prowadzić do niespójnych wyników i utrudniać porównywanie analiz.
Złożoność licencji, czyli labirynty prawne
Oprogramowanie open source dostarczane jest z różnymi typami licencji, które mogą być skomplikowane i wymagać szczegółowej analizy. Zdecydowanie komplikuje to zarządzanie prawami autorskimi i zgodnością z nimi. Nieodpowiednie przestrzeganie warunków licencji może prowadzić do poważnych konsekwencji prawnych i finansowych. Organizacje muszą więc dokładnie rozpoznawać licencje dla poszczególnych komponentów i monitorować to, w jakim kontekście są one używane, co w pewnych sytuacjach może nie być trywialne. Dlatego niezwykle ważna jest tutaj przejrzysta strategia oraz dokładne zrozumienie, jakie warunki narzucają te licencje i jakie obowiązki nakładają na użytkowników. Jest to kluczowe dla uniknięcia potencjalnych problemów prawnych.
Innym problemem są ewentualne zmiany w licencjach, regulacjach oraz podejściu producentów oprogramowania do klientów i społeczności open source. Całkiem niedawno firma Red Hat podjęła zaskakującą decyzję dotyczącą ograniczenia dostępu do swoich repozytoriów. Aktualnie dostęp do nich mają jedynie ich klienci i partnerzy. W pewnym sensie zablokowało to lub bardzo mocno ograniczyło możliwość budowania własnych wariantów systemów opartych o RHEL. To wydarzenie jest przykładem, że zmiany w licencjach i dostępności oprogramowania mogą wpłynąć na ekosystem i strategie firm, a także na indywidualnych użytkowników i społeczność open source. Dlatego też monitorowanie i zrozumienie zmian w licencjach jest istotnym elementem analizy ryzyka związanego z oprogramowaniem open source.
Brak zasobów – wartość ludzi i budżetu
Analiza ryzyka to zadanie, które wymaga odpowiednich zasobów – zarówno ludzkich, jak i finansowych. Nie wszystkie organizacje mają dostęp do ekspertów w dziedzinie bezpieczeństwa informatycznego oraz niezbędnych narzędzi do skutecznej analizy ryzyka. Brak odpowiednich zasobów może ograniczać zdolność organizacji do efektywnego zarządzania ryzykiem. Rozwiązaniem tego wyzwania może być inwestycja w szkolenia pracowników, pozyskanie odpowiednich narzędzi lub współpraca z zewnętrznymi ekspertami, np. z firmą Linux Polska.
Narzędzia i metodyki – testowanie bezpieczeństwa aplikacji
Nawet najlepsi programiści mogą stworzyć kod, który będzie podatny na ataki. Dlatego też w analizie ryzyka oprogramowania open source dużą uwagę kładzie się na testowanie bezpieczeństwa aplikacji. Pozwala to upewnić się, że kod jest bezpieczny i pozbawiony luk. W tym celu stosuje się różnorodne narzędzia i metodyki. Przedstawiamy kilka z nich:
- SAST (Static Application Security Testing) – to narzędzia do automatycznej analizy statycznej pomagające w bezpiecznym kodowaniu. W oparciu o predefiniowane reguły bezpieczeństwa analizują kod źródłowy aplikacji, zapewniając natychmiastową informację zwrotną na temat błędów oprogramowania, źródeł luk w zabezpieczeniach, w tym słabości aplikacji i defektów. Zapewniają zdolność do lokalizowania problemów. Dzięki temu pozwalają na wykrycie potencjalnych zagrożeń na etapie tworzenia kodu – przed zakończeniem budowy oprogramowania. Przykłady narzędzi: OWASP Automated Software Security Toolkit, SecureAssist, DeepSource, snyk, SoundQube.
Narzędzia te bardzo dobrze radzą sobie z automatyczną identyfikacją błędów w kodzie źródłowym i lukach bezpieczeństwa. Są bardzo przydatne na etapie tworzenia kodu, ponieważ pozwalają na szybką analizę kodu, a co za tym idzie – błyskawiczne wykrycie i naprawę błędów;
- DAST (Dynamic Application Security Testing) – dynamiczne testowanie bezpieczeństwa aplikacji polega na testowaniu aplikacji z zewnątrz. Stosuje się je na działającym oprogramowaniu, gdy testerzy nie mają dostępu do kodu źródłowego lub nie są świadomi jego działania. DAST pozwala na identyfikację wektorów ataków oraz rzeczywistych luk w zabezpieczeniach aplikacji poprzez obserwację jej zachowania. Przykłady narzędzi: Nessus, OWASP Zed Attack Proxy (ZAP), Crashtest Security, Invicti.
DAST jest skuteczne w identyfikacji podatności trudnych do wykrycia w analizie statycznej, takich jak: błędy w czasie działania czy problemy z konfiguracją. Trzeba jednak mieć na uwadze, że testowanie dynamiczne może nie wykryć niektórych podatności widocznych tylko w kodzie źródłowym. Dużą zaletą DAST jest możliwość stosowania go do różnych aplikacji niezależnie od użytego języka programowania czy technologii;
- ocena ryzyka według skali CVSS (Common Vulnerability Scoring System) – to system oceny podatności i ryzyka bezpieczeństwa oprogramowania. Składa się z trzech grup metryk:
- bazowej – reprezentuje stałe w czasie, wewnętrzne cechy podatności, które istnieją w różnych środowiskach użytkowników. Daje wynik w zakresie istotności od 0 do 10,
- czasowej – odzwierciedla zmieniające się w czasie cechy podatności,
- środowiskowej – mówi o unikalnych dla środowiska użytkownika cechach podatności.
Wartość CVSS przypisuje się na podstawie różnych czynników, takich jak poziom dostępu i potencjalne konsekwencje;
Jest to standardowa metoda oceny ryzyka, która ułatwia porównywanie podatności. Daje jasne wytyczne dotyczące istotności podatności, co pomaga w priorytetyzacji działań naprawczych oraz ułatwia komunikację między zespołami;
- audyt kodu źródłowego – ręczna analiza kodu źródłowego wykonywana przez ekspertów w poszukiwaniu potencjalnych zagrożeń i błędów. Ten proces wymaga zaawansowanej wiedzy z zakresu programowania i bezpieczeństwa informatycznego. Najczęściej zleca się go wyspecjalizowanej firmie. Dowiedz się więcej na temat naszej oferty audytu ryzyka
Ręczna identyfikacja podatności umożliwia ich bardzo precyzyjne rozpoznanie. Wymaga jednak sporego zaangażowania ekspertów, co może być kosztowne i czasochłonne. Doskonale sprawdza się w przypadku projektów, które wymagają szczególnej uwagi, zwłaszcza tymi związanymi z krytycznymi danymi czy infrastrukturą.
Case study – analiza ryzyka w praktyce
Przykłady praktyczne doskonale ilustrują, jak kluczowe znaczenie w kwestii bezpieczeństwa całych środowisk w firmach może mieć analiza ryzyka oprogramowania open source. Incydenty, które miały miejsce w rzeczywistym świecie biznesowym, pokazują, że nierozważna lub niedostateczna analiza ryzyka może prowadzić do poważnych problemów.
SolarWinds Orion Hack – największy atak w historii
Jednym z takich przykładów jest wspomniany wyżej atak na SolarWinds z 2020 roku, znany jako „SolarWinds Orion Hack”. Spółka Solar Winds, jako firma wyspecjalizowana w kwestii zarządzania i bezpieczeństwa oprogramowania, niewątpliwie dokonywała i dokonuje kompleksowej analizy ryzyka. Mimo to przytoczony atak wskazuje, że najwyraźniej któryś z elementów został pominięty. Oprogramowanie SolarWinds Orion zostało bowiem zainfekowane przez kod podszywający się pod autentyczne aktualizacje. Po instalacji złośliwej aktualizacji hakerzy uzyskali dostęp do sieci wielu departamentów rządowych i korporacji na całym świecie. Szacuje się, że incydent dotknął 15 tys. firm i instytucji. Ucierpiały m.in. FireEye, Microsoft, Intel, Cisco czy Deloitte.
Atakujący, przypisani do rosyjskiej grupy APT29 (Cozy Bear), wykorzystali zaawansowane techniki inwigilacji, by pozyskać wrażliwe dane. Incydent wykryła firma FireEye, co doprowadziło do zgłoszenia go organom ścigania. To jeden z najpoważniejszych incydentów cybernetycznych w historii, podkreślający potrzebę zwiększenia środków bezpieczeństwa i szybkiego reagowania na zagrożenia cybernetyczne oraz omawianą w tym artykule analizę ryzyka oprogramowania. Atak ten pokazał, że większość organizacji jest nieprzygotowana do wykrywania tego typu zagrożeń, nie wspominając nawet o ich neutralizacji. Najważniejszą lekcją, jaką możemy wyciągnąć z tego incydentu, jest konieczność traktowania dostawców oprogramowania jako przedłużenie własnej sieci i poddawania płynących od nich danych rygorystycznej kontroli.
Atak na Codecov – ekspert audytów bezpieczeństwa ofiarą hakerów
Innym przykładem ataku na łańcuch dostaw oprogramowania jest włamanie do firmy Codecov w kwietniu 2021 roku. Firma padła ofiarą cyberprzestępców, mimo iż paradoksalnie wyspecjalizowana jest w przeprowadzaniu audytów bezpieczeństwa. W chwili ataku firma posiadała bazę około 29 tys. międzynarodowych klientów, takich jak Atlassian, The Washington Post, Mozilla, P&G, Kubernetes, Flutter, Ansible, The Washington Post, GoDaddy, Tile czy Procter & Gamble Co.
Celem ataku był skrypt Bash Uploader. Cyberprzestępcy uzyskali do niego dostęp, a następnie wprowadzali w nim okresowe, nieautoryzowane zmiany przez 2 miesiące. Wewnętrzne śledztwo Codecov wykazało bowiem, że atak miał miejsce 31 stycznia 2021 r., a wykryty został dopiero 1 kwietnia – i niestety nie był to primaaprilisowy żart. Przez ten czas hakerzy mogli swobodnie w niego ingerować. Wprowadzone modyfikacje umożliwiły im eksportowanie informacji o klientach Codecov. Oznacza to, że cyberprzestępcy mogli stać się posiadaczami poświadczeń, tokenów, kluczy, magazynów danych, a nawet kodu wybranych aplikacji.
Włamanie to, na chwilę po głośnej sprawie z incydentem w SolarWinds, ujawniło kolejne luki w zabezpieczeniach oraz uświadomiło konieczność zwrócenia szczególnej uwagi na kwestie bezpieczeństwa. Po raz kolejny pokazało, jak cyberprzestępcy mogą wykorzystać zaufane narzędzia i platformy w łańcuchu dostaw oprogramowania do szerzenia złośliwego oprogramowania. Wykazało również, że organizacje muszą skupić się na zabezpieczaniu całego łańcucha dostaw oprogramowania, w tym na regularnych audytach bezpieczeństwa, aby minimalizować ryzyko podobnych ataków. Analiza ryzyka oprogramowania open source jest kluczowym elementem w identyfikowaniu podobnych potencjalnych zagrożeń i chronieniu organizacji przed tego typu atakami.
Cytując specjalistów firmy Check Point, amerykańsko-izraelskiego międzynarodowego dostawcę oprogramowania z zakresu cyberbezpieczeństwa: „organizacje muszą mieć świadomość, że korzystanie z publicznych repozytoriów kodu i platform programistycznych, choć jest konieczne, niesie ze sobą nieodłączne ryzyko. W wielu przypadkach aplikacje są opracowywane albo bez odpowiednich kontroli bezpieczeństwa, albo w najlepszym przypadku z zabezpieczeniem włączanym dopiero na końcu cyklu rozwojowego”.
Prawo w świecie oprogramowania open source
Aspekty prawne i regulacyjne związane z analizą ryzyka oprogramowania open source stanowią istotny element w zarządzaniu tym typem oprogramowania. Korzystanie z niego podlega określonym licencjom i regulacjom, które mogą mieć wpływ na sposób, w jaki można go używać, modyfikować i dystrybuować – open source to nie zawsze pełna swoboda.
Pierwszym kluczowym aspektem są różne typy licencji open source. Określają one prawa i obowiązki użytkowników w kontekście korzystania z danego oprogramowania. Istnieje ponad 200 rodzajów licencji open source, a wśród nich najpopularniejszymi są MIT License, GNU General Public License, GNU Affero General Public License oraz Apache License. Jeżeli firmy nie chcą narażać się na konsekwencje prawne, powinny dokładnie zrozumieć zapisy tych licencji i dostosować swoje praktyki korzystania z oprogramowania open source do ich wymagań.
Kolejną kwestią są regulacje związane z ochroną danych osobowych i prywatności. W związku z rosnącym znaczeniem bezpieczeństwa przetwarzania danych, organizacje korzystające z oprogramowania open source muszą spełniać wymogi związane m.in. z GDPR (RODO), Prawem bankowym, Rekomendacjami KNF oraz innymi regulacjami dotyczącymi ochrony danych. Niektóre branże, takie jak finanse, opieka zdrowotna czy sektor publiczny podlegają specjalnym regulacjom dotyczącym bezpieczeństwa i poufności danych. Analiza ryzyka oprogramowania open source musi uwzględniać zgodność z tymi regulacjami oraz wymaganymi standardami. Brak zgodności może prowadzić do znaczących kar finansowych, utraty reputacji i zaufania klientów.
Właściwa analiza ryzyka oprogramowania open source powinna więc uwzględniać nie tylko aspekty techniczne, ale także wymogi prawne i regulacyjne. Organizacje są zobowiązane działać w sposób zgodny z obowiązującymi przepisami, dostosowując swoje praktyki i procesy w taki sposób, aby spełniać wymogi licencyjne oraz zabezpieczać dane i prywatność użytkowników. Jak to osiągnąć?
Kluczowe jest zapewnienie właściwej edukacji i świadomości pracowników odnośnie licencji open source, regulacji branżowych oraz przepisów dotyczących ochrony danych. Należy przeprowadzić dokładną analizę licencji używanego oprogramowania oraz jego elementów stosowanych w projekcie, aby zidentyfikować ograniczenia i wypełnić ewentualne zobowiązania. Automatyzacja tego procesu pomaga zaoszczędzić czas i zasoby. Konieczne jest dostosowanie wszelkich procedur i polityk organizacyjnych do wymagań licencji, regulacji oraz obowiązującego prawa. Tutaj duże znaczenie ma możliwość współpracy z prawnikami i ekspertami ds. zabezpieczeń oraz konsultacje, które pomagają organizacjom spełniać wszystkie wymogi prawne i techniczne.
Podsumowanie i wnioski – kierunek na przyszłość
Podsumowując ten niezwykle szeroki temat i kierując spojrzenie ku przyszłości, możemy stwierdzić, że analiza ryzyka oprogramowania open source staje się kluczowym elementem strategii bezpieczeństwa informatycznego w firmach i organizacjach na całym świecie. Wykorzystywanie w tym celu dostępnych narzędzi i metodyk oraz nadążanie za trendami jest kluczowe nie tylko ze względów bezpieczeństwa czy w kontekście minimalizowania problemów prawno-licencyjnych, ale także w celu utrzymania wiarygodności i konkurencyjności.
Aby kontrolować ryzyko w sposób efektywny, konieczne jest dostosowanie podejścia do zmieniającego się krajobrazu technologicznego oraz uwzględnianie specyficznych wymagań swoich projektów i branży, w której się działa. Automatyzacja, integracja z DevSecOps oraz wykorzystanie narzędzi opartych na sztucznej inteligencji znacznie podnosi jakość analizy i zwiększa jej skuteczność. Niemniej istnieją również wyzwania, takie jak brak jasnych standardów, złożoność licencji, braki w zasobach ludzkich i finansowych, brak dostępu do odpowiednich narzędzi czy nawet kwestie niezależne od nas.
Już teraz niezwykle istotne jest zwiększanie świadomości pracowników na temat korzyści i zagrożeń związanych z używaniem oprogramowania open source. Edukacja powinna być ukierunkowana na wszystkich uczestników procesu rozwoju oprogramowania – od programistów po menedżerów projektów, aby minimalizować potencjalne ryzyko. Oprócz tego integracja narzędzi do analizy składników oprogramowania z procesami deweloperskimi oraz automatyzacja skanowania komponentów open source podczas tworzenia oprogramowania już jest kluczowym krokiem w zapewnieniu bezpieczeństwa i zgodności z przepisami. Dzięki temu możliwe jest szybkie wykrywanie potencjalnych luk w zabezpieczeniach i skuteczne ich usuwanie już w początkowych fazach procesu deweloperskiego (Shift Left), co ogranicza koszty ewentualnych korekt.
Organizacje powinny systematycznie kontrolować używane oprogramowanie oraz jego komponenty. Nieoceniona jest także wartość współpracy z ekspertami ds. bezpieczeństwa i prawnikami specjalizującymi się w branży IT. Taka kooperacja pozwala na dostosowanie strategii związanych z oprogramowaniem do aktualnych przepisów i standardów, co jest niezwykle ważne w kontekście zmieniającego się prawa i regulacji. Ostatecznie, opracowanie długoterminowych strategii zabezpieczeń, które uwzględniają zmieniający się krajobraz zagrożeń w cyberprzestrzeni, staje się kluczowe dla zabezpieczenia organizacji przed ryzykami związanymi z używaniem oprogramowania.
Dodatkowe zasoby – klucz do pogłębiania wiedzy
Oto kilka przydatnych źródeł informacji i narzędzi, które pomogą zgłębić temat analizy ryzyka oprogramowania open source:
- Analiza Składników Oprogramowania – opis metody i narzędzi SCA
- OWASP Top Ten – lista dziesięciu najważniejszych zagrożeń związanych z bezpieczeństwem aplikacji.
- NIST National Vulnerability Database – rządowe repozytorium zawierające informacje o podatnościach na ataki.
- SAST – Statyczne Testowanie Bezpieczeństwa Aplikacji.
- DAST – Dynamiczne Testowanie Bezpieczeństwa Aplikacji.
- IAST – Interaktywne Testowanie Bezpieczeństwa Aplikacji.
- GitHub Security Lab – zasoby i narzędzia do analizy bezpieczeństwa kodu źródłowego na GitHubie.
- Shift Left & Shift Right – wyjaśnienie pojęć na temat wyboru momentu wysiłku testowania.
- Open Source Initiative – organizacja non-profit, utworzona w celu edukowania w temacie licencji i oprogramowania open source oraz propagowania korzyści płynących z używania otwartego oprogramowania.
- Linux Polska – polska firma IT specjalizującą się w zastosowaniach technologii open source, oferująca oprogramowanie, szkolenia, wsparcie w cyfrowej transformacji oraz przeprowadzająca audyty bezpieczeństwa.
Warto stale monitorować rozwijające się trendy i nowości w dziedzinie analizy ryzyka oprogramowania open source oraz generalnie w branży IT, aby utrzymać odpowiedni poziom bezpieczeństwa w organizacji. To właśnie wiedza i umiejętność zastosowania nowoczesnych technologii są kluczem do sukcesu.
Linux Polska realizuje projekt „System analizy ryzyka występującego w pakietach oprogramowania pochodzącego z projektów o otwartym kodzie źródłowym” jest współfinansowany ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Inteligentny Rozwój. Celem projektu jest zaprojektowanie i stworzenie prototypu systemu produkcji i dystrybucji oprogramowania pochodzącego z projektów o otwartym kodzie źródłowym z jednoczesnym spełnieniem wymagań w zakresie bezpieczeństwa i zarządzania ryzykiem stawianych przez systemy o znaczeniu krytycznym. Projekt współfinansowany jest ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Inteligentny Rozwój.