개요
sonar-qube는 기본적으로 소스 취약점 검사를 무료로 지원한다.
하지만, Jave, Go, C#... 등 대부분 객체지향 및 요즘? 언어 위주로 지원한다.
아마 메모리 가비지 처리해주는 위주로 되어 있는듯 하기도 하다.
그렇지만 필자는 C++, C도 남아 있는지라.. CXX도 되는지 확인이 필요하다.
다행히? 무료 구독에서도 잘 설치하면 가능할거 같다.
조사
- cppcheck (사용안함): https://github.com/SonarQubeCommunity/sonar-cppcheck
- 버전 매트릭스: https://github.com/SonarOpenCommunity/sonar-cxx/wiki/Compatibility-Matrix
- 인스톨 방법: https://github.com/SonarOpenCommunity/sonar-cxx/wiki/Install-the-Plugin
- sonar-cxx 릴리즈 내역: https://github.com/SonarOpenCommunity/sonar-cxx/releases
조사한 결과 C, C++을 검사하기 위해서는 cppcheck? 와 플러그인 연동하는 방법도 보인다.
하지만 좀더 본 결과 자체 CXX를 플러그인 설치해서 사용이 가능하므로, 최신을 쓰기로 합니다.
SonarQube 릴리즈 내역
https://github.com/SonarOpenCommunity/sonar-cxx/wiki/
Home
SonarQube C++ Community plugin (cxx plugin): This plugin adds C++ support to SonarQube with the focus on integration of existing C++ tools. - SonarOpenCommunity/sonar-cxx
github.com
SonarQube (docker-compose) 설치
[추가 요구]
- Docker-Compose로 설치
- Sonar Qube 데이터는 별도 분리하여 Volumes 처리하여 Container가 삭제되어도 유지하도록 한다.
- 앞서 설명한 대로 "cxx-plugin"을 사용 (버전: sonar-cxx-plugin-2.2.2.1409.jar 사용)
설치 방법
깃헙에 docker-compose가 있습니다.
https://github.com/nk915/sonarqube_docker-compose
GitHub - nk915/sonarqube_docker-compose
Contribute to nk915/sonarqube_docker-compose development by creating an account on GitHub.
github.com
이후 도커 컴포즈 실행
docker compose -f docker-compose.yml up -d
혹시 메모리 오류로 실행이 되지 않으신분은 아래의 조치를 해주시면 됩니다.
리눅스 커널 설정 (일정 버퍼 이상 사용하도록)
sudo bash -c "echo 'vm.max_map_count=262144' >> /etc/sysctl.conf"
sudo sysctl -p

초기 ID: admin
초기 PASSWORD: admin
추가 설정
CXX는 새로 설치한 플러그인으로 취약점 기능 ON 해야한다.


참고
C++ 검사: https://cppcheck.sourceforge.io/
AI로 아래의 이런 저런 커맨드를 했지만,
결국 나의 방법대로 하나씩 찾는게 오히려 빠르게 구성했습니다.
그러나 AI로 문제점을 명확한 로그 분석이나 정적 분석을 시킨다면 업무 활용도는 높아 보이네요.
--- 커맨드...
sonarcube를 도커 설치로 하려고 하는데, 아래의 요구사항을 충족해야한다.
1. docker-compose yml 하기의 모든 항목을 해당 파일로 한방에 되도록 한다.
2. docker container가 삭제되어도 데이터는 유지하도록 별도의 DB도 함께 해야한다.
3. cppcheck 툴도 sonarcube에 함께 쓰기 위해 SonarQube Cppcheck Plugin도 같이 적용