GitLab 취약점 보고서(Vulnerability report)는 소프트웨어 개발 프로젝트에서 기본 브랜치의 스캔 결과와 사용자가 직접 추가한 취약점 기록, 운영 환경을 스캔하면서 발견한 취약점을 두루 보여줍니다. 이 보고서는 아래 이미지와 같이 각 취약점의 심각도를 색상별로 구분해 쉽게 알려주고, 각 취약점의 설명도 한눈에 보여주죠. 애플리케이션을 개발하다 보면 프로젝트의 취약점을 다른 사람에게 공유해야 할 때도 있는데요. 취약점 보고서 화면 오른쪽 상단에 Export
버튼을 누르면 보고서를 CSV 파일로 다운로드 받아 공유할 수 있습니다.
여러분 가운데에는 취약점 보고서를 CSV 파일이 아닌 다른 형식으로 공유하거나, GitLab 외 다른 도구로 보고서를 관리하고 싶은 분도 있을 텐데요. GitLab은 GitLab API를 활용하여 취약점 정보를 쉽게 쿼리하고, 취약점 보고서를 PDF 파일로 내보내는 기능을 제공합니다. 아울러 취약점 보고서를 Jira에 내보내 이 도구로도 보고서 내용을 조회하도록 지원하죠. 오늘은 GitLab의 이러한 기능을 활용하여 취 약점 보고서를 가독성 좋게 변환하고, Jira에서도 이를 편리하게 확인하는 방법을 알아보겠습니다.
PDF 파일로 내보내기
저는 취약점 보고서를 PDF 파일로 내보내는 과정을 소개하기 위해 GitLab에 샘플 프로젝트를 생성했습니다. 이 프로젝트에는 프로젝트의 취약점 보고서를 쿼리한 다음, 해당 데이터에서 HTML 파일을 생성하는 파이썬 스크립트가 있고요. 프로젝트에 구성된 파이프라인은 이 스크립트를 실행하고, HTML 파일을 PDF 파일로 변환하며, 이 파일을 아티팩트로 남겨 다운로드 받도록 해줍니다. 지금부터 취약점 보고서를 PDF 파일로 내보내는 방법을 단계별로 설명하겠습니다.
프로젝트 fork 하기
먼저 GitLab의 샘플 프로젝트로 이동하여 프로젝트를 fork 합니다.
GitLab의 프로젝트 fork 화면CI/CD 변수 설정하기
이어서 파이프라인을 실행할 때 필요한 CI/CD 변수를 GitLab의 **CI/CD → Variables **페이지에서 설정합니다. 각 CI/CD 변수의 내용은 아래와 같습니다.
- PRIVATE_TOKEN: 취약점 정보(read_api 범위)에 액세스할 권한이 있는 GitLab 프로젝트/개인 액세스 토큰입니다.
- PROJECT_ID: GitLab의 프로젝트 ID입니다.
GitLab Variables 페이지의 파이프라인 실행용 CI/CD 변수 목록
파이프라인 실행→HTML 파일 생성→PDF 변환하기
CI/CD 변수를 설정한 다음, 프로젝트의 GitLab 파이프라인 페이지에서 수동으로 파이프라인을 실행합니다. 이 파이프라인은 파이썬 스크립트를 실행하고, 이 파이썬 스크립트는 취약점 보고서의 HTML 파일을 생성합니다. 아울러 파이프라인은 HTML 파일을 PDF 형식으로 변환하며 결과물을 아티팩트로 출력합니다. 이 아티팩트를 다운로드 받아 열면 아래 두번째 이미지와 같은 결과물이 나옵니다. 취약점 탐지일, 심각도와 설명, 식별자, 보안 검사 이름이 표시되어 있습니다.
취약점 보고서의 HTML 파일을 생성한 결과취약점 보고서를 HTML 파일에서 PDF 형식으로 변환한 결과
Jira에 내보내기
GitLab과 Jira API를 사용하여 앞 사례와 비슷한 방식으로 취약점 보고서를 Jira에 내보낼 수 있는데요. 이 작업을 진행하려면 아까처럼 GitLab의 샘플 프로젝트로 이동한 다음, 프로젝트를 fork 합니다.
GitLab의 프로젝트 fork 화면