페이지 트리

이 문서는 2022년 4월 4일 출시된 SonarQube 9.4 릴리즈 노트를 공유하기 위해 작성 되었다.


https://www.sonarqube.org/sonarqube-9-4/



GCP 용 테라폼과 더 개선된 Security Hotspots 리뷰

SonarQube 9.4에는 Google Cloud Platform 및 Azure Cloud를 위한 테라폼 규칙이 추가되었습니다.
GCP의 경우 총 17개의 새로운 규칙이  권한, 저장 및 전송중 암호화, 추적성/로깅에 적용됩니다. 
또한 세 가지의 새로운 추적성/로깅 Security Hotspots 규칙으로 Azure Cloud 용 테라폼을 확장시켰습니다.

전체적인 Security Hotspots 환경이 개선되었습니다. 먼저 이슈의 원인이되는 보조 위치 표시 기능을 추가했습니다.
이러한 추가 위치를 확인하는 것은 이슈를 이해하고 해결방법을 이해하는 데 도움이 됩니다. 
또한 인프라 관련 Security Hotspots은 바로 수정할 수 없기 때문에 리뷰중에 수정이 필요한 것에 대해 "acknowledge" 기능을 추가했습니다.
Security Hotspot을 승인하면 리뷰된 것으로 표시됩니다. 시간이 되면 Acknowledged 필터를 사용하여 쉽게 다시 찾을 수 있습니다.


평균 30% 더 빠른 Java 분석

이제 분석 속도가 최고 67%까지 향상되면서 고성능 영역으로 넘어가고 있습니다. 
100M LoC 프로젝트를 분석하는 베타 테스트에서 분석 소요 시간이 38분에서 18분으로 감소했습니다. 
규모가  프로젝트는  큰 이득을 얻을  있지만, 프로젝트 전반에 걸친 테스트에서 Java 센서의 속도가 평균 30% 향상되었습니다.

여러  분석하면 속도/정밀도가 떨어지지만 보다 효율적인 파일 처리로 속도/정밀도를 얻을 수 있습니다. 
하나씩 처리하는 대신 이제 관련 파일을 일괄 처리할  있습니다.
즉, 정밀도를 잃지 않고도  빠르게 분석할  있습니다.

상업용 에디션의 경우, 분석 대상을 제한함으로써 PR에 대한 분석 속도가 8~24%까지 더욱 빨라졌습니다. 9.4부터는 PR의 변경된 파일만 완벽하게 분석됩니다. 
변경되지 않은 파일의 경우 구조/파일  정보가 필요한 규칙만 실행합니다.
 즉, 다른 파일의 변경으로 영향을 받을  있는 규칙을 다시 실행합니다.  (페이지에서 전체 규칙의 목록을 찾을  있습니다.) 
변경되지 않은 파일의 대부분의 이슈는 PR 분석에서는 표시되지 않지만, 변경된 행 보조 위치에 대한 이슈가 표시됩니다.

이러한 새로운 변경으로 인해 이전 코드에서 발생한 이슈를 더 신속하게 PR 분석을 수행할 수 있으며 따라서 두 가지 장점을 모두 얻을 수 있습니다.

올해 말에 다른 언어들도 공개할 예정입니다.


OWASP Top 10 2021 지원

OWASP는 3가지 새로운 카테고리를 업데이트한 Top 10을 작년 말에 발표했습니다. SonarQube 9.4를 통해 OWASP Top 10 2017과 함께 업데이트된 목록에 대한 지원을 추가했습니다.
새로운 목록을 참조하도록 관련 기존 규칙이 업데이트되었습니다. 규칙  이슈 페이지에서  카테고리 별로 이슈 필터링할  있습니다.


Enterprise Edition에서는 UI와 Security Report PDF에서 찾을  있는 2021년 카테고리 대한 보고서를 추가했습니다.


불명확한 Java 취약성 감지를 추가한 오염도 분석

Java 오염도 분석은 확장되어 더 많은 규칙으로 여러분의 코드를 보호하고 이전에 숨어있던 추가적인 정탐(true positives) 감지에 대한 종속성을 더 잘 이해할 수 있게 합니다.

이는 리플렉션과 NoSQL에 대한  가지 새로운 인젝션 관련 규칙 파일 쓰기를 포함하는 JSON  XML 인젝션 규칙 확장으로 시작됩니다. 그 다음으로 새로운 규칙은 스레드 일시 중단이 DoS 공격에 취약한 경우 감지합니다.. 
마지막으로, 안전하지 않은 XML 처리의 추가 유형에 대한  가지 새로운 규칙이 모든 에디션에 있습니다.
: 임의 파일 포함, 외부 스키마 로드, 서명 검증  XML Bomb 감지

기존의 모든 오염도 분석 규칙을 포함하여 새로운 규칙은 완료된 작업에서부터 이전보다  많은 인젝션 결함을 찾는데 많이 쓰이는 10개의 Java 라이브러리 내 데이터 흐름까지 이점을 얻을 수 있습니다.
: Apache HttpClient, Spring Boot Starter Web, Apache Log4j Core, H2 Database Engine, MySQL Connector/J, HttpClient, Xerces2 J, MongoDB Driver, Dom4j, Retrofit.


더 부드럽고, 똑똑해진 SonarLint 

SonarLint 사용자는 Quality Profile 변경 사항에 대한 자동 동기화로 이점을 얻을  있습니다. 수동으로 변경 사항을 끌어올 필요 없이 백그라운드에서 자동으로 수행됩니다. 
따라서 IDE에서 SonarQube 분석 중에 적용되는 규칙을 항상 최신 상태로 유지합니다.
  기능은 JetBrains IDE에서 이미 사용할  있으며, Eclipse  VS Code도 곧 제공될 예정입니다. 
또한 세 가지 IDE 모두 독립 실행형 모드와 SonarQube 9.4에 연결된 경우 JavaScript 및 TypeScript에 대한 빠른 수정 사항을 얻을 수 있습니다.


C++ 및 C에 대한 향상된 정밀도, 컴파일러 지원

헤더파일의 향상된 처리는 더 적은 미탐(false negative)을 의미합니다. SonarQube 9.4로 시스템과 사용자 헤더를 구분하여 사용자 헤더를 적절하게 분석합니다.
이는 대부분 규칙에 대한 미탐(false negative)의 감소를 의미합니다.  특히 공백지시기 오류(Null pointer dereferences)  감지하는 S2259와 같은 고급 버그 규칙 경우는 미탐이  적습니다.


Portfolio PDF의 Clean as You Code 

SonarQube 9.3에서 Clean as You Code 방법을 Enterprise Edition Portfolios에 도입했었습니다. 이제 포트폴리오 PDF 전체에도 반영됩니다. 
따라서 New Code에 대한 커뮤니케이션은 프로젝트에서 Portfolio to PDF에 이르기까지 전반적으로 일관됩니다.



Language Updates