Logo Zephyrnet

8 strategii zwiększania bezpieczeństwa podpisywania kodu

Data:

KOMENTARZ

Niedawno pojawiła się wiadomość, że hakerzy włamali się do firmy oferującej rozwiązania do zdalnego dostępu AnyDesk rzuciło ostre światło na potrzebę długiego i dokładnego przyjrzenia się praktykom podpisywania kodu, aby zapewnić bezpieczniejszy łańcuch dostaw oprogramowania.  

Podpisywanie kodu dodaje podpis cyfrowy do oprogramowania, oprogramowania sprzętowego lub aplikacji, co gwarantuje, że kod użytkownika pochodzi z zaufanego źródła i nie był modyfikowany od czasu ostatniego podpisania. Jednak podpisywanie kodu jest tak dobre, jak jego wykonanie, a nieodpowiednie praktyki mogą prowadzić do wstrzykiwania złośliwego oprogramowania, manipulowania kodem i oprogramowaniem oraz ataków polegających na podszywaniu się pod inne osoby. 

Klucze prywatne muszą być chronione, ale wielu programistów (głównie ze względów wygody) utrzymuje własne i przechowuje je na swoich komputerach lokalnych lub serwerach budujących. To naraża je na kradzież i niewłaściwe wykorzystanie, a także stwarza martwe punkty dla zespołów bezpieczeństwa.  

Po Hack SolarWinds w 2020 r. forum organów certyfikacji/przeglądarki (CA/B) wydało nowy zestaw wymagania podstawowe do utrzymywania certyfikatów podpisywania kodu, które wymagają stosowania sprzętowych modułów bezpieczeństwa (HSM), urządzeń przechowujących i zabezpieczających klucze kryptograficzne, a także innych środków ochrony kluczy prywatnych. 

Moduły HSM zapewniają najwyższy poziom bezpieczeństwa, ale zwiększają również koszty, złożoność i wymagania konserwacyjne. O ile nie można ich zintegrować z narzędziami do podpisywania kodu używanymi przez zespół DevOps, rozłączenie może skomplikować dostęp do podpisywania kodu i spowolnić proces.  

Migracja do chmury nadała bezpieczeństwu wyższy priorytet, ale chmura oferuje również rozwiązanie do podpisywania kodu. Podpisywanie kodu w chmurze i moduły HSM mogą zapewnić szybkość i elastyczność, których oczekują programiści, a także scentralizowaną kontrolę, która obsługuje rozproszone zespoły programistów, integruje się z procesami programistycznymi i może być łatwiej monitorowana przez zabezpieczenia. 

Podróż do zintegrowanego podpisywania kodu 

W związku z ostatnimi zmianami z Forum CA / Bnadszedł czas, aby organizacje wyruszyły w podróż mającą na celu unowocześnienie podpisywania kodu za pomocą scentralizowanej kontroli w celu wsparcia zespołów programistycznych. Wiele firm pozostaje na etapie „ad hoc”, gdzie klucze są utrzymywane lokalnie, a programiści korzystają z różnorodnych procesów i narzędzi podpisywania kodu. Inne mają scentralizowaną kontrolę, aby zapewnić zespołom ds. bezpieczeństwa widoczność i zarządzanie, wykorzystując moduły HSM do zabezpieczania kluczy, ale używanie oddzielnych narzędzi do podpisywania kodu nadal wpływa na szybkość tworzenia oprogramowania. 

Idealna, dojrzała struktura wymaga integracji kluczowych zabezpieczeń, narzędzi do podpisywania kodu i przepływów pracy programistycznych, aby proces był płynny i usprawniony we wszystkich kompilacjach, kontenerach, artefaktach i plikach wykonywalnych. Zespoły ds. bezpieczeństwa zarządzają modułami HSM i uzyskują pełny wgląd w podpisywanie kodu, a programiści mają teraz sprawny i szybki proces programowania. 

Kilka najlepszych praktyk może pomóc w utorowaniu drogi w tej podróży: 

  • Zabezpiecz swoje klucze: Przechowuj klucze do podpisywania kodu w bezpiecznym miejscu, takim jak moduł HSM zgodny z wymaganiami kryptograficznymi forum CA/B (FIPS 140-2 poziom 2 lub Common Criteria EAL 4+). Moduły HSM są odporne na manipulacje i uniemożliwiają eksport kluczy prywatnych.

  • Kontrola dostępu: Zminimalizuj ryzyko nieautoryzowanego dostępu i niewłaściwego użycia kluczy prywatnych, ograniczając dostęp poprzez kontrolę dostępu opartą na rolach. Zdefiniuj przepływy pracy zatwierdzania i egzekwuj zasady bezpieczeństwa, aby regulować dostęp tylko do niezbędnego personelu, a także prowadź dzienniki audytu, które rejestrują, kto wyzwolił żądanie podpisania, kto uzyskał dostęp do kluczy i dlaczego. 

  • Obróć klawisze: Jeśli jeden klucz zostanie naruszony, wszystkie podpisane nim wydania będą zagrożone. Regularnie zmieniaj klucze do podpisywania kodu i używaj unikalnych i oddzielnych kluczy do podpisywania różnych wydań w wielu zespołach DevOps. 

  • Kod znacznika czasu:  Certyfikaty do podpisywania kodu mają ograniczony okres ważności – od jednego do trzech lat i maleje. Kod oznaczający czas podczas jego podpisywania może zweryfikować autentyczność podpisu nawet po wygaśnięciu lub unieważnieniu certyfikatu, zwiększając zaufanie do podpisanego kodu i oprogramowania.

  • Sprawdź integralność kodu: Przed podpisaniem i wydaniem ostatecznej wersji kompilacji przeprowadź pełny przegląd kodu, porównując kod na serwerze kompilacji z repozytorium kodu źródłowego i zweryfikuj wszystkie podpisy programistów, aby upewnić się, że są wolne od manipulacji. 

  • Scentralizuj zarządzanie: Dzisiejsze przedsiębiorstwa mają charakter globalny. Scentralizowany proces podpisywania kodu może pomóc w monitorowaniu działań związanych z podpisywaniem i certyfikatów w całym przedsiębiorstwie, niezależnie od tego, gdzie znajdują się programiści. Poprawia widoczność, buduje odpowiedzialność i eliminuje luki w zabezpieczeniach.

  • Egzekwuj zasady: Standaryzuj proces podpisywania kodu, definiując i mapując zasady, w tym uprawnienia do użycia kluczy, zatwierdzenia, wygaśnięcie klucza, typ urzędu certyfikacji, rozmiar klucza, typ algorytmu podpisywania i inne. Automatyzuj egzekwowanie zasad, aby mieć pewność, że cały kod, pliki i oprogramowanie są podpisane w oparciu o zasady i są zgodne ze standardami branżowymi. 

  • Uprość podpisywanie kodu: Integracja i automatyzacja podpisywania kodu za pomocą narzędzi CI/CD upraszcza proces DevOps bez uszczerbku dla bezpieczeństwa, jednocześnie promując szybkość i elastyczność.

W świecie ciągłej integracji i ciągłego wdrażania najlepsze praktyki w zakresie podpisywania kodu stanowią nieoceniony sposób na budowanie zaufania w procesie tworzenia oprogramowania i umożliwiają bezpieczniejszy łańcuch dostaw oprogramowania.

spot_img

Najnowsza inteligencja

spot_img