PVS-Studio 7.37: 타인 분석 기능 강화 및 MISRA 버전 제어 지원
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
C, C++, C# 및 Java 개발자. 중급 이상의 코드 분석 및 보안 검사에 관심 있는 개발자
핵심 요약
- 타인 분석 기능 강화:
V557
,V609
,V610
,V1083
,V575
등의 규칙을 추가하여 0으로 나누기, 버퍼 오버플로, 비트 연산 오류 등 다양한 오류를 탐지 - MISRA C 버전 선택 기능: Visual Studio Code, Qt Creator, CLion, Rider 등 플러그인 및 명령줄 도구에서 MISRA C 표준 버전 선택 가능
- SLNX 포맷 지원: .NET SDK 9.0.200에서 도입된 새로운 MSBuild 프로젝트 포맷 지원
섹션별 세부 요약
1. 타인 분석 기능 강화
- 타인 데이터를 기반으로 한 버퍼 오버플로, 0으로 나누기, 비트 연산 오류, 정수 오버플로 등 다양한 오류 탐지 가능
- C#, Java 분석기에서 배열 오버런, 오버플로, 0으로 나누기 탐지 기능 강화
- 보안 취약점 탐지 범위 확대
2. MISRA C 버전 선택 기능
- Visual Studio, Qt Creator, CLion, Rider 플러그인 및 명령줄 도구에서 MISRA C 표준 버전 선택 가능
- 이전 릴리스에서는 Visual Studio 플러그인에만 해당 기능 지원
3. SLNX 포맷 지원
- .NET SDK 9.0.200에서 도입된 새로운 MSBuild 프로젝트 포맷인 SLNX 지원
- MSBuild 프로젝트 분석 기능 개선
4. C23 언어 표준 지원
- C23 표준 지원 추가 (
constexpr
,alignas
키워드 포함) - 표준 라이브러리 처리 효율성 향상:
brace-initializer-list
파싱 강화 및std::min
,std::max
,std::unique_ptr
,::reset std::unique_ptr
에 대한 새로운 주석 추가::release
5. `.pvsconfig` 파일 지원
.pvsconfig
파일에서 SAST 식별자 사용 가능- 이전에는 보안 위협 관련 분석 메시지에만 사용 가능
6. 호환성 관련 주의사항
- 이전 버전과 호환되지 않음: 분석기 사용 방식 조정 필요
V1077
규칙 수정으로 기존에 억제된 경고 재설정 필요- 타인 분석 기능 업데이트로
V1010
경고 재발 가능성
7. 새로운 규칙 및 경고
- C:
V1118
- 파일 권한 과도한 설정으로 취약점 발생 가능성 - C#:
V5630
,V3222
,V3223
- 쿠키 주입, 자원 누수, 데이터 레이스 가능성 - Java:
V6126
-V6131
,V5331
,V5332
- 동기화 오류, 자원 누수, 경로 탐색 취약점 등
8. 개발자 관련 추가 자료
- C++ 개발자: "CPython을 이용한 PVS-Studio 활용", "TDengine에서 190개 버그 사례", "Sega Genesis 에뮬레이터 개발"
- C# 개발자:
.NET Digest #7
, "C# 역사: 버전, .NET, Unity, Blazor, MAUI" - Java 개발자: "Elasticsearch 검색 분석", "NASA 행성 소스 코드 오류 사례"
결론
PVS-Studio 7.37은 타인 분석 기능 강화, MISRA 버전 제어, SLNX 포맷 지원, C23 표준 추가 등의 주요 업데이트를 통해 보안 및 코드 품질 검사를 더욱 강화하였다. 개발자는 .pvsconfig
파일을 활용하여 분석 설정을 세부적으로 조정할 수 있으며, 이전 버전과의 호환성 문제를 고려하여 분석 방식을 업데이트해야 한다.