SW 개발도구

  • SW개발도구
  • CodeSonar
제품문의

실행시간 오류 및 보안 취약점을
검출하는 정적 분석 솔루션

전세계 최초&유일의
소스코드 및 바이너리 내 잠재된 결함을 검출하는
정적 분석 솔루션

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

CodeSonar 특징

정확하고 깊은 분석

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

편하고 빠른 리뷰

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

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

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

쉬운 커스터마이징

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

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

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

소프트웨어 구조 시각화

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

바이너리 분석

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

CodeSonar 사용 고객

국방, 항공
개요
자동차, 보안, 의료 및 기타
개요

CodeSonar 주요 사례

자동차
구분 내용
회사명

자동차용 칩관련 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에 투자함

의료 분야 적용사례
구분 내용
회사명

FDA

상황

환자의 몸에 영양 및 약을 투여하는 약물 자동 주입기에 대한 불만접수가 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를 검출 완료함