Zdefiniuj GHAS i znaczenie jego integralnych cech.

Ukończone

W tej jednostce omówimy następujące tematy:

  • Skanowanie tajne
  • Skanowanie kodu
  • Dependabot
  • Tworzenie bezpieczniejszego cyklu życia tworzenia oprogramowania z kluczowymi funkcjami

Zacznijmy od szybkiego przeglądu GHAS.

Co to jest GHAS?

Diagram koncepcyjny przedstawiający różne etapy cyklu życia tworzenia oprogramowania za pomocą usługi GitHub Advanced Security.

Usługa GitHub Advanced Security (lub GHAS) to rozwiązanie zabezpieczeń aplikacji, które ułatwia deweloperom zabezpieczanie kodu i zarządzanie ryzykiem bez zakłócania przepływu pracy.

Usługa GHAS oferuje teraz dwie różne produkty: gitHub Secret Protection i GitHub Code Security. Ta separacja umożliwia organizacjom włączenie funkcji, które najlepiej odpowiadają ich priorytetom zabezpieczeń i licencjonowaniu.

Usługa Advanced Security jest osadzona bezpośrednio w przepływie pracy, aby zapobiec lukom w zabezpieczeniach i wyciekom poświadczeń bez spowalniania programowania. Usługa GitHub Advanced Security przypomina, że twój osobisty konsultant ds. zabezpieczeń przegląda każdy wiersz kodu ze szczegółowymi informacjami od ekspertów ds. zabezpieczeń z całego świata.

Zapewnienie bezpieczeństwa aplikacji i łańcucha dostaw oprogramowania nigdy nie było ważniejsze. Firma Gartner przewiduje, że do 2025 r. 45% organizacji globalnych będzie miało wpływ na atak łańcucha dostaw. Według raportu z 2022 r. Verizon Data Breach Investigation, aplikacje nadal są głównym wektorem ataku i znajdują się w centrum ponad 40% wszystkich naruszeń danych.

Włączenie zabezpieczeń do procesu tworzenia oprogramowania może wydawać się trudne, dlatego przyjrzyjmy się 3 kluczowym funkcjom GHAS i sposobom, w jakie pomagają zespołowi niezawodnie radzić sobie z najnowszymi zagrożeniami bezpieczeństwa: skanowanie tajnych danych, skanowanie kodu i Dependabot.

Skanowanie tajne

Obraz blokady z oktetem GitHub w środku przedstawiającym skanowanie zabezpieczeń.

Skanowanie wpisów tajnych to kluczowa funkcja zabezpieczeń usługi GitHub, która identyfikuje i pomaga zapobiegać przypadkowemu narażeniu poufnych informacji, takich jak klucze interfejsu API i tokeny, w kodzie źródłowym. Skanowanie wpisów tajnych jest dostępne dla wszystkich repozytoriów publicznych bezpłatnie i można je również włączyć w przypadku repozytoriów prywatnych z licencją gitHub Advanced Security (GHAS).

Pomaga to zapobiec nieautoryzowanemu dostępowi i chroni poufne dane. Skanowanie tajnych danych funkcjonuje poprzez wyszukiwanie wstępnie zdefiniowanych wzorców i sygnatur wskazujących na poufne informacje, co zapewnia szybkie reagowanie na potencjalne zagrożenia bezpieczeństwa. Domyślnie skanowanie wpisów tajnych wyszukuje bardzo dokładne wzorce, które zostały dostarczone przez partnera usługi GitHub. Wzorce niestandardowe można jednak tworzyć dla innych przypadków użycia.

Skanowanie wpisów tajnych obejmuje:

  • Ochrona wypychania proaktywnie zapobiega wyciekom tajnych informacji poprzez skanowanie kodu podczas zatwierdzenia i blokowanie wypychania, jeśli obecne są informacje tajne.
  • Możliwość łatwego wyświetlania alertów i korygowania ich bez konieczności opuszczania usługi GitHub.

W bezpiecznym cyklu życia tworzenia oprogramowania skanowanie wpisów tajnych wykrywa ujawnione wpisy tajne, umożliwiając zespołom jak najszybsze odwoływanie lub obracanie ich — często przed ich zastosowaniem do złośliwych celów, zmniejszenie ryzyka naruszeń danych i zachowanie poufności podczas opracowywania.

Następnie przejrzyjmy skanowanie kodu.

Skanowanie kodu

Obrazek klucza z Octocat GitHub w środku, przedstawiający skanowanie kodu.

Skanowanie kodu to integralna funkcja ghas, która analizuje kod źródłowy pod kątem luk w zabezpieczeniach i błędów kodowania. Wykorzystuje techniki analizy statycznej do identyfikowania potencjalnych problemów, takich jak wstrzyknięcie kodu SQL, wykonywanie skryptów między lokacjami i przepełnienie buforu. Dzięki przekazaniu zautomatyzowanych opinii bezpośrednio w przepływie pracy żądania ściągnięcia skanowanie kodu umożliwia deweloperom wczesne rozwiązywanie problemów w procesie programowania.

Skanowanie kodu poprawia jakość kodu i pomaga zminimalizować zagrożenia bezpieczeństwa, identyfikując i usuwając problemy na wczesnym etapie cyklu projektowania. Ponieważ reguły skanowania są stale aktualizowane, skanowanie kodu może również wykrywać luki w zabezpieczeniach, które mogą już istnieć w środowisku produkcyjnym.

Dependabot

Obraz robota o kwadratowej głowie z oczami w postaci odznaczonych znaków, mającego symbolizować Dependabot.

Dependabot to zautomatyzowane narzędzie do zarządzania zależnościami, odpowiedzialne za aktualizowanie zależności projektu. Regularnie sprawdza aktualizacje bibliotek i struktur używanych w projekcie i automatycznie otwiera żądania ściągnięcia w celu zaktualizowania zależności do najnowszych, bezpiecznych wersji.

Narzędzie Dependabot obejmuje:

  • Alerty dotyczące znanych luk w zabezpieczeniach
  • Aktualizacje zabezpieczeń dla pakietów podatnych na zagrożenia
  • Aktualizacje wersji, aby zachować bieżące zależności

Narzędzie Dependabot ściśle współpracuje z grafem zależności, aby określić, które zależności są używane, i odwoływać się do nich krzyżowo względem bazy danych porad usługi GitHub w celu wykrywania luk w zabezpieczeniach.

Dzięki usłudze GitHub Advanced Security funkcje dependabota są ulepszane przez przegląd zależności, umożliwiając wyświetlanie podglądu wszelkich wrażliwych pakietów wprowadzonych w żądaniu ściągnięcia i zapobieganie dodawaniu niezabezpieczonych zależności przed scaleniem.

Gdzie włączyć skanowanie wpisów tajnych, skanowanie kodu i alerty Dependabot

Aby włączyć dowolne alerty z poziomu repozytorium, najpierw przejdź do karty zabezpieczeń repozytorium.

Obraz przedstawiający kartę zabezpieczeń z czerwonym wyróżnieniem na pasku nawigacyjnym usługi GitHub.

Następnie włącz alerty w przeglądzie zabezpieczeń.

Obraz przedstawiający stronę karty zabezpieczeń z włączonym skanowaniem wpisów tajnych, skanowaniem kodu i włączonymi alertami Dependabot.

Teraz, gdy zapoznaliśmy się i włączyliśmy wszystkie 3 integralne funkcje GHAS, porozmawiajmy o tym, jak wdrożyć wszystkie w celu utworzenia bezpieczniejszego cyklu życia tworzenia oprogramowania.

Tworzenie bezpieczniejszego cyklu życia tworzenia oprogramowania ze wszystkimi 3 funkcjami

Skanowanie tajnych danych, skanowanie kodu i Dependabot przyczyniają się do tworzenia bezpieczniejszego cyklu życia rozwoju oprogramowania. Skanowanie tajemnic zapobiega przypadkowemu ujawnieniu poufnych informacji. Skanowanie kodu identyfikuje i usuwa luki w zabezpieczeniach w bazie kodu. Funkcja Dependabot automatyzuje zarządzanie zależnościami.

Dzięki zintegrowaniu tych funkcji zespoły deweloperów mogą aktywnie rozwiązywać problemy z zabezpieczeniami na każdym etapie cyklu życia programowania. Takie proaktywne podejście minimalizuje prawdopodobieństwo, że zdarzenia zabezpieczeń docierają do środowiska produkcyjnego, co skutkuje bardziej odpornym, bezpiecznym i wydajnym procesem tworzenia oprogramowania.

Połączony wpływ tych całkowitych funkcji zapewnia, że bezpieczeństwo nie jest kwestią autonomiczną, ale integralną częścią całego przepływu pracy programowania.

Funkcje zabezpieczeń dla projektów open source

Publiczne projekty w usłudze GitHub korzystają z niektórych domyślnych funkcji zabezpieczeń, takich jak skanowanie wpisów tajnych i wykresy zależności. Usługa GitHub automatycznie skanuje repozytoria publiczne pod kątem wzorców partnerów i udostępnia alerty administratorom repozytorium. Projekty publiczne mogą również włączyć skanowanie kodu, narzędzie Dependabot i przegląd zależności bez licencji usługi GitHub Advanced Security.

Jednak te funkcje są podstawowe i mogą nie zapewniać głębi ochrony potrzebnej dla bardziej złożonych projektów lub środowisk przedsiębiorstwa.

Gdy usługa GitHub Advanced Security (GHAS) jest sparowana z usługą GitHub Enterprise Cloud (GHEC), kompleksowy zestaw funkcji zabezpieczeń staje się również dostępny dla projektów wewnętrznych i prywatnych:

  • Skanowanie kodu — wyszukiwanie potencjalnych luk w zabezpieczeniach i błędów kodowania w kodzie.
  • Skanowanie tajemnic — wykrywanie tajemnic, na przykład kluczy i tokenów, zapisanych w repozytoriach prywatnych. Alerty dotyczące skanowania sekretów dla użytkowników i partnerów są dostępne i bezpłatne dla repozytoriów publicznych na GitHub.com. Jeśli ochrona przed wypychaniem jest włączona, wykrywa również tajne informacje podczas ich wypychania do repozytorium.
  • Przegląd zależności — pokazuje pełny wpływ zmian na zależności i zobacz szczegóły wszystkich wersji narażonych przed scaleniem żądania ściągnięcia.

Poniższa tabela zawiera podsumowanie dostępności funkcji usługi GitHub Advanced Security dla repozytoriów publicznych i prywatnych.

Funkcja Repozytorium publiczne Prywatne repozytorium bez zabezpieczeń zaawansowanych Repozytorium prywatne z zabezpieczeniami zaawansowanymi
Skanowanie kodu
Skanowanie tajne
Przegląd zależności