Podczas opracowywania oprogramowania firmy skupiają się przede wszystkim na tym, aby oprogramowanie wykonywało zadania, do których zostało powołane i działało wydajnie. Kontrole cyberbezpieczeństwa, jeśli są zaimplementowane w kodzie, mają na celu zapewnienie ochrony danych użytkownika i zabezpieczenie ich przed atakami podczas ich wykorzystania. Jednak sam kod źródłowy często pozostaje poza tymi względami bezpieczeństwa.
Ochrona kodu źródłowego staje się coraz bardziej krytyczna. Około rok temu grupa hakerska Lapsus$ publicznie ujawniła kod źródłowy niektórych z najważniejszych firm technologicznych – prawie 200 GB kodu źródłowego Samsunga, kod technologii DLSS firmy Nvidia i 250 wewnętrznych projektów Microsoftu. Kiedy myślimy o ujawnieniu kodu źródłowego, myślimy głównie o nieautoryzowanym dostępie; jednak kod źródłowy to zasób dostępny w wielu punktach infrastruktury firmy: przez programistów, kopie zapasowe, usługi zarządzania wersjami innych firm lokalnie lub w chmurze (np. GitHub), a nawet przechowywany na lokalnych komputerach programistów
Typowe zagrożenia zagrażające kodowi źródłowemu
Do najczęstszych zagrożeń zagrażających kodowi źródłowemu należą:
– Czynnik ludzki (wtajemniczeni): Niezadowoleni pracownicy lub osoby odchodzące z firmy często mają bezpośredni dostęp do kodu źródłowego i mogą go przesłać, opublikować w Internecie lub skopiować na urządzenia przenośne.
– Czynnik ludzki (zaniedbanie): Pracownicy mogą przez pomyłkę lub zaniedbanie ujawnić kod źródłowy, udostępniając go za pośrednictwem poczty elektronicznej lub, szczególnie obecnie, za pomocą generatywnej sztucznej inteligencji. Niedawne badanie przeprowadzone przez Netskope ujawniło, że kod źródłowy jest publikowany na platformie ChatGPT częściej niż jakikolwiek inny rodzaj poufnych danych.
– Dostawcy oprogramowania: W przypadku outsourcingu projektów zaufane są środki bezpieczeństwa podwykonawców w celu ochrony kodu źródłowego. Bez weryfikacji tych środków oraz bez monitorowania i zapewnienia zgodności z umowami o zachowaniu poufności istnieje ryzyko.
– Otwarte oprogramowanie: Dołączanie bibliotek typu open source jest rzeczą normalną i w zależności od rodzaju użytej licencji może to oznaczać, że każde oprogramowanie je zawierające musi również być zgodne z zasadami open source. Oznacza to, że choć firmy nie mają obowiązku publikowania swojego kodu źródłowego, mogą być prawnie zobowiązane do udostępnienia go tym, którzy o to poproszą.
– Nieautoryzowany dostęp (hakerzy): Kod źródłowy zawiera mnóstwo poufnych informacji, które najczęściej obejmują zakodowane sekrety, takie jak hasła, klucze API i klucze certyfikatów prywatnych. Informacje te są często przechowywane w postaci zwykłego tekstu w kodzie źródłowym, co czyni je atrakcyjnym celem dla atakujących. Można go również zmanipulować, osadzając złośliwe oprogramowanie w celu nieuprawnionego użycia, na przykład ujawnienia informacji, zmiany przetwarzanych danych itp.