W miarę postępu rozwoju oprogramowania w cyklu życia łańcucha dostaw, etap pakowania staje się kluczowym momentem, w którym kod źródłowy jest konwertowany na wykonywalne artefakty gotowe do dystrybucji. Ten krytyczny etap nie jest jednak odporny na luki w zabezpieczeniach, co czyni go głównym celem ataków cyberprzestępców, którzy próbują podważyć integralność i bezpieczeństwo oprogramowania. Niniejszy wpis na blogu omawia powszechne zagrożenia, które mogą pojawić się na tym etapie, i przedstawia skuteczne strategie ich łagodzenia. Niniejszy wpis stanowi kontynuację naszego cyklu blogowego, w którym zgłębiamy temat. software supply chain security w poprzek SDLC.
Etap pakietu w cyklu życia oprogramowania
Etap pakowania w cyklu życia łańcucha dostaw oprogramowania obejmuje proces pakowania i przygotowywania oprogramowania do dystrybucji do użytkowników. Etap ten obejmuje tworzenie pakietów instalacyjnych, zarządzanie zależnościami i generowanie metadanych dla oprogramowania.
Zagrożenia integralności kompilacji to luki w zabezpieczeniach, które mogą umożliwić atakującym wprowadzenie nieautoryzowanych zmian w oprogramowaniu podczas procesu pakowania. Zagrożenia te mogą być wprowadzane różnymi metodami, takimi jak naruszenie rejestru pakietów, wykorzystanie luk w zabezpieczeniach narzędzi do pakowania lub manipulowanie zależnościami stron trzecich.
Całkowita zależność od komponentów open source w nowoczesnym oprogramowaniu sprawiła, że ten etap był najczęściej występującym etapemSCA cel. Wprowadzenie ukrytego złośliwego oprogramowania do popularnego komponentu open source to marzenie wielu cyberprzestępców. Właśnie dlatego ponad W 2023 roku znaleziono 245 000 złośliwych pakietów.
Przykłady Software Supply Chain Security Zagrożenia na etapie pakietu

Użyj zagrożonego pakietu
Odnosi się to do aktu wdrażania lub używania pakietu oprogramowania, który został zmodyfikowany lub zmodyfikowany przez przeciwnika.
Może się to zdarzyć po opuszczeniu przez pakiet oficjalnego rejestru pakietów, albo poprzez bezpośredni dostęp do systemu użytkownika, albo poprzez taktykę socjotechniczną, która ma na celu nakłonienie użytkownika do pobrania lub zainstalowania złośliwego pakietu. Przykładem takiego wektora jest Browserify typosquatting Atak.
Atakujący, dążąc do złamania zabezpieczeń systemów Linux i Mac, zinfiltrował proces rozwoju popularnej biblioteki Node.js o nazwie Browserify. Atakujący wprowadził złośliwy kod do kodu źródłowego projektu, zamierzając go rozpowszechnić za pośrednictwem rejestru pakietów NPM. Po przesłaniu zainfekowanego pakietu Browserify do NPM, niczego niepodejrzewający programiści pobierali go i instalowali, wierząc, że jest to legalna wersja. Złośliwy kod, osadzony w pakiecie, działał w ukryciu, zagrażając integralności zainfekowanych systemów. Mogło to doprowadzić do kradzieży danych, niestabilności systemu, a nawet zdalnego dostępu dla atakującego.
Rejestr pakietów kompromisowych
Naruszony rejestr pakietów to repozytorium oprogramowania, do którego włamał się atakujący i uzyskał nieautoryzowany dostęp do interfejsu administracyjnego lub infrastruktury rejestru.
Pozwala to przeciwnikowi modyfikować lub zastępować legalne pakiety oprogramowania złośliwymi, które następnie mogą być dystrybuowane do niczego niepodejrzewających użytkowników. Przykładem tego typu zagrożenia jest Atak na serwery lustrzane pakietów: Badacz, chcąc promować oprogramowanie open source, zhakował kilka popularnych rejestrów pakietów, w tym Maven Central, NPM i RubyGems. Uzyskując dostęp do tych rejestrów, badacz był w stanie stworzyć kopie lustrzane i repliki oryginalnych repozytoriów, co zapewniło programistom wygodną alternatywę pobierania pakietów.
Jednak te lustra miały złowrogi cel. Zhakowane lustra służyły badaczom jako kanały dystrybucji złośliwych pakietów. Pakiety te zastępowały legalne, niewykrywane przez rejestry główne, a niczego niepodejrzewający programiści nieświadomie je pobierali i instalowali. Po zainstalowaniu, złośliwe pakiety uwalniały swój ładunek, wykonując dowolny kod, kradnąc poufne dane lub zakłócając działanie systemu.
Prześlij zmodyfikowany pakiet
Przeciwnik przesyła zmodyfikowany pakiet do repozytorium lub kanału dystrybucji, który zawiera złośliwy kod lub ładunki. Można to zrobić poprzez modyfikację kodu źródłowego, opakowania lub metadanych pakietu.
Jednym z najbardziej znanych tego typu zagrożeń było Atak CodeCov w 2021 roku. Atakujący usiłujący naruszyć bezpieczeństwo projektów oprogramowania wykorzystujących CodeCov, popularną metodę ciągłej integracji i ciągłego dostarczania (CI/CD) wykorzystywało wyciekłe dane uwierzytelniające, aby uzyskać nieautoryzowany dostęp do kontenera Google Cloud Storage (GCS) projektu. Po uzyskaniu dostępu do kontenera GCS, atakujący przesyłał złośliwy artefakt – zmodyfikowaną wersję pakietu CodeCov – który następnie był dystrybuowany do użytkowników za pośrednictwem usługi CodeCov. Nieświadomi programiści, polegając na funkcji automatycznych aktualizacji, pobierali i instalowali złośliwy pakiet, wierząc, że jest legalny. Po zainstalowaniu złośliwy kod działał w ukryciu, zagrażając integralności zainfekowanych systemów. Mogło to prowadzić do kradzieży danych, niestabilności systemu, a nawet zdalnego dostępu atakującego.
Ataki na rejestry pakietów są tak powszechne, że niektóre wzorce ataków otrzymały nazwę:
In TyposquattingHaker przesyła do rejestru wiele złośliwych pakietów z drobnymi literówkami lub nazwami podobnymi do legalnych, popularnych, z nadzieją, że programiści pomylą nazwę pakietu z nazwą szkodliwą. Często złośliwy pakiet podszywa się pod legalny, aby pozostać niewykrytym, zwiększając prawdopodobieństwo ataku z użyciem technologii „starwatching”.
Zamieszanie związane z zależnością Wykorzystuje sposób, w jaki niektóre menedżery pakietów rozwiązują żądane pakiety z wielu rejestrów. Gdy organizacja korzysta z wewnętrznych komponentów opublikowanych w wewnętrznym rejestrze, atakujący, który o tym wie, może opublikować złośliwy komponent o tej samej nazwie w rejestrze publicznym. Jeśli nazwa używana dla wewnętrznego komponentu nie ma określonego zakresu, niektóre menedżery pakietów pobiorą złośliwy komponent zamiast wewnętrznego.
Z Pakiety TroyanCyberprzestępca ukrywa złośliwe oprogramowanie wśród użytecznego, poprawnego kodu. Może to być wykorzystane przez prawdziwego autora lub współautora, który oferuje się do utrzymania pakietu. Jest to również znane jako Przejęcie pakietów. Atakujący wykorzystali wiele technik, aby przejąć kontrolę nad istniejącym pakietem, takich jak: Przejęcie domeny gdzie porzucona, wygasła domena została przejęta przez atakującego, który odtworzył stary adres e-mail administratora i wykonał operację odzyskiwania hasła, aby przejąć konto administratora.
Uwagi końcowe
W miarę jak organizacje coraz częściej stosują metodyki rozwoju oprogramowania, które priorytetowo traktują automatyzację i ciągłe dostarczanie, znaczenie zabezpieczenia etapu tworzenia pakietów oprogramowania nigdy nie było tak istotne. Wdrażając solidne środki bezpieczeństwa w tej krytycznej fazie, organizacje mogą znacząco zmniejszyć ryzyko padnięcia ofiarą złośliwych ataków, które mogą naruszyć integralność i bezpieczeństwo ich oprogramowania.
Strategie opisane w tym wpisie na blogu, wraz z podanymi przykładami, stanowią dobitne przypomnienie, że etap pakowania stanowi wrażliwy punkt w łańcuchu dostaw oprogramowania. Organizacje muszą zwracać uwagę na te zagrożenia i wdrażać niezbędne środki bezpieczeństwa, aby chronić swoje oprogramowanie przed atakami. W ten sposób mogą zagwarantować integralność, bezpieczeństwo i niezawodność swojego oprogramowania dla użytkowników i klientów.
Dołącz do naszej podróży w kierunku bezpiecznego ekosystemu oprogramowania
Nie przegap szansy, aby być o krok przed konkurencją software supply chain security. Subskrybuj naszego bloga już dziś i bądź jednym z pierwszych, którzy otrzymają nasze najnowsze spostrzeżenia, zapewniając Twojej organizacji odporność i bezpieczeństwo w obliczu zmieniających się zagrożeń. Razem możemy zbudować bardziej solidny i bezpieczny ekosystem oprogramowania dla wszystkich.
Pamiętaj, software supply chain security to ciągła podróż, a nie cel. Poprzez ciągłą ocenę i dostosowywanie praktyk bezpieczeństwa do pojawiających się zagrożeń, organizacje mogą chronić swój łańcuch dostaw oprogramowania i dostarczać użytkownikom zaufane oprogramowanie.
Obejrzyj naszą demonstrację wideo







