Close

Snyk 및 Bitbucket Cloud가 DevSecOps를 사용하는 방법

Simon Maple 얼굴 사진
Simon Maple

Snyk의 현장 CTO

Bitbucket Cloud 및 Jira에 Snyk를 통합하여 DevSecOps를 달성하세요.

Snyk는 여러 Atlassian 제품과 통합되어 DevSecOps 팀의 워크플로와 파이프라인을 향상합니다. 이 자습서에서는 Atlassian BitbucketSnyk를 활용하여 조기 단계에 보안을 포함시키는 패턴을 자세히 설명합니다. 이러한 기술을 통해 팀이 DevSecOps의 속도에 맞춰 애플리케이션 및 컨테이너 기반의 작업량을 검사할 수 있습니다. 이러한 패턴을 사용하여 파이프라인 단계 전반에 보안을 포함하는 방법을 알아볼 수 있습니다.

시간

15분 분량.

대상 그룹

  • 개발자
  • DevOps 및 DevSecOps 엔지니어
  • 애플리케이션 보안 및 애플리케이션 개발 팀

필수 조건

여기에서 사용 가능한 Snyk 계정이 있습니다.

Atlassian Bitbucket 계정이 있습니다. 여기에서 로그인하거나 여기에서 시작하세요.

Step 1: Configure your environment

Snyk CLI 설치

Snyk CLI는 Snyk 계정을 사용하여 컴퓨터를 인증합니다. CLI 도구를 사용하면 수동으로 또한 CI/CD 파이프라인에서 종속성의 알려진 취약성을 찾고 수정할 수 있습니다. CLI를 설치하는 전체 안내는 널리 사용되는 운영 체제 및 환경에 대해 여러 형식으로 Snyk에서 사용 가능합니다. 예를 들어 CLI는 brew로 다음 명령으로 사용할 수 있습니다.

brew tap snyk/tap
brew install snyk

CLI를 설치한 후 다음 명령을 사용하여 인증합니다.

snyk auth

이 명령은 브라우저 탭을 열어 인증 프로세스를 완료하며 인증 버튼을 클릭하면 리포지토리를 검사할 준비가 된 것입니다. 인증이 완료되면 터미널로 돌아가 작업을 계속할 수 있습니다.

추가 랩 리소스

이 자습서에 포함된 연습에는 지정된 모듈 페이지 내에서 공유할 명령 또는 코드 조각의 조합과 공개 Bitbucket 리포지토리에서 사용할 수 있는 템플릿 및 소스 코드가 포함되어 있습니다. Bitbucket Cloud 계정을 설정한 후에는 이러한 리소스를 계정에 복사해야 합니다. 이 작업을 수행하려면 다음 단계를 따르세요.

리포지토리를 포크

업스트림 리포지토리를 Bitbucket 계정에 포크하려면 여기를 클릭하세요. Atlassian의 설명서에는 리포지토리를 포크하는 방법에 대한 자세한 설명이 있습니다.

포크를 로컬에서 복제

포크를 완료하면 포크한 리포지토리를 복제해야 합니다. 자세한 안내는 리포지토리 복제 방법에 대한 Atlassian의 설명서를 참조하세요.

Step 2: Connect Snyk to Bitbucket

이 섹션에서는 Bitbucket 애플리케이션에서 오픈 소스 취약성을 검사하기 위해 Snyk를 Bitbucket에 연결합니다.

Bitbucket 프로세스 다이어그램

소프트웨어 구성 분석(SCA)이란 무엇입니까?

SCA(소프트웨어 구성 분석)는 오픈 소스 구성 요소 관리 도구입니다. 직접 및 간접 종속성을 포함하여 애플리케이션의 모든 오픈 소스 구성 요소를 나열하는 보고서를 생성합니다. 개발 팀은 SCA 도구를 사용하여 프로젝트에 도입된 오픈 소스 구성 요소를 빠르게 추적하고 분석할 수 있습니다.

오픈 소스 구성 요소는 편리하고 널리 사용되지만 일반적으로 추적하기 힘듭니다. 결과적으로 개발자는 상황을 완화하기 위해 이메일 및 스프레드시트와 같은 수동 프로세스를 사용했습니다. 그러나 수동 프로세스는 오픈 소스가 제공하는 편의성을 무의미하게 만들고 불완전한 솔루션을 제공할 위험이 있습니다. 더 바람직한 접근 방식은 각 구성 요소에 대한 즉각적인 인사이트를 제공하는 SCA 도구를 활용하는 것입니다.

SCA 도구를 사용해야 하는 이유는 무엇입니까?

오픈 소스 구성 요소는 거의 모든 분야에서 소프트웨어 개발의 주요 구성 요소입니다. 조직의 규모에 관계없이 SCA는 비즈니스에 중요한 애플리케이션의 오픈 소스 구성 요소를 식별하는 데 도움이 됩니다. 개발자는 SCA 도구를 사용하여 다음을 수행할 수 있습니다.

1. 애플리케이션에서 사용되는 종속성을 이해합니다.

2. SDLC(소프트웨어 개발 수명 주기) 전반에 걸쳐 보안 및 규정 준수 정책을 적용합니다.

3. 소스에서 잠재적인 취약성을 사전에 해결합니다.

4. 팀 효율성 및 회사 보안 포스처를 개선합니다.

Step 3: Create an app password

앱 비밀번호를 만들어야 Snyk가 리포지토리에 액세스하고 Snyk의 Bitbucket Cloud 통합을 사용하도록 승인할 수 있습니다.

앱 비밀번호를 만들려면 다음을 수행합니다.

1. 왼쪽 하단의 아바타에서 개인 설정을 클릭합니다.

개인 설정 창

2. 액세스 관리에서 앱 비밀번호를 클릭합니다.

액세스 관리 창

3. 앱 비밀번호 만들기를 클릭합니다.

앱 비밀번호 창

4. 비밀번호를 사용할 애플리케이션과 관련된 앱 비밀번호 이름을 지정합니다.

앱 비밀번호 창

5. 이 애플리케이션 비밀번호에 적용할 특정한 액세스 및 권한을 선택합니다.

  • 계정: 읽기
  • 팀 멤버십: 읽기
  • 프로젝트: 읽기
  • 리포지토리: 읽기 및 쓰기
  • 풀리퀘스트: 읽기 및 쓰기
  • 웹후크: 읽기 및 쓰기

6. 생성한 비밀번호를 복사하여 기록하거나 액세스 권한을 제공하려는 애플리케이션에 붙여넣습니다. 비밀번호는 한 번만 표시됩니다.

Step 4: Add repository variables

리포지토리 수준에서 리포지토리 변수를 정의해야 하며 나중에 파이프라인에서 참조됩니다. 다음과 같은 요소로 구성됩니다.

  • SNYK_TOKEN - Snyk 계정 인증을 위한 Snyk API 토큰입니다. 보안 변수입니다.
  • IMAGE - 컨테이너 이미지 이름입니다. 보안 변수가 아닙니다.

다른 변수는 이 자습서에서는 다루지 않는 향상된 파이프라인 작업을 위한 것입니다.

리포지토리 설정 창

5단계. Snyk API 토큰 획득

1. Snyk API 토큰 획득

Snyk 콘솔에서 설정(그림의 기어 아이콘)으로 이동한 다음 일반 메뉴에서 조직 ID복사합니다.

Snyk 일반 설정

토큰을 복사했으면 Bitbucket Cloud UI로 돌아가서 SNYK_TOKEN 리포지토리 변수를 정의합니다.

6단계. Bitbucket 통합 사용

Snyk 콘솔에서 통합으로 이동한 다음 Bitbucket Cloud를 선택합니다.

Snyk 통합 창

Bitbucket Cloud 통합 페이지에서 사용자 이름 필드에 Bitbucket 사용자 이름을 입력하고 앱 비밀번호필드에 이전 단계의 Bitbucket 앱 비밀번호를 입력합니다. 그런 다음 저장을 클릭합니다.

설정: 통합 창

Snyk 및 Bitbucket 계정을 연결하면 확인 메시지와 Snyk에 Bitbucket Cloud 리포지토리를 추가할 수 있는 기능이 표시됩니다.

이 페이지에서 나가지 말고 다음 섹션에서 Bitbucket Cloud 리포지토리를 가져와 Snyk로 검사하는 방법을 알아보세요.

Bitbucket 애플리케이션 검사 및 모니터링

Bitbucket 검사 및 모니터링 썸네일

애플리케이션에서 오픈 소스 종속성의 취약성을 검사하는 작업은 소스에서 시작됩니다. 이전 섹션에서는 Bitbucket에 대한 Snyk 통합을 사용했으며 첫 번째 프로젝트를 가져올 수 있습니다.

Step 7: Add Bitbucket Cloud repositories to Snyk

이전 섹션의 마지막 화면에서 Snyk에 Bitbucket Cloud 리포지토리 추가를 클릭합니다.

Snyk에 Bitbucket Cloud 리포지토리 추가

환경 구성 모듈에서 포크한 리포지토리를 찾습니다. 확인란을 클릭하여 선택한 다음 선택한 리포지토리 추가 버튼을 클릭하여 프로젝트를 가져옵니다.

오른쪽 상단 모서리의 선택한 리포지토리 추가 버튼

8단계: 취약성 보고서 검토

packages.json을 기반으로 하는 취약성의 개수와 각각에 대한 자세한 정보가 표시되어야 합니다. 방금 검사한 프로젝트를 클릭하고 Snyk에서 결과를 검토합니다. 취약성의 심각도 및 악용 성숙도와 같은 컨텍스트뿐만 아니라 다음과 같은 강력한 기능도 제공됩니다.

취약성 보고서
  • 직접 종속성을 업그레이드하거나 취약성을 패치하여 취약성을 해결하는 데 도움이 되도록 이 취약성을 해결하세요.
  • 우선 순위 점수는 수정의 우선 순위를 효과적으로 정하는 데 도움이 됩니다. 1~1,000 범위의 이 점수는 CVSS 점수, 알려진 익스플로잇 수정의 사용 가능성, 취약성 최신 정도, 도달 가능 여부 등 다양한 요소를 처리하는 독점 알고리즘에 의해 결정됩니다.
  • Jira 통합을 통해 Jira에서 이슈를 만들 수 있습니다.

Atlassian Open DevOps에 대한 통합을 자세히 알아보세요.

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.


이 기사 공유

여러분께 도움을 드릴 자료를 추천합니다.

이러한 리소스에 책갈피를 지정하여 DevOps 팀의 유형에 대해 알아보거나 Atlassian에서 DevOps에 대한 지속적인 업데이트를 확인하세요.

DevOps 일러스트레이션

DevOps 커뮤니티

DevOps 일러스트레이션

시뮬레이션 워크숍

맵 일러스트레이션

무료로 사용해보기

DevOps 뉴스레터 신청

Thank you for signing up