페이지 트리

이 문서는 SonarQube에 ISMS Rule Set을 구성하는 방법을 공유하기 위해 작성되었다.



선행조건

플러그인 설치

ISMS는 Findbugs, PDM, Find Security Bugs 룰을 기반으로 구성되므로 관련 플러그인을 설치한다.

Administration >> System >> Update Center 화면에서 플러그인을 설치한다.

  • Find Bugs (Find Security Bugs가 포함됨)
  • PMD

룰셋 구성

분석룰은 Quality Profile을 기준으로 관리할 수 있다. Quality profile을 생성하여 profile에 rule를 정의한 후 완성된 profile을 프로젝트에 지정하는 절차를 따른다.

품질 프로파일 생성

 Quality Profiles >> Create  메뉴를 이용한다.

New Profile 아래 정보를 입력하고 Create 버튼을 클릭하여 적용할 언어를 지정한다.

  • Name
  • Language > C#
                     > Java
                     > JavaScript

품질 프로파일 복사와 같은 부가 기능은 SonarQube 관리자 가이드를 참조한다.

프로젝트에 프로파일 적용

Language 별로 품질 프로파일을 프로젝트에 적용할 수 있으며 모든 프로젝트에 적용하는 방식과 특정 프로젝트에 적용하는 방식을 선택할 수 있다.

Quality Profiles >> Quality Profiles 화면에서 프로젝트에 적용할 품질 프로파일을 구성한다.

특정 프로젝트에 적용 예)

다음 화면은 KUH Quality Profile을 "My project"에 적용하도록 구성하는 예이다.

Java 언어에 대한 프로파일을 모든 프로젝트에 적용 예)

품질 프로파일을 선택한 후 아래 그림의 "Set as Default"를 선택하면 해당 프로파일은 선택한 언어에 대한 기본 프로파일로 설정된다.

이제 KUH Quality Profile은 모든 Java 언어에 대한 품질 프로파일로 동작한다.

룰 셋 편집

Rules >> Rules 페이지에서 룰 편집 기능을 제공한다.

언어, 품질 등급 (Type), Tags, Status, Quality Profile등을 혼합하여 룰을 편집할 수 있다. 아래 그림의 예는 Java 언어, Bug/Code Smell 타입, Deprecated 상태 룰을 나타낸다. 

룰 추가

편집하고 싶은 품질 프로파일을 선택하여 "inactive" 버튼을 클릭하여 품질 프로파일에 포함되지 않은 룰의 목록을 확인한다.

룰의 우측 Activate 버튼을 누르면 선택된 품질 프로파일 "KUH Quality Profile"에 해당 룰이 추가된다.

옵션창이 나타나 Severity와 룰의 옵션을 선택할 수 있다.Activate 버튼을 누르면 선택된 룰이 품질 프로파일에 추가된다.

룰 제거

편집하고 싶은 품질 프로파일을 선택하여 "active" 버튼을 클릭하여 품질 프로파일에 포함된 룰의 목록을 확인한다.

룰의 우측 Deactivate 버튼을 누르면 선택된 품질 프로파일 "KUH Quality Profile"에서 해당 룰이 제거된다.

ISMS 룰 구성

ISMS 코드 품질 룰은 Find Bugs, Find Security Bugs, 그리고 PMD의 집합으로 구성된다. 따라서 룰을 목록에서 찾아 품질 프로파일에 포함시킨다.

Find Bugs 및  Find Security Bugs 룰셋


PMD 룰 셋

Sonar-Runner를 이용한 룰셋 동작 확인

Bamboo, Jenkins등과 같은 지속적인 통합 도구와 연동된 경우 프로젝트에 설정된 품질 프로파일을 통해 프로젝트가 자동으로 분석된다.

본 절에서는 Sonar-Runner를 이용해 임의의 프로젝트를 SonarQube에서 분석하는 방법에 대해 설명한다.

설치

여기에 다운로드 링크를 제공한다.

설치된 폴더에서 sonar-scanner.properties 파일에 sonarqube 서버 주소를 구성한다.

<install_directory>/conf/sonar-scanner.properties:

Security Token 생성

사용자 메뉴 >> My Account >> Security >> Tokens 화면의 Generate 버튼을 눌러 token을 생성한다.

소스코드 분석

분석하려는 프로젝트 최상위 폴더에 sonar-project.properties 파일을 생성하고 다음 예와 같이 정보를 설정한다. 주의할 점은 소스코드는 빌드 가능해야 한다.

sonar-project.properties
# must be unique in a given SonarQube instance
sonar.projectKey=my:project

# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=My project
sonar.projectVersion=1.0

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set. 
# If not set, SonarQube starts looking for source code from the directory containing 
# the sonar-project.properties file.

sonar.sources=.

# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8


# Security token
sonar.long=1d05a42e9fc445722b5616474a9b65f36c0f1eee


소스코드 최상위 폴더에서 sonar-runner를 실행한다.



  • 레이블 없음