소프트웨어 버그 및 취약점 검출 솔루션
CodeSonar
CodeSonar는 전세계 최초&유일의 소스코드 및 바이너리 내 잠재된 결함을 검출하는 정적 분석 솔루션입니다.
CodeSonar는 타 정적 분석 솔루션과 달리 분석 범위를 소스코드에서 라이브러리 및 바이너리 파일로 확장하여 소프트웨어 내 잠재된 실행시간 오류 및 보안 취약점을 검출합니다. 협력사로부터 바이너리 포맷으로 납품 받거나 바이너리 형태의 라이브러리를 사용하는 경우, 소스코드가 없기 때문에 모든 경로에 대해 디버깅하지 않는 한 오동작 또는 메모리 이슈로 시스템이 실패되는 경우에 대해 검증할 수 있는 방법이 없습니다.

CodeSonar는 소스코드 뿐만 아니라 바이너리 파일도 분석대상으로 하여 소프트웨어를 구성하는 모든 구성 요소에 대해 검증을 합니다. 소스코드와 바이너리, 라이브러리 모두에 대하여 Buffer overrun, Use after free와 같이 Memory corruption(메모리 변형)을 유발하는 결함 및 Tainted 분석을 통해 외부의 입력 값으로 인해 발생할 수 있는 잠재적 위험 결함을 검출합니다.

또한 사용자 친화적이고 직관적인 UI를 제공하여 사용자가 결함 제거에 집중할 수 있도록 합니다. ISO 26262, IEC 62304, DO-178 등 다양한 국제 표준에서 요구하는 정적분석에 대응하고, 자체 품질 향상 프로세스 구축에 CodeSonar를 사용해 보세요.

 

지원 환경

지원언어

C

C++

C#

Java

Python

실행시간 오류 및 보안 취약점 검출

국방 :CWE (658/659 항목 100% 지원)

자동차 :RTE(Run-Time Error), MISRA C:2012, C:2004, C++:2008

보안 :CERT C/C++, Build Security In (BSI)

기타 :Power of 10, DISA STIG, JPL

산업별 기능안전 국제 표준 준수 및 테스트 리포트 지원

국방 :방위사업청 신뢰성 지침 취약점 점검(CWE), DO-178B/C

자동차 :ISO 26262:2011 ASIL D

철도 :EN 50128:2011 SW-SIL 4

전기/전자 :IEC 61508:2010 SIL 4

의료 :IEC 62304, FDA

개발환경 및 CI 환경

Plug-in :Visual Studio, Eclipse

CI 연동 :Jenkins, Cloudbees Flow, JIRA

주요 기능

정확하고 깊은 분석

ㆍ임베디드 환경의 소규모 소스코드는 물론 Android, Yocto와 같은 대규모 코드에 대한 전체 프로그램을 분석ㆍ패턴 매칭을 통한 단순 문법 오류부터 시뮬레이팅을 통한 정적 메모리 오류, 자원 관리, 동시성과 같은 복잡한 결함 검출ㆍ소스코드의 모든 실행 경로 및 호출 관계를 분석

 

편하고 빠른 리뷰

ㆍ결함이 발생되기까지 실행된 경로를 추적하여 문제 해결에 필요한 부분만 리뷰 할 수 있도록 가이드ㆍ식별자(변수, 함수, 매크로 등)에 마우스 오버 시 정의 내용 및 소스코드에서 사용(Read, Write)되는 이력 조회

 

개발팀, 품질팀, 관리자 간 협업

ㆍ웹 기반의 통합 관리 시스템 제공ㆍ검출된 결함에 대해 개발 주기별로 결과 추이를 확인하고 통합 관리ㆍ프로젝트별, 결함별 담당자 할당 및 권한 부여

 

쉬운 커스터마이징

ㆍ사용자의 정의에 따라 결함을 중/경결함으로 분리하여 우선순위 부여ㆍCWE, MISRA와 같은 코딩 규칙 룰셋 적용ㆍ검출할 결함을 추가 또는 제외

 

체계적인 프로세스화를 통한 업무 효율성 극대화

ㆍ초기베이스 라인 분석 수행 후 Incremental 분석을 통해 추가 된 코드에 대한 데일리빌드 수행 가능ㆍ멀티 코어 환경을 활용한 병렬 분석 지원ㆍPython API를 통해 다른 도구와 integration 가능

 

소프트웨어 구조 시각화

ㆍ함수, 프로시저 간 연결 관계를 분석하여 소프트웨어의 전체 구조 및 결함 분포율에 대해 시각화ㆍ잠재적으로 위험한 정보 유입에 대한 원인을 빠르게 포착하는 Taint 시각화 지원

 

바이너리 분석

ㆍ바이너리 분석을 통해 소스코드를 확보할 수 없는 서드파디코드 또는 라이브러리에 대한 결함 및 보안취약점 검출ㆍ외부 Custom 라이브러리 함수의 잘못된 사용으로 인해 발생할 수 있는 결함 및 보안 취약점 검출

 

적용 사례

자동차

구분내용
회사명자동차용 칩관련 SW를 개발하는 국내업체 (‘C사’)
상황해외사업 확장 과정에서 외국 고객과의 미팅 시 Source Code에 대한 검증부분이 검토됨CMMI 취득과 함께 Source Code의 신뢰성 확보를 위해 다양한 도구를 검토하던 중, CodeWarrior기반 개발 환경에 가장 빠르고 쉽게 적용할 수 있는 도구를 찾음CodeWarrior의 IDE에선 Compiler가 실행파일이 아닌 DLL 형태로 제공되는데, 이런 DLL 형태의 Compiler를 지원하지 못하는 도구가 있음
해결방안 및 효과- CodeSonar는 CodeWarrior와 같은 Compiler 환경뿐만 아니라, 다양한 환경의 Compiler를 추가할 수 있음- 8명의 개발자들이 Pilot 형태로 CodeSonar를 3개월 간 운용한 결과, 1만 라인당 12개 정도의 Major Issue가 발견됨. 이후 각 개발자들은 CodeSonar의 쉬운 Review방식을 이용하여 1주 이내에 하나의 프로젝트를 검증. 이에 따라 확대 적용키로 결정함- CodeSonar에서 검출한 Major Bug를 모두 Fix하여야만 QA팀에서 Source Code를 이관받는 프로세스를 적용하기로 함

국방/항공

구분내용
회사명NASA
상황NASA/JPL Laboratory for Reliable Software (LaRS)은 Mission-critical한 SW의 신뢰성을 높이는 것을 목적으로 함. 2006년엔 최상의 Safety Critical Software-Development Projects에 적용될 수 있도록 수많은 guideline을 만족하는 소스 검증 솔루션을 제안 받음
해결방안 및 효과GrammaTech의 최신 기술로 개발된 Static Analysis Testing이 NASA에서 추구하는 높은 신뢰성을 보장하는 SW를 개발하는 데 도움이 될 것이라는 확신 하에, NASA는 $600,000을 GrammaTech에 투자함

의료 분야 적용사례

구분내용
회사명자동차용 칩관련 SW를 개발하는 국내업체 (‘C사’)
상황- 환자의 몸에 영양 및 약을 투여하는 약물 자동 주입기에 대한 불만접수가 5년간 매년 10,000건 이상 접수됨- 약물 자동 주입기의 문제로 500건 이상의 사망 발생- 87건의 약물 자동 주입기 리콜 발생- 약물 자동 주입기의 문제 원인으로 제품 설계 및 코드상의 오류 지목
해결방안 및 효과- 의료와 관련된 모든 기기들을 대상으로 제품 출시 전 S/W Validation, Verification 필수화- S/W 잠재적 결함 제거 확인 및 신뢰성 시험을 위해 CodeSonar 도입- CodeSonar를 통해 S/W 결함을 개발 초기에 발견하고 발생 가능한 모든 실행 경로를 분석하여 S/W의 신뢰성 검토
구분내용
회사명Micrel Medical Devices
상황이동식 약물 주입기 솔루션의 단순화, 안전화를 위하여 내부 코딩룰 수립 및 NASA/JPL, Power of 10 Rules와 같은 외부 코딩룰을 선정하여 개발 프로세스에 적용내/외부 코딩룰 준수, FDA의 Class Ⅱ B 준수 및 개발 프로세스 상에서 SW 신뢰성을 높일 수 있는 정적 분석 도구 검토
해결방안 및 효과같은 소스코드로 여러 경쟁 도구와 사용성, 내/외부 코딩룰 준수 duqn, 분석 깊이, 개발 프로세스와 일치성 비교 검토 결과, CodeSonar 선택타 도구 대비 JPL 코딩룰 준수 및 손쉬운 룰셋 변경, 제한 없이 구조 변경 가능한 리포트 추출, 차수별 분석 결과 비교 기능 등을 가장 큰 선정이유로 꼽음이전 개발 프로세스는 S/W실패를 유발하는 결함 및 원인을 분석하는데 많은 시간과 노력을 소요해야 하는데 CodeSonar를 사용하면 손쉽게 S/W 신뢰성 향상이 가능함

디지털기기 & 가전 분야 적용사례

구분내용
회사명세계적인 Memory 생산 업체(SanDisk)
상황다양한 제품별로 SW를 개발해야 하기 때문에 Defect를 정확히 검출해 내고, 빠른 시간에 분석할 수 있는 Static Test 도구를 필요로 하게 됨CodeSonar 포함 3개의 제품을 Test하였으며, (1) Report되는 Defect의 수, (2) 사용의 편이성, (3) Data 표현 방법, (4) 다른 제품과의 Interface,(5) Command line의 지원 등을 평가 기준으로 Evaluation 진행함
해결방안 및 효과3가지 도구에서 찾는 Defect가 약간씩 다르게 나타났으나, CodeSonar가 찾는 Real Problem이 가장 많았음타 도구에 비해 1.7배, 4.3배 많은 Real Problem을 찾음사용의 편리성 및 Data 표현 방법 역시 CodeSonar에서 제공해주는 Source line color coded approach로 인해 개발자들이 가장 편리한 방식으로 선정함

휴대폰

구분내용
회사명삼성전자의 스마트폰 개발을 대행해 주는 국내 회사 (‘M사’)
상황XX플랫폼에 애플리케이션을 망 연동 시험 전 포팅해야 함플랫폼이 늦게 Release됨에 따라 기한이 촉박하였고, 애플리케이션이 플랫폼에서 Lock-up되는 문제 발생주어진 기한이 2일 남은 상태에서 수십만 라인의 코드 시험, 라이브러리, Porting, 통합 시험, 에러의 추적/분석 시간 등을 2일 만에 Debug하는 것은 불가능해 보임
해결방안 및 효과분석 라인 : 약30만 LOC, 실행 소요시간 : 약 1시간, 전체 Issue : 60여 개, 집중 검토 Issue : 6개Buffer Overrun 4 issues, Leak 1 issue, Type Overrun 1 issue.수집된 정보를 바탕으로 개발자들이 Review한 결과 지적된 라인에서 Buffer overrun에 의해 시스템이 Lock-up되는 현상을 파악할 수 있었음특히 실행 Path를 정확히 표시해 주기 때문에 더욱 빠르게 Code Review를 할 수 있어, 정해진 시간 내에 Bug를 검출 완료함

주요 고객

국방/항공
자동차,보안,
의료 및 기타
제 품문 의
top