지난 시간에 아래와 같은 과정을 거치면서 Custom Ruleset을 만들었다. Sonarqube Custom Rule 6.7 to 8.5 migration 기존에 Sonarqube 6.7에서 사용하던 Java Custom Ruleset이 있었다. 그런데 Sonarqube를 8.5 version으로 올리면서 기존의 Custom Rule + Sonarqube 8.5에 추가된 Sonay way를 선별해서 반영해야 한다. 결론부터.. oingdaddy.tistory.com Sonarqube Custom Ruleset 정의의 기준 (with 행자부 보안취약점 대응, OWASP top 10 2020) 현 Sonarqube 버전에 맞는 Ruleset을 재정의를 하라는 작업을 받았다. 전에 작성했던 글과 연장선상에 ..
SonarLint를 설치했다면 SonarLint에서 제공하는 기본 Ruleset만 사용이 가능하다. 개인적으로 사용하며 조금 더 나은 품질을 추구한다면 이렇게 사용해도 되지만 엔터프라이즈 환경에서는 이정도 Ruleset으로는 어림없다. 조금 더 강력한 Ruleset을 가지고 있는 또 재정의가 가능한 Sonarqube Ruleset과 연동이 되어야 한다. 그래서 기존에 설치해놓은 SonarLint와 Sonarqube를 연동해보자. 필자의 Sonarqube 버전은 6.7이고 연동을 위한 최소한의 버전은 6.7 이다. SonarLint Sonarqube 연동 SonarLint 설치가 잘 되었다면 Show View에서 SonarLint Bindings를 볼 수 있다. 창을 열어보자. SonarLint Bingi..
Sonarqube Custom Ruleset 파일을 정의하고 드디어 적용을 하려는 순간이다. 하지만 Restore를 하고 나서 한참을 기다려봐도 아래와 같은 메세지가 상단에 나타나며 적용이 되지 않는다. 분석중이라는데 생각보다 시간이 너무 오래 걸린다. 뭔가 문제가 있는것 같다. 이럴 경우에는 상단의 Administration > Projects > Background Tasks 로 들어가본다. 그럼 Pending 인 프로젝트가 있을수도 있을수도 있다. 이거는 오래걸리는 작업때문에 작업이 지연되고 있는 작업이다. 즉 이 Pending 프로젝트가 원인이 아니라 아래에 In Progress인 작업이 문제인것이다. 이 작업을 종료시켜줘야한다. 하지만 종료를 시킬수 있는 방법은 없다. Sonarqube 재시작을..
소스의 정적분석을 도와주는 대표적인 솔루션은 Sonarqube이다. 보통은 이 Sonarqube를 서버에 별도로 설치를 하고 소스를 이곳으로 보내 분석을 한다. 그렇기 때문에 개발자는 소스를 모두 deploy하고 Sonarqube를 돌리기 전에는 자신의 소스가 어떤 상태인지 알수 없다. 이런 단점을 극복하고 자신의 소스를 가볍게 분석해줄수 있는것이 SonarLint라는 Eclipse plugin이다. SonarLint 설치방법 여느 플러그인을 설치하는 것처럼 이클립스 상단의 Help > Eclipse Marketplace 로 진입 sonarlint로 검색해 보면 위와 같이 나온다. Install을 해준다. 설치과정에 나오는 license는 물론 agree 해준다. 설치가 끝나면 재시작을 하겠다고 한다. ..
현 Sonarqube 버전에 맞는 Ruleset을 재정의를 하라는 작업을 받았다. 전에 작성했던 글과 연장선상에 있는 글이다. 새로 나온 수많은 Sonar way를 다 사용할수는 없다. 이중에서 골라서 사용을 해야 한다. 하지만 무슨 근거로 골라야하나? QA 활동을 해본적이 없는데 난감한 상황이었다. 그냥 내가 위험할것 같으면 적용을 하고 아닌거 같으면 빼야 하나? 아니다.. 정답?은 있었다. 바로 행자부(행정안전부)에서 보안취약점 대응표, OWASP 10을 기준으로 Ruleset을 정하면 된다. SonarQube 행자부 보안취약점 대응표 FB: FindBugs FSB: FindSecurityBugs SQ: SonarQube 자체 지원 No. 행자부 SW 보안약점 FB FSB PMD SQ 1 입력데이터 ..
기존에 Sonarqube 6.7에서 사용하던 Java Custom Ruleset이 있었다. 그런데 Sonarqube를 8.5 version으로 올리면서 기존의 Custom Rule + Sonarqube 8.5에 추가된 Sonay way를 선별해서 반영해야 한다. 결론부터 말하자면 생각만큼 간단한 일은 아니었다. 생각보다 복잡하다. 대략 이런 그림이 그려진다. 그리고 해야할일은 다음과 같다. 1번 영역(6.7 버전의 Custom Ruleset)은 2번 영역(6.7 Sonar way에는 있으나 8.5 Sonar way에는 없는 부분)에 대해서는 빼줘야하는 작업이 일어나야한다. (optional) 이를 하기 위해서는 4번 영역(6.7버전과 8.5버전이 공통인 Rule을 가지고 있는 영역)을 구해야 한다. 3번..
예전에 Sonarqube와 Jenkins를 연동해서 사용하는법에 대해서 다룬적이 있었다. Jenkins에 Sonarqube 연동하기 Jenkins와 Sonarqube 연동을 하려면 일단 Jenkins와 Sonarqube가 설치가 되어 있어야 한다. 각각의 설치 과정은 생략하도록 하겠다. 이 두개의 어플리케이션이 설치가 되어 있다는 가정하에 설명을 하도록 oingdaddy.tistory.com 여기에 추가적인 요건이 들어왔다. JAVA 파일만 검사하던 기존 로직에서 JS도 같은 Sonarqube Project로 묶어서 Sonarqube에서 확인을 하고 싶다는것이다. 이것도 Sonarqube Scanner의 설정파일을 직접 건드리는 것이 아닌 Jenkins의 Execute SonarQube Scanner를 ..
docker로 sonarqube를 설치하고 script를 작성하고 돌려보았다. "No quality profiles have been found, you probably don't have any language plugin installed" 이라는 오류가 떨어지면서 fail 이 발생했다. 실제로 sonarqube에 들어가보니 위처럼 설치되어 있는 플러그인이라던지 language 들이 하나도 없었다. 한마디로 껍데기만 설치가 된 것이다. 플러그인에서 직접 Java Code Quaility and Security 를 설치하려 해도 sonarqube 8.4.1 version은 검색도 되지 않고 7.9.4 version은 설치가 정상적으로 되지 않는다.. 더더구나 플러그인 설치를 시도하면 무한으로 resta..