Artykuły
Samouczki
Interaktywne przewodniki
Jak zintegrować Snyk i Bitbucket Cloud w celu wdrażania kultury DevSecOps
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.
Krok 1. Konfiguracja środowiska
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.
Krok 2. Połączenie platformy Snyk z systemem 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.
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.
Krok 3. Utworzenie hasła do aplikacji
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).
2. Kliknij App passwords (Hasła aplikacji) w obszarze Access management (Zarządzanie dostępem).
3. Kliknij przycisk Create app password (Utwórz hasło do aplikacji).
4. Nadaj hasłu aplikacji nazwę powiązaną z aplikacją, która będzie używać hasła.
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.
Krok 4. Dodanie zmiennych repozytorium
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.
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).
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.
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.
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 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.
Krok 7. Dodanie repozytoriów Bitbucket Cloud do systemu Snyk
Na ostatnim ekranie w poprzedniej sekcji kliknij opcję Add your Bitbucket Cloud repository to Snyk (Dodaj repozytorium Bitbucket Cloud do 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.
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:
- 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.
Zobacz więcej integracji dla Atlassian Open DevOps.
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.