임베디드 시스템에 엔드 투 엔드 보안이 중요한 이유

게시됨 Aug 19, 2021
으로 Secure Code Warrior
사례 연구

임베디드 시스템에 엔드 투 엔드 보안이 중요한 이유

게시됨 Aug 19, 2021
으로 Secure Code Warrior
리소스 보기
리소스 보기

임베디드 시스템은 많은 최신 기술을 제공하는 데 도움이 됩니다. 자동차의 어댑티브 크루즈 컨트롤부터 스마트 냉장고의 Wi-Fi까지. 사이버 공격이 증가함에 따라 이러한 시스템 보안이 중요해졌습니다.

임베디드 장치는 해킹의 주요 대상이며, 성공적인 공격으로 침입자가 생산, 수신 및 처리된 데이터에 액세스할 수 있습니다. 이것은 종종 임베디드 장치에 의해 구동되는 더 큰 시스템에 심각한 영향을 미칠 수 있습니다. 예를 들어 다양한 카메라와 센서에서 데이터를 수집하는 F-15 전투기 내에 내장된 장치를종료하면 제트기의 방어를 크게 방해할 수 있습니다.

보안 임베디드 시스템 개발을 시작하는 데 필요한 모든 것을 다루기 위해 이 문서를 작성했습니다. 여기에 포함 된 내용입니다. 

  • 임베디드 보안이란 무엇입니까?
  • 임베디드 보안을 구현하는 동안 직면한 과제입니다.
  • 임베디드 시스템을 "보안"하게 만드는 이유는 무엇입니까?
  • 임베디드 생태계에서 엔드 투 엔드 보안이 중요한 이유
  • 일부 임베디드 보안 도구.
  • 일반적인 임베디드 솔루션은 무엇입니까?
  • 임베디드 보안의 미래.

임베디드 보안이란 무엇입니까?

임베디드 보안은 임베디드 장치의 소프트웨어 및 하드웨어를 보호하기 위한 도구, 프로세스 및 모범 사례를 제공합니다. 

임베디드 시스템의 하드웨어 모듈은 작기 때문에 다양한 메모리 및 저장소 제한이 있습니다. 따라서 보안 조치를 통합하는 것은 엄청난 설계 과제가 됩니다. 그러나, 그것은 될 수 있습니다 도전, 그것은 시간의 필요.

임베디드 장치로 구동되는 많은 가젯과 기계도 인터넷에 연결되어 있습니다. 즉, 해커가 무단으로 액세스할 수 있으며 악성 코드를 실행할 수 있습니다. 

임베디드 장치의 해킹은 종종 연결된 다른 구성 요소로 확산되거나 전체 시스템을 무력화시킬 수 있습니다. 예를 들어 공격자가 운전자가 자동차를 자동 조종 장치에 넣을 수 있는 임베디드 장치를 제어할 수 있다고 가정해 보겠습니다. 해커는 오프로드 또는 교통으로 차량을 조종할 수 있어 많은 피해를 입을 수 있습니다.

중요한 임베디드 시스템 보안 과제

임베디드 시스템 보안은 보증하는 주의를 끌지 않습니다. 다음은 몇 가지 이유입니다.

  1. 개발자 인식 부족:

개발자는 일반적으로 보안 임베디드 장치를 개발하기 위한 모범 사례를 인식하지 못합니다. 이는 포인트#2 때문이며, 일부는 임베디드 응용 프로그램이 기존 소프트웨어 응용 프로그램보다 훨씬 더 복잡하기 때문입니다. 제한된 마이크로컴퓨터 환경에서도 보안에 미치는 영향을 이해하고 모든 사용 사례에 대해 안전하고 수행되는 코드를 작성하는 것도 어려울 수 있습니다. 

  1. 표준화 부족:

임베디드 시스템에 대한 사이버 보안 표준이 부족합니다. 자동차 산업은 서서히 이를 바꾸려고 노력하고 있습니다. 지난 몇 년 동안 연구원들은 스마트 차량에 대한 사이버 보안 고려 사항을 다루는 몇 가지 간행물을 발표했습니다. SAE J3061, "사이버 물리적 차량 시스템을 위한 사이버 보안 가이드북:", UNECE WP.29 사이버 보안 및 소프트웨어 업데이트 프로세스에 대한 규제 등이주목할 만한 사항입니다.

  1. 타사 구성 요소 사용

많은 임베디드 디바이스에서 타사 하드웨어 및 소프트웨어 구성 요소를 작동해야 했습니다. 이러한 구성 요소는 보안 결함 및 취약점에 대해 테스트하지 않고 사용되는 경우가 많습니다. 

  1. 오래된 소프트웨어

오래된 펌웨어는 일반적으로 버그와 악용 가능한 취약점으로 타버리고 있습니다. 작은 임베디드 장치에서 펌웨어를 주기적으로 업데이트하는 것은 특히 어려울 수 있지만 무시할 수 있는 것은 아닙니다.

  1. 직접 인터넷 연결

많은 임베디드 시스템과 장치가 인터넷에 직접 연결되어 있습니다. 즉, 네트워크 공격을 감지하고 방지할 수 있는 엔터프라이즈 방화벽을 보호하지 못합니다. 리소스가 프리미엄에 있으므로 이러한 제한된 환경에서 엄격한 수준의 보안을 구현하기가 매우 어려워집니다.

  1. 규모에 대한 공격

임베디드 장치는 일반적으로 규모로 생산됩니다. 즉, 단일 취약점이나 결함은 전 세계적으로 수백만 대의 장치에 영향을 줄 수 있습니다. 따라서 임베디드 시스템 공격의 영향을 포함하는 것은 엄청난 도전이 될 수 있습니다.

임베디드 시스템을 안전하게 만드는 이유는 무엇입니까?

다음 섹션에서는 보안 임베디드 시스템의 일부 소프트웨어 및 하드웨어 특성을 살펴보겠습니다.

하드웨어 보안 모범 사례

보안 임베디드 시스템에는 다음이 있습니다.

  • 신뢰할 수 있는 실행 환경

신뢰할 수 있는 실행 환경(TEE)을 사용하면 보안에 중요한 작업을 하드웨어 수준 으로 격리할 수 있습니다. 예를 들어 사용자 인증은 격리된 영역에서 실행되어 중요한 정보를 더 잘 보호할 수 있습니다.

  • 적절하게 분할된 하드웨어 리소스

프로세서, 캐시, 메모리 및 네트워크 인터페이스 등과 같은 다른 하드웨어 구성 요소를 적절하게 분리하여 가능한 한 독립적으로 기능을 제공해야 합니다. 이렇게 하면 한 구성 요소에서 오류를 방지하여 다른 구성 요소에 전파하는 데 도움이 됩니다.

  • 실행 가능한 공간 보호(ESP)

실행 가능한 공간 보호 또는 ESP는 특정 메모리 영역을 실행 불가능한 것으로 표시하는 방법입니다. 사용자가 이러한 표시된 지역 내에서 코드를 실행하려고 하면 예외가 throw됩니다.

소프트웨어 보안 모범 사례

임베디드 소프트웨어를 빌드할 때 다음 모범 사례를 염두에 두어야 합니다.

  • 보안 부팅 사용:

임베디드 장치가 부팅되면 암호화 알고리즘을 사용하여 부팅 이미지가 확인됩니다. 이렇게 하면 부팅 시퀀스가 정확하고 소프트웨어(펌웨어 및 기타 관련 데이터)가 변조되지 않았습니다. 

  • 마이크로커넬 OS 사용

마이크로커널 OS는 기존 OS보다 훨씬 작으며, 그 기능의 하위 집합을 포함합니다. 커널 공간은 작고 많은 사용자 서비스(예: 파일 시스템 관리 등)가 사용자 영역이라고 하는 별도의 공간에 보관됩니다. 커널 공간에서 실행되는 코드와 작업이 적기 때문에 공격 표면이 크게 줄어듭니다.

  • 제대로 포장된 소프트웨어 응용 프로그램 사용

모든 소프트웨어 응용 프로그램은 자체 포함되고 적절하게 패키징되어야 합니다. 예를 들어 응용 프로그램에 타사 종속성을 필요로 하는 경우 운영 체제에 전역으로 설치해서는 안 됩니다. 오히려 응용 프로그램 패키지/컨테이너의 일부가 되어야 합니다.

  • 모든 입력의 유효성 검사

외부 및/또는 신뢰할 수 없는 소스에서 수신된 모든 데이터는 중요한 소프트웨어 및/또는 하드웨어 구성 요소로 전달되기 전에 적절하게 소독되고 검증되어야 합니다. 

응용 프로그램이 외부 API 통합에서 데이터를 가져오고 이를 기반으로 일부 설정을 전환하는 경우 설정을 변경하기 전에 수신된 데이터의 유효성을 엄격하게 검증해야 합니다.

  • 미사용 데이터 보호:

포함된 장치에 저장되는 모든 중요한 소프트웨어, 데이터, 구성 파일, 보안 키 및 암호 등을 보호해야 합니다. 이것은 일반적으로 암호화를 통해 수행됩니다. 데이터를 암호화하는 데 사용되는 개인 키는 특수 목적의 전용 보안 하드웨어에 저장되어야 합니다.

보안 피라미드 -- 임베디드 시스템의 보안 종료

보안이 사후 고려였던 시대는 지나갔습니다. 비기능적 요구 사항입니다. 오늘날 보안은 본질적이어야 합니다. 장치를 설계하여 안전해야 합니다. 이를 위해서는 임베디드 환경에서 종단 간 보안 요구 사항을 구현하는 것이 필수적입니다. 즉, 하드웨어를 선택하는 동안 보안을 고려하고 시스템 아키텍처를 정의하는 동시에 시스템을 설계하는 동시에 코드를 작성하는 데 대해 생각해 보십시오.

하드웨어에서 시작

소프트웨어 보안이 얼마나 강력하더라도 하드웨어가 부족하면 공격에 취약할 수 있습니다. 온칩 보안 기술은 안전한 부팅을 허용하고 암호화 기능 및 비밀을 효율적으로 관리할 수 있습니다. 일부 하드웨어 구성 요소를 사용하면 운영 체제에서 시스템 호출 이상 검색, 파일 시스템 암호화 및 액세스 제어 정책과 같은 다양한 보안 기능을 제공할 수도 있습니다.

내결함성 시스템

내결함성 시스템을 설계하는 데는 여러 가지 이유가 있으며 차등 오류 분석 공격을 피하는 것은 그 중 하나일 뿐입니다. 이러한 공격에서 잠재적인 해커는 고장 주입 기술을 사용하여 임베디드 장치에서 오류를 생성할 수 있습니다. 그러나 이러한 오류를 감지하고 보호하는 몇 가지 가능한 방법이 있습니다.

  • 가장 중요한 작업을 복제하여 특정 시간에 다른 출력을 비교하여 오류의 주입을 감지할 수 있습니다.
  • 기본적으로 실패: 여러 조건(If 조건 또는 스위치 블록 내에서)을 처리할 때, 즉 다른 조건이 일치하지 않는 경우와 같은 기본 사례에서는 항상 실패합니다.
  • 임의의 동작 소개: 중요한 작업 전에 작고 임의의 지연을 추가하면 타이밍을 예측할 수 없습니다. 이는 해커가 작업 패턴을 결정하고 타이밍 공격을 수행하기가 매우 어렵기 때문에 침입 탐지의 핵심입니다.
  • 보호 막드: 제조업체는 보호막을 사용하여 가장 중요한 구성 요소를 덮어 외부 조작으로부터 보호해야 합니다.
  • 비정상적인 변동 감지: 전압, 전류 또는 기타 값의 비정상적인 변동에 대한 감지및 그에 따라 예외를 올립니다.

응용 프로그램 보안... 및 운영 체제

응용 프로그램 수준에서 장치 방어를 구축하는 것은 다음과 같은 수입니다.

  • 정기적으로 업데이트할 수 있는 테스트되고 평판좋은 타사 소프트웨어 및 하드웨어 구성 요소를 선택합니다.
  • 임베디드 시스템 보안에 관한 모범 사례에서 개발자를 업스킬링합니다.
  • 마이크로커널 운영 체제를 사용하여 커널 공간에서 최소한의 작업 수가 실행되도록 합니다.
  • 바이러스, 트로이 목마 및 맬웨어를 포함한 소프트웨어 공격을 모니터링하고 보호합니다.
  • 불필요한 서비스를 제거합니다. 펌웨어는 절대적으로 필요한 것만 있으면 됩니다. 예를 들어 파일을 전송하거나 패킷을 캡처할 필요가 없으므로 파일 전송 프로토콜 및 통신망과 같은 네트워크 패키지를 비활성화할 수 있습니다.
  • SFTP, IPsec, SSL, TLS, SSH 및 DNSSEC와 같은 보안 프로토콜을 사용합니다.

임베디드 시스템 보안을 위한 도구

임베디드 시스템 보안에 도움이 될 수 있는 완전하지 않은 도구 목록은 다음과 같습니다.

  • 버스 블래스터: 하드웨어 디버그 포트와 상호 작용할 수있는 고속 디버깅 플랫폼입니다.
  • 살라 :시리얼, SPI, I2C 등다양한 프로토콜을 디코딩합니다. 커뮤니티에서 빌드한 프로토콜 분석기를 사용하거나 직접 빌드할 수 있습니다.
  • 히드라버스: 임베디드 하드웨어의 디버깅, 해킹 및/또는 침투 테스트에 사용할 수 있는 오픈 소스, 멀티 툴 하드웨어.
  • 악용: 오픈 소스 사물 인터넷 (IoT) 보안 테스트 및 착취 프레임 워크.
  • FACT (펌웨어 분석 및 비교 도구): 펌웨어 보안 분석을 자동화하는 데 사용되는 프레임워크입니다.
  • 라우터스플로잇: 임베디드 장치에 대한 오픈 소스 악용 프레임워크.
  • Firmadyne: 리눅스 기반 임베디드 펌웨어의 에뮬레이션 및 동적 분석을위한 오픈 소스 시스템.

최신 임베디드 보안 솔루션은 어디에 부족합니까?

디버깅, 악용 및 펜 테스트 임베디드 솔루션에 사용할 수 있는 다양한 솔루션이 있지만 쉽게 사용되지는 않습니다. 장치를 물리적으로 보호하는 데 큰 초점을 맞추고 있지만 소프트웨어 관련 공격으로부터 보호하기에는 충분하지 않습니다. 가장 간단하고 쉽게 피할 수 있는 응용 프로그램 보안 위험과 취약점조차도 최신 임베디드 장치 중에서도 여전히 일반적입니다.  

그 큰 이유는 개발자가 임베디드 보안에 대한 인식이 부족하기 때문입니다. Tripwire가 실시한 설문 조사에 따르면IT 전문가의 68%는 직원들이 잠재적인 취약점을 제대로 인식하지 못하고 있다고 생각합니다.

개발자는 선택할 보안 프로토콜, 피해야 할 프레임워크, 분리할 하드웨어 구성 요소, 중요한 데이터를 처리하는 방법, 가장 안전한 암호화 알고리즘을 결정하는 방법 등과 같은 사항을 알지 못합니다. 이러한 일반적인 지식 부족및 모범 사례를 무시하면 응용 프로그램이 임베디드 장치에서 실행되도록 하여 손상되기 쉽습니다.

임베디드 보안의 미래

임베디드 보안 시장에서 많은 작업이 수행되고 있습니다. 전문가들은 시장의 복합 연간 성장률(CAGR)이 2021-2026년 기간 동안 5.5%의 수치에 도달할 수 있다고 믿습니다. 점점 더 많은 IoT 장치가 출시되고 있는 가운데 새로운 임베디드 보안 표준이 수립될 것으로 예상할 수 있습니다.

웨어러블 의료 기기의 채택이 증가함에 따라 신뢰할 수 있는 임베디드 보안 솔루션에 대한 수요도 증가할 것입니다. 장치가 중요한 의료 데이터를 포함하고 처리하려면 특정 보안 검사 목록을 통과해야 하며 공급업체와 엔지니어가 보안에 더 집중할 수 있기를 바랍니다.

미래에는 임베디드 디바이스의 주요 소프트웨어 및 하드웨어 구성 요소에 대한 원격 가시성, 모니터링 및 제어를 허용하는 솔루션도 있을 수 있습니다. 이것은 진정으로 임베디드 시스템 보안의 세계에서 게임 체인저가 될 것입니다.

결국 디지털 서명, 데이터 암호화, 방화벽 추가, 액세스 제어 구현 및 무작위화 작업은 지금까지만 사용할 수 있습니다. 진정으로 안전한 장치를 구축하려면 개발자가 보안 코드를 작성하도록 교육을 받아야 합니다. 잠재적인 보안 위험을 식별하고 응용 프로그램 설계 단계에서 이를 완화하는 것은 시스템을 본질적으로 안전하게 만드는 데 큰 큰 수입니다.

어떻게 Secure Code Warrior 도움이 될 수 있습니다.

Secure Code Warrior '주력 제품 - learning platform - 수많은 대화 형 도전이, courses 개발자가 안전한 C/C++ 코드를 작성하는 데 도움이 되는 평가와 평가. 플랫폼의 콘텐츠는 프레임워크에 특화되어 있으며 매우 매력적입니다. 우리의 C / C + +:포함 코딩 문제는 MISRA C, AUTOSAR C +(MISRA C +) 및 IEC 모두에서 영감을했다.

개발자는 C/C++에 따른 취약점을 식별하고 더 중요한 것은 이러한 버그를 해결하는 방법을 배우는 개인화된 학습 여정에 착수할 수 있습니다. 이 과정에서 개발자는 자신의 약점을 파악하기 위해 진행 상황을 추적하고 동료와 친근한 코딩 대회를 즐길 수 있습니다. 당사의 솔루션을 통해 자동차 및 운송 산업을 어떻게 돕는지 자세히 알아보십시오.

우리의 도전이 얼마나 대화형이고 포함되는지 알아내고 싶으신가요? 일부 C / C + +:에 포함 된 도전을 시도하십시오. learning platform 오늘!

리소스 보기
리소스 보기

저자

Secure Code Warrior

Secure Code Warrior 는 개발자에게 안전하게 코딩할 수 있는 기술을 제공하여 보안 중심의 개발자 문화를 구축합니다. Atlassian의 대표적인 애자일( Learning Platform )은 관련 기술 기반 경로, 실습( missions) 및 상황에 맞는 도구를 제공하여 개발자가 빠르게 기술을 배우고, 구축하고, 적용하여 보안 코드를 빠르게 작성할 수 있도록 지원합니다.

더 알고 싶으신가요?

블로그에서 최신 보안 코딩 인사이트에 대해 자세히 알아보세요.

Atlassian의 광범위한 리소스 라이브러리는 안전한 코딩 숙련도를 확보하기 위한 인적 접근 방식을 강화하는 것을 목표로 합니다.

블로그 보기
더 알고 싶으신가요?

개발자 중심 보안에 대한 최신 연구 보기

광범위한 리소스 라이브러리에는 개발자 중심의 보안 코딩을 시작하는 데 도움이 되는 백서부터 웨비나까지 유용한 리소스가 가득합니다. 지금 살펴보세요.

리소스 허브

임베디드 시스템에 엔드 투 엔드 보안이 중요한 이유

게시됨 Aug 19, 2021
으로 Secure Code Warrior

임베디드 시스템은 많은 최신 기술을 제공하는 데 도움이 됩니다. 자동차의 어댑티브 크루즈 컨트롤부터 스마트 냉장고의 Wi-Fi까지. 사이버 공격이 증가함에 따라 이러한 시스템 보안이 중요해졌습니다.

임베디드 장치는 해킹의 주요 대상이며, 성공적인 공격으로 침입자가 생산, 수신 및 처리된 데이터에 액세스할 수 있습니다. 이것은 종종 임베디드 장치에 의해 구동되는 더 큰 시스템에 심각한 영향을 미칠 수 있습니다. 예를 들어 다양한 카메라와 센서에서 데이터를 수집하는 F-15 전투기 내에 내장된 장치를종료하면 제트기의 방어를 크게 방해할 수 있습니다.

보안 임베디드 시스템 개발을 시작하는 데 필요한 모든 것을 다루기 위해 이 문서를 작성했습니다. 여기에 포함 된 내용입니다. 

  • 임베디드 보안이란 무엇입니까?
  • 임베디드 보안을 구현하는 동안 직면한 과제입니다.
  • 임베디드 시스템을 "보안"하게 만드는 이유는 무엇입니까?
  • 임베디드 생태계에서 엔드 투 엔드 보안이 중요한 이유
  • 일부 임베디드 보안 도구.
  • 일반적인 임베디드 솔루션은 무엇입니까?
  • 임베디드 보안의 미래.

임베디드 보안이란 무엇입니까?

임베디드 보안은 임베디드 장치의 소프트웨어 및 하드웨어를 보호하기 위한 도구, 프로세스 및 모범 사례를 제공합니다. 

임베디드 시스템의 하드웨어 모듈은 작기 때문에 다양한 메모리 및 저장소 제한이 있습니다. 따라서 보안 조치를 통합하는 것은 엄청난 설계 과제가 됩니다. 그러나, 그것은 될 수 있습니다 도전, 그것은 시간의 필요.

임베디드 장치로 구동되는 많은 가젯과 기계도 인터넷에 연결되어 있습니다. 즉, 해커가 무단으로 액세스할 수 있으며 악성 코드를 실행할 수 있습니다. 

임베디드 장치의 해킹은 종종 연결된 다른 구성 요소로 확산되거나 전체 시스템을 무력화시킬 수 있습니다. 예를 들어 공격자가 운전자가 자동차를 자동 조종 장치에 넣을 수 있는 임베디드 장치를 제어할 수 있다고 가정해 보겠습니다. 해커는 오프로드 또는 교통으로 차량을 조종할 수 있어 많은 피해를 입을 수 있습니다.

중요한 임베디드 시스템 보안 과제

임베디드 시스템 보안은 보증하는 주의를 끌지 않습니다. 다음은 몇 가지 이유입니다.

  1. 개발자 인식 부족:

개발자는 일반적으로 보안 임베디드 장치를 개발하기 위한 모범 사례를 인식하지 못합니다. 이는 포인트#2 때문이며, 일부는 임베디드 응용 프로그램이 기존 소프트웨어 응용 프로그램보다 훨씬 더 복잡하기 때문입니다. 제한된 마이크로컴퓨터 환경에서도 보안에 미치는 영향을 이해하고 모든 사용 사례에 대해 안전하고 수행되는 코드를 작성하는 것도 어려울 수 있습니다. 

  1. 표준화 부족:

임베디드 시스템에 대한 사이버 보안 표준이 부족합니다. 자동차 산업은 서서히 이를 바꾸려고 노력하고 있습니다. 지난 몇 년 동안 연구원들은 스마트 차량에 대한 사이버 보안 고려 사항을 다루는 몇 가지 간행물을 발표했습니다. SAE J3061, "사이버 물리적 차량 시스템을 위한 사이버 보안 가이드북:", UNECE WP.29 사이버 보안 및 소프트웨어 업데이트 프로세스에 대한 규제 등이주목할 만한 사항입니다.

  1. 타사 구성 요소 사용

많은 임베디드 디바이스에서 타사 하드웨어 및 소프트웨어 구성 요소를 작동해야 했습니다. 이러한 구성 요소는 보안 결함 및 취약점에 대해 테스트하지 않고 사용되는 경우가 많습니다. 

  1. 오래된 소프트웨어

오래된 펌웨어는 일반적으로 버그와 악용 가능한 취약점으로 타버리고 있습니다. 작은 임베디드 장치에서 펌웨어를 주기적으로 업데이트하는 것은 특히 어려울 수 있지만 무시할 수 있는 것은 아닙니다.

  1. 직접 인터넷 연결

많은 임베디드 시스템과 장치가 인터넷에 직접 연결되어 있습니다. 즉, 네트워크 공격을 감지하고 방지할 수 있는 엔터프라이즈 방화벽을 보호하지 못합니다. 리소스가 프리미엄에 있으므로 이러한 제한된 환경에서 엄격한 수준의 보안을 구현하기가 매우 어려워집니다.

  1. 규모에 대한 공격

임베디드 장치는 일반적으로 규모로 생산됩니다. 즉, 단일 취약점이나 결함은 전 세계적으로 수백만 대의 장치에 영향을 줄 수 있습니다. 따라서 임베디드 시스템 공격의 영향을 포함하는 것은 엄청난 도전이 될 수 있습니다.

임베디드 시스템을 안전하게 만드는 이유는 무엇입니까?

다음 섹션에서는 보안 임베디드 시스템의 일부 소프트웨어 및 하드웨어 특성을 살펴보겠습니다.

하드웨어 보안 모범 사례

보안 임베디드 시스템에는 다음이 있습니다.

  • 신뢰할 수 있는 실행 환경

신뢰할 수 있는 실행 환경(TEE)을 사용하면 보안에 중요한 작업을 하드웨어 수준 으로 격리할 수 있습니다. 예를 들어 사용자 인증은 격리된 영역에서 실행되어 중요한 정보를 더 잘 보호할 수 있습니다.

  • 적절하게 분할된 하드웨어 리소스

프로세서, 캐시, 메모리 및 네트워크 인터페이스 등과 같은 다른 하드웨어 구성 요소를 적절하게 분리하여 가능한 한 독립적으로 기능을 제공해야 합니다. 이렇게 하면 한 구성 요소에서 오류를 방지하여 다른 구성 요소에 전파하는 데 도움이 됩니다.

  • 실행 가능한 공간 보호(ESP)

실행 가능한 공간 보호 또는 ESP는 특정 메모리 영역을 실행 불가능한 것으로 표시하는 방법입니다. 사용자가 이러한 표시된 지역 내에서 코드를 실행하려고 하면 예외가 throw됩니다.

소프트웨어 보안 모범 사례

임베디드 소프트웨어를 빌드할 때 다음 모범 사례를 염두에 두어야 합니다.

  • 보안 부팅 사용:

임베디드 장치가 부팅되면 암호화 알고리즘을 사용하여 부팅 이미지가 확인됩니다. 이렇게 하면 부팅 시퀀스가 정확하고 소프트웨어(펌웨어 및 기타 관련 데이터)가 변조되지 않았습니다. 

  • 마이크로커넬 OS 사용

마이크로커널 OS는 기존 OS보다 훨씬 작으며, 그 기능의 하위 집합을 포함합니다. 커널 공간은 작고 많은 사용자 서비스(예: 파일 시스템 관리 등)가 사용자 영역이라고 하는 별도의 공간에 보관됩니다. 커널 공간에서 실행되는 코드와 작업이 적기 때문에 공격 표면이 크게 줄어듭니다.

  • 제대로 포장된 소프트웨어 응용 프로그램 사용

모든 소프트웨어 응용 프로그램은 자체 포함되고 적절하게 패키징되어야 합니다. 예를 들어 응용 프로그램에 타사 종속성을 필요로 하는 경우 운영 체제에 전역으로 설치해서는 안 됩니다. 오히려 응용 프로그램 패키지/컨테이너의 일부가 되어야 합니다.

  • 모든 입력의 유효성 검사

외부 및/또는 신뢰할 수 없는 소스에서 수신된 모든 데이터는 중요한 소프트웨어 및/또는 하드웨어 구성 요소로 전달되기 전에 적절하게 소독되고 검증되어야 합니다. 

응용 프로그램이 외부 API 통합에서 데이터를 가져오고 이를 기반으로 일부 설정을 전환하는 경우 설정을 변경하기 전에 수신된 데이터의 유효성을 엄격하게 검증해야 합니다.

  • 미사용 데이터 보호:

포함된 장치에 저장되는 모든 중요한 소프트웨어, 데이터, 구성 파일, 보안 키 및 암호 등을 보호해야 합니다. 이것은 일반적으로 암호화를 통해 수행됩니다. 데이터를 암호화하는 데 사용되는 개인 키는 특수 목적의 전용 보안 하드웨어에 저장되어야 합니다.

보안 피라미드 -- 임베디드 시스템의 보안 종료

보안이 사후 고려였던 시대는 지나갔습니다. 비기능적 요구 사항입니다. 오늘날 보안은 본질적이어야 합니다. 장치를 설계하여 안전해야 합니다. 이를 위해서는 임베디드 환경에서 종단 간 보안 요구 사항을 구현하는 것이 필수적입니다. 즉, 하드웨어를 선택하는 동안 보안을 고려하고 시스템 아키텍처를 정의하는 동시에 시스템을 설계하는 동시에 코드를 작성하는 데 대해 생각해 보십시오.

하드웨어에서 시작

소프트웨어 보안이 얼마나 강력하더라도 하드웨어가 부족하면 공격에 취약할 수 있습니다. 온칩 보안 기술은 안전한 부팅을 허용하고 암호화 기능 및 비밀을 효율적으로 관리할 수 있습니다. 일부 하드웨어 구성 요소를 사용하면 운영 체제에서 시스템 호출 이상 검색, 파일 시스템 암호화 및 액세스 제어 정책과 같은 다양한 보안 기능을 제공할 수도 있습니다.

내결함성 시스템

내결함성 시스템을 설계하는 데는 여러 가지 이유가 있으며 차등 오류 분석 공격을 피하는 것은 그 중 하나일 뿐입니다. 이러한 공격에서 잠재적인 해커는 고장 주입 기술을 사용하여 임베디드 장치에서 오류를 생성할 수 있습니다. 그러나 이러한 오류를 감지하고 보호하는 몇 가지 가능한 방법이 있습니다.

  • 가장 중요한 작업을 복제하여 특정 시간에 다른 출력을 비교하여 오류의 주입을 감지할 수 있습니다.
  • 기본적으로 실패: 여러 조건(If 조건 또는 스위치 블록 내에서)을 처리할 때, 즉 다른 조건이 일치하지 않는 경우와 같은 기본 사례에서는 항상 실패합니다.
  • 임의의 동작 소개: 중요한 작업 전에 작고 임의의 지연을 추가하면 타이밍을 예측할 수 없습니다. 이는 해커가 작업 패턴을 결정하고 타이밍 공격을 수행하기가 매우 어렵기 때문에 침입 탐지의 핵심입니다.
  • 보호 막드: 제조업체는 보호막을 사용하여 가장 중요한 구성 요소를 덮어 외부 조작으로부터 보호해야 합니다.
  • 비정상적인 변동 감지: 전압, 전류 또는 기타 값의 비정상적인 변동에 대한 감지및 그에 따라 예외를 올립니다.

응용 프로그램 보안... 및 운영 체제

응용 프로그램 수준에서 장치 방어를 구축하는 것은 다음과 같은 수입니다.

  • 정기적으로 업데이트할 수 있는 테스트되고 평판좋은 타사 소프트웨어 및 하드웨어 구성 요소를 선택합니다.
  • 임베디드 시스템 보안에 관한 모범 사례에서 개발자를 업스킬링합니다.
  • 마이크로커널 운영 체제를 사용하여 커널 공간에서 최소한의 작업 수가 실행되도록 합니다.
  • 바이러스, 트로이 목마 및 맬웨어를 포함한 소프트웨어 공격을 모니터링하고 보호합니다.
  • 불필요한 서비스를 제거합니다. 펌웨어는 절대적으로 필요한 것만 있으면 됩니다. 예를 들어 파일을 전송하거나 패킷을 캡처할 필요가 없으므로 파일 전송 프로토콜 및 통신망과 같은 네트워크 패키지를 비활성화할 수 있습니다.
  • SFTP, IPsec, SSL, TLS, SSH 및 DNSSEC와 같은 보안 프로토콜을 사용합니다.

임베디드 시스템 보안을 위한 도구

임베디드 시스템 보안에 도움이 될 수 있는 완전하지 않은 도구 목록은 다음과 같습니다.

  • 버스 블래스터: 하드웨어 디버그 포트와 상호 작용할 수있는 고속 디버깅 플랫폼입니다.
  • 살라 :시리얼, SPI, I2C 등다양한 프로토콜을 디코딩합니다. 커뮤니티에서 빌드한 프로토콜 분석기를 사용하거나 직접 빌드할 수 있습니다.
  • 히드라버스: 임베디드 하드웨어의 디버깅, 해킹 및/또는 침투 테스트에 사용할 수 있는 오픈 소스, 멀티 툴 하드웨어.
  • 악용: 오픈 소스 사물 인터넷 (IoT) 보안 테스트 및 착취 프레임 워크.
  • FACT (펌웨어 분석 및 비교 도구): 펌웨어 보안 분석을 자동화하는 데 사용되는 프레임워크입니다.
  • 라우터스플로잇: 임베디드 장치에 대한 오픈 소스 악용 프레임워크.
  • Firmadyne: 리눅스 기반 임베디드 펌웨어의 에뮬레이션 및 동적 분석을위한 오픈 소스 시스템.

최신 임베디드 보안 솔루션은 어디에 부족합니까?

디버깅, 악용 및 펜 테스트 임베디드 솔루션에 사용할 수 있는 다양한 솔루션이 있지만 쉽게 사용되지는 않습니다. 장치를 물리적으로 보호하는 데 큰 초점을 맞추고 있지만 소프트웨어 관련 공격으로부터 보호하기에는 충분하지 않습니다. 가장 간단하고 쉽게 피할 수 있는 응용 프로그램 보안 위험과 취약점조차도 최신 임베디드 장치 중에서도 여전히 일반적입니다.  

그 큰 이유는 개발자가 임베디드 보안에 대한 인식이 부족하기 때문입니다. Tripwire가 실시한 설문 조사에 따르면IT 전문가의 68%는 직원들이 잠재적인 취약점을 제대로 인식하지 못하고 있다고 생각합니다.

개발자는 선택할 보안 프로토콜, 피해야 할 프레임워크, 분리할 하드웨어 구성 요소, 중요한 데이터를 처리하는 방법, 가장 안전한 암호화 알고리즘을 결정하는 방법 등과 같은 사항을 알지 못합니다. 이러한 일반적인 지식 부족및 모범 사례를 무시하면 응용 프로그램이 임베디드 장치에서 실행되도록 하여 손상되기 쉽습니다.

임베디드 보안의 미래

임베디드 보안 시장에서 많은 작업이 수행되고 있습니다. 전문가들은 시장의 복합 연간 성장률(CAGR)이 2021-2026년 기간 동안 5.5%의 수치에 도달할 수 있다고 믿습니다. 점점 더 많은 IoT 장치가 출시되고 있는 가운데 새로운 임베디드 보안 표준이 수립될 것으로 예상할 수 있습니다.

웨어러블 의료 기기의 채택이 증가함에 따라 신뢰할 수 있는 임베디드 보안 솔루션에 대한 수요도 증가할 것입니다. 장치가 중요한 의료 데이터를 포함하고 처리하려면 특정 보안 검사 목록을 통과해야 하며 공급업체와 엔지니어가 보안에 더 집중할 수 있기를 바랍니다.

미래에는 임베디드 디바이스의 주요 소프트웨어 및 하드웨어 구성 요소에 대한 원격 가시성, 모니터링 및 제어를 허용하는 솔루션도 있을 수 있습니다. 이것은 진정으로 임베디드 시스템 보안의 세계에서 게임 체인저가 될 것입니다.

결국 디지털 서명, 데이터 암호화, 방화벽 추가, 액세스 제어 구현 및 무작위화 작업은 지금까지만 사용할 수 있습니다. 진정으로 안전한 장치를 구축하려면 개발자가 보안 코드를 작성하도록 교육을 받아야 합니다. 잠재적인 보안 위험을 식별하고 응용 프로그램 설계 단계에서 이를 완화하는 것은 시스템을 본질적으로 안전하게 만드는 데 큰 큰 수입니다.

어떻게 Secure Code Warrior 도움이 될 수 있습니다.

Secure Code Warrior '주력 제품 - learning platform - 수많은 대화 형 도전이, courses 개발자가 안전한 C/C++ 코드를 작성하는 데 도움이 되는 평가와 평가. 플랫폼의 콘텐츠는 프레임워크에 특화되어 있으며 매우 매력적입니다. 우리의 C / C + +:포함 코딩 문제는 MISRA C, AUTOSAR C +(MISRA C +) 및 IEC 모두에서 영감을했다.

개발자는 C/C++에 따른 취약점을 식별하고 더 중요한 것은 이러한 버그를 해결하는 방법을 배우는 개인화된 학습 여정에 착수할 수 있습니다. 이 과정에서 개발자는 자신의 약점을 파악하기 위해 진행 상황을 추적하고 동료와 친근한 코딩 대회를 즐길 수 있습니다. 당사의 솔루션을 통해 자동차 및 운송 산업을 어떻게 돕는지 자세히 알아보십시오.

우리의 도전이 얼마나 대화형이고 포함되는지 알아내고 싶으신가요? 일부 C / C + +:에 포함 된 도전을 시도하십시오. learning platform 오늘!

우리는 당신에게 우리의 제품 및 / 또는 관련 보안 코딩 주제에 대한 정보를 보낼 수있는 귀하의 허가를 바랍니다. 우리는 항상 최대한의주의를 기울여 귀하의 개인 정보를 취급 할 것이며 마케팅 목적으로 다른 회사에 판매하지 않을 것입니다.

전송
양식을 제출하려면 '분석' 쿠키를 활성화하세요. 완료되면 언제든지 다시 비활성화할 수 있습니다.