Udostępnij za pośrednictwem


Skanowanie kodu bez agenta w Microsoft Defender dla Chmury

Skanowanie kodu bez agenta w usłudze Microsoft Defender dla Chmury oferuje szybkie i skalowalne pokrycie zabezpieczeń dla wszystkich repozytoriów w usłudze Azure DevOps. Szybko odnajduje luki w zabezpieczeniach konfiguracji kodu i infrastruktury jako kodu (IaC) bez konieczności wprowadzania agentów ani zmian potoku ciągłej integracji i ciągłego wdrażania (CI/CD). Takie podejście upraszcza konfigurowanie i konserwację za pomocą jednego łącznika usługi Azure DevOps oraz zapewnia szeroki zakres, ciągłe szczegółowe informacje i praktyczne wyniki zabezpieczeń. Pozwala to zespołom ds. zabezpieczeń i programowania skupić się na bezproblemowym naprawianiu zagrożeń bez przerywania przepływów pracy programowania.

Wymagania wstępne

Główne korzyści

  • Proaktywne zarządzanie ryzykiem: identyfikowanie ryzyka na wczesnym etapie procesu programowania. Obsługuje to bezpieczne praktyki kodowania i zmniejsza luki w zabezpieczeniach przed dotarciem do środowiska produkcyjnego.
  • Bezproblemowe dołączanie: szybkie konfigurowanie przy użyciu minimalnej konfiguracji i bez zmian potoku.
  • Scentralizowane zarządzanie w skali przedsiębiorstwa: automatyczne skanowanie kodu w wielu repozytoriach przy użyciu jednego łącznika. Zapewnia to szeroki zakres dla dużych środowisk.
  • Szybki wgląd w szczegółowe informacje na potrzeby szybkiego korygowania: odbierz szczegółowe informacje o lukach w zabezpieczeniach z możliwością działania bezpośrednio po dołączeniu. Umożliwia to szybkie poprawki i skraca czas ekspozycji.
  • Przyjazny dla deweloperów i bezproblemowy: działa niezależnie od potoków ciągłej integracji i ciągłego wdrażania (CI/CD), bez konieczności wprowadzania zmian ani bezpośredniego zaangażowania deweloperów. Umożliwia to ciągłe monitorowanie zabezpieczeń bez zakłócania produktywności deweloperów lub przepływów pracy.

Możliwości wykrywania zagrożeń

Skanowanie kodu bez agenta zwiększa bezpieczeństwo, oferując ukierunkowane zalecenia dotyczące zabezpieczeń zarówno dla szablonów kodu, jak i infrastruktury jako kodu (IaC). Jest to dodatek do podstawowych zaleceń dotyczących zabezpieczeń zarządzania stanem zabezpieczeń w chmurze (CSPM) udostępnianych za pośrednictwem łącznika. Możliwości wykrywania kluczy obejmują:

  • Luki w zabezpieczeniach kodu: znajdowanie typowych błędów kodowania, niebezpiecznych praktyk kodowania i znanych luk w zabezpieczeniach w wielu językach programowania.
  • Błędy konfiguracji infrastruktury jako kodu: wykrywanie błędów konfiguracji zabezpieczeń w szablonach IaC, które mogą prowadzić do niezabezpieczonych wdrożeń.

Tworzenie łącznika zwiększa bezpieczeństwo, zapewniając podstawowy zestaw zaleceń dotyczących zabezpieczeń dla repozytoriów, potoków i połączeń usług.

Narzędzia do skanowania

Skanowanie kodu bez agenta używa różnych narzędzi typu open source do znajdowania luk w zabezpieczeniach i błędów konfiguracji w kodzie i szablonach infrastruktury jako kodu (IaC):

Narzędzie Obsługiwane języki/IaC Licencja
Bandyta Python Apache 2.0
Checkov Szablony IaC programu Terraform, pliki planu programu Terraform, szablony aws CloudFormation, pliki manifestu Kubernetes, pliki wykresu Helm, pliki dockerfile, szablony IaC usługi Azure Azure Resource Manager (ARM), szablony IaC platformy Azure Bicep, szablony SAM platformy AWS (bezserwerowy model aplikacji), pliki Kustomize, szablony struktur bezserwerowych, pliki specyfikacji OpenAPI Apache 2.0
ESLint JavaScript, TypeScript, JSX, TSX MIT
Analizator szablonów Szablony IaC usługi ARM, szablony Bicep IaC MIT
Terrascan Szablony IaC programu Terraform (HCL2), pliki manifestu kubernetes (YAML/JSON), pliki Dockerfiles, szablony AWS CloudFormation (YAML/JSON), szablony IaC usługi Azure ARM, pliki wykresów helm (wersja 3), pliki Kustomize Apache 2.0

Te narzędzia obsługują szeroką gamę języków i struktur IaC, zapewniając dokładną analizę zabezpieczeń w bazie kodu.

Obsługiwane platformy i typy plików

Systemy kontroli wersji

  • Azure DevOps: pełna obsługa repozytoriów połączonych za pośrednictwem łącznika usługi Azure DevOps.

Języki programowania

  • Python
  • JavaScript/TypeScript

Platformy i konfiguracje infrastruktury jako kodu (IaC)

Platforma IaC Obsługiwane typy plików Uwagi
Terraform .tf, .tfvars Obsługuje szablony IaC programu Terraform w języku HCL2, w tym pliki zmiennych w systemie .tfvars.
Terraform Plan Pliki JSON Zawiera pliki JSON reprezentujące planowane konfiguracje używane do analizy i skanowania.
AWS CloudFormation Pliki JSON, YAML Obsługuje szablony platformy AWS CloudFormation do definiowania zasobów platformy AWS.
Kubernetes YAML, pliki JSON Obsługuje pliki manifestu kubernetes służące do definiowania konfiguracji w klastrach.
Helm Struktura katalogów chart programu Helm, pliki YAML Podąża za standardową strukturą wykresu programu Helm; program obsługuje pliki wykresów Helm w wersji 3.
Docker Pliki o nazwie Dockerfile Obsługuje pliki Dockerfile dla konfiguracji kontenerów.
Szablony usługi Azure ARM Pliki JSON Obsługuje szablony IaC usługi Azure Resource Manager (ARM) w formacie JSON.
Azure Bicep Pliki bicep Obsługuje szablony Bicep IaC, język specyficzny dla domeny (DSL) dla usługi ARM.
AWS SAM Pliki YAML Obsługuje szablony modelu aplikacji bezserwerowych platformy AWS (SAM) dla zasobów bezserwerowych.
Kustomize Pliki YAML Obsługuje pliki konfiguracji dostosowywania platformy Kubernetes (Kustomize).
Struktura bezserwerowa Pliki YAML Obsługuje szablony dla platformy bezserwerowej podczas definiowania architektur bezserwerowych.
OpenAPI YAML, pliki JSON Obsługuje pliki specyfikacji interfejsu OpenAPI do definiowania interfejsów API RESTful.

Włączanie skanowania kodu bez agenta w organizacjach usługi Azure DevOps

Aby połączyć organizacje usługi Azure DevOps z Defender dla Chmury i włączyć skanowanie kodu bez agenta, zapoznaj się z instrukcjami w artykule Łączenie organizacji usługi Azure DevOps. Poniższa wizualizacja przedstawia szybki, prosty proces konfiguracji, który przeprowadzi Cię przez każdy krok w celu bezproblemowego dołączania.

Obraz GIF przedstawiający proces instalacji umożliwiający skanowanie kodu bez agenta

Jak działa skanowanie kodu bez agenta

Skanowanie kodu bez agenta działa niezależnie od potoków ciągłej integracji/ciągłego wdrażania. Używa łącznika usługi Azure DevOps do automatycznego skanowania konfiguracji kodu i infrastruktury jako kodu (IaC). Nie musisz modyfikować potoków ani dodawać rozszerzeń. Ta konfiguracja umożliwia szeroką i ciągłą analizę zabezpieczeń w wielu repozytoriach. Wyniki są przetwarzane i wyświetlane bezpośrednio w Microsoft Defender dla Chmury.

Diagram przedstawiający architekturę skanowania kodu bez agenta.

Proces skanowania

Po włączeniu funkcji skanowania kodu bez agenta w ramach łącznika proces skanowania wykonuje następujące kroki:

  1. Odnajdywanie repozytoriów: system automatycznie identyfikuje wszystkie repozytoria połączone za pośrednictwem łącznika usługi Azure DevOps bezpośrednio po utworzeniu łącznika, a następnie co 8 godzin.
  2. Pobieranie kodu: bezpiecznie pobiera najnowszy kod z domyślnej gałęzi (głównej) każdego repozytorium na potrzeby analizy, najpierw po skonfigurowaniu łącznika, a następnie co 3–4 dni.
  3. Analiza: System używa zestawu wbudowanych narzędzi do skanowania zarządzanych i aktualizowanych w Microsoft Defender dla Chmury w celu znalezienia luk w zabezpieczeniach i błędów konfiguracji w kodzie i szablonach IaC.
  4. Przetwarzanie wyników: przetwarza wyniki skanowania za pośrednictwem zaplecza Defender dla Chmury w celu utworzenia zaleceń dotyczących zabezpieczeń z możliwością działania.
  5. Dostarczanie wyników: system pokazuje wyniki jako zalecenia dotyczące zabezpieczeń w Defender dla Chmury, co umożliwia zespołom ds. zabezpieczeń przeglądanie i rozwiązywanie problemów.

Częstotliwość i czas trwania skanowania

  • Częstotliwość skanowania:
    • Stan zabezpieczeń repozytoriów, potoków i połączeń usług jest oceniany podczas tworzenia łącznika, a następnie co 8 godzin.
    • System skanuje kod i szablony infrastruktury jako kodu (IaC) pod kątem luk w zabezpieczeniach po utworzeniu łącznika, a następnie co 3–4 dni.
  • Czas trwania skanowania: skanowanie zwykle kończy się w ciągu 15 do 60 minut, w zależności od rozmiaru i złożoności repozytorium.

Wyświetlanie wyników skanowania i zarządzanie nimi

Po zakończeniu skanowania można uzyskać dostęp do wyników zabezpieczeń w Microsoft Defender dla Chmury.

Wyniki dostępu

  1. Przejdź do karty Zalecenia dotyczące zabezpieczeń w Microsoft Defender dla Chmury.

  2. Przejrzyj listę zaleceń, które obejmują wyniki, takie jak:

  3. Wybierz dowolne zalecenie, aby uzyskać szczegółowe informacje, w tym pliki, których dotyczy problem, poziomy ważności i wskazówki dotyczące korygowania.

Różnica między skanowaniem kodu bez agenta i skanowaniem w potoku

Skanowanie kodu bez agenta i skanowanie w potoku przy użyciu rozszerzenia Microsoft Security DevOps oferują skanowanie zabezpieczeń w usłudze Azure DevOps. Służą one różnym potrzebom, ale współpracują ze sobą. W poniższej tabeli przedstawiono główne różnice, które pomogą Ci wybrać opcję, która odpowiada potrzebom w zakresie zabezpieczeń i programowania.

Aspekt Skanowanie kodu bez agenta Skanowanie w potoku
Dopasowanie przypadku użycia Oferuje szeroki zakres z minimalnymi zakłóceniami dla deweloperów Udostępnia szczegółowe, zintegrowane ze potokiem skanowania z dostosowywalnymi kontrolkami
Zakres i pokrycie skanowania Koncentruje się na skanowaniu luk w zabezpieczeniach infrastruktury jako kodu (IaC) i skanowaniu luk w zabezpieczeniach kodu zaplanowanym co 3–4 dni Oferuje obszerne pokrycie, w tym pliki binarne i obrazy kontenerów, wyzwalane na każdym uruchomieniu potoku
Instalacja i konfiguracja Nie wymaga dalszej konfiguracji po utworzeniu łącznika Wymaga ręcznej instalacji i konfiguracji w każdym potoku ciągłej integracji/ciągłego wdrażania
Integracja potoku Uruchamia potoki niezależnie od potoków ciągłej integracji/ciągłego wdrażania bez modyfikowania przepływów pracy Integruje się w potoku ciągłej integracji/ciągłego wdrażania, co wymaga konfiguracji w każdym potoku
Dostosowywanie skanera Nie można dostosowywać ani selektywnie uruchamiać skanerów Umożliwia dostosowywanie za pomocą określonych skanerów, kategorii, języków, poziomów poufności i narzędzi innych niż Microsoft
Wyniki i opinie Zapewnia dostęp do wyników w Defender dla Chmury Oferuje opinie niemal w czasie rzeczywistym w potoku ciągłej integracji/ciągłego wdrażania, a wyniki są również widoczne w Defender dla Chmury
Kryteria przerwania i niepowodzenia Nie można przerwać kompilacji Można skonfigurować do przerywania kompilacji na podstawie ważności ustaleń zabezpieczeń

Wpływ skalowalności i wydajności

Skanowanie kodu bez agenta pozwala uniknąć tworzenia zasobów w subskrypcji i nie wymaga skanowania podczas procesu potoku. Używa interfejsu API REST usługi Azure DevOps do ściągania metadanych i kodu. Oznacza to, że wywołania interfejsu API są liczone do limitów szybkości usługi Azure DevOps, ale nie są naliczane bezpośrednie koszty transferu danych. Usługa zarządza skanowaniami, aby upewnić się, że pozostają one w granicach szybkości usługi Azure DevOps bez przerywania środowiska deweloperskiego. Ta metoda zapewnia wydajne, wysokowydajne skanowanie między repozytoriami bez wpływu na przepływy pracy metodyki DevOps. Aby uzyskać więcej informacji, zobacz Limity szybkości i użycia usługi Azure DevOps.

Zabezpieczenia danych, zgodność i kontrola dostępu do skanowania kodu bez agenta

usługa skanowania kodu bez agenta Microsoft Defender dla Chmury zapewnia bezpieczną i zgodną obsługę kodu przez zaimplementowanie rygorystycznych środków bezpieczeństwa i prywatności danych:

  • Szyfrowanie danych i kontrola dostępu: system szyfruje wszystkie dane przesyłane przy użyciu standardowych protokołów branżowych. Tylko autoryzowane usługi Defender dla Chmury mogą uzyskiwać dostęp do kodu.
  • Przechowywanie i przechowywanie danych: skanowanie odbywa się w tym samym obszarze geograficznym co łącznik usługi Azure DevOps (USA lub UE), aby zapewnić zgodność z przepisami dotyczącymi ochrony danych. System przetwarza kod tylko podczas skanowania i bezpiecznego usuwania go później bez długoterminowego przechowywania.
  • Dostęp do repozytoriów: usługa generuje bezpieczny token dostępu dla usługi Azure DevOps w celu przeprowadzenia skanowania. Ten token umożliwia pobieranie niezbędnych metadanych i kodu bez tworzenia zasobów w ramach subskrypcji. Tylko Defender dla Chmury składniki mają dostęp, chroniąc integralność danych.
  • Obsługa zgodności: usługa jest zgodna ze standardami prawnymi i zabezpieczeń dotyczącymi obsługi i prywatności danych, zapewniając bezpieczne przetwarzanie i skanowanie kodu klienta zgodnie z regionalnymi wymaganiami dotyczącymi ochrony danych.

Te środki zapewniają bezpieczny, zgodny i wydajny proces skanowania kodu, zachowując prywatność i integralność danych.

Ograniczenia (publiczna wersja zapoznawcza)

W fazie publicznej wersji zapoznawczej obowiązują następujące ograniczenia:

  • Brak skanowania binarnego: system skanuje tylko pliki kodu i infrastruktury jako kodu (IaC).

  • Częstotliwość skanowania: skanuje repozytoria co 3–4 dni.

  • Rozmiar repozytorium: ogranicza skanowanie do repozytoriów poniżej 1 GB.

  • Pokrycie gałęzi: Skanowanie obejmuje tylko gałąź domyślną (główną).

  • Dostosowywanie narzędzi: nie można dostosować narzędzi do skanowania.