Automatyczne zabezpieczenia
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
Praktycznie każdy projekt w dzisiejszych czasach oznacza korzystanie z 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 statusem podatności może być czasochłonne, szczególnie biorąc pod uwagę, że każda z zależności może mieć swoje własne zależności, co może sprawić, że śledzenie i utrzymanie stanie się trudne. 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.txti inne. Te wykresy umożliwiają właścicielom projektów cyklicznego śledzenie wszystkich zależności, na których opiera się ich projekt.
Aby uzyskać listę obsługiwanych manifestów zależności, zobacz Informacje o grafie zależności.
Alerty dependabot
Nawet w przypadku wizualnego grafu zależności, nadal może być przytłaczające, aby być na bieżąco z najnowszymi kwestiami dotyczącymi zabezpieczeń dla każdej zależności projektu. Aby zmniejszyć to obciążenie, usługa GitHub udostępnia alerty Dependabot, które monitorują twoje wykresy zależności. Następnie porównuje wersje docelowe z wersjami na znanych listach luk w zabezpieczeniach. Po wykryciu ryzyka projekt jest powiadamiany. Dane wejściowe analizy pochodzą z biuletynów zabezpieczeń GitHub.
Automatyczne aktualizacje zależności za pomocą narzędzia Dependabot
Alert dotyczący zależności może prowadzić do tego, że współautor projektu aktualizuje odwołanie do problematycznego pakietu do zalecanej wersji i tworzy żądanie scalenia na potrzeby weryfikacji. Czy nie byłoby wspaniale, gdyby istniał sposób na zautomatyzowanie tego nakładu pracy? Cóż, dobra wiadomość! „Dependabot” robi dokładnie to. Skanuje alerty zależności i tworzy żądania wciągnięcia, aby współtwórca mógł zweryfikować aktualizację i scalić żądanie.
Aby dowiedzieć się więcej na temat elastyczności narzędzia Dependabot, zobacz Configuring Dependabot security updates (Konfigurowanie aktualizacji zabezpieczeń dependabota).
Automatyczne skanowanie kodu
Podobnie jak w przypadku skanowania repozytorium przez narzędzie Dependabot pod kątem alertów zależności, możesz użyć skanowania kodu do analizowania i znajdowania luk w zabezpieczeniach i 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. Warto również pomóc deweloperom w zapobieganiu wprowadzaniu nowych problemów z zabezpieczeniami do kodu.
Kolejną zaletą skanowania kodu jest możliwość korzystania z języka 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:
Dowiedz się więcej o skanowaniu kodu iCodeQL.
Skanowanie tajne
Inną funkcją automatycznego skanowania w repozytorium GitHub jest skanowanie tajnych danych. Podobnie jak w przypadku poprzednich funkcji skanowania zabezpieczeń, skanowanie tajnych danych wyszukuje znane tajne dane lub poświadczenia obecne w repozytorium. To skanowanie jest wykonywane, aby zapobiec użyciu fałszywych zachowań i zabezpieczyć integralność wszelkich 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 tajemnic dla repozytoriów publicznych i prywatnych.