Close

Jak Snyk i Bitbucket Cloud umożliwiają tworzenie kultury DevSecOps

Zdjęcie portretowe Simona Maple'a
Simon Maple

Terenowy dyrektor ds. technicznych w Snyk

Wdrażaj kulturę DevSecOps poprzez integrację rozwiązania Snyk z systemami Bitbucket Cloud i Jira.

Platformę Snyk można zintegrować z wieloma produktami Atlassian, aby usprawnić przepływy pracy i pipeline'y zespołów DevSecOps. W tym samouczku opisano wzorce umożliwiające zapewnienie bezpieczeństwa na jak najwcześniejszym etapie dzięki wykorzystaniu Atlassian Bitbucket i Snyk. Techniki te umożliwiają zespołowi skanowanie aplikacji i obciążeń opartych na kontenerach w tempie DevSecOps. Dowiesz się, jak korzystać z tych wzorców, aby zadbać o bezpieczeństwo na wszystkich etapach pipeline'u.

Godzina

15 minut czytania.

Publiczność

  • Programiści
  • Inżynierowie DevOps i DevSecOps
  • Zespoły ds. bezpieczeństwa i tworzenia aplikacji

Wymagania wstępne

Masz konto Snyk, dostępne tutaj.

Masz konto Atlassian Bitbucket. Zaloguj się tutaj lub zacznij tutaj.

Step 1: Configure your environment

Zainstaluj narzędzie Snyk CLI

Snyk CLI uwierzytelni Twój komputer za pomocą Twojego konta Snyk. Narzędzie CLI pomaga wyszukać i usunąć znane luki w zabezpieczeniach zależności, zarówno ręcznie, jak i w pipelinie CI/CD. Pełne instrukcje instalacji CLI są dostępne w Snyk w wielu formatach odpowiednich dla popularnych systemów operacyjnych i środowisk. Na przykład narzędzie CLI jest dostępne z następującymi poleceniami:

brew tap snyk/tap
brew install snyk

Po zainstalowaniu CLI konieczne jest uwierzytelnienie za pomocą następującego polecenia:

snyk auth

To polecenie otwiera kartę przeglądarki, aby zakończyć proces uwierzytelniania, a po kliknięciu przycisku Uwierzytelnij (Authenticate) możesz przejść do skanowania repozytorium. Po zakończeniu uwierzytelniania możesz powrócić do terminala i kontynuować pracę.

Dodatkowe zasoby laboratoryjne

Ćwiczenia zawarte w tym samouczku uwzględniają kombinację poleceń lub fragmentów kodu, które będą udostępniane na konkretnych stronach modułu, a także szablony oraz kod źródłowy dostępne w publicznym repozytorium Bitbucket. Po skonfigurowaniu konta Bitbucket Cloud musisz skopiować te zasoby do swojego konta. W tym celu wykonaj następujące czynności:

Podziel repozytorium

Kliknij tutaj, aby podzielić repozytorium nadrzędne na potrzeby swojego konta Bitbucket. Dokumentacja Atlassian zawiera szczegółowe instrukcje podziału repozytorium.

Sklonuj swój podział lokalnie

Po wykonaniu podziału musisz sklonować podzielone repozytorium. Szczegółowe instrukcje tej procedury znajdziesz w dokumentacji Atlassian dotyczącej klonowania repozytorium.

Step 2: Connect Snyk to Bitbucket

W tej sekcji połączymy platformę Snyk z systemem Bitbucket, aby przeskanować naszą aplikację Bitbucket pod kątem luk w zabezpieczeniach kodu open source.

Schemat procesu w Bitbucket

Na czym polega analiza składu oprogramowania (SCA)?

Analiza składu oprogramowania (SCA) to narzędzie do zarządzania komponentami typu open source. Narzędzie to generuje listę wszystkich komponentów open source zawartych w aplikacji, z uwzględnieniem bezpośrednich i pośrednich zależności. Za pomocą narzędzia SCA zespoły programistyczne mogą szybko prześledzić i przeanalizować komponenty open source wprowadzone w projekcie.

Chociaż komponenty open source są wygodne i szeroko stosowane, zwykle trudno je śledzić. W rezultacie aby zaradzić tej sytuacji, programiści polegają często na ręcznych procesach, takich jak e-maile i arkusze kalkulacyjne. Te ręczne procesy mogą jednak przekreślić wygodę, która jest zaletą open source, i stanowią niekompletne rozwiązanie. Bardziej pożądanym podejściem jest użycie narzędzia SCA, które oferuje natychmiastowy wgląd w każdy komponent.

Dlaczego warto korzystać z narzędzia SCA?

Komponenty open source są podstawowymi blokami konstrukcyjnymi przy tworzeniu oprogramowania niemal w każdej dziedzinie. Niezależnie od wielkości organizacji, SCA pomaga zidentyfikować komponenty open source w aplikacjach o krytycznym znaczeniu dla działalności firmy. Narzędzia SCA pozwalają programistom:

1. Zrozumieć zależności wykorzystane w aplikacjach.

2. Egzekwować zasady bezpieczeństwa i zapewniania zgodności z przepisami w całym cyklu tworzenia oprogramowania (SDLC).

3. Proaktywnie usuwać potencjalne luki w zabezpieczeniach u źródła.

4. Poprawić efektywność zespołu i stan bezpieczeństwa firmy.

Step 3: Create an app password

Należy utworzyć hasło do aplikacji, aby umożliwić platformie Snyk dostęp do repozytorium i integrację z Bitbucket Cloud.

Tworzenie hasła do aplikacji:

1. Kliknij swój awatar w lewym dolnym rogu, a następnie wybierz opcję Personal settings (Ustawienia prywatne).

Okno ustawień prywatnych

2. Kliknij App passwords (Hasła aplikacji) w obszarze Access management (Zarządzanie dostępem).

okno zarządzania dostępem

3. Kliknij przycisk Create app password (Utwórz hasło do aplikacji).

okno hasła aplikacji

4. Nadaj hasłu aplikacji nazwę powiązaną z aplikacją, która będzie używać hasła.

okno hasła aplikacji

5. Wybierz konkretny zakres dostępu i uprawnienia, które chcesz przypisać do danego hasła aplikacji.

  • Konto: read
  • Członkostwo w zespole: read
  • Projekty: read
  • Repozytoria: read and write
  • Pull requesty: read and write
  • Elementy webhook: read and write

6. Skopiuj wygenerowane hasło i zapisz je lub wklej do aplikacji, do której chcesz uzyskać dostęp. Hasło zostanie wyświetlone tylko ten jeden raz.

Step 4: Add repository variables

Na poziomie repozytorium trzeba zdefiniować zmienne repozytorium, do których później będą dodawane odwołania w pipeline'ie. Będą się one składać z następujących elementów:

  • SNYK_TOKEN — token API Snyk do uwierzytelniania za pomocą konta Snyk. Jest to zabezpieczona zmienna.
  • IMAGE — nazwa obrazu kontenera. To nie jest zabezpieczona zmienna.

Pozostałe zmienne dotyczą rozszerzonych operacji pipeline'u, nieomówionych w tym samouczku.

Okno ustawień repozytorium

Krok 5. Pobierz token API Snyk

1. Pobierz token API Snyk

Z konsoli platformy Snyk przejdź do sekcji Settings (Ustawienia) (ikona zębatki na ilustracji) i w menu General (Ogólne) wybierz opcję Copy (Kopiuj), aby skopiować pozycję Organization ID (Identyfikator organizacji).

Ustawienia ogólne systemu Snyk

Po skopiowaniu tokena wróć do interfejsu użytkownika Bitbucket Cloud i zdefiniuj zmienną repozytorium SNYK_TOKEN.

Krok 6. Włącz integrację Bitbucket

W konsoli Snyk przejdź do obszaru Integrations (Integracje) i wybierz opcję Bitbucket Cloud.

Okno integracji platformy Snyk

Na stronie integracji Bitbucket Cloud wprowadź nazwę użytkownika Bitbucket w polu Username (Nazwa użytkownika) i hasło do aplikacji Bitbucket widoczne w poprzednim kroku w polu App password (Hasło aplikacji). Następnie kliknij przycisk Zapisz.

Ustawienia: okno integracji

Gdy konta Snyk i Bitbucket zostaną pomyślnie połączone, pojawi się komunikat z potwierdzeniem oraz możliwość dodawania repozytorium Bitbucket Cloud do Snyk.

Pozostań na tej stronie, a w kolejnej sekcji sprawdź, jak zaimportować repozytorium Bitbucket Cloud i przeskanować je za pomocą rozwiązania Snyk.

Skanowanie i monitorowanie aplikacji Bitbucket

skanowanie i monitorowanie miniatur bitbucket

Skanowanie aplikacji pod kątem luk w zabezpieczeniach Twoich zależności z komponentami open source zaczyna się u źródła. W poprzedniej sekcji włączyliśmy integrację rozwiązań Snyk i Bitbucket, dzięki czemu możemy zaimportować nasz pierwszy projekt.

Step 7: Add Bitbucket Cloud repositories to Snyk

Na ostatnim ekranie w poprzedniej sekcji kliknij opcję Add your Bitbucket Cloud repository to Snyk (Dodaj repozytorium Bitbucket Cloud do Snyk).

Dodawanie repozytoriów Bitbucket Cloud do systemu Snyk

W module Configure Environment (Konfiguracja środowiska) wyszukaj podzielone repozytorium. Kliknij pole wyboru, aby je zaznaczyć, a następnie kliknij przycisk Add selected repository (Dodaj wybrane repozytorium), aby zaimportować projekt.

Przycisk dodawania wybranych repozytoriów w prawym górnym rogu

Krok 8: Przejrzyj raport na temat luk w zabezpieczeniach

Powinna się pojawić liczba luk w zabezpieczeniach oparta na pliku packages.json, z uwzględnieniem szczegółowych informacji na temat poszczególnych luk. Kliknij projekt, który został właśnie przeskanowany, i przejrzyj wyniki na platformie Snyk. Przy lukach w zabezpieczeniach znajdziesz nie tylko informacje kontekstowe, takie jak ważność czy dojrzałość exploitu, ale także inne ważne elementy:

Raport na temat luk w zabezpieczeniach
  • Opcja Fix this vulnerability (Napraw tę lukę) ułatwia usuwanie luk w zabezpieczeniach poprzez uaktualnienie zależności bezpośrednich lub zastosowanie poprawek do luki.
  • Opcja Priority Score (Ocena priorytetu) ułatwia ustalanie priorytetów poprawek. Wynik w zakresie 1–1000 uzyskuje się na podstawie autorskiego algorytmu przetwarzającego cały szereg czynników, takich jak wynik CVSS, dostępność naprawionych znanych exploitów, a także wiek i osiągalność danej luki.
  • Integracja z systemem Jira umożliwia tworzenie zgłoszeń w systemie Jira.
Simon Maple
Simon Maple

Simon Maple is the Field CTO at Snyk, a Java Champion since 2014, Virtual JUG founder, and London Java Community co-leader. He is an experienced speaker, with a passion for community. When not traveling, Simon enjoys spending quality time with his family, cooking and eating great food.


Udostępnij ten artykuł
Następny temat

Zalecane lektury

Dodaj te zasoby do zakładek, aby dowiedzieć się więcej na temat rodzajów zespołów DevOps lub otrzymywać aktualności na temat metodyki DevOps w Atlassian.

Ilustracja DevOps

Społeczność DevOps

Ilustracja DevOps

Warsztaty symulacyjne

Ilustracja przedstawiająca mapę

Zacznij korzystać za darmo

Zapisz się do newslettera DevOps

Thank you for signing up