일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- kubernetes
- AWS Elasticsearch
- AWS
- AWS EKS
- AWS 쿠버네티스
- isms-p
- iam
- 모의해킹
- TSK
- AWS Opensearch
- CFReDS
- 쿠버네티스
- Autopsy
- The Sleuth Kit
- 정보보안기사 실기
- 보안기사
- 보안
- 포렌식
- hacking case
- ISMS-P 인증심사원
- k8s
- 정보보안
- 실습
- 해킹
- AWS EKS Udemy
- forensic
- SMS-P 인증 기준 안내서 요약
- 정보보안기사
- ISMS
- artifacts
- Today
- Total
Always-Try(정보보안 및 일상)
[DevSecOps] Jenkins CI/CD 파이프라인 SonarQube 통합 (2/3) - Sonarqube 설치 및 Jenkins 연동 본문
[DevSecOps] Jenkins CI/CD 파이프라인 SonarQube 통합 (2/3) - Sonarqube 설치 및 Jenkins 연동
Always-Try 2022. 2. 14. 19:33https://yeonyeon.tistory.com/83
먼저 www.sonarqube.org/downloads/ 에서 Sonarqube Community Edition을 설치한다.
필자는 C:\Program Files 아래에 압축을 풀었고, 압축이 풀린 폴더의 bin 디렉터리에서 StartSonar.bat 파일을 우클릭하여 관리자 권한으로 실행 후 http://localhost:9000 으로 접속하면 접속이 가능하다. (초기계정 admin/admin)
다음으로 https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/ 에서 본인의 OS에 맞는 Sonarqube Scanner를 다운로드하고 압축을 해제한다.
그 후 sonarqube에서 새로운 프로젝트를 생성한다.
Jenkins와 연동할 토큰도 새로 만들자.
My Account > Security > Generate Tokens
그리고 Jenkins 플러그인으로 SonarQube Scanner를 설치해주자. (Jenkins 관리 > 플러그인 관리 > 설치 가능 > Sonar 검색)
계속 기다려도 자동으로 재시작이 안되서 그냥 실행중인 jenkins 프로세스를 종료했다가 다시 실행했다.
다음으로 Jenkins 관리 > Global Tool Configuration > SonarQube Scanner > Add SonarQube Scanner 에서 SonarQube Scanner를 등록해준다. 아까 설치한 SonarQube Scanner 경로를 지정해주는 것으로 예상했는데, 새로 설치하도록 메뉴를 안내하고 있다.
이제 아까 발급한 sonarqube 토큰을 jenkins에 등록해주도록 하자. (Jenkins 관리 > 시스템 설정 > SonarQube Servers)
이후 프로젝트에서 빌드 과정에 SonarQube Scanner를 추가해주도록 하자.
적용할 프로젝트 > 구성 > Build > Add build step > Execute SonarQube Scanner > Analysis properties
sonar.login=b5b113ea36416fddf79f214bb6694cb902798277
sonar.projectKey=always-try
sonar.projectName=always-try
sonar.host.url=http://localhost:9000/
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
이후 Build Now 후 Jenkins 로그를 통해 어떻게 진행되는지 보자. 빌드 과정에서 SonarQube로 소스코드 분석을 요청하고 동작하고 있는 것을 확인할 수 있다.
이제 SonarQube로 이동해보면 아무것도 없없던 Project 옆에 'Passed'라는게 생겼고 숫자도 모두 미묘하게 조금씩 변해져있다. 1 Line의 파이썬 코드가 1개 있었는데, 잘 검사가 된 것으로 보이고, 특이사항이 없어서 빌드까지 완료된 것으로 보인다.
그리고 화면 위쪽에 warning이 떠있어서 봤더니 아래와 같이 파이썬 2, 3 버전에 대해 특정할 수 있다는 내용이다.
그럼 이제 기본적인 테스트는 되었고, 취약한 코드를 github에 올리고 jenkins에서 빌드해봤을때 SonarQube에서 어떻게 나오는지 확인해보자.
먼저 https://covenant.tistory.com/115 에서 취약하다고 하는 코드를 필자의 PC 내 repository 생성한다. 이후 Github Desktop을 통해 commit과 push를 하고, Jenkins에서 Build Now를 실행시켜보자. (지난 포스팅에서 GIthub push Webhook timed out 이슈 때문에 수동으로 Build Now를 클릭한다는 점 참고.)
결과는?!
- PC 내 repository에 취약한 코드 생성: 성공
- Github commit & push: 성공
- Jenkins 빌드 및 배포: 성공
- SonarQube 코드 정적 분석: Failed
SonarQube Failed가 나왔는데 빌드 및 배포가 되었다. 순서에 문제가 있는 것인가? 이것은 추후 확인해보도록 하고 다음번엔 https://sonarqubekr.atlassian.net/wiki/spaces/SON/pages/11894857/SonarQube 에 있는 예제를 통해 SonarQube에 대해서 더 알아보도록 하자.
'Unclassified' 카테고리의 다른 글
1Password 사용법(패스워드 관리 앱) (0) | 2022.03.02 |
---|---|
Linux 시스템 상태 확인 쉘 스크립트 (bash shell) (0) | 2022.02.19 |
[DevSecOps] Jenkins CI/CD 파이프라인 SonarQube 통합 (1/3) - Jenkins 설치 및 Github 연동 (1) | 2022.02.14 |
Github Desktop 버전 설치 및 사용법 (0) | 2022.02.13 |
[Azure] Azure 계정 만들기 및 무료 혜택 (+서버 생성) (0) | 2022.02.05 |