프로젝트 소개
SolidSyslog는 임베디드 및 산업용 장치를 대상으로 하는 구조화된 syslog 클라이언트 라이브러리입니다. RFC 5424 구조화 syslog를 구현하며, UDP(RFC 5426) 및 TCP(RFC 6587) 전송을 지원합니다. RFC 5425에 따른 TLS는 플랫폼에서 제공되므로 모든 TLS 라이브러리가 동일한 Stream vtable 뒤에 연결될 수 있습니다. TLS는 핵심 의존성이 아니며, Core는 TLS 라이브러리에 대한 참조를 포함하지 않습니다.
명시된 목적은 EU 사이버 복원력 법(Cyber Resilience Act) 및 IEC 62443에 따라 예상되는 보안 감사 추적을 출시되는 임베디드 제품에 제공하는 것으로, 재설계가 아닌 추가 구성 요소로 제공됩니다.
프로젝트에서 공개한 리소스 사용량: 유효한 타임스탬프가 포함된 RFC 5424 레코드를 전송하는 데 약 +5KB 플래시 및 1.9KB RAM; 저장 후 전달, 장치 ID, 상호 TLS 및 저장 시 AES-GCM 암호화를 포함한 전체 경로에 약 +16.4KB 플래시 및 36.3KB RAM(주로 TLS 버퍼)이 필요합니다. 이 수치는 FreeRTOS, lwIP, FatFs 및 Mbed TLS를 이미 실행 중인 장치에 라이브러리가 추가하는 양으로, QEMU에서 Cortex-M3로 측정되었습니다. 두 가지 통합 예제가 별도 저장소로 게시되어 있으며, 하나는 CMake, 다른 하나는 Make로 사용되며 각 단계가 단일 커밋으로 구성됩니다.
설계 특성:
- C99, 동적 메모리 할당 없음; 인스턴스는 컴파일 시 크기가 지정된 라이브러리 내부 정적 풀에 존재
- 전송 독립적: UDP, TCP, TLS 또는 사용자 지정 전송
- 버퍼 독립적: PassthroughBuffer(직접 전송), 휴대용 CircularBuffer(뮤텍스 주입 링), POSIX 메시지 큐 또는 사용자 지정
- MISRA C:2012 기반
기능에는 UDP, TCP 및 TLS/상호 TLS를 통한 RFC 5424 구조화 형식, 비동기 버퍼링, 회전 블록 저장 후 전달, CRC-16을 사용한 우발적 손상 방지 또는 로컬 공격자가 있는 경우 키 기반 HMAC-SHA256 / AES-256-GCM을 사용한 저장 데이터 보호가 포함됩니다. 프로젝트는 전용 가이드에서 IEC 62443 감사 로깅 제어를 매핑합니다.
모든 플랫폼 의존성(TCP/IP 스택, TLS 라이브러리, 파일 시스템, OS 기본 요소, 클록)은 vtable을 통해 주입되므로 포팅은 Core를 편집하는 대신 역할을 채우는 것을 의미합니다. 호스팅 및 임베디드 대상용 플랫폼 팩이 제공되며, 호스팅 대상은 개발, 테스트 및 엣지/게이트웨이 호스트로 지원됩니다. TLS 폐기(CRL/OCSP)는 라이브러리에서 수행되지 않으며, 적용은 구성된 TLS 백엔드 및 플랫폼에 따라 달라집니다.
아키텍처: C에서의 OO. 플랫폼 의존성 및 선택적 기능은 설정 시 주입되고 링크 시 구성되는 vtable 역할로, 연결되지 않은 기능은 전처리기로 제외되는 대신 링커에 의해 제거됩니다. Core의 구현에는 기능 조건문이 없습니다. 공용 헤더는 대상별로 분리됩니다: 애플리케이션 코드는 SolidSyslog.h를 포함하고, 설정 코드는 SolidSyslogConfig.h 및 연결된 각 구성 요소별 헤더 하나를 포함합니다. Null 객체는 채워지지 않은 역할을 대신합니다.
테스트는 호스트 및 QEMU에서 각 대상 구성별로 BDD 기반 바이너리를 사용하며, 각각 실제 syslog 서버에 대해 라이브러리를 종단 간 실행합니다.
문서는 docs.cososo.co.uk/solid-syslog에 호스팅되며 Core, Integrate, Platforms, Compliance, API 참조 및 Maintaining 섹션으로 구성되어 있으며, 강화 경로, 빌드 통합 가이드, 포팅 가이드, RFC 준수 매트릭스, 위협 모델 및 CRA/IEC 62443 가이드를 포함합니다. 취약점 보고는 SECURITY.md를 통해 이루어집니다.
라이선스는 세 가지 대안으로 소스 제공됩니다: PolyForm 내부 사용 1.0.0(조직 내 평가 및 개발에 무료), PolyForm 비상업적 1.0.0(취미, 자선, 교육, 공공 연구 및 정부 사용에 무료, 재배포 포함), 그리고 라이브러리를 포함한 상용 제품, 장치, 펌웨어 또는 서비스를 공급, 판매 또는 배포할 때 필요한 상용 라이선스입니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.