반응형

전체 글 796

왜 임베디드에 Rust인가? C 언어의 치명적 결함을 컴파일 타임에 잡는 원리와 소유권(Ownership)

임베디드 C/C++ 메모리 결함의 현실과 Rust의 필요성지난 40여 년간 C와 C++는 마이크로컨트롤러(MCU) 및 임베디드 시스템 펌웨어 개발의 절대적인 표준 언어였습니다. 하드웨어 메모리 맵 레지스터에 대한 직접적인 포인터 역참조, 극단적으로 작은 런타임 오버헤드, 결정론적인 실행 제어는 C 언어가 독점적 지위를 유지할 수 있었던 핵심 이유입니다.그러나 C 언어는 개발자에게 무제한의 메모리 제어 권한을 부여하는 대신, 메모리 안정성에 대한 책임을 전적으로 인간의 주의력에 전가합니다. 마이크로소프트 보안 응답 센터(MSRC), 구글 크로미움 프로젝트, 미국 CISA의 장기 조사 보고서에 따르면, 소프트웨어에서 보고되는 전체 치명적 보안 취약점(CVE)의 약 70%가 메모리 안전성(Memory Safe..

임베디드 C 코딩 규칙: MISRA-C:2012 핵심 가이드와 Cppcheck 정적 분석 도구 CI/CD 자동화

C 언어의 미정의 동작(Undefined Behavior)과 MISRA-C의 필요성C 언어는 하드웨어 레지스터에 직접 접근할 수 있는 강력한 포인터 제어 기능과 뛰어난 런타임 성능 덕분에 반세기가 넘도록 임베디드 시스템의 절대적인 표준 언어로 자리 잡고 있습니다. 그러나 ISO C 표준은 컴파일러 제조사에게 최적화의 자유를 부여하기 위해 수많은 문법적 모호성을 허용하고 있습니다.C 표준에 정의된 대표적인 비결정론적 동작은 세 가지 범주로 분류됩니다.미정의 동작 (Undefined Behavior, UB): 표준이 아무런 요구사항을 부과하지 않아 프로그램이 즉시 크래시되거나, 레지스터가 오염되거나, 완전히 예측할 수 없는 방식으로 동작함 (예: 부호 있는 정수 오버플로우, 널 포인터 역참조).미지정 동작 ..

Security & Saftey 2026.10.22

기능안전(Functional Safety) 기초: ISO 26262 ASIL 및 IEC 61508 듀얼 코어 락스텝(Lockstep) 안전 아키텍처

임베디드 품질(Quality)과 기능안전(Safety)의 본질적 차이일반적인 임베디드 소프트웨어 개발에서 "품질(Quality)"이란 시스템이 명세서(Specification)에 정의된 기능을 버그 없이 올바르게 수행하는 것을 의미합니다. 그러나 자동차(ISO 26262), 산업 제어(IEC 61508), 항공 우주, 의료 기기 분야에서 다루는 "기능안전(Functional Safety)"은 차원이 다른 엔지니어링 접근을 요구합니다. 기능안전은 시스템에 버그가 없음을 보장하는 것이 아니라, 반도체 하드웨어의 무작위 고장(Random Hardware Failure)이나 예기치 못한 소프트웨어 결함이 발생하더라도, 시스템이 인명 피해를 유발하지 않고 통제 가능한 안전 상태(Safe State)로 전이하도록 ..

Security & Saftey 2026.10.21

플래시 암호화(Flash Encryption)와 온더플라이(On-the-fly) 복호화: AES-XTS 하드웨어 엔진과 스니핑 방어

외장 플래시 메모리 물리 스니핑 위협과 플래시 암호화의 필요성현대 임베디드 시스템과 IoT 엣지 기기는 대용량 펌웨어, GUI 에셋, AI 딥러닝 모델 가중치(Weights)를 저장하기 위해 외장 QSPI(Quad SPI) 또는 OSPI(Octal SPI) NOR 플래시 메모리를 광범위하게 채택합니다. 마이크로컨트롤러(MCU)는 메모리 맵 매핑(XIP, eXecute-In-Place) 기능을 통해 외장 플래시의 코드를 내부 RAM으로 복사하지 않고 버스에서 직접 실행합니다.그러나 외장 플래시 칩은 PCB 상에 노출된 패턴 핀(CS, SCK, IO0~IO3/IO7)을 통해 MCU와 통신합니다. 공격자가 저가의 로직 아날라이저나 오실로스코프 프로브를 플래시 핀에 직접 접촉(Sniffing)하면, 시스템 부팅..

Security & Saftey 2026.10.20

외장 하드웨어 보안 칩 (Secure Element / TPM 2.0) 연동: ATECC608B ECDSA 하드웨어 서명과 Anti-tamper 실무

SoC 내부 키 저장소의 한계와 외장 하드웨어 보안 칩(Secure Element)의 필요성앞서 다룬 SoC 내부 eFuse와 ARM TrustZone-M 하드웨어 격리는 소프트웨어 취약점을 악용한 원격 네트워크 공격에 대해 강력한 방어선을 제공합니다. 그러나 해커가 디바이스를 물리적으로 확보하여 칩 패키지를 산성 용액으로 녹여내는 디캡핑(Decapping), 집속 이온 빔(FIB, Focused Ion Beam)을 이용한 마이크로프로빙, 전력 소비량의 미세한 변화를 통계적으로 측정하는 차분 전력 분석(DPA, Differential Power Analysis), 또는 클럭/전압에 순간적인 노이즈를 인가하는 결함 주입(Fault Injection/Glitching) 공격을 시도할 경우, 표준 마이크로컨트..

Security & Saftey 2026.10.19

TF-M (Trusted Firmware-M) 아키텍처와 PSA Certified: ITS, PS 스토리지 및 암호화 키 격리 실무

IoT 보안 표준화와 ARM TF-M(Trusted Firmware-M)의 등장 배경이전 글에서 다룬 ARM TrustZone-M 하드웨어 기술을 통해 Cortex-M33 마이크로컨트롤러에서 Secure World와 Non-Secure World를 물리적으로 격리할 수 있게 되었습니다. 그러나 하드웨어 격리 경계가 제공되더라도, 보안 영역(Secure World) 내부에서 어떤 보안 소프트웨어를 실행하고, 암호화 키를 어떤 표준 방식으로 관리하며, 일반 애플리케이션(Non-Secure World)과 어떤 API로 통신해야 하는지에 대한 표준 프레임워크가 부재했습니다.제조사마다 자체적인 Secure OS와 비표준 API를 개발하여 사용함에 따라 코드 재사용성이 떨어지고 보안 취약점이 빈번하게 발생했습니다...

Security & Saftey 2026.10.18

ARM TrustZone-M 완벽 해설: Cortex-M33 SAU/IDAU 메모리 격리와 Non-Secure Callable(NSC) 게이트웨이 구현

임베디드 MCU 보안 도메인 격리와 ARMv8-M TrustZone의 필요성전통적인 ARM Cortex-M 마이크로컨트롤러(Cortex-M0/M3/M4/M7) 환경에서는 메모리 보호 장치(MPU, Memory Protection Unit)를 통해 특권 모드(Privileged)와 비특권 모드(Unprivileged) 간의 접근을 통제해 왔습니다. 그러나 MPU 기반 격리는 단일 실행 도메인 내에서 운영체제(RTOS) 태스크 간의 메모리 침범을 방지하는 수준에 불과합니다. 만약 네트워크 통신 스택(BLE, Wi-Fi, TCP/IP)이나 서드파티 라이브러리의 버퍼 오버플로우 취약점으로 인해 특권 모드가 장악되면, 디바이스 내부에 보관된 암호화 루트 키, 보안 인증서, 결제 및 펌웨어 보호 로직 전체가 즉시 ..

Security & Saftey 2026.10.17

SoC eFuse와 OTP 메모리 완벽 해설: 공개키 해시 프로비저닝, JTAG 영구 잠금 및 안티 퓨즈(Anti-fuse) 원리

임베디드 칩셋 보안과 비가역 하드웨어 메모리(eFuse/OTP)의 필요성임베디드 디바이스가 공장에서 출하된 이후 외부 해커의 물리적 분석 공격(Hardware Hacking)에 노출될 때, 공격자가 가장 먼저 시도하는 기법은 디버그 인터페이스(JTAG, SWD, UART)를 통한 플래시/RAM 메모리 덤프와 펌웨어 리버스 엔지니어링입니다. 또한 시큐어 부트(Secure Boot)가 소프트웨어적으로만 구현되어 있다면, 공격자는 플래시 메모리에 저장된 공개키를 자신의 공개키로 덮어쓰거나 부트로더 코드를 조작하여 위조된 펌웨어를 손쉽게 구동할 수 있습니다.소프트웨어 방식의 키 저장은 플래시 소거(Erase)나 재기록(Write) 공격에 취약하므로, 반도체 제조사는 전원이 꺼져도 값이 유지되고 한 번 기록되면 ..

Security & Saftey 2026.10.16

시큐어 부트(Secure Boot)의 원리와 하드웨어 신뢰 루트(Root of Trust): 비대칭 암호화 서명 검증과 신뢰 체인 구축 실무

임베디드 펌웨어 보안 위협과 시큐어 부트(Secure Boot)의 필요성스마트 홈, 자율주행, 원격 의료 및 산업용 제어 시스템에 탑재되는 임베디드 IoT 디바이스는 물리적으로 공격자의 손에 노출되기 쉽습니다. 공격자는 플래시 메모리 칩을 직접 탈거하여 악성 펌웨어를 라이팅하거나, 디버그 포트(JTAG/SWD)를 통해 임의의 실행 코드를 주입하거나, 소프트웨어 업데이트 인터페이스를 가로채어 백도어가 심어진 펌웨어로 변조할 수 있습니다. 펌웨어 변조 공격은 기기의 지적 재산권(IP) 탈취뿐만 아니라, 시스템 제어권 상실, 개인정보 유출, 원격 봇넷 감염 및 물리적 파괴로 이어질 수 있습니다. 이러한 위험에 대응하기 위해 EU Cyber Resilience Act(CRA)와 미국 NIST SP 800-193..

Security & Saftey 2026.10.15

임베디드 리눅스 전원 관리(PM) 완벽 가이드: CPUFreq DVFS, OPP 테이블, Devfreq 및 Suspend-to-RAM(Deep Sleep) 최적화

배터리 기반 휴대용 임베디드 시스템과 리눅스 전원 관리(PM)의 필요성스마트 물류 트래커, 핸드헬드 의료기기, 웨어러블, 스마트 홈 센서 허브와 같은 배터리 구동 임베디드 리눅스 디바이스는 제한된 배터리 용량(1000mAh~5000mAh) 환경에서 수일에서 수개월 이상 단독 동작할 수 있어야 합니다.고성능 멀티코어 SoC(ARM Cortex-A53/A55)는 최고 클록(1.5GHz~2.0GHz)으로 연속 동작할 경우 수 와트(W) 이상의 전력을 소모하여 배터리가 수 시간 내에 고갈됩니다. 반면 기기가 대부분의 유휴(Idle) 상태를 보낼 때 클록 주파수와 공급 전압을 동적으로 낮추는 동적 전압 및 주파수 스케일링 (DVFS, Dynamic Voltage and Frequency Scaling)을 적용하고..

반응형