Zalecenia dotyczące zabezpieczeń dla zasobów devOps

W tym artykule wymieniono zalecenia, które można zobaczyć w Microsoft Defender dla Chmury, jeśli łączysz środowisko Usługi Azure DevOps, GitHub lub GitLab przy użyciu strony Ustawienia środowiska. Zalecenia wyświetlane w twoim środowisku są oparte na zasobach, które chronisz i na dostosowanej konfiguracji.

Aby dowiedzieć się więcej o akcjach, które można wykonać w odpowiedzi na te zalecenia, zobacz Korygowanie zaleceń w Defender dla Chmury.

Dowiedz się więcej o korzyściach i funkcjach zabezpieczeń metodyki DevOps.

Rekomendacje metodyki DevOps nie wpływają na wskaźnik bezpieczeństwa. Aby zdecydować, które zalecenia należy rozwiązać jako pierwsze, przyjrzyj się ważności poszczególnych rekomendacji i jej potencjalnemu wpływowi na wskaźnik bezpieczeństwa.

Zalecenia dotyczące metodyki DevOps

Zalecenia dotyczące usługi Azure DevOps

Repozytoria usługi Azure DevOps powinny mieć włączoną usługę GitHub Advanced Security dla usługi Azure DevOps (GHAzDO)

Opis: Zabezpieczenia metodyki DevOps w Defender dla Chmury używają konsoli centralnej, aby umożliwić zespołom ds. zabezpieczeń ochronę aplikacji i zasobów przed kodem do chmury w usłudze Azure DevOps. Dzięki włączeniu repozytoriów Usługi GitHub Advanced Security dla usługi Azure DevOps (GHAzDO) dostępne są informacje o wpisach tajnych, zależnościach i lukach w zabezpieczeniach kodu w repozytoriach usługi Azure DevOps w Microsoft Defender dla Chmury.

Ważność: Wysoka

Repozytoria usługi Azure DevOps powinny mieć rozpoznane wyniki skanowania wpisów tajnych

Opis: Wpisy tajne zostały znalezione w repozytoriach kodu. Natychmiast koryguj, aby zapobiec naruszeniu zabezpieczeń. Wpisy tajne znalezione w repozytoriach mogą być ujawnione lub wykryte przez przeciwników, co prowadzi do naruszenia zabezpieczeń aplikacji lub usługi. Uwaga: Narzędzie do skanowania poświadczeń DevOps zabezpieczeń firmy Microsoft skanuje tylko kompilacje, na których jest skonfigurowany do uruchamiania. W związku z tym wyniki mogą nie odzwierciedlać pełnego stanu wpisów tajnych w repozytoriach.

Ważność: Wysoka

Repozytoria usługi Azure DevOps powinny mieć rozpoznane wyniki skanowania kodu

Opis: Luki w zabezpieczeniach zostały znalezione w repozytoriach kodu. Aby poprawić stan zabezpieczeń repozytoriów, zdecydowanie zaleca się skorygowanie tych luk w zabezpieczeniach.

Ważność: średni rozmiar

Repozytoria usługi Azure DevOps powinny mieć rozpoznane wyniki skanowania luk w zabezpieczeniach zależności

Opis: Luki w zabezpieczeniach zależności zostały znalezione w repozytoriach kodu. Aby poprawić stan zabezpieczeń repozytoriów, zdecydowanie zaleca się skorygowanie tych luk w zabezpieczeniach.

Ważność: średni rozmiar

Repozytoria usługi Azure DevOps powinny mieć infrastrukturę w miarę rozwiązywania problemów ze skanowaniem kodu

Opis: Problemy z konfiguracją zabezpieczeń infrastruktury jako kodu zostały znalezione w repozytoriach. Problemy przedstawione poniżej zostały wykryte w plikach szablonów. Aby poprawić stan zabezpieczeń powiązanych zasobów w chmurze, zdecydowanie zaleca się skorygowanie tych problemów.

Ważność: średni rozmiar

Potoki kompilacji usługi Azure DevOps nie powinny mieć wpisów tajnych dostępnych dla kompilacji rozwidlenia

Opis: W repozytoriach publicznych możliwe jest, że osoby spoza organizacji tworzą rozwidlenia i uruchamiają kompilacje w rozwidlonym repozytorium. W takim przypadku, jeśli to ustawienie jest włączone, osoby zewnętrzne mogą uzyskać dostęp do wpisów tajnych potoku kompilacji, które miały być wewnętrzne.

Ważność: Wysoka

Połączenia usługi Azure DevOps nie powinny udzielać dostępu do wszystkich potoków

Opis: Połączenia usług są używane do tworzenia połączeń z usługi Azure Pipelines do usług zewnętrznych i zdalnych do wykonywania zadań w zadaniu. Uprawnienia potoku kontrolują, które potoki są autoryzowane do korzystania z połączenia z usługą. Aby zapewnić bezpieczeństwo operacji potoku, połączenia usług nie powinny mieć dostępu do wszystkich potoków YAML. Pomaga to zachować zasadę najniższych uprawnień, ponieważ luka w zabezpieczeniach składników używanych przez jeden potok może zostać wykorzystana przez osobę atakującą do ataku na inne potoki mające dostęp do krytycznych zasobów.

Ważność: Wysoka

Bezpieczne pliki usługi Azure DevOps nie powinny udzielać dostępu do wszystkich potoków

Opis: Bezpieczne pliki umożliwiają deweloperom przechowywanie plików, które mogą być współużytkowane przez potoki. Te pliki są zwykle używane do przechowywania wpisów tajnych, takich jak certyfikaty podpisywania i klucze SSH. Jeśli bezpieczny plik ma dostęp do wszystkich potoków YAML, nieautoryzowany użytkownik może ukraść informacje z bezpiecznych plików przez utworzenie potoku YAML i uzyskanie dostępu do bezpiecznego pliku.

Ważność: Wysoka

Grupy zmiennych usługi Azure DevOps ze zmiennymi tajnymi nie powinny udzielać dostępu do wszystkich potoków

Opis: Grupy zmiennych przechowują wartości i wpisy tajne, które można przekazać do potoku YAML lub udostępnić w wielu potokach. Grupy zmiennych można udostępniać i używać w wielu potokach w tym samym projekcie. Jeśli grupa zmiennych zawierająca wpisy tajne jest oznaczona jako dostępna dla wszystkich potoków YAML, osoba atakująca może wykorzystać zasoby obejmujące zmienne tajne, tworząc nowy potok.

Ważność: Wysoka

Klasyczne połączenia usługi azure DevOps nie powinny być używane do uzyskiwania dostępu do subskrypcji

Opis: Użyj typu połączeń usługi Azure Resource Manager (ARM) zamiast połączeń usługi klasycznej platformy Azure, aby nawiązać połączenie z subskrypcjami platformy Azure. Model usługi ARM oferuje wiele ulepszeń zabezpieczeń, w tym silniejszą kontrolę dostępu, ulepszoną inspekcję, wdrażanie/zarządzanie oparte na usłudze ARM, dostęp do tożsamości zarządzanych i magazyn kluczy na potrzeby wpisów tajnych, uwierzytelniania opartego na uprawnieniach entra oraz obsługę tagów i grup zasobów w celu usprawnienia zarządzania.

Ważność: średni rozmiar

Zalecenia dotyczące usługi GitHub

Repozytoria GitHub powinny mieć włączone skanowanie wpisów tajnych

Opis: Usługa GitHub skanuje repozytoria pod kątem znanych typów wpisów tajnych, aby zapobiec fałszywemu użyciu wpisów tajnych, które zostały przypadkowo zatwierdzone w repozytoriach. Skanowanie wpisów tajnych spowoduje skanowanie całej historii usługi Git we wszystkich gałęziach znajdujących się w repozytorium GitHub pod kątem wszystkich wpisów tajnych. Przykłady wpisów tajnych to tokeny i klucze prywatne, które dostawca usług może wystawiać na potrzeby uwierzytelniania. Jeśli wpis tajny zostanie zaewidencjonowany w repozytorium, każdy, kto ma dostęp do odczytu do repozytorium, może użyć wpisu tajnego, aby uzyskać dostęp do usługi zewnętrznej z tymi uprawnieniami. Wpisy tajne powinny być przechowywane w dedykowanej, bezpiecznej lokalizacji poza repozytorium projektu.

Ważność: Wysoka

Repozytoria GitHub powinny mieć włączone skanowanie kodu

Opis: Usługa GitHub używa skanowania kodu do analizowania kodu w celu znalezienia luk w zabezpieczeniach i błędów w kodzie. Skanowanie kodu może służyć do znajdowania, klasyfikowania i określania priorytetów poprawek istniejących problemów w kodzie. Skanowanie kodu może również uniemożliwić deweloperom wprowadzanie nowych problemów. Skanowania mogą być zaplanowane przez określone dni i godziny lub skanowania mogą być wyzwalane, gdy w repozytorium wystąpi określone zdarzenie, takie jak wypychanie. Jeśli skanowanie kodu wykryje potencjalną lukę w zabezpieczeniach lub błąd w kodzie, usługa GitHub wyświetli alert w repozytorium. Luka w zabezpieczeniach jest problemem w kodzie projektu, który może zostać wykorzystany w celu uszkodzenia poufności, integralności lub dostępności projektu.

Ważność: średni rozmiar

Repozytoria GitHub powinny mieć włączone skanowanie dependabotów

Opis: Usługa GitHub wysyła alerty Dependabot, gdy wykrywa luki w zabezpieczeniach zależności kodu, które mają wpływ na repozytoria. Luka w zabezpieczeniach jest problemem w kodzie projektu, który może zostać wykorzystany w celu uszkodzenia poufności, integralności lub dostępności projektu lub innych projektów korzystających z jego kodu. Luki w zabezpieczeniach różnią się w zależności od typu, ważności i metody ataku. Gdy kod zależy od pakietu, który ma lukę w zabezpieczeniach, ta zależność podatna na zagrożenia może spowodować szereg problemów.

Ważność: średni rozmiar

Repozytoria GitHub powinny mieć rozpoznane wyniki skanowania wpisów tajnych

Opis: Wpisy tajne zostały znalezione w repozytoriach kodu. Powinno to zostać natychmiast skorygowane, aby zapobiec naruszeniu zabezpieczeń. Wpisy tajne znalezione w repozytoriach mogą być ujawnione lub wykryte przez przeciwników, co prowadzi do naruszenia zabezpieczeń aplikacji lub usługi.

Ważność: Wysoka

Repozytoria GitHub powinny mieć rozpoznane wyniki skanowania kodu

Opis: Luki w zabezpieczeniach zostały znalezione w repozytoriach kodu. Aby poprawić stan zabezpieczeń repozytoriów, zdecydowanie zaleca się skorygowanie tych luk w zabezpieczeniach.

Ważność: średni rozmiar

Repozytoria GitHub powinny mieć rozpoznane wyniki skanowania luk w zabezpieczeniach zależności

Opis: Repozytoria GitHub powinny mieć rozpoznane wyniki skanowania luk w zabezpieczeniach pod kątem luk w zabezpieczeniach.

Ważność: średni rozmiar

Repozytoria GitHub powinny mieć infrastrukturę w miarę rozwiązywania problemów ze skanowaniem kodu

Opis: Problemy z konfiguracją zabezpieczeń infrastruktury jako kodu zostały znalezione w repozytoriach. Problemy przedstawione poniżej zostały wykryte w plikach szablonów. Aby poprawić stan zabezpieczeń powiązanych zasobów w chmurze, zdecydowanie zaleca się skorygowanie tych problemów.

Ważność: średni rozmiar

Repozytoria GitHub powinny mieć zasady ochrony dla domyślnej gałęzi włączonej

Opis: Domyślna gałąź repozytorium powinna być chroniona za pośrednictwem zasad ochrony gałęzi, aby zapobiec bezpośredniemu zatwierdzeniu niezamierzonych/złośliwych zmian w repozytorium.

Ważność: Wysoka

Repozytoria GitHub powinny wymuszać wypychanie do domyślnej gałęzi wyłączone

Opis: Ponieważ domyślna gałąź jest zwykle używana do wdrażania i innych działań uprzywilejowanych, wszelkie zmiany w tej gałęzi powinny być stosowane ostrożnie. Włączenie wymuszonych wypchnięć może wprowadzać niezamierzone lub złośliwe zmiany w gałęzi domyślnej.

Ważność: średni rozmiar

Organizacje usługi GitHub powinny mieć włączoną ochronę wypychaną skanowania wpisów tajnych

Opis: Usługa Push Protection zablokuje zatwierdzenia zawierające wpisy tajne, co uniemożliwia przypadkowe ujawnienie wpisów tajnych. Aby uniknąć ryzyka ujawnienia poświadczeń, ochrona wypychana powinna być automatycznie włączona dla każdego repozytorium obsługującego skanowanie wpisów tajnych.

Ważność: Wysoka

Repozytoria GitHub nie powinny używać własnych modułów uruchamiaczy

Opis: Self-Hosted Runners on GitHub brak gwarancji działania w efemerycznych czystych maszynach wirtualnych i może być trwale naruszony przez niezaufany kod w przepływie pracy. W związku z tym moduły uruchamiane samodzielnie nie powinny być używane w przypadku przepływów pracy akcji.

Ważność: Wysoka

Organizacje usługi GitHub powinny mieć uprawnienia przepływu pracy akcji ustawione na uprawnienia tylko do odczytu

Opis: Domyślnie przepływy pracy akcji powinny mieć przyznane uprawnienia tylko do odczytu, aby uniemożliwić złośliwym użytkownikom wykorzystanie nadmiernych przepływów pracy w celu uzyskania dostępu do zasobów i manipulowania nimi.

Ważność: Wysoka

Organizacje usługi GitHub powinny mieć więcej niż jedną osobę z uprawnieniami administratora

Opis: Posiadanie co najmniej dwóch administratorów zmniejsza ryzyko utraty dostępu administratora. Jest to przydatne w przypadku scenariuszy kont break-glass.

Ważność: Wysoka

Organizacje usługi GitHub powinny mieć uprawnienia podstawowe ustawione na żadne uprawnienia lub odczyt

Opis: Uprawnienia podstawowe powinny być ustawione na wartość brak lub odczyt dla organizacji, aby przestrzegać zasady najniższych uprawnień i zapobiegać niepotrzebnemu dostępowi.

Ważność: Wysoka

(Wersja zapoznawcza) Repozytoria GitHub powinny mieć rozwiązane wyniki testów zabezpieczeń interfejsu API

Opis: Luki w zabezpieczeniach interfejsu API zostały znalezione w repozytoriach kodu. Aby poprawić stan zabezpieczeń repozytoriów, zdecydowanie zaleca się skorygowanie tych luk w zabezpieczeniach.

Ważność: średni rozmiar

Zalecenia dotyczące narzędzia GitLab

Projekty GitLab powinny mieć rozpoznane wyniki skanowania wpisów tajnych

Opis: Wpisy tajne zostały znalezione w repozytoriach kodu. Powinno to zostać natychmiast skorygowane, aby zapobiec naruszeniu zabezpieczeń. Wpisy tajne znalezione w repozytoriach mogą być ujawnione lub wykryte przez przeciwników, co prowadzi do naruszenia zabezpieczeń aplikacji lub usługi.

Ważność: Wysoka

Projekty GitLab powinny mieć rozpoznane wyniki skanowania kodu

Opis: Luki w zabezpieczeniach zostały znalezione w repozytoriach kodu. Aby poprawić stan zabezpieczeń repozytoriów, zdecydowanie zaleca się skorygowanie tych luk w zabezpieczeniach.

Ważność: średni rozmiar

Projekty GitLab powinny mieć rozpoznane wyniki skanowania luk w zabezpieczeniach zależności

Opis: Repozytoria GitHub powinny mieć rozpoznane wyniki skanowania luk w zabezpieczeniach pod kątem luk w zabezpieczeniach.

Ważność: średni rozmiar

Projekty GitLab powinny mieć infrastrukturę w miarę rozwiązywania problemów ze skanowaniem kodu

Opis: Problemy z konfiguracją zabezpieczeń infrastruktury jako kodu zostały znalezione w repozytoriach. Problemy przedstawione poniżej zostały wykryte w plikach szablonów. Aby poprawić stan zabezpieczeń powiązanych zasobów w chmurze, zdecydowanie zaleca się skorygowanie tych problemów.

Ważność: średni rozmiar

Przestarzałe zalecenia dotyczące zabezpieczeń metodyki DevOps

Repozytoria kodu powinny mieć rozpoznane wyniki skanowania kodu

Opis: Zabezpieczenia metodyki DevOps w Defender dla Chmury wykryły luki w zabezpieczeniach w repozytoriach kodu. Aby poprawić stan zabezpieczeń repozytoriów, zdecydowanie zaleca się skorygowanie tych luk w zabezpieczeniach. (Brak powiązanych zasad)

Ważność: średni rozmiar

Repozytoria kodu powinny mieć rozpoznane wyniki skanowania wpisów tajnych

Opis: Zabezpieczenia metodyki DevOps w Defender dla Chmury znalazły wpis tajny w repozytoriach kodu. Powinno to zostać natychmiast skorygowane, aby zapobiec naruszeniu zabezpieczeń. Wpisy tajne znalezione w repozytoriach mogą być ujawnione lub wykryte przez przeciwników, co prowadzi do naruszenia zabezpieczeń aplikacji lub usługi. W przypadku usługi Azure DevOps narzędzie Microsoft Security DevOps CredScan skanuje tylko kompilacje, na których został skonfigurowany do uruchomienia. W związku z tym wyniki mogą nie odzwierciedlać pełnego stanu wpisów tajnych w repozytoriach. (Brak powiązanych zasad)

Ważność: Wysoka

Repozytoria kodu powinny mieć rozpoznane wyniki skanowania dependabot

Opis: Zabezpieczenia metodyki DevOps w Defender dla Chmury wykryły luki w zabezpieczeniach w repozytoriach kodu. Aby poprawić stan zabezpieczeń repozytoriów, zdecydowanie zaleca się skorygowanie tych luk w zabezpieczeniach. (Brak powiązanych zasad)

Ważność: średni rozmiar

Repozytoria kodu powinny mieć infrastrukturę w miarę rozwiązywania ustaleń skanowania kodu

Opis: Zabezpieczenia metodyki DevOps w Defender dla Chmury znalazły infrastrukturę jako problemy z konfiguracją zabezpieczeń kodu w repozytoriach. Problemy przedstawione poniżej zostały wykryte w plikach szablonów. Aby poprawić stan zabezpieczeń powiązanych zasobów w chmurze, zdecydowanie zaleca się skorygowanie tych problemów. (Brak powiązanych zasad)

Ważność: średni rozmiar

Repozytoria GitHub powinny mieć włączone skanowanie kodu

Opis: Usługa GitHub używa skanowania kodu do analizowania kodu w celu znalezienia luk w zabezpieczeniach i błędów w kodzie. Skanowanie kodu może służyć do znajdowania, klasyfikowania i określania priorytetów poprawek istniejących problemów w kodzie. Skanowanie kodu może również uniemożliwić deweloperom wprowadzanie nowych problemów. Skanowania mogą być zaplanowane przez określone dni i godziny lub skanowania mogą być wyzwalane, gdy w repozytorium wystąpi określone zdarzenie, takie jak wypychanie. Jeśli skanowanie kodu wykryje potencjalną lukę w zabezpieczeniach lub błąd w kodzie, usługa GitHub wyświetli alert w repozytorium. Luka w zabezpieczeniach jest problemem w kodzie projektu, który może zostać wykorzystany w celu uszkodzenia poufności, integralności lub dostępności projektu. (Brak powiązanych zasad)

Ważność: średni rozmiar

Repozytoria GitHub powinny mieć włączone skanowanie wpisów tajnych

Opis: Usługa GitHub skanuje repozytoria pod kątem znanych typów wpisów tajnych, aby zapobiec fałszywemu użyciu wpisów tajnych, które zostały przypadkowo zatwierdzone w repozytoriach. Skanowanie wpisów tajnych spowoduje skanowanie całej historii usługi Git we wszystkich gałęziach znajdujących się w repozytorium GitHub pod kątem wszystkich wpisów tajnych. Przykłady wpisów tajnych to tokeny i klucze prywatne, które dostawca usług może wystawiać na potrzeby uwierzytelniania. Jeśli wpis tajny zostanie zaewidencjonowany w repozytorium, każdy, kto ma dostęp do odczytu do repozytorium, może użyć wpisu tajnego, aby uzyskać dostęp do usługi zewnętrznej z tymi uprawnieniami. Wpisy tajne powinny być przechowywane w dedykowanej, bezpiecznej lokalizacji poza repozytorium projektu. (Brak powiązanych zasad)

Ważność: Wysoka

Repozytoria GitHub powinny mieć włączone skanowanie dependabotów

Opis: Usługa GitHub wysyła alerty Dependabot, gdy wykrywa luki w zabezpieczeniach zależności kodu, które mają wpływ na repozytoria. Luka w zabezpieczeniach jest problemem w kodzie projektu, który może zostać wykorzystany w celu uszkodzenia poufności, integralności lub dostępności projektu lub innych projektów korzystających z jego kodu. Luki w zabezpieczeniach różnią się w zależności od typu, ważności i metody ataku. Gdy kod zależy od pakietu, który ma lukę w zabezpieczeniach, ta zależność podatna na zagrożenia może spowodować szereg problemów. (Brak powiązanych zasad)

Ważność: średni rozmiar