Automatyczne zabezpieczenia

Ukończone

W tym miejscu omówimy niektóre sposoby automatyzowania kontroli zabezpieczeń w repozytorium dostępnym dla administratorów repozytorium GitHub.

Wykrywanie i naprawianie nieaktualnych zależności z lukami w zabezpieczeniach

W dzisiejszych czasach praktycznie każdy projekt jest uzależniony od pakietów zewnętrznych. Chociaż te składniki mogą oferować znaczne korzyści w produktywności, mogą one wprowadzać inne zagrożenia bezpieczeństwa. Bycie na bieżąco z tymi pakietami i ich stanem luk w zabezpieczeniach może być czasochłonne, zwłaszcza biorąc pod uwagę, jak każda zależność może mieć własne zależności, które mogą stać się trudne do śledzenia i konserwacji. Na szczęście usługa GitHub udostępnia funkcje, które zmniejszają obciążenie.

Wykresy zależności repozytorium

Jedną z domyślnych funkcji, które zawiera każde repozytorium, są grafy zależności. Usługa GitHub skanuje typowe manifesty pakietów, takie jak package.json, requirements.txt i inne. Te wykresy umożliwiają właścicielom projektów cyklicznego śledzenie wszystkich zależności, na których opiera się ich projekt.

Zrzut ekranu przedstawiający wykres zależności usługi GitHub.

Aby uzyskać listę obsługiwanych manifestów zależności, zobacz About the dependency graph (Informacje o grafie zależności).

Alerty Dependabot

Nawet z wizualnym wykresem zależności, wciąż może być trudne pozostanie na bieżąco z najnowszymi zagadnieniami dotyczącymi bezpieczeństwa dla każdej zależności, jaką ma projekt. Aby zmniejszyć to obciążenie, usługa GitHub udostępnia alerty Dependabot, które obserwują wykresy zależności. Następnie porównywane są wersje docelowe z wersjami znajdującymi się na znanych listach luk w zabezpieczeniach. W przypadku wykrycia ryzyka dany projekt jest powiadamiany. Dane wejściowe analizy pochodzą z biuletynów zabezpieczeń usługi GitHub.

Zrzut ekranu przedstawiający alerty dependabot dla zależności podatnych na zagrożenia.

Zautomatyzowane aktualizacje zależności za pomocą funkcji Dependabot

Alert dotyczący zależności może prowadzić do tego, że współautor projektu wycofuje odwołanie do zalecanej wersji pakietu i utworzy żądanie ściągnięcia na potrzeby weryfikacji. Czy nie byłoby wspaniale, gdyby istniał sposób na zautomatyzowanie tego wysiłku? Mamy dobrą wiadomość! Dependabot to robi. Skanuje w poszukiwaniu alertów zależności i tworzy żądania ściągnięcia, aby współautor mógł walidować aktualizację i scalać żądanie.

Aby dowiedzieć się więcej na temat elastyczności narzędzia Dependabot, zobacz Konfigurowanie aktualizacji zabezpieczeń dependabota.

Zautomatyzowane skanowanie kodu

Podobnie jak funkcja Dependabot, która skanuje repozytorium pod kątem alertów zależności, Ty też możesz użyć skanowania kodu do analizowania i znajdywania luk w zabezpieczeniach oraz błędów w kodzie w repozytorium GitHub. Skanowanie kodu ma kilka korzyści. Służy do znajdowania, klasyfikowania i określania priorytetów poprawek istniejących problemów lub potencjalnych luk w zabezpieczeniach. Jest ona również użyteczna przy zapobieganiu wprowadzania do kodu nowych problemów dotyczących zabezpieczeń.

Inną zalety skanowania kodu jest możliwość korzystania z aparatu CodeQL. CodeQL umożliwia wykonywanie zapytań dotyczących kodu jako danych, co umożliwia tworzenie zapytań niestandardowych lub używanie zapytań obsługiwanych przez społeczność open source. Skanowanie kodu zapewnia swobodę dostosowywania i konserwacji sposobu skanowania kodu w repozytorium.

Alerty i przepływy pracy skanowania kodu można włączyć na karcie zabezpieczeń repozytorium GitHub:

Zrzut ekranu przedstawiający listę zasad, porad i alertów z linkami do dodatkowych informacji.

Dowiedz się więcej o skanowaniu kodu i kodzieQL.

Skanowanie wpisów tajnych

Kolejną funkcją zautomatyzowanego skanowania w repozytorium GitHub jest skanowanie wpisów tajnych. Podobnie jak w przypadku poprzednich funkcji skanowania zabezpieczeń, funkcja skanowania wpisów tajnych wyszukuje znane wpisy tajne lub poświadczenia przekazywane w ramach repozytorium. To skanowanie jest przeprowadzane, aby zapobiec fałszywym zachowaniom i zabezpieczyć integralność poufnych danych. Domyślnie skanowanie wpisów tajnych odbywa się w repozytoriach publicznych i można włączyć skanowanie wpisów tajnych w repozytoriach prywatnych przez administratorów repozytoriów lub właścicieli organizacji.

Gdy skanowanie wpisów tajnych wykryje zestaw poświadczeń, usługa GitHub powiadamia dostawcę usług, który wydał wpis tajny. Dostawca usług weryfikuje poświadczenia. Następnie decyduje, czy powinny one odwołać wpis tajny, wydać nowy wpis tajny lub skontaktować się bezpośrednio z Tobą. Akcja zależy od powiązanych czynników ryzyka dla Ciebie lub dostawcy usług.

Dowiedz się więcej o skanowaniu wpisów tajnych dla repozytoriów publicznych i prywatnych.