SCA(소프트웨어 컴퍼지션 분석) 살펴보기

완료됨

Secure DevOps 파이프라인의 두 가지 중요한 영역은 패키지 관리 및 Open-Source 소프트웨어 OSS 구성 요소입니다.

패키지 관리

팀이 소스 코드에 대한 단일 소스로 버전 제어를 사용하는 것처럼 Secure DevOps는 패키지 관리자를 이진 구성 요소의 고유한 원본으로 사용합니다.

개발 팀은 이진 패키지 관리를 사용하여 승인된 구성 요소의 로컬 캐시와 CI(연속 통합) 파이프라인에 대한 신뢰할 수 있는 피드를 만들 수 있습니다.

Azure DevOps에서 Azure Artifacts 패키지에 대한 액세스를 구성하고 공유하기 위한 구성 요소 워크플로의 필수적인 부분입니다. Azure Artifacts를 사용하면 다음을 수행할 수 있습니다.

  • 아티팩트 정리를 유지합니다. Apache Maven, npm 및 NuGet 패키지를 함께 저장하여 코드를 쉽게 공유합니다. 유니버설 패키지를 사용하여 패키지를 저장할 수 있으므로 Git에서 이진 파일을 유지할 수 없습니다.
  • 패키지를 보호합니다. 사용하는 모든 공개 원본 패키지(npmjs 및 NuGet .org의 패키지 포함)는 사용자만 삭제할 수 있고 엔터프라이즈급 SLA(Azure 서비스 수준 계약)의 지원되는 피드에 안전하게 보관합니다.
  • 원활한 패키지 처리를 CI(연속 통합)/CD(지속적인 개발) 파이프라인에 통합합니다. 자신의 빌드 및 릴리스의 모든 아티팩트에 쉽게 액세스할 수 있습니다. Azure Artifacts는 기본적으로 Azure Pipelines CI/CD 도구와 통합됩니다.

Azure Artifacts에 대한 자세한 내용은 웹 페이지를 방문하세요. Azure Artifacts란?

버전 및 호환성

다음 표에서는 Azure Artifacts에서 지원하는 패키지 유형을 나열합니다. Azure DevOps Services 각 패키지의 가용성도 표시됩니다.

다음 표에서는 TFS(Team Foundation Server)로 알려진 Azure DevOps Server의 특정 버전과 각 패키지의 호환성을 자세히 설명합니다.

기능 Azure DevOps Services TFS
NuGet TFS 2017
npm TFS 2017 업데이트 1 이상
Maven TFS 2017 업데이트 1 및 그 이후 버전
Gradle TFS 2018
보편적 아니요
파이썬 아니요

Maven, npm 및 NuGet 패키지는 공용 및 프라이빗 원본의 모든 크기의 팀에서 지원될 수 있습니다. Azure Artifact는 Azure DevOps와 함께 제공되지만 Visual Studio Marketplace에서도 확장을 사용할 수 있습니다.

메뉴 창에 아티팩트가 강조 표시된 Azure DevOps의 스크린샷

메모

특정 패키지 버전을 피드에 게시한 후 해당 버전 번호는 영구적으로 예약됩니다.

메모

동일한 버전 번호의 최신 수정 패키지를 업로드하거나 해당 버전을 삭제하고 동일한 버전 번호로 새 패키지를 업로드할 수 없습니다. 게시된 버전은 변경할 수 없습니다.

OSS 구성 요소의 역할

재사용 가능한 OSS(오픈 소스 소프트웨어) 구성 요소의 광범위한 가용성으로 인해 개발 작업이 더 생산적입니다.

이 실용적인 재사용 방법에는 Windows 및 Linux 운영 체제(예: Microsoft .NET Core 및 Node.js)에서 사용할 수 있는 런타임이 포함됩니다.

그러나 OSS 구성 요소 재사용에는 재사용된 종속성에 보안 취약성이 있을 수 있는 위험이 있습니다. 따라서 많은 사용자가 사용하는 Node.js 패키지 버전으로 인해 애플리케이션에서 보안 취약성을 발견합니다.

OSS는 다음 이미지에 표시된 이러한 보안 문제를 해결하기 위해 새로운 개념의SCA(소프트웨어 컴퍼지션 분석)를 제공합니다.

오픈 소스 종속성을 안전하게 만들기 위한 워크플로 이미지의 스크린샷

종속성을 만들거나 사용하든 OSS 구성 요소를 사용할 때 일반적으로 다음 개략적인 단계를 수행하려고 합니다.

  1. 이전 취약성 또는 라이선스 오용을 방지하기 위해 최신의 올바른 버전으로 시작합니다.
  2. OSS 구성 요소가 버전에 맞는 이진 파일인지 확인합니다. 릴리스 파이프라인에서 이진 파일의 유효성을 검사하여 정확도를 확인하고 추적 가능한 자료 청구서를 유지합니다.
  3. 구성 요소 취약성에 대한 알림을 즉시 받고, 수정하고, 자동으로 구성 요소를 다시 배포하여 재사용된 소프트웨어에서 보안 취약성 또는 라이선스 오용을 해결합니다.