CHERIoT, C에서 보안을 개선하기 위한 Microsoft 프로젝트

체리엇

임베디드 시스템의 보안을 위한 MS 옵션인 CHERIoT

최근에 뉴스가 깨졌습니다. Microsoft는 CHERIoT 프로젝트와 관련된 개발을 시작했습니다. (사물 인터넷용 RISC-V에 대한 기능 하드웨어 확장), C 및 C++ 코드의 보안 문제를 차단하기 위한 것 기존의. CHERIoT는 기존 C/C++ 코드 기반을 리팩터링하지 않고도 보호할 수 있는 솔루션을 제공합니다.

보호는 수정된 컴파일러를 사용하여 구현됩니다. 프로세서에서 제공하는 특수 확장된 ISA(프로세서 명령) 세트를 사용하고 하드웨어 수준에서 메모리 액세스를 모니터링하고 포인터로 작업 정확성을 확인하며 코드 블록 격리를 제공합니다.

체리엇 소개

프로젝트 C 언어의 낮은 수준의 특성을 이해하고 만들어졌습니다. 메모리 오류의 원인이 됩니다. 버퍼 오버플로와 같은 문제가 발생합니다. 이미 해제된 메모리에 대한 액세스, 포인터 역참조 또는 이중 해제.

실습에 따르면 엄격한 변경 검토 정책을 가지고 최신 개발 방법과 정적 분석 도구를 사용하는 Google 및 Microsoft와 같은 대기업조차도 메모리 작업에 오류가 없음을 보장할 수 없습니다(예: Microsoft 및 Google의 취약점 중 약 70%). 안전하지 않은 메모리 관리로 인해 발생합니다).

문제 안전한 작업을 보장하는 프로그래밍 언어를 사용하여 해결할 수 있습니다.또는 해제된 메모리 영역에 액세스하기 위해 추가 제어를 수행하는 공통 포인터 대신 MiraclePtr(raw_ptr)을 사용하여 추가 제어가 있는 메모리 또는 링크를 사용합니다.

하지만 이러한 방법은 새 코드에 더 적합합니다. y 기존 C/C++ 프로젝트를 재작업하는 것은 상당히 번거롭습니다. 특히 임베디드 시스템 및 IoT 장치와 같이 리소스가 제한된 환경에서 실행하려는 경우.

CHERIoT 하드웨어 구성 요소는 마이크로 컨트롤러로 설계되었습니다. RISC-V 아키텍처를 기반으로 보안 프로세서 아키텍처 CHERI(Capacity Hardware Extension for RISC-V)를 구현하여 제어된 메모리 액세스 모델을 제공합니다.

에 기초 명령어 세트 아키텍처 (ISA) CHERIoT에서 제공되는 프로그래밍 모델은 개별 개체 수준에서 메모리 작업의 보안을 보장하고, 이미 해제된 메모리에 대한 액세스로부터 보호하며, 메모리 액세스를 위한 경량 격리 시스템을 구현합니다.

이 프로그래밍 보호 모델은 C/C++ 언어 모델을 직접 미러링하므로 기존 애플리케이션을 보호하는 데 사용할 수 있습니다(ISA CHERIoT 호환 하드웨어에서만 재컴파일 및 실행 필요).

제안된 솔루션은 메모리에서 개체의 범위를 벗어나는 오류를 차단할 수 있습니다., 포인터 대체를 허용하지 않음(모든 포인터는 기존 포인터에서 생성되어야 함), 해제 후 메모리 액세스를 모니터링합니다(잘못된 포인터 또는 해제된 개체를 참조하는 포인터에 의한 모든 메모리 액세스는 예외를 발생시킵니다).

예를 들어, CHERIoT를 사용하면 코드를 변경하지 않고도 자동 경계 검사를 구현하고, 메모리 영역의 수명을 추적하고, 신뢰할 수 없는 데이터를 처리하는 구성 요소에서 포인터의 무결성을 보장할 수 있습니다.

프로젝트 CHERIoT 명령어 세트 아키텍처에 대한 사양 포함 확장, ISA CHERIoT 호환 32비트 RISC-V CPU의 참조 구현 및 수정된 LLVM 도구 세트.

최종적으로 그것에 대해 더 많이 알고 싶다면 당신은 알고 있어야 프로토타입 다이어그램 Verilog의 CPU 및 하드웨어 블록 설명은 Apache 2.0 라이선스에 따라 배포됩니다. lowRISC 프로젝트의 Ibex 코어는 CPU의 기반으로 사용되며 CHERIoT ISA 코드 모델은 Sail 언어로 정의되고 BSD 라이선스에 따라 배포됩니다.

또한 프로토타입 CHERIoT RTOS 실시간 운영 체제가 제안되어 256MB RAM이 장착된 임베디드 시스템에서도 구획(구획)을 분리할 수 있는 기능을 제공합니다.

코드 체리엇 RTOS C++로 작성되었으며 MIT 라이선스에 따라 배포됩니다. 컴파트먼트 형태로 부트로더, 스케줄러, 메모리 할당 시스템 등 운영체제의 기본 구성요소가 설계된다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자: AB Internet Networks 2008 SL
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.