코드 품질, MISRA, CI/CD

Zephyr의 정적 코드 분석: IAR C-STAT으로 더 안전하고 깔끔한 코드 빌드하기

<span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text" >Zephyr의 정적 코드 분석: IAR C-STAT으로 더 안전하고 깔끔한 코드 빌드하기</span>

임베디드 소프트웨어 배포는 단순히 "컴파일"에만 국한되지 않습니다. 안전, 보안, 규정 준수에 관한 문제입니다.
프로덕션 환경에 유입되는 버그는 엔지니어링 시간을 낭비하고 신뢰를 떨어뜨립니다. 취약점은 연결된 디바이스를 노출시킵니다. 또한 규제 대상 시장의 경우 MISRA 또는 CERT 검사를 누락하면 출시가 지연될 수 있습니다. 문제를 더 일찍 발견할수록 더 저렴하고 안전하게 문제를 해결할 수 있습니다.

정적 코드 분석(SCA)은 결함 및 규정 미준수를 가장 저렴하게 수정할 수 있는 시기에 조기에 발견하는 데 도움이 됩니다. Zephyr를 사용하면 우회할 필요 없이 SCA를 빌드에 바로 연결할 수 있습니다.

Zephyr의 서쪽 흐름에 내장된 정적 분석

임베디드 팀의 가장 큰 고충 중 하나는 설계되지 않은 빌드 프로세스에 분석 툴을 끼워 넣으려는 것입니다. Zephyr는 복잡한 스크립팅이나 취약한 해결 방법 없이 정적 분석 도구를 웨스트 기반 빌드 시스템에 직접 연결할 수 있도록 지원하여 이 문제를 해결합니다 .

분석 도구를 선택하려면 ZEPHYR_SCA_VARIANT 빌드 설정을 사용하기만 하면 됩니다.
CMake 인수 또는 환경 변수로 설정할 수 있습니다:

west build -b <보드_이름> <애플리케이션_경로> -- -DZEPHYR_SCA_VARIANT=<tool>

IAR C-STAT에 대한 기본 지원

코드 품질을 증명하고 안전/보안 표준을 충족해야 하는 경우, 이제 Zephyr는 IAR 플랫폼의 일부인 IAR C-STAT에 대한 기본 지원을 통해 그 어느 때보다 쉽게 작업할 수 있습니다.

C-STAT은 여러 코딩 표준과 알려진 보안 취약점에 대해 코드를 검사하는 C 및 C++용 종합 정적 분석 도구입니다:

  • 미스라 C / 미스라 C++
  • CERT C/CERT C++
  • CWE 및 보안 모범 사례
  • 신뢰성 및 유지보수성 검사

Zephyr에서 C-STAT를 활성화하는 방법은 간단합니다. 평소와 같이 빌드하고 추가 매개변수를 추가하여 IAR C-STAT를 Zephyr의 SCA 변형 도구로 선택하기만 하면 됩니다:

west build -b stm32f429ii_aca samples/basic/blinky -- -DZEPHYR_SCA_VARIANT=iar_c_stat

분석 미세 조정

팀마다 엄격한 안전 규정 준수부터 가벼운 보안 검사까지 다양한 요구사항이 있습니다. C-STAT는 유연하여 워크플로에 맞게 분석을 구성할 수 있습니다:

  • CSTAT_RULESET - 규칙 세트 선택(예: all, cert, misrac2012, misrac++2008, stdchecks, 보안)
  • CSTAT_ANALYZE_THREADS - 사용할 스레드 수
  • CSTAT_ANALYZE_OPTS - 추가 분석기 플래그(예: --timeout=900;--deterministic;--fpe)
  • CSTAT_DB - SQLite 데이터베이스 경로
  • CSTAT_CLEANUP - 분석 전에 데이터베이스를 정리합니다.

예를 들어, MISRA C:2012와 CERT 검사를 결합하려면 다음과 같이 하세요:

west build -b stm32f429ii_aca samples/basic/blinky -- \.

-DZEPHYR_SCA_VARIANT=iar_c_stat \.

-DCSTAT_RULESET=misrac2012,cert

팀이 Zephyr에서 SCA를 채택하는 이유

정적 분석은 단순히 규정 준수를 위한 것이 아니라 더 나은 소프트웨어를 더 빠르게 구축하기 위한 것입니다. Zephyr 워크플로에 직접 내장된 SCA를 통해 팀은 다음과 같이 할 수 있습니다:

  • 널 역참조, 버퍼 오버런, 초기화되지 않은 데이터 등 결함을 조기에 발견할 수 있습니다.
  • 표준을 더 빠르게 충족 - 빌드와 통합된 MISRA 및 CERT 검사.
  • 검토에 집중 - 사람이 디자인에 집중할 수 있도록 도구가 위반 사항을 표시하도록 합니다.
  • 신뢰 구축 - 감사 및 고객을 위한 지속적인 코드 상태 증명.

요약

Zephyr의 SCA 인프라와 기본 IAR C-STAT 지원을 사용하면 로컬, CI/CD 파이프라인 또는 컨테이너에서 실행되는 모든 빌드에 보안, 안전 및 규정 준수 검사를 통합할 수 있습니다. 이를 통해 팀은 문제를 조기에 발견하고, 늦게 발견되는 문제를 방지하며, 더 깔끔하고 안전하며 표준을 준수하는 코드를 자신 있게 출시할 수 있습니다.

자세한 내용은 IAR C-STAT을 사용한 정적 코드 분석에 대한 공식 Zephyr 설명서를 참조하세요. 추가 리소스 및 자료는 IAR의 코드 품질 및 규정 준수 솔루션에서도 확인할 수 있습니다.