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.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- Źródło: https://www.darkreading.com/cybersecurity-operations/8-strategies-enhancing-code-signing-security