AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

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 파일을 활용하여 분석 설정을 세부적으로 조정할 수 있으며, 이전 버전과의 호환성 문제를 고려하여 분석 방식을 업데이트해야 한다.