[연구자료] 임베디드 시스템의 기초 (3)

이 글은 대학원에서 임베디드 관련 수업을 받은 후, 필자 스스로 임베디드에 대해 정리하기 위해 쓰여졌습니다. 

임베디드 시스템 보안

1) 안전성 모델

일반적인 보안 모델
  • 접근이 쉽지 않음
  • 방화벽 등 추가적인 대응책 마련되어 있음
  • 서버실 등 물리적인, 논리적인 접근통제 및 출입통제시스템이 되어 있어서 접근이 어려움 : 통신 중에 암호를 이용하여 통신되는 데이터 보호되어 있음

임베디드 보안 모델
  • 자원이 제한적이기 때문에 추가적인 방화벽을 설치하기가 어렵고 분실이나 탈취가 용이하기 때문에 jtag로 메모리 탈취가 가능하다.
  • 데이터 보호를 위해 암호 이상의 것이 필요함
사례)
임베디드 디바이스의 특성상. 장치의 접근이 용이하기 위해 정보가 유출될 수 있음
일반적으로 핸드폰 as수리를 업체에 맡긴 이후에 사진등의 개인정보가 외부로 노출된 사례가 있다. 이 때문에 임베디드 디바이스의 접근을 원천적으로 차단하고 물리적 공격에 대한 안전성을 확보하는 것이 임베디드 디바이스 에서는 매우 중요하다.

2) 소프트웨어를 이용한 보안 실패 사례

예) Apple 의 Fairplay DRM 기법
  • PyMusique(파이뮤지크)라는 프로그램에 의해서 쉽게 DRM이 제거됨
  • 2007년 4월, 스티브 잡스는 DRM 없는 음악파일을 판매할 것이라고 언급함
  • 해커들은 항상 DRM 을 공격하기 위한 방법을 찾을 것이고, DRM 자체가 완벽하기 어려움

3) 하드웨어를 이용한 보안 실패 사례
예) Aladdin eToken에 물리적 접근

4) 안전한 임베디드 시스템 설계 방법
  • 속도, 면적, 전력 외에 추가적으로 안전성을 고려한 설계 방법이 필요함
  • Zero-risk 보안은 존재하지 않음
  • 동기, 시간, 자원만 충분히 보장되면 공격자는 어떤 시스템이든 깰 수 있음

예) Zero-power 설계는 전세계 어디에도 존재하지 않음

  • 그러나 Low-Risk 보안은 충분히 가능함 : 보호되어야 할 대상/이유/위협요소 등을 사전에 고려하여 설계함

예) Low-Power 시스템은 존재함

5) 외부로부터 접근 차단
  • 어떤 제품은 간단한 도구(드라이버, 칼 등)를 이용하여 쉽게 분해가 가능함
  • 접착제 사용하여 동봉
  • 그러나 이 역시, 열로 접착제를 부드럽게 하고 칼로 쉽게 분해 가능함
  • 이를 막기 위해 높은 융해점을 갖는 접착제를 사용함, 접착제보다 제품이 먼저 융해 되도록 함
  • 또한 제품의 외피가 한 덩어리가 되도록 용접할 수도 있음, 제품을 열기 위해서는 외피를 파괴할 수 밖에 없도록 함


6) 외부 인터페이스
  • 일반적으로 외부와 연결하기 위한 인터페이스가 필요함 : JTAG, RS232, USB
  • 외부 연결을 위한 인터페이스는 공격자에게 매우 유용한 정보를 제공함 : 데이터, 키, PIN 등
  • 평범하지 않은 인터페이스를 사용함 : OTP 인터페이스 (커넥터 위에 스티커로 동봉)

7) 외부 인터페이스를 이용한 공격
  • 외피를 제거하고 계측기(멀티미터, 오실로스코프 등)를 이용하여 기능이나 동작을 확인함 : 칩에 연결된 핀들의 로직 상태로 칩의 상태를 확인할 수 있음
예 ) 핀의 High나 Low 전압인가 후 결과 확인
  • 하드웨어 또는 소프트웨어 기반 프로토콜 분석기를 이용 통신 모니터링
  • USB : SnoopyPro
  • RS232와 병렬포트 : PortMon
  • 네트워크 프로토콜 : Ethereal
  • 오작동을 일으키기 위하여 비정상적인 패킷을 전송함.
    • 만약 디바이스가 에러를 컨트롤하지 못한다면, 공격자에게 유용한 오동작 실행
  • 필요하지 않는 인터페이스는 물리적으로 제거함 : JTAG, Programming 등

8) JTAG ( Joint Test Action Group)
JTAG (IEEE 1149.1) 인터페이스 -> 테스트와 디버깅을 위한 산업 표준
  • 시스템 레벨 테스트, 바운더리 스캐닝, 하위레벨 테스트
  • JTAG 인터페이스는 종종 보안 취약점을 노출함
  • 스탠다드 바운더리 스캔 인터페이스는 Core State와 관계없이 디바이스의 핀에 대한 정보를 제공함
  • 이 정보는 외부와 연결이 가능할 뿐만 아니라 RAM, Flash 메모리와 같은 다른 컴포넌트에 접근을 허용함
  • 다른 외부의 디바이스를 이용하여 Flash 메모리를 다시 프로그래밍 할 수 있음

JTAG 는 프로그램 개발시에는 매우 유용한 기능이지만, 제품이 출시가 된 이후에는 매우 위험한 기능이다.
  • 선을 자르거나 퓨즈를 끊어 JTAG를 못쓰게 하지만, 공격자는 선을 잇거나 퓨즈를 교체해 다시 사용할 수 있게 할 수 있음
  • 현실적으로 기능을 제거하기가 매우 어렵다.
  • 복잡한 패키지 방법을 이용하여 원천적으로 칩으로의 접근을 방지함
예) 에폭시, BGA, COB, CIB
No comments

0 개의 댓글:

댓글 쓰기

Popular Posts

Powered by Blogger.