Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa GitHub Advanced Security dla usługi Azure DevOps dodaje pakiet funkcji zabezpieczeń usługi GitHub Advanced Security do usługi Azure Repos i obejmuje następujące funkcje:
- Ochrona wypychana skanowania wpisów tajnych: sprawdź, czy wypychane kod zawiera zatwierdzenia, które uwidaczniają wpisy tajne, takie jak poświadczenia
- Skanowanie repozytorium skanowania wpisów tajnych: przeskanuj repozytorium i poszukaj ujawnionych wpisów tajnych, które zostały przypadkowo zatwierdzone
- Skanowanie zależności — wyszukiwanie znanych luk w zabezpieczeniach w zależnościach typu open source (bezpośrednie i przechodnie)
- Skanowanie kodu — używanie aparatu analizy statycznej CodeQL do identyfikowania luk w zabezpieczeniach aplikacji na poziomie kodu, takich jak wstrzyknięcie kodu i obejście uwierzytelniania
Możesz zapewnić ochronę zabezpieczeń zaawansowanych w przedsiębiorstwie z elastycznością umożliwiającą odpowiedni poziom ochrony repozytoriów. Usługa GitHub Advanced Security dla usługi Azure DevOps jest dostępna jako usługa GitHub Secret Protection dla usług Azure DevOps i GitHub Code Security for Azure DevOps.
Ochrona tajemnic obejmuje następujące funkcje:
- Ochrona przed niepożądanym przesyłem, aby zapobiec wyciekom informacji poufnych zanim do nich dojdzie.
- Alerty skanowania tajnych informacji z powiadomieniami, aby wykryć istniejące ujawnienia, zanim staną się problematyczne
- Omówienie zabezpieczeń, które zapewnia wgląd w poziom ryzyka i ochrony zabezpieczeń organizacji
Zabezpieczenia kodu obejmują następujące funkcje:
- Powiadomienia o zależnościach, aby znaleźć luki w zabezpieczeniach w zależnościach open source
- Skanowanie codeQL w celu wykrywania luk w zabezpieczeniach bezpośrednio w kodzie
- Ustalenia dotyczące zabezpieczeń narzędzi innych firm
- Omówienie zabezpieczeń, które zapewnia wgląd w poziom ryzyka i ochrony zabezpieczeń organizacji
Usługa GitHub Advanced Security dla usługi Azure DevOps jest dostępna tylko dla usług Azure DevOps Services, a w szczególności dla repozytoriów Git kodu.
Usługa GitHub Advanced Security dla usługi Azure DevOps współpracuje z usługą Azure Repos. Aby użyć GitHub Advanced Security z repozytoriami GitHub, zobacz GitHub Advanced Security.
Wymagania wstępne
| Kategoria | Wymagania |
|---|---|
| uprawnienia | — Aby wyświetlić podsumowanie wszystkich alertów dla repozytorium: Współautor uprawnienia dla repozytorium. — Aby odrzucić alerty w usłudze Advanced Security, wymagane są uprawnienia administratora projektu. — Aby zarządzać uprawnieniami w ramach zabezpieczeń zaawansowanych: członek grupy Administratorzy Kolekcji Projektów lub uprawnienie Zarządzanie ustawieniami zabezpieczeń zaawansowanych ustawione na Zezwalaj. |
Aby uzyskać więcej informacji na temat uprawnień zabezpieczeń zaawansowanych, zobacz Zarządzanie uprawnieniami zabezpieczeń zaawansowanych.
Dodatkowe wymagania wstępne dotyczące własnych agentów
Jeśli Twoja organizacja używa samodzielnie hostowanych agentów, dodaj następujące adresy URL do listy dozwolonych, aby zadanie skanowania zależności mogło pobierać dane o doradztwie dotyczącym luk w zabezpieczeniach. Aby uzyskać więcej informacji, zobacz Dozwolone adresy IP i adresy URL domen.
| Adres URL domeny | opis |
|---|---|
https://governance.dev.azure.com |
W przypadku organizacji korzystających z domeny dev.azure.com w celu uzyskania dostępu do wystąpienia metodyki DevOps |
https://dev.azure.com |
W przypadku organizacji korzystających z domeny dev.azure.com w celu uzyskania dostępu do wystąpienia metodyki DevOps |
https://advsec.dev.azure.com |
W przypadku organizacji korzystających z domeny dev.azure.com w celu uzyskania dostępu do wystąpienia metodyki DevOps |
https://{organization_name}.governance.visualstudio.com |
W przypadku organizacji używających domeny {organization_name}.visualstudio.com w celu uzyskania dostępu do wystąpienia metodyki DevOps |
https://{organization_name}.visualstudio.com |
W przypadku organizacji używających domeny {organization_name}.visualstudio.com w celu uzyskania dostępu do wystąpienia metodyki DevOps |
https://{organization_name}.advsec.visualstudio.com |
W przypadku organizacji używających domeny {organization_name}.visualstudio.com w celu uzyskania dostępu do wystąpienia metodyki DevOps |
Uruchom zgodną wersję środowiska uruchomieniowego .NET (obecnie .NET 8.x). Jeśli zgodna wersja nie jest obecna na agencie, zadanie kompilacji skanowania zależności pobiera platformę .NET.
Upewnij się, że pakiet CodeQL jest zainstalowany w pamięci podręcznej narzędzi agenta na agencie. Możesz użyć zmiennej
enableAutomaticCodeQLInstall: truew zadaniu potokuAdvancedSecurity-Codeql-Init@1dla potoków YAML lub zaznaczyć pole wyboruEnable automatic CodeQL detection and installationdla potoków klasycznych. Alternatywnie, aby uzyskać instrukcje instalacji ręcznej, zobacz Skanowanie kodu dla usługi GitHub Advanced Security dla usługi Azure DevOps.
Włączanie zabezpieczeń zaawansowanych usługi GitHub
Zabezpieczenia zaawansowane można włączyć na poziomie organizacji, projektu lub repozytorium. Aby uzyskać dostęp do poszczególnych narzędzi skanowania i wyników, należy najpierw włączyć zabezpieczenia zaawansowane. Po włączeniu usługi Advanced Security wszelkie przyszłe wypychania zawierające wpisy tajne do repozytorium z włączonymi zasadami są blokowane, a skanowanie wpisów tajnych repozytorium odbywa się w tle.
Dołączanie na poziomie repozytorium
- Przejdź do ustawień projektu usługi Azure DevOps.
- Wybierz pozycję Repozytoria>repozytoriów.
- Wybierz repozytorium, dla którego chcesz włączyć usługę Advanced Security.
- Wybierz pozycję Włącz i rozpocznij rozliczenia, aby aktywować zabezpieczenia zaawansowane. Ikona tarczy jest teraz wyświetlana w widoku repozytorium dla dowolnego repozytorium z włączonym zabezpieczeniami zaawansowanymi.
Dołączanie na poziomie projektu
- Przejdź do ustawień projektu usługi Azure DevOps.
- Wybierz pozycję Repozytoria.
- Wybierz kartę Ustawienia.
- Wybierz pozycję Włącz wszystko i zobacz oszacowanie liczby aktywnych zatwierdzania dla projektu.
- Wybierz pozycję Rozpocznij rozliczenia , aby aktywować zabezpieczenia zaawansowane dla każdego istniejącego repozytorium w projekcie.
- Opcjonalnie wybierz pozycję Automatycznie włącz zabezpieczenia zaawansowane dla nowych repozytoriów , aby wszystkie nowo utworzone repozytoria miały włączone zabezpieczenia zaawansowane po utworzeniu.
Dołączanie na poziomie organizacji
- Przejdź do ustawień organizacji usługi Azure DevOps.
- Wybierz Repozytoria.
- Wybierz pozycję Włącz wszystko i zobacz szacowanie liczby aktywnych zatłoczeń w organizacji.
- Wybierz pozycję Rozpocznij rozliczenia , aby aktywować zabezpieczenia zaawansowane dla każdego istniejącego repozytorium w każdym projekcie w organizacji.
- Opcjonalnie wybierz pozycję Automatycznie włącz zabezpieczenia zaawansowane dla nowych repozytoriów , aby wszystkie nowo utworzone projekty miały włączone zabezpieczenia zaawansowane po utworzeniu.
Konfigurowanie skanowania wpisów tajnych
Funkcja ochrony wypychanych i skanowania repozytoriów wpisów tajnych jest automatycznie włączana po włączeniu usługi Advanced Security. Możesz włączyć lub wyłączyć ochronę wypychaną wpisu tajnego ze strony ustawień repozytorium.
Skanowanie tajnych wpisów w repozytorium jest automatycznie uruchamiane po włączeniu Zaawansowanych zabezpieczeń dla wybranego repozytorium.
Konfigurowanie skanowania zależności
Możesz włączyć ochronę wpisów tajnych lub zabezpieczenia kodu na poziomie organizacji, projektu lub repozytorium.
Dołączanie na poziomie repozytorium
- Przejdź do ustawień projektu usługi Azure DevOps.
- Wybierz pozycję Repozytoria>repozytoriów.
- Wybierz repozytorium, dla którego chcesz włączyć usługę Advanced Security.
- Przełącz Ochronę tajemnic lub Zabezpieczenie kodu.
- Wybierz pozycję Rozpocznij rozliczenia. Ikona tarczy jest teraz wyświetlana w widoku repozytorium dla dowolnego repozytorium z włączonym produktem.
- Aby opcjonalnie włączyć domyślną konfigurację skanowania zależności, wybierz pozycję Opcje i włącz domyślne ustawienie skanowania zależności.
Dołączanie na poziomie projektu
- Przejdź do ustawień projektu usługi Azure DevOps.
- Wybierz pozycję Repozytoria.
- Wybierz kartę Ustawienia.
- Wybierz Włącz wszystko i zobacz szacunkową liczbę aktywnych uczestników na produkt w Twoim projekcie.
- Wybierz swoje preferowane produkty Ochrony Tajemnic lub Bezpieczeństwa Kodów.
- Wybierz Rozpocznij rozliczanie, aby aktywować Ochronę sekretów i/lub Bezpieczeństwo kodu dla każdego istniejącego repozytorium w projekcie.
- Opcjonalnie można włączyć opcję Automatycznie włącz zabezpieczenia zaawansowane dla nowych repozytoriów, aby wszystkie nowo utworzone repozytoria miały włączone Ochronę Tajemnic lub Bezpieczeństwo Kodów zaraz po utworzeniu.
Dołączanie na poziomie organizacji
- Przejdź do ustawień organizacji usługi Azure DevOps.
- Wybierz Repozytoria.
- Wybierz Włącz wszystko i zobacz szacowaną liczbę aktywnych osób zaangażowanych dla każdego produktu w organizacji.
- Wybierz swoje preferowane produkty Ochrony Tajemnic lub Bezpieczeństwa Kodów.
- Wybierz pozycję Rozpocznij rozliczenia , aby aktywować zabezpieczenia zaawansowane dla każdego istniejącego repozytorium w każdym projekcie w organizacji.
- Opcjonalnie przełącz automatyczne włączanie zaawansowanych zabezpieczeń dla nowych repozytoriów, aby wszystkie nowo utworzone projekty miały włączoną ochronę tajnych wpisów lub zabezpieczenia kodu przy tworzeniu.
Konfigurowanie skanowania wpisów tajnych
Ochrona skanowania tajnych informacji podczas wypychania oraz skanowanie repozytorium są automatycznie włączane po uruchomieniu funkcji Ochrony Tajnych Informacji. Możesz włączyć lub wyłączyć ochronę wypychaną wpisu tajnego ze strony ustawień repozytorium.
Jak wspomniano, skanowanie repozytorium w poszukiwaniu sekretów jest automatycznie uruchamiane po włączeniu Ochrony Tajemnic dla wybranego repozytorium.
Konfigurowanie skanowania zależności
Aby uzyskać dostęp do funkcji skanowania zależności, potrzebujesz produktu Zabezpieczenia kodu włączonego dla repozytorium.
Skanowanie zależności to narzędzie do skanowania opartego na potoku. Wyniki są agregowane na repozytorium. Do skanowania gałęzi domyślnej można użyć ustawienia "Skanuj pod kątem zależności podatnych na zagrożenia" na stronie ustawień repozytorium. Spowoduje to automatyczne dołączenie zadania skanowania zależności do dowolnego pipeline'u przeznaczonego dla gałęzi domyślnej lub dowolnego budowania żądania ściągnięcia przeznaczonego dla gałęzi domyślnej.
Aby uzyskać bardziej zaawansowaną konfigurację lub jeśli chcesz skanować wszystkie gałęzie, zalecamy dodanie zadania skanowania zależności do wszystkich skanowanych potoków. Aby uzyskać więcej informacji, zobacz Skanowanie zależności dla usługi GitHub Advanced Security dla usługi Azure DevOps .
Konfigurowanie skanowania kodu
Aby uzyskać dostęp do funkcji skanowania kodu, potrzebujesz produktu Zabezpieczenia kodu włączonego dla repozytorium.
Skanowanie kodu to również narzędzie do skanowania opartego na potoku, w którym wyniki są agregowane na repozytorium.
Napiwek
Skanowanie kodu może być bardziej czasochłonnym zadaniem kompilacji, dlatego zalecamy dodanie zadania skanowania kodu do osobno sklonowanego potoku produkcyjnego lub utworzenia nowego potoku.
Dodaj zadania w następującej kolejności:
- Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
- Niestandardowe kroki kompilacji
- Zaawansowane zabezpieczenia Wykonaj analizę CodeQL (AdvancedSecurity-Codeql-Analyze@1)
Ponadto określ język, który analizujesz w Initialize CodeQL zadaniu. Listę rozdzielaną przecinkami można użyć do analizowania wielu języków jednocześnie. Obsługiwane języki to csharp, cpp, go, java, javascript, python, ruby, swift. Jeśli używasz własnych agentów, możesz również dodać zmienną enableAutomaticCodeQLInstall: true , aby automatycznie zainstalować najnowsze bity CodeQL dla agenta.
Oto przykładowy potok początkowy:
trigger:
- main
pool:
# Additional hosted image options are available: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted#software
vmImage: ubuntu-latest
steps:
- task: AdvancedSecurity-Codeql-Init@1
inputs:
languages: "java"
# Supported languages: csharp, cpp, go, java, javascript, python, ruby, swift
# You can customize the initialize task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-init-v1?view=azure-pipelines
# If you're using a self-hosted agent to run CodeQL, use `enableAutomaticCodeQLInstall` to automatically use the latest CodeQL bits on your agent:
enableAutomaticCodeQLInstall: true
# Add your custom build steps here
# - Ensure that all code to be scanned is compiled (often using a `clean` command to ensure you're building from a clean state).
# - Disable the use of any build caching mechanisms as this can interfere with CodeQL's ability to capture all the necessary data during the build.
# - Disable the use of any distributed/multithreaded/incremental builds as CodeQL needs to monitor executions of the compiler to construct an accurate representation of the application.
# - For dependency scanning, ensure you have a package restore step for more accurate results.
# If you had a Maven app:
# - task: Maven@4
# inputs:
# mavenPomFile: 'pom.xml'
# goals: 'clean package'
# publishJUnitResults: true
# testResultsFiles: '**/TEST-*.xml'
# javaHomeOption: 'JDKVersion'
# jdkVersionOption: '1.17'
# mavenVersionOption: 'Default'
# Or a general script:
# - script: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- task: AdvancedSecurity-Dependency-Scanning@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-dependency-scanning-v1?view=azure-pipelines
- task: AdvancedSecurity-Codeql-Analyze@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-analyze-v1?view=azure-pipelines
Ponadto określ język, który analizujesz w Initialize CodeQL zadaniu. Jeśli określony język to swift, wymagane są niestandardowe kroki kompilacji.
Napiwek
- Służy
javado analizowania kodu napisanego w języku Java, Kotlin lub obu tych językach. - Służy
javascriptdo analizowania kodu napisanego w języku JavaScript, TypeScript lub obu tych językach.
Jeśli korzystasz z własnego agenta, zaznacz Enable automatic CodeQL detection and installation, aby automatycznie użyć najnowszych komponentów CodeQL na agencie, jeśli nie zainstalowałeś ręcznie najnowszego pakietu CodeQL do pamięci podręcznej narzędzi agenta.
Aby wygenerować alerty, uruchom pierwsze skanowanie przy użyciu potoku z uwzględnionych zadań skanowania kodu.
Konfigurowanie adnotacji żądania ściągnięcia
Zarówno w przypadku skanowania zależności, jak i skanowania kodu adnotacje są automatycznie konfigurowane dla żądań ściągnięcia, w których zasady weryfikacji kompilacji mają zastosowanie do zadań skanowania zależności i/lub skanowania kodu zawartych w potoku. Aby uzyskać więcej informacji na temat konfigurowania zasad weryfikacji kompilacji, zobacz Kompilowanie weryfikacji.
Adnotacje żądań ściągnięcia wymagają również skanowania zaawansowanego zabezpieczeń w gałęzi domyślnej i gałęzi docelowej przed skanowaniem gałęzi źródłowej (żądania ściągnięcia). Aby uzyskać więcej informacji na temat rozwiązywania alertów dotyczących gałęzi żądań ściągnięcia, zobacz Zarządzanie alertami skanowania zależności dla żądań ściągnięcia i Zarządzanie alertami skanowania kodu w żądaniach ściągnięcia.
Aby wyłączyć zabezpieczenia zaawansowane, wszystkie alerty i ich stany są zachowywane na karcie Zabezpieczenia zaawansowane, aby były dostępne przy następnym ponownym włączeniu zabezpieczeń zaawansowanych dla repozytorium.
Powiązane artykuły
- Alerty skanowania kodu dla usługi GitHub Advanced Security dla usługi Azure DevOps
- Alerty skanowania zależności dla usługi GitHub Advanced Security dla usługi Azure DevOps
- Alerty skanowania wpisów tajnych dla usługi GitHub Advanced Security dla usługi Azure DevOps
- Uprawnienia usługi GitHub Advanced Security dla usługi Azure DevOps
- Rozliczenia usługi GitHub Advanced Security dla usługi Azure DevOps