Konfigurowanie usługi GitHub Advanced Security dla usług GitHub i Azure DevOps
Usługa GitHub Advanced Security to pakiet funkcji zabezpieczeń i możliwości oferowanych przez usługę GitHub, który pomaga organizacjom identyfikować i ograniczać luki w zabezpieczeniach, zabezpieczać kod i chronić łańcuch dostaw oprogramowania. Składa się z następujących kluczowych składników:
- Skanowanie kodu automatycznie skanuje kod w repozytoriach pod kątem luk w zabezpieczeniach i błędów kodowania przy użyciu technik analizy statycznej udostępnianych przez narzędzia CodeQL lub innych firm. Identyfikuje potencjalne luki w zabezpieczeniach, w tym luki w zabezpieczeniach związane z nieaktualnymi zależnościami i słabymi szyframi.
- Skanowanie wpisów tajnych wykrywa i pomaga skorygować obecność wpisów tajnych, takich jak tokeny interfejsu API i klucze kryptograficzne w repozytoriach i zatwierdzeniach. Automatycznie skanuje zawartość repozytoriów i generuje alerty na podstawie jego odkryć.
- Przeglądy zależności pomagają identyfikować zależności w projektach oprogramowania i zarządzać nimi w oparciu o zależności bezpośrednie i przechodnie pobrane z manifestów pakietów i innych plików konfiguracji. Umożliwiają one ocenę pełnego wpływu zmian na zależności, w tym szczegóły wszystkich wersji narażonych przed scaleniem żądania ściągnięcia.
- Niestandardowe reguły automatycznego klasyfikowania ułatwiają zarządzanie alertami Dependabot na dużą skalę. Dzięki niestandardowym regułom automatycznego klasyfikowania można kontrolować, które alerty mogą być ignorowane i które wymagają zastosowania aktualizacji zabezpieczeń.
- Biuletyny zabezpieczeń zapewniają wyselekcjonowane biuletyny zabezpieczeń i alerty dotyczące luk w zabezpieczeniach wykrytych w zależnościach typu open source.
Usługa GitHub Advanced Security integruje się natywnie z usługami GitHub i Azure DevOps.
GitHub
Usługa GitHub udostępnia funkcje advanced security w repozytoriach prywatnych na podstawie licencjonowania usługi Advanced Security. Po zakupie licencjonowania usługi GitHub Advanced Security dla organizacji można włączyć i wyłączyć te funkcje na poziomie organizacji lub repozytorium. Te funkcje są również trwale włączone w repozytoriach publicznych na GitHub.com bez żadnych wymagań wstępnych licencjonowania i można je wyłączyć tylko w przypadku zmiany widoczności projektu.
Aby skonfigurować usługę GitHub Advanced Security dla organizacji, w prawym górnym rogu GitHub.com wybierz ikonę profilu, a następnie wybierz pozycję Twoje organizacje. Następnie wybierz pozycję Ustawienia, a następnie w sekcji Zabezpieczenia paska bocznego wybierz pozycję Zabezpieczenia i analiza kodu. Spowoduje to wyświetlenie strony, która umożliwia włączenie lub wyłączenie wszystkich funkcji zabezpieczeń i analizy dla repozytoriów w organizacji.
Wpływ zmian konfiguracji zależy od widoczności repozytoriów w organizacji:
- Raportowanie luk w zabezpieczeniach prywatnych — tylko repozytoria publiczne.
- Graf zależności — tylko repozytoria prywatne, ponieważ funkcja jest zawsze włączona dla repozytoriów publicznych.
- Alerty dependabot — wszystkie repozytoria.
- Aktualizacje zabezpieczeń dependabot — wszystkie repozytoria.
- GitHub Advanced Security — tylko repozytoria prywatne, ponieważ usługa GitHub Advanced Security i powiązane funkcje są zawsze włączone dla repozytoriów publicznych.
- Skanowanie wpisów tajnych — repozytoria publiczne i prywatne, w których włączono usługę GitHub Advanced Security. Ta opcja określa, czy alerty skanowania wpisów tajnych dla użytkowników są włączone.
- Skanowanie kodu — repozytoria publiczne i prywatne, w których włączono usługę GitHub Advanced Security.
Można również zarządzać funkcjami zabezpieczeń i analizy dla poszczególnych repozytoriów prywatnych. W tym celu w GitHub.com przejdź do strony głównej repozytorium i wybierz pozycję Ustawienia. W sekcji Zabezpieczenia paska bocznego wybierz pozycję Zabezpieczenia i analiza kodu. W okienku Zabezpieczenia i analiza kodu wyłącz lub włącz poszczególne funkcje. Kontrola usługi GitHub Advanced Security jest wyłączona, jeśli przedsiębiorstwo nie kupiło wymaganych licencji.
Należy pamiętać, że jeśli wyłączysz usługę GitHub Advanced Security, przegląd zależności, alerty skanowania wpisów tajnych dla użytkowników i skanowania kodu są skutecznie wyłączone. W związku z tym wszystkie przepływy pracy, które obejmują skanowanie kodu, zakończy się niepowodzeniem.
Po włączeniu funkcje zabezpieczeń są zintegrowane bezpośrednio z platformą GitHub, zapewniając ciągłe monitorowanie zabezpieczeń i alerty bezpośrednio w interfejsie usługi GitHub. Administratorzy i deweloperzy repozytorium mogą uzyskiwać dostęp do szczegółowych informacji o zabezpieczeniach, rekomendacji i kroków umożliwiających podejmowanie działań w celu rozwiązania zidentyfikowanych luk w zabezpieczeniach oraz wzmocnienia ogólnego poziomu zabezpieczeń projektów oprogramowania. Ponadto organizacje mogą dostosowywać zasady zabezpieczeń, konfigurować zautomatyzowane przepływy pracy i integrować usługę GitHub Advanced Security z innymi narzędziami i usługami zabezpieczeń, aby spełnić określone wymagania dotyczące zabezpieczeń i wymagania dotyczące zgodności.
Azure DevOps
Usługa GitHub Advanced Security dla usługi Azure DevOps docelowa usługa Azure Repos obejmuje następujące elementy:
- Skanowanie wpisów tajnych sprawdza, czy wypychane kod zawiera zatwierdzenia, które uwidaczniają wpisy tajne.
- Skanowanie repozytoriów skanowania wpisów tajnych wyszukuje repozytoria pod kątem uwidocznionych wpisów tajnych.
- Skanowanie zależności identyfikuje bezpośrednie i przejściowe luki w zabezpieczeniach w zależnościach typu open source.
- Skanowanie kodu używa statycznej analizy CodeQL w celu identyfikowania luk w zabezpieczeniach aplikacji na poziomie kodu, takich jak wstrzyknięcie kodu SQL i obejście uwierzytelniania.
Zabezpieczenia zaawansowane można włączyć na poziomie organizacji, projektu lub repozytorium. Umożliwia to automatyczne skanowanie wpisów tajnych w celu ochrony wypychanych i skanowania repozytorium. Skutecznie wszelkie przyszłe wypychania zawierające wpisy tajne są automatycznie blokowane podczas skanowania wpisów tajnych w tle.
Skanowanie zależności to narzędzie do skanowania opartego na potoku. Wyniki są agregowane na repozytorium. Zaleca się dodanie zadania skanowania zależności do wszystkich potoków, które chcesz zeskanować. Aby uzyskać najdokładniejsze wyniki skanowania, pamiętaj, aby dodać zadanie skanowania zależności zgodnie z krokami kompilacji potoku, który kompiluje kod, który chcesz skanować. Możesz dodać zadanie Zaawansowane skanowanie zależności zabezpieczeń (AdvancedSecurity-Dependency-Scanning@1) bezpośrednio do pliku potoku YAML lub wybrać je z asystenta zadań.
Skanowanie kodu to również narzędzie do skanowania opartego na potoku, w którym wyniki są agregowane na repozytorium. Zwykle jest to czasochłonne zadanie kompilacji, dlatego rozważ dodanie zadania skanowania kodu do oddzielnego, sklonowanego potoku głównego potoku produkcyjnego lub utworzenie nowego potoku. W potoku dodaj zadania w następującej kolejności:
- Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
- Niestandardowe kroki kompilacji
- Advanced Security Perform CodeQL Analysis (AdvancedSecurity-Codeql-Analyze@1)
Ponadto należy dołączyć rozdzielaną przecinkami listę języków, które analizujesz przy użyciu zadania Advanced Security Initialize CodeQL. Obsługiwane języki to csharp, cpp, go, java, JavaScript, python, ruby i swift.