본문 바로가기

기타 소프트웨어/Coverity

최고의 정적 분석 툴 : Coverity

Coverity Static Analysis Technology는 최고의 정밀성과 확장성을 약속합니다. 세계에서 가장 널리 쓰이고 정확도를 인정받고 있습니다.


핵심기능


Coverity Static Analysis Technology는 최고의 정밀성과 확장성을 약속합니다.

- 전체적이고 심도 깊은 분석을 통해 소프트웨어 오류와 보안 취약점을 검출해 냅니다.
- 소프트웨어가 실행되는 경로를 100% 탐색, 분석하여 사용자가 테스트 하기 힘든 경로를 완벽히 분석합니다.
- 소스코드 또는 빌드 과정의 변경 없이 자동화된 실행을 지원합니다.
- 수천만 라인까지의 대규모 코드도 빠르게 분석이 가능합니다.
- 테스트케이스 작성 혹은 프로그램 실행을 필요로 하지 않습니다.
- 소프트웨어 문제의 근본원인을 정확하게 찾아내어 위치를 파악합니다.

 

분석엔진

Interprocedural Data Flow Analysis 모든 경로와 모든 call chain 을 통해 Data 값을 추적합니다
False Path Pruning 런타임시 실행이 되지 않는 패스는 분석에서 제외시켜 분석결과의 노이즈를 감소시킵니다
Statistical Analysis 소스코드로부터 직접 API 사용룰을 분석하여 나머지 코드부분에서 다른방식으로 사용되는 부분을 체크합니다

Incremental Analysis 두번째 분석부터는 직접 수정된 코드 및 그에 따바 변경된 부분만 분석하여 분석시간을 단축할수 있습니다

 

품질관련(Quality) 분석

Coverity Prevent 는 Interprocedural 분석 엔진을 통해 코드내의 모든 경로를 분석하여 다음과 같은 시스템 장애 , 프로세스크래쉬 , 메모리 및 리소스 누수 , 파일 / 데이터 손상 그리고 기타 퍼포먼스관련 오류를 검출해 냅니다 .

•  API usage errors
•  Buffer overflow
•  Dangling stack references
•  Flawed branch logic
•  Incorrect allocation sizes
•  Logic errors
•  Memory leaks
•  Non-null terminated strings
•  Null pointer dereferences
•  Out-of-bounds array access
•  Stack overflow
•  Stack smashing
•  Stack string overruns
•  System resource leaks
•  Use of freed resources
•  Use of uninitialized data

지원 API

•  Standard C
•  Standard C++
•  Microsoft COM
•  Microsoft Win32

 

보안취약점 (Security Vulnebalities) 분석

Coverity Static Analysis는 다음과 같은 보안 취약점을 검출해 냅니다 .

•  Buffer overflows
•  Cross-site scripting
•  Denial of service
•  File corruption
•  Format string vulnerabilities
•  Improper bounds checking
•  Insecure access control
•  Integer overflows
•  Memory corruption
•  Out-of-bounds array access
•  Privilege escalations
•  SQL injection

지원 API

•  Standard C
•  Standard C++

 
동시성 (Concurrency) 오류 분석

동시성 오류는 테스팅 단계에서 확인되는 경우가 거의 없고 실 운영에서 나타나는 특히 검출하기 어려운 오류로입니다 . Coverity Prevent 는 데드락 (deadlock) 혹은 lock 을 다루는 문제 (lock contention) 같이 시스템 퍼포먼스와 데이터의 정합성 문제를 유발할수 있는 동시성 오류를 검출해 냅니다 .

지원 API

•  Pthreads
•  Microsoft Win32
•  WindRiver VxWorks


Coverity를 사용하면 좋은점..

정확성 (Accuracy) - Coverity 사의 False Path Pruning, Statistical Analysis 등의 혁신적인 알고리즘을 통해 양성오류의 비율을 20% 이하로 낮추었으며 추가 설정 및 튜닝을 통해 양성오류를 더 낮출수 있습니다 .

깊이있는 분석 (Depth of Analysis) - Coverity Prevent 는 interprocedural data flow analysis 와 statistical analysis 를 통해 프로그램 전체와 모든 패스를 망라하는 상호작용 (interactions) 을 분석합니다 . 다른 경쟁툴과는 달리 Coverity Prevent 는 귀사의 코드를 완벽하게 이해하고 분석합니다 .

광범위한 분석 (Breadth of analysis) - Coverity Prevent 는 시스템장애 , 메모리누수 , 비정상적인작동 , 동시성오류 , 보안취약점 검출 등의 소프트웨어의 치명적인 오류를 분석해냅니다 .

낮은 총소유비용 (Low total cost of ownership) - Coverity Prevent 는 개발환경 혹은 코드의 변경이 필요없이 수십분안에 설치가 완료되어 즉시 프로그램 기동이 가능합니다 .

분석범위 확장 (Extensible) - Coverity Prevent 는 귀사의 조직 특성에 맞는 오류체커를 정의하여 사용할 수 있습니다 .

대규모분석 (Massively scalable) - Coverity Prevent 는 빌드시간의 2~4 배정도의 시간이면 분석이 완료되며 수천만라인의 코드의 경우도 수시간안에 분석이 완료 됩니다 .



누가 Coverity를 사용해야 할까요?

직 책 이 점
False Path Pruning 엔지니어링 VP/CTOs 개발 및 테스팅 업무에의 코스트 절감
프로덕트의 품질과 보안 향상
제품출시기간 (time to market) 단축
개발과정에서 품질과 보안의 위험도 파악
엔지니어링 매니저 /QA 매니저 개발과정에서 프로덕트 품질 관리
수정된 버그와 새로 발생되는 버그를 파악
문제가 많은 파일 , 모듈 , 컴포넌트를 파악
개선된 코딩을 강제함으로 개발자의 효율 개선
Security 매니저 개발과정에서 보안위험도 관리
소스코드 , 컴포넌트 , 파일등의 security risk 파악
개발자 개발 전 과정에서 치명적인 오류 및 보안취약점을 확인
테스트케이스 작성 및 매뉴얼테스트 없이 소프트웨어를 테스트 가능
각 오류 원인을 파악하여 즉시 버그를 수정가능
Security Auditor 개발 프로세스의 방해없이 소스코드의 보안취약점을 파악 가능
보안취약점 리포트를 통해 보안위험을 추적관리
자동화된 코드리뷰를 통해 코드 전체의 모든경로를 파악가능
소프트웨어 아키텍트 compliance 를 위한 코딩 스탠다드 , 내부 가이드라인 , 적절한 API 의 사용 , 업계표준 및 best practice 를 강제
함수 , 컴퍼넌트 , 코드 상의 아키텍처 메트릭을 추적

 



지원 플랫폼

C/C++ Source Code Analysis

지원플랫폼
- Linux
- HPUX
- Windows
- Solaris Sparc
- Solaris X86
- Mac OS X
- FreeBSD
- NetBSD

지원 C/C++ 컴파일러
- Sun CC
- MS Visual Studio
- HPUX compiler
- Intel Compiler for C/C++
- Intel Microsignal Architecture compiler
- GCC / G++
- Arm CC
- Metrowerks CodeWarrior
- Wind River Diab compiler
- TI Code Composer C compiler
- Green Hills compiler
- IAR compiler
- PICC compiler
- 기타 ANSI C compatible compilers

지원 Java 컴파일러
- Java JDK (1.4 이상 )

하드웨어 요건

- 512M 메모리 이상
- 300M + 소스크기의 3 배의 디스크 공간