Azure와 함께 하는 DevOps

51. WhiteSource로 오픈소스 보안 및 라이센스 관리하기

zerobig-k8s 2020. 9. 28. 07:30

<참조> https://azuredevopslabs.com/labs/vstsextend/whitesource/

 

 

 

 

 

개요

WhiteSource는 지속적인 오픈소스 소프트웨어 보안 및 규정 준수 관리의 리더이다. WhiteSource는 프로그래밍 언어, 빌드 도구 또는 개발 환경에 관계없이 빌드 프로세스에 통합된다. 백그라운드에서 자동으로 지속적으로 조용히 작동하며, 오픈소스 리포지토리의 지속적으로 업데이트되는  확고한 WhiteSource 데이터베이스에 대해 오픈소스 구성요소의 보안, 라이센스 및 품질을 점검한다.

WhiteSource는 Azure DevOps 및 Azure DevOps 서버와의 통합을 위해 특별히 개발된 경량 오픈소스 보안 및 관리 솔루션인 WhiteSource Bolt를 제공한다. 프로젝트별로 작동하며, 일반적으로 대규모 개발팀에 권장되는 Full 플랫폼과 같은 실시간 경고 기능을 제공하지 않으며, 전체 소프트웨어 개발 라이프사이클(저장소에서 배포 후 단계까지)과 모든 프로젝트 및 제품에 걸쳐 오픈소스 관리를 자동화하고자 한다.

 

 

 

 

이 랩에서 다루는 것들

이 랩에서는 WhiteSource Bolt를 Azure DevOps와 함께 사용하여 취약한 오픈소스 구성 요소, 오래된 라이브러리 및 코드에서 라이센스 컴플라이언스 문제에 대한 경고를 자동으로 탐지하는 방법을 보여 준다. OWASP가 웹 애플리케이션 보안 수업을 위해 기획하여 의도적으로 보안이 취약하도록 만든 웹 애플리케이션인 WebGoat를 사용할 것이다.

WhiteSource Bolt와 Azure DevOps 통합을 통해 다음을 수행 할 수 있다.

  1. 취약한 오픈소스 구성 요소를 탐지하고 해결한다.
  2. 프로젝트 또는 빌드별로 포괄적인 오픈소스 인벤토리 보고서를 생성한다.
  3. 종속성 라이센스를 포함하여 오픈소스 라이센스 규정 준수를 시행한다.
  4. 업데이트 권장 사항으로 오래된 오픈소스 라이브러리를 식별한다.

 

 

 

시작하기 전에

1. 실습을 시작하기 전에 시작하기 페이지를 참조한다.

 

2. Azure DevOps 데모 생성기를 사용하여 Azure DevOps 조직에서 WhiteSource 프로젝트를 프로비전 한다.

 

실습 1: WhiteSource Bolt 활성화

Azure DevOps 프로젝트의 Pipelines 섹션에서 White Source Bolt 탭으로 이동하여 회사 이메일, 회사 이름을 및 국가를 입력/선택하고 Get Started 버튼을 클릭하여 무료 버전 사용을 시작한다. 

 

 

활성화되면 아래와 같은 메시지가 표시된다.

 

 

실습 2: 빌드 트리거

Azure DevOps 데모 생성기로 프로비저닝 된 Java 코드가 있다. WhiteSource Bolt 확장을 사용하여 이 코드에 존재하는 취약한 구성 요소를 확인한다. 

1. Pipelines 탭 아래의 Pipelines 섹션으로 이동하여 빌드 정의 WhiteSourceBolt를 선택하고 Run pipeline을 클릭하여 빌드를 트리거한다.

 

 

2. 진행중인 빌드 상태를 보려면 Phase 1라는 잡을 클릭한다.

 

 

3. 빌드가 진행되는 동안 빌드 정의를 살펴 보겠다. 빌드 정의에 사용되는 태스크는 아래 표에 나열되어 있다.

Tasks  Usage
npm
빌드에 필요한 npm 패키지를 설치하고 게시한다.
Maven
제공된 pom xml 파일로 Java 코드를 빌드한다.
WhiteSource Bolt
제공된 작업 디렉터리/루트 디렉터리의 코드를 스캔하여 보안 취약점, 문제가 있는 오픈소스 라이센스를 감지한다.
Copy Files
일치 패턴을 사용하여 결과 JAR 파일을 소스에서 대상 폴더로 복사한다.
Publish Build Artifacts

 

빌드에서 생성된 아티팩트를 게시한다.

 

 

4. 빌드가 완료되면 아래와 같이 테스트 결과, 빌드 아티팩트 등을 보여주는 요약이 표시된다.

 

 

5.  White Source Bolt Report 탭으로 이동하고 완료된 빌드의 보고서 생성이 취약성 보고서를 볼 때까지 기다린다.

 

 

실습 3:  보고서 분석

WhiteSource 볼트는 전이적(transitive) 종속성 및 해당 라이센스를 포함하여 소프트웨어에서 오픈소스 구성 요소를 자동으로 감지한다.

보안 대시보드

보안 대시 보드는 빌드의 취약성을 보여준다. 이 보고서는 취약성 점수, 취약성 라이브러리, 심각도 분포와 함께 취약한 모든 오픈소스 구성 요소의 목록을 보여준다.

오픈소스 라이센스 배포와 모든 구성 요소에 대한 자세한 보기와 메타 데이터 및 라이센스 참조에 대한 링크를 볼 수 있다.

 

오래된 라이브러리

WhiteSource Bolt는 또한 프로젝트의 오래된 라이브러리를 추적하여 모든 세부 정보와 최신 버전 및 권장 사항에 대한 링크를 가져온다. 

 

 

 

요약

Azure DevOps 및 WhiteSource Bolt 통합을 사용하면 오픈소스 관리를 *shift-left로 이동할 수 있다. 통합을 통해 취약성 및 기타 문제에 대한 실시간 경고를 통해 즉각적인 조치를 취할 수 있다.

* Shift-left

라이프 사이클 초기에 수행되는 소프트웨어 테스트 및 시스템 테스트에 대한 접근 방식 (즉, 프로젝트 타임 라인에서 왼쪽으로 이동). 

(wikipedia 참조)