Eksplorowanie analizy kompozycji oprogramowania (SCA)

Ukończone

Dwa kluczowe obszary potoku Secure DevOps to zarządzanie pakietami i składniki systemu operacyjnego oprogramowania open source.

Zarządzanie pakietami

Podobnie jak zespoły używają kontroli wersji jako pojedynczego źródła prawdy dla kodu źródłowego, secure DevOps opiera się na menedżerze pakietów jako unikatowym źródle składników binarnych.

Korzystając z zarządzania pakietami binarnymi, zespół programistyczny może utworzyć lokalną pamięć podręczną zatwierdzonych składników i zaufany kanał informacyjny dla potoku ciągłej integracji.

W usłudze Azure DevOps usługa Azure Artifacts jest integralną częścią przepływu pracy składników do organizowania i udostępniania dostępu do pakietów. Usługa Azure Artifacts umożliwia:

  • Zachowaj zorganizowane artefakty. Łatwe udostępnianie kodu przez przechowywanie pakietów Apache Maven, npm i NuGet. Pakiety można przechowywać przy użyciu pakietów uniwersalnych, eliminując przechowywanie plików binarnych w usłudze Git.
  • Chroń pakiety. Zachowaj bezpieczeństwo każdego używanego pakietu źródłowego (w tym pakietów z npmjs i nuGet .org) w kanale informacyjnym, gdzie można go usunąć tylko wtedy, gdy jest on wspierany przez umowę dotyczącą poziomu usług platformy Azure klasy korporacyjnej (SLA).
  • Integrowanie bezproblemowej obsługi pakietów z potokiem ciągłej integracji/ciągłego programowania (CD). Łatwe uzyskiwanie dostępu do wszystkich artefaktów w kompilacjach i wydaniach. Usługa Azure Artifacts integruje się natywnie z narzędziem ciągłej integracji/ciągłego wdrażania usługi Azure Pipelines.

Aby uzyskać więcej informacji na temat usługi Azure Artifacts, odwiedź stronę internetową. Co to są usługi Azure Artifacts?

Wersje i zgodność

W poniższej tabeli wymieniono typy pakietów obsługiwane przez usługę Azure Artifacts. Zostanie również wyświetlona dostępność każdego pakietu w usłudze Azure DevOps Services .

W poniższej tabeli przedstawiono zgodność każdego pakietu z określonymi wersjami serwera Azure DevOps Server, wcześniej znanym jako Team Foundation Server (TFS).

Funkcja Azure DevOps Services TFS
NuGet Tak TFS 2017
npm Tak TfS 2017 zaktualizuj jeden lub nowszy
Maven Tak TfS 2017 zaktualizuj jeden lub nowszy
Gradle Tak TFS 2018
Universal Tak Nie.
Python Tak Nie.

Pakiety Maven, npm i NuGet mogą być obsługiwane przez zespoły o dowolnym rozmiarze ze źródeł publicznych i prywatnych. Usługa Azure Artifact jest dostarczana z usługą Azure DevOps, ale rozszerzenie jest również dostępne w witrynie Visual Studio Marketplace.

Screenshot of Azure DevOps with Artifacts highlighted in the menu pane.

Uwaga

Po opublikowaniu określonej wersji pakietu w kanale informacyjnym ten numer wersji jest trwale zarezerwowany.

Uwaga

Nie można przekazać nowszego pakietu poprawki z tym samym numerem wersji lub usunąć tę wersję i przekazać nowy pakiet o tym samym numerze wersji. Opublikowana wersja jest niezmienna.

Rola składników systemu operacyjnego

Prace programistyczne są bardziej wydajne ze względu na szeroką dostępność składników oprogramowania open source (OSS) wielokrotnego użytku.

To praktyczne podejście do ponownego użycia obejmuje środowiska uruchomieniowe, które są dostępne w systemach operacyjnych Windows i Linux, takich jak Microsoft .NET Core i Node.js.

Jednak ponowne użycie składnika systemu operacyjnego wiąże się z ryzykiem, że ponownie użyte zależności mogą mieć luki w zabezpieczeniach. W związku z tym wielu użytkowników odnajduje luki w zabezpieczeniach w swoich aplikacjach ze względu na używane wersje pakietów Node.js.

System operacyjny oferuje nową koncepcję o nazwie Software Composition Analysis (SCA), aby rozwiązać te problemy z zabezpieczeniami, jak pokazano na poniższej ilustracji.

Screenshot of an image of the workflow for safely creating open-source dependencies.

W przypadku korzystania ze składnika systemu operacyjnego niezależnie od tego, czy tworzysz, czy korzystasz z zależności, zazwyczaj należy wykonać następujące ogólne kroki:

  1. Zacznij od najnowszej, poprawnej wersji, aby uniknąć nieprawidłowego użycia starych luk w zabezpieczeniach lub nieprawidłowej licencji.
  2. Sprawdź, czy składniki systemu operacyjnego są prawidłowymi plikami binarnymi twojej wersji. W potoku wydania zweryfikuj pliki binarne, aby zapewnić dokładność i zachować możliwy do śledzenia rachunek materiałów.
  3. Natychmiastowe otrzymywanie powiadomień o lukach w zabezpieczeniach składników, ich poprawianie i ponowne wdrażanie składnika w celu rozwiązania luk w zabezpieczeniach lub nieprawidłowego użycia licencji z ponownego użycia oprogramowania.