Zabezpieczanie środowiska deweloperskiego dla rozwiązania Zero Trust
Ten artykuł ułatwia deweloperom zabezpieczenie środowiska projektowego w celu zaimplementowania zasad Zero Trust (sprawdź jawnie, użyj dostępu z najmniejszymi uprawnieniami, przyjmij naruszenie). Zawiera on zawartość z naszego podręcznika Securing Enterprise DevOps Environments i wyróżnia najlepsze rozwiązania dotyczące zabezpieczeń i zaufania gałęzi, rozszerzeń i integracji.
Szybkość pracy deweloperów polega na możliwości pracy nad sposobem i miejscem, w którym chcesz zmaksymalizować wyniki biznesowe. Potrzebujesz zaawansowanych, dostosowywalnych maszyn z dostępem do katalogu głównego lub administratora. Jednak wymagania deweloperów mogą być sprzeczne z przepisami dotyczącymi zgodności oraz konieczność przeprowadzania inspekcji i kontrolowania dostępu i magazynowania prywatnego środowiska pracowników.
Niezarządzane maszyny łączące się z siecią organizacji muszą kwestionować zespoły zabezpieczeń, zaopatrzenie i zarząd ds. ładu. Najlepszy scenariusz udostępniania deweloperom domyślnych i wzmocnionych środowisk pracowników tworzy pogardę po obu stronach. Gdy pracownicy łączą się z dowolnego miejsca, narażone sieci Wi-Fi są otwartymi drzwiami cyberataku. Kradzież sprzętu i utrata są poważnymi problemami.
Luki w zabezpieczeniach rozszerzają się na integracje środowiska deweloperskiego. Narzędzia programistyczne, które zawierają rozbudowaną rozszerzalność, mogą mieć niezamierzone integracje na swoich platformach handlowych. Złośliwe rozszerzenia mogą zagrozić narzędziom deweloperów i spowodować naruszenia w całej firmie.
Na poniższym diagramie zwróć uwagę, jak środowisko deweloperskie łączy się ze środowiskiem narzędzi DevOps w celu wpływu na gałęzie usługi Git. Rozszerza powierzchnię środowiska przez połączenie z pakietami open source i rozszerzeniami aplikacji. Rozszerzenia przedstawiają wektory ataków w lukach w zabezpieczeniach aplikacji zależności i rozszerzeń.
Zapewnienie członkom zespołu DevOps elastyczności i kontroli przy jednoczesnym zapobieganiu złośliwym atakom jest podstawowym wyzwaniem dla biur zabezpieczeń. Metodyka DevOps może kontrolować środowisko deweloperskie za pomocą środowiska w chmurze (zobacz Zaufane uruchamianie maszyn wirtualnych platformy Azure i GitHub Enterprise Cloud Docs) i zabezpiecza środowisko deweloperskie za pomocą kontenerów (zobacz dokumentację usługi GitHub Codespaces).
Ponadto deweloperzy mogą zaimplementować te miary zero trust, aby pomóc w zabezpieczeniu środowiska deweloperskiego:
- Skonfiguruj najmniejsze uprawnienia.
- Ogranicz, kto może zmienić i zatwierdzić kod z zabezpieczeniami gałęzi.
- Wdrażanie tylko zaufanych narzędzi, rozszerzeń i integracji.
Najlepsze rozwiązania dotyczące najniższych uprawnień
Deweloperzy często uważają, że mogą przechwytywać złośliwe oprogramowanie, wyłudzać informacje i naruszać je w swoich środowiskach. Duże powierzchnie zagrożeń środowiska deweloperskiego sprawiają, że deweloperzy nie są realne, aby utrzymać wszechobecną wiedzę systemu. Organizacja traci cenny czas korygowania, gdy wykryje naruszenie po naruszeniu zabezpieczeń środowiska deweloperskiego, które ma dostęp administratora do wszystkich systemów.
Aby skorygować potencjalne możliwości dostępu, które powodują, że hakerzy będą kierować się do roli dewelopera oprogramowania, należy wziąć pod uwagę następujące najlepsze rozwiązania w zakresie zabezpieczeń najniższych uprawnień w przypadku aplikacji.
- Implementowanie najniższych uprawnień i dostępu just in time dla metodyki DevOps. Upewnij się, że członkowie zespołu utrzymują tylko minimalny dostęp do środowisk przez najkrótszy wymagany czas. Umieść zasady w celu objęcia praw dostępu administratora na głównych urządzeniach, narzędziach DevOps, potokach wydania, repozytoriach kodu, środowiskach, magazynach wpisów tajnych i bazach danych. W przypadku zespołów DevOps podstawowe wymaganie jest połączeniem z magazynem tożsamości organizacji. Użyj federacji tożsamości do integracji ze środowiskami SaaS, aby uniknąć duplikowania tożsamości na platformach innych firm i zmniejszyć ryzyko narażenia.
- Nie używaj osobistych tokenów dostępu do kodu źródłowego. Bezpieczne rozwiązania dla zespołów DevOps obejmują dostęp do narzędzi DevOps opartych na modelu SaaS, repozytoriów kodu (za pośrednictwem protokołu SSH, HTTPS lub osobistego tokenu dostępu). W przypadku dostępu do środowiska opartego na modelu SaaS mają jasne instrukcje dotyczące sposobu, w jaki zasady dostępu określają, kto może pobierać (klonować) repozytoria kodu systemów oraz z których urządzeń (lokalnych, chmurowych i kontenerów). Na przykład usługa OneDrive może blokować lub ograniczać dostęp niezarządzanych urządzeń.
- Ustandaryzuj i zsynchronizuj konta użytkowników zarządzanych przez usługę GitHub Enterprise (EMU) z tożsamościami firmowymi. Za pomocą użytkowników zarządzanych w przedsiębiorstwie możesz kontrolować konta użytkowników członków przedsiębiorstwa za pośrednictwem dostawcy tożsamości (IdP). W magazynie tożsamości organizacji jawnie zdefiniuj nazwy użytkowników, wiadomości e-mail i nazwy wyświetlane w usłudze GitHub. Użytkownicy mogą łatwo identyfikować współpracowników.
- Na trzy sposoby deweloper może nawiązać połączenie ze środowiskiem SaaS (HTTPS z tożsamością, osobistym tokenem dostępu, nawiązywaniem połączenia z kluczem SSH), nawiązywaniem połączeń z magazynem tożsamości organizacji. W usłudze GitHub (z wyjątkiem kont EMU usługi GitHub) twoja tożsamość jest zawsze twoją tożsamością publiczną. Kontrolowany dostęp za pośrednictwem logowania jednokrotnego wymaga połączenia z magazynem tożsamości organizacji.
- Użyj urzędu certyfikacji SSH, aby zapewnić podpisane certyfikaty SSH dla członków w celu bezpiecznego uzyskiwania dostępu do zasobów za pomocą usługi Git. Certyfikat SSH to mechanizm podpisywania innego klucza SSH przez jeden klucz SSH. Usługa GitHub Enterprise Cloud obsługuje certyfikaty SSH, aby zapewnić organizacjom większą kontrolę nad sposobem uzyskiwania dostępu do repozytoriów przez członków. Administracja mogą przekazać swój klucz publiczny urzędu certyfikacji SSH i wystawiać certyfikaty dla członków do użycia na potrzeby uwierzytelniania git. Certyfikaty mogą uzyskiwać dostęp tylko do repozytoriów należących do organizacji. Administracja mogą wymagać od członków używania certyfikatów podczas uzyskiwania dostępu do swoich repozytoriów.
- Użyj menedżera poświadczeń usługi Git, aby wzmocnić dostęp do kodu. Narzędzia takie jak Visual Studio (VS) obsługują wbudowaną obsługę tożsamości. Program VS Code przeciwstawia się menedżerowi poświadczeń usługi Git.
Najlepsze rozwiązania dotyczące zabezpieczeń gałęzi
Gdy hakerzy uzyskują dostęp do repozytorium kodu, mogą badać zabezpieczenia systemu i modyfikować kod bez zauważenia przez zespoły. Aby zapobiec nieautoryzowanemu dostępowi do repozytorium kodu, zaimplementuj strategię rozgałęziania w celu ustanowienia kontroli nad zmianami kodu (zobacz przykład przedstawiony na poniższym diagramie).
Aby skorygować potencjalne możliwości dostępu do repozytorium, rozważ następujące najlepsze rozwiązania w zakresie zabezpieczeń gałęzi.
- Chroń gałęzie za pomocą przeglądów kodu, aby zapewnić zespołom DevOps kontrolę nad zmianami kodu i postępami inspekcji. Strategia rozgałęziania na powyższym diagramie przedstawia kontrolowany przepływ zmian, który zapewnia przejrzysty łańcuch poleceń i strategii na potrzeby rozwiązywania zmian kodu. Spośród różnych podejść strategii rozgałęziania jedną wspólnością jest to, że chronione gałęzie pełnią rolę źródła dla nowych wydań w środowisku produkcyjnym.
- Administratorzy repozytoriów Git kontrolują autoryzacje zatwierdzeń. Mechanizm kontroli strategii rozgałęziania znajduje się w przepływie pracy zatwierdzania. Chronione gałęzie wymagają weryfikacji, przeglądów i zatwierdzeń przed zaakceptowaniem zmian. Jedną z opcji jest utworzenie reguły ochrony gałęzi w celu wymuszania przepływów pracy. Na przykład wymagaj przeglądu zatwierdzenia lub sprawdzenia stanu dla wszystkich żądań ściągnięcia scalonych z gałęzią chronioną. Zasady gałęzi pomagają zespołom chronić ważne gałęzie programowania. Zasady wymuszają jakość kodu zespołu i standardy zarządzania zmianami.
Najlepsze rozwiązania dotyczące zaufania narzędzi, rozszerzeń i integracji
Rozszerzalność w zintegrowanych środowiskach deweloperskich (IDE) jest tak wydajna, że zasadniczo jest to funkcja upoważniona. Polegasz na możliwości stosowania i curate rozszerzeń na platformie handlowej określonego środowiska IDE w celu zaprojektowania optymalnego środowiska pracy.
Aby skorygować bezpieczne środowiska IDE, rozważ następujące narzędzie, rozszerzenie i najlepsze rozwiązania dotyczące integracji.
- Upewnij się, że integrujesz tylko narzędzia z zaufanych platform handlowych i wydawców. Na przykład platforma handlowa programu VS Code ma tysiące rozszerzeń, aby ułatwić sobie życie. Jednak gdy zespoły wdrażają nowe narzędzia lub rozszerzenia, najważniejszym aspektem może być zweryfikowanie wiarygodności wydawcy.
- Konfigurowanie bezpiecznych rozwiązań w celu kontrolowania użycia rozszerzenia w celu ograniczenia obszaru ataków w środowiskach deweloperskich. Większość rozszerzeń IDE wymaga zatwierdzenia niektórych uprawnień do działania, często jako plik z uprawnieniami do odczytu w systemie do analizowania kodu. Rozszerzenia wymagają połączeń ze środowiskami chmury do działania (typowe w narzędziach metryk). Zatwierdzanie dodatkowych funkcji w środowisku IDE otwiera organizacje na więcej zagrożeń.
- Na maszynach deweloperskich śledź liczbę i dojrzałość używanych rozszerzeń, aby zrozumieć potencjalną powierzchnię ataków. Uwzględnianie tylko rozszerzeń witryny Marketplace programu VS Code od zweryfikowanych wydawców. Podczas instalowania rozszerzeń aplikacji za pomocą programu VS Code regularnie sprawdzaj rozszerzenia, które są uruchamiane przy użyciu wiersza polecenia, kodu
--list-extensions --show-versions
. Dobrze zrozumieć rozszerzalne składniki, które są uruchomione w środowisku dewelopera.
Następne kroki
- Osadzanie zabezpieczeń Zero Trust w przepływie pracy dla deweloperów ułatwia szybkie i bezpieczne wprowadzanie innowacji.
- Zabezpieczanie środowiska platformy DevOps pomaga zaimplementować zasady Zero Trust w środowisku platformy DevOps i wyróżnia najlepsze rozwiązania dotyczące zarządzania wpisami tajnymi i certyfikatami.
- W artykule Secure DevOps environments for Zero Trust opisano najlepsze rozwiązania dotyczące zabezpieczania środowisk DevOps przy użyciu podejścia Zero Trust , które uniemożliwia hakerom naruszenie pól deweloperskich, infekowanie potoków wydania za pomocą złośliwych skryptów i uzyskiwanie dostępu do danych produkcyjnych za pośrednictwem środowisk testowych.
- Zaimplementuj zasady Zero Trust zgodnie z opisem w memorandum 22-09 (na poparcie amerykańskiego nakazu wykonawczego 14028, Poprawa bezpieczeństwa cybernetycznego narodu) przy użyciu identyfikatora Microsoft Entra JAKO scentralizowanego systemu zarządzania tożsamościami.
- Przyspieszanie i zabezpieczanie kodu za pomocą usługi Azure DevOps za pomocą narzędzi, które zapewniają deweloperom najszybszy i najbezpieczniejszy kod w środowisku chmury.
- Konfigurowanie platformy Azure w celu zaufania identyfikatorowi OIDC usługi GitHub jako tożsamości federacyjnej. Interfejs OpenID Połączenie (OIDC) umożliwia przepływom pracy funkcji GitHub Actions uzyskiwanie dostępu do zasobów na platformie Azure bez konieczności przechowywania poświadczeń platformy Azurejako długotrwałych wpisów tajnych usługi GitHub.