임베디드 시스템
IT 위키
더 많은 작업
- Embedded System
- 특정 디바이스에 부과된 특정 목적의 컴퓨팅 작업만을 수행하는 마이크로 프로세서 기반의 시스템
자동차 전자제어장치(ECU), 의료기기, 공유기, 프린터, 산업용 제어기(PLC), 스마트 가전, 카드 단말기처럼 하나의 제품 안에 들어가 정해진 기능만 수행하는 컴퓨터이다. 대개 펌웨어 형태의 소프트웨어가 실시간 운영체제 또는 경량 리눅스 위에서, 때로는 운영체제 없이 동작한다. IoT 장치와 SCADA의 현장 장비도 대부분 임베디드 시스템이다.
- 소형, 경량: 일반 PC에 비해 작은 공간, 무게 절감 필요
- 저전력 소모: 전력 효율, 배터리 소모 등 고려
- 비용 민감성: 작은 차이에도 대량 생산 시 큰 영향
위의 제약 조건은 그대로 보안 제약이 된다. 처리 능력과 메모리가 작아 강한 암호나 백신을 올리기 어렵고, 원가 압박 때문에 보안 칩이나 업데이트 기능이 빠지기 쉽다. 또 장치가 공격자의 손에 직접 들어갈 수 있으므로 물리 공격을 전제로 설계해야 한다.
| 취약점 | 내용 | 대책 |
|---|---|---|
| 펌웨어 갱신 부재·비보안 갱신 | 업데이트 기능이 없거나, 서명 검증 없이 펌웨어를 받아 악성 펌웨어 설치가 가능하다 | 전자서명된 업데이트만 설치, 롤백 방지, 업데이트 실패 시 복구 영역 유지 |
| 디버그 포트 노출 | 출고 제품에 JTAG, UART, SWD 같은 디버그·시험 인터페이스가 살아 있으면 메모리를 읽고 코드를 바꿀 수 있다(CWE-1191) | 양산 시 디버그 인터페이스 비활성화 또는 인증 적용, 퓨즈로 영구 잠금 |
| 하드코딩 비밀번호·키 | 펌웨어에 고정 계정이나 암호 키가 박혀 있으면 펌웨어 하나를 분석해 같은 모델 전체를 뚫을 수 있다(CWE-798) | 장치별 고유 자격 증명, 키를 보안 저장소에 보관, 첫 사용 시 비밀번호 변경 강제 |
| 부팅 과정 변조 | 부트로더나 커널을 바꿔치기해 악성 코드를 영구히 심는다 | 보안 부팅(secure boot): 각 단계가 다음 단계의 서명을 검증하는 신뢰 사슬(chain of trust) |
| 신뢰 루트 부재 | 변경할 수 없는 하드웨어 기반 출발점이 없으면 보안 부팅 자체를 믿을 수 없다(CWE-1326) | 하드웨어 신뢰 루트(RoT, Root of Trust): 변경 불가능한 ROM 코드와 키, TPM, 보안 요소, PUF |
| 부채널 공격 | 전력 소모, 전자파, 처리 시간을 측정해 암호 키를 추정한다 | 상수 시간 구현, 마스킹, 노이즈 삽입, 검증된 암호 모듈 사용 |
| 오류 주입 공격 | 전압·클럭 글리치, 레이저, 전자기 펄스로 명령 실행을 건너뛰게 해 인증이나 서명 검증을 우회한다(CWE-1247) | 글리치 감지 회로, 중요 검사의 이중 수행, 이상 감지 시 기기 초기화 |
| 수명 주기 동안 패치 불가 | 자동차, 의료기기, 산업 장비는 수명이 길어(NIST SP 800-82는 OT 시스템 수명이 20년을 넘을 수 있다고 본다) 제조사 지원이 그보다 먼저 끝나거나, 인증·안전 규제 때문에 쉽게 바꿀 수 없다 | 조달 시 지원 기간 계약, 패치 불가 장치는 네트워크 분리와 보완 통제, 제품 지원 종료 계획 |
| 오래된 구성 요소 | 오래된 리눅스 커널, 오픈소스 라이브러리가 그대로 들어간다 | SBOM으로 구성 요소 파악, 취약점 추적 |
NIST SP 800-193(플랫폼 펌웨어 복원력 지침)은 펌웨어 보안을 세 원칙으로 정리한다. 보호(protection)는 펌웨어와 핵심 데이터가 변조되지 않게 하는 것이고 업데이트의 진위·무결성 확인이 여기에 속한다. 탐지(detection)는 변조를 알아차리는 것, 복구(recovery)는 변조가 확인되면 정상 상태로 되돌리는 것이다. 각 기능은 업데이트·탐지·복구용 신뢰 루트에서 시작하는 신뢰 사슬로 구현한다.
- 임베디드 시스템의 대표 약점은 하드코딩 자격 증명, 열린 디버그 포트, 서명 없는 펌웨어 업데이트이다.
- 보안 부팅은 하드웨어 신뢰 루트에서 시작해 각 단계가 다음 단계를 검증하는 신뢰 사슬이다. 신뢰 루트는 소프트웨어로 바꿀 수 없어야 한다.
- 물리 접근이 가능한 장치는 부채널 공격과 오류 주입 공격을 고려한다. 대책은 하드웨어 수준(보안 요소, 글리치 감지)에서 마련한다.
- 패치할 수 없는 장치가 나오면 "네트워크 분리와 보완 통제"를 고른다. 흔한 오답: "백신을 설치한다".
- 장치 보안 요구사항(지원 기간, 업데이트 방식)은 조달 계약 단계에서 정하는 것이 가장 효과적이다.
- NIST SP 800-193, Platform Firmware Resiliency Guidelines – NIST
- NIST IR 8259A, IoT Device Cybersecurity Capability Core Baseline – NIST
- CWE-1191: On-Chip Debug and Test Interface With Improper Access Control – MITRE
- CWE-798: Use of Hard-coded Credentials – MITRE
- CWE-1247: Improper Protection Against Voltage and Clock Glitches – MITRE