Zarządzanie funkcjami i alertami usługi GitHub Advanced Security
Teraz, po skonfigurowaniu zabezpieczeń projektu, wystarczy monitorować funkcje i alerty usługi Advanced Security GitHub oraz zarządzać nimi.
W tej lekcji dowiesz się, jak monitorować zagrożenia bezpieczeństwa w projekcie przy użyciu przeglądu zabezpieczeń . Dowiesz się również, jak używać punktów końcowych GitHub Advanced Security do zarządzania funkcjami zabezpieczeń i alertami.
Korzystaj z omówienia zabezpieczeń
Przegląd zabezpieczeń jest dostępny na karcie Zabezpieczenia i jakość dla organizacji i repozytoriów. Można go użyć, aby uzyskać ogólny widok stanu zabezpieczeń organizacji lub zidentyfikować repozytoria, które wymagają uwagi.
- Poziom organizacji: Przedstawia zagregowane i specyficzne dla repozytoriów informacje o zabezpieczeniach dla repozytoriów należących do organizacji. Informacje można również filtrować według funkcji zabezpieczeń.
- Poziom zespołu: Wyświetla informacje o zabezpieczeniach specyficzne dla repozytoriów, w których zespół ma uprawnienia administratora.
- Poziom repozytorium: Pokazuje, które funkcje zabezpieczeń są włączone dla repozytorium i udostępnia opcje konfigurowania dostępnych funkcji, które nie są obecnie włączone.
Dzięki swoim interaktywnym interfejsom i możliwościom filtrowania przegląd zabezpieczeń obsługuje zarówno szeroką, jak i docelową analizę zabezpieczeń.
Na przykład można go użyć do:
- Monitorowanie wdrażania funkcji zabezpieczeń w całej organizacji.
- Śledzenie wdrażania przez poszczególne zespoły podczas wdrażania GitHub Advanced Security.
- Przejrzyj alerty określonego typu lub poziomu ważności we wszystkich repozytoriach.
Korzystanie z punktów końcowych zabezpieczeń zaawansowanych GitHub
Poniższa tabela zawiera podsumowanie dostępnych punktów końcowych interfejsu API dla każdej funkcji zabezpieczeń zaawansowanych GitHub.
| Funkcja | Punkty końcowe | Dokumentacja |
|---|---|---|
| Skanowanie kodu | Pobieranie i aktualizowanie alertów skanowania kodu. Tworzenie zautomatyzowanych raportów dla organizacji. Przekazywanie wyników analizy CodeQL w trybie offline. |
API skanowania kodu |
| Skanowanie tajne | Włącz lub wyłącz skanowanie w poszukiwaniu sekretów w repozytoriach. Pobieranie i aktualizowanie alertów skanowania wpisów tajnych. |
API repozytoriów API skanowania sekretów |
| Przegląd zależności | Włącz lub wyłącz alerty zależności i graf zależności. Włączanie lub wyłączanie poprawek zabezpieczeń. Wyświetlanie informacji o zależnościach. |
API repozytoriów GraphQL API |
Skonfiguruj uprawnienia GITHUB_TOKEN
Jeśli używasz GitHub Actions do automatyzacji przepływów pracy związanych z bezpieczeństwem, ważne jest skonfigurowanie uprawnień przyznanych elementowi GITHUB_TOKEN, używanemu do uwierzytelnionych wywołań API.
Poniższa tabela zawiera podsumowanie domyślnych uprawnień.
| Zakres | Dostęp domyślny (liberalny) | Dostęp domyślny (ograniczony) | Maksymalny dostęp z poziomu sforkowanych repozytoriów |
|---|---|---|---|
| działania | odczyt/zapis | żaden | odczyt |
| Czeki | odczyt/zapis | żaden | odczyt |
| treść | odczyt/zapis | odczyt | odczyt |
| Wdrożenia | odczyt/zapis | żaden | odczyt |
| token identyfikacyjny | odczyt/zapis | żaden | odczyt |
| Problemy | odczyt/zapis | żaden | odczyt |
| metadane | odczyt | odczyt | odczyt |
| pakiety | odczyt/zapis | żaden | odczyt |
| żądania ściągnięcia | odczyt/zapis | żaden | odczyt |
| projekty repozytorium | odczyt/zapis | żaden | odczyt |
| zdarzenia zabezpieczeń | odczyt/zapis | żaden | odczyt |
| Statusy | odczyt/zapis | żaden | odczyt |
Możesz zmodyfikować uprawnienia przyznane GITHUB_TOKEN w poszczególnych plikach przepływu pracy.
- Jeśli uprawnienia domyślne są restrykcyjne, może być konieczne zwiększenie uprawnień, aby przepływy pracy mogły zakończyć się pomyślnie.
- Jeśli uprawnienia domyślne są permissive, należy usunąć niepotrzebne uprawnienia.
Najlepszym rozwiązaniem w zakresie zabezpieczeń jest zawsze przyznawanie najniższych wymaganych uprawnień .
Możesz również użyć permissions klucza, aby skonfigurować uprawnienia dla całego przepływu pracy lub poszczególnych zadań. Gdy określono permissions, wszystkie nieokreślone uprawnienia są ustawiane na none, z wyjątkiem zakresu metadata, który zawsze ma dostęp read.
name: Create issue on commit
on:
- push
jobs:
create_commit:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Create issue using REST API
run: |
curl --request POST \
--url http(s)://[hostname]/api/v3/repos/${{ github.repository }}/issues \
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
--header 'content-type: application/json' \
--data '{
"title": "Automated issue for commit: ${{ github.sha }}",
"body": "This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**.\n\nThe commit hash was: _${{ github.sha }}_."
}' \
--fail
W poprzednim przykładzie dostęp do zapisu jest przyznawany zakresowi problemów dla pojedynczego zadania.
Możesz również użyć klawisza permissions, aby dodać lub usunąć uprawnienia do odczytu dla przepływów pracy uruchamianych z repozytoriów rozwidlonych. Zazwyczaj nie można przyznać uprawnień do zapisu, chyba że w ustawieniach usługi GitHub Actions jest włączona opcja Wyślij tokeny z uprawnieniami do zapisu do przepływów pracy z żądań pull request.
Widoki wykrywania, naprawy i zapobiegania
Przegląd zabezpieczeń organizuje wgląd w trzy widoki podstawowe.
| View | Purpose |
|---|---|
| Wykrywanie | Monitoruj, gdzie wykrywane są podatności, sekrety i ryzyka związane z zależnościami. |
| Korygowanie | Śledź, jak alerty są naprawiane, priorytetyzowane i rozwiązywane w repozytoriach. |
| Profilaktyka | Mierz, jak podatności są powstrzymywane, zanim trafią do chronionych gałęzi. |
Widok Zapobieganie pomaga organizacjom ocenić, jak skutecznie mechanizmy kontroli zabezpieczeń zatrzymują ryzykowne zmiany przed ich scaleniem.
Oto kilka przykładów:
- Luki w zabezpieczeniach naprawione w trakcie przeglądu pull requestu.
- Problemy wykryte podczas skanowania kodu naprawiono przed scaleniem.
- Działanie naprawcze funkcji Copilot Autofix.
- Zdarzenia ochrony wypychania skanowania wpisów tajnych.
- Zapobieganie zagrożeniom zależności.
Interpretowanie alertów między funkcjami zabezpieczeń
Przegląd zabezpieczeń agreguje informacje z wielu funkcji zabezpieczeń GitHub, aby ułatwić zespołom zrozumienie ryzyka organizacyjnego.
Typowe źródła alertów obejmują:
- Alerty skanowania kodu: Luki w zabezpieczeniach i niezabezpieczone wzorce kodowania wykryte przez skanery CodeQL lub innych firm.
- Alerty skanowania sekretów: Ujawnione poświadczenia, klucze interfejsu API i tokeny.
- Alerty Dependabot: Podatne zależności i ryzyka związane z pakietami.
- Przegląd zależności: Zagrożenia wynikające ze zmian zależności w pull requestach.
Zespoły mogą filtrować alerty według:
- Severity
- Repozytorium
- Typ funkcji
- Zakres czasu
- Odpowiedzialność zespołu
- Stan alertu
Te filtry obsługują zarówno analizę w całej organizacji, jak i ukierunkowane badania.
Śledzenie działań naprawczych i informacje o automatycznych poprawkach
Omówienie zabezpieczeń pomaga również monitorować postęp korygowania.
Zespoły ds. zabezpieczeń mogą śledzić:
- Alerty pull requestów naprawione przed scaleniem.
- Trendy działań naprawczych.
- Żądania ściągnięcia wygenerowane przez Copilot Autofix.
- Współczynniki zakończenia walidacji i scalania.
- Repozytoria z cyklicznymi nierozwiązanymi alertami.
Te szczegółowe informacje ułatwiają organizacjom identyfikowanie wąskich gardeł, określanie priorytetów repozytoriów wysokiego ryzyka i mierzenie skuteczności korygowania.
Wgląd w zdarzenia obejścia i sygnały nadzoru
Przegląd zabezpieczeń zawiera również metryki ładu i zasad w całej organizacji.
Oto kilka przykładów:
- Zdarzenia ominięcia ochrony push.
- Aktywność egzekwowania ochrony gałęzi.
- Trendy odrzucania alertów.
- Aktywność dziennika audytu.
- Metryki stosowania zasad i ich zakresu.
Te metryki pomagają administratorom zrozumieć:
- Gdzie użytkownicy pomijają zabezpieczenia.
- Czy zasady wymagają uściślenia.
- Czy mechanizmy kontroli zabezpieczeń są stale wymuszane.
W połączeniu z dziennikami inspekcji, zestawami reguł i zasadami ochrony gałęzi te szczegółowe informacje obsługują raportowanie zgodności, przeglądy operacyjne i ciągłe ulepszanie zabezpieczeń.
Role i obowiązki zabezpieczeń
Pomyślne wdrożenie GitHub Advanced Security wymaga jasno określonego zakresu odpowiedzialności w zespołach programistycznych, bezpieczeństwa i administracyjnych.
Różne role korzystają z funkcji GitHub Advanced Security w całym cyklu życia tworzenia oprogramowania i reagowania na incydenty.
| Odpowiedzialność | Deweloperzy | Inżynierowie ds. zabezpieczeń | Repozytorium/ Administratorzy organizacji |
|---|---|---|---|
| Przeglądanie i naprawianie alertów skanowania kodu | Yes | Yes | No |
| Przeglądanie alertów skanowania wpisów tajnych | Yes | Yes | Yes |
| Zaktualizuj podatne zależności | Yes | Yes | No |
| Weryfikować żądania pull request funkcji Copilot Autofix | Yes | Yes | No |
| Analiza i priorytetyzacja alertów bezpieczeństwa | No | Yes | Yes |
| Konfigurowanie zasad zabezpieczeń i zestawów reguł | No | Yes | Yes |
| Zarządzanie zasadami ochrony gałęzi i przepływu pracy | No | No | Yes |
| Monitorowanie pulpitów nawigacyjnych przeglądu zabezpieczeń | No | Yes | Yes |
| Przejrzyj dzienniki audytu i sygnały nadzoru | No | Yes | Yes |
| Konfigurowanie ustawień zabezpieczeń repozytorium i organizacji | No | No | Yes |
| Koordynowanie przepływów pracy reagowania na zdarzenia | No | Yes | Yes |
| Zatwierdzaj wyjątki od zasad lub je odrzucaj | No | Yes | Yes |
Przykładowa własność przepływu pracy
Typowy przepływ pracy GitHub Advanced Security obejmuje wiele ról, które współpracują ze sobą.
- Deweloper otrzymuje alert dotyczący skanowania kodu w pull requeście.
- Inżynier zabezpieczeń przegląda ważność alertu i zaleca podejście korygujące.
- Copilot Autofix sugeruje aktualizację pull requestu.
- Deweloper weryfikuje poprawkę i aktualizuje kod w razie potrzeby.
- Administratorzy repozytorium wymuszają ochronę gałęzi i wymagane kontrole przed scaleniem.
- Zespoły ds. zabezpieczeń przeglądają dzienniki inspekcji i trendy korygowania za pomocą przeglądu zabezpieczeń.
Jasne określenie zakresu odpowiedzialności pomaga organizacjom skalować wdrażanie rozwiązania GitHub Advanced Security przy jednoczesnym zachowaniu ładu, odpowiedzialności i spójności operacyjnej.