Google은 또한 Rust에 베팅하고 Chromium에 포함한다고 발표합니다.

Chromium

Rust도 Chromium에 도착했습니다.

Google 공개 최근 간행물 l을 통해Chromium 프로젝트 코드에서 허용되는 언어 중 Rust 프로그래밍 언어 포함.

포함하려면 일련의 요구 사항이 있다고 언급됩니다. 예를 들어 Chromium 코드베이스로의 통합을 요청하는 타사 Rust 라이브러리의 경우 라이브러리는 속도, 메모리 소비 및 안정성 면에서 동급 라이브러리보다 성능이 뛰어나거나 특정 기술의 유일한 구현이어야 합니다.

Rust 라이브러리는 권한이 부여된 프로세스에서 기능을 실행할 수 있거나 라이브러리를 사용하면 다른 라이브러리나 C++ 코드에 비해 버그 위험이 감소할 때 허용됩니다. Chromium에 어떤 라이브러리를 포함할 수 있는지는 아직 결정되지 않았습니다.

결정 메모리 오류가 나타나는 것을 방지하기 위한 이니셔티브의 일부로 취해졌습니다. Chrome 코드베이스에서. 70년 전에 제공된 통계에 따르면 Chromium의 중요하고 위험한 보안 문제의 XNUMX%는 메모리 오류로 인한 것입니다.

안전한 메모리 관리에 중점을 둔 Rust 언어 사용 자동 메모리 관리를 제공하므로 메모리가 해제된 후 메모리 영역 액세스 및 버퍼 오버플로와 같은 문제로 인해 발생하는 취약성의 위험을 줄입니다.

Rust에서는 참조 확인, 개체 소유권 및 개체 수명(범위) 추적, 코드 실행 중 정확성을 위한 메모리 액세스 평가를 통해 컴파일 시 Rust에서 안전한 메모리 처리가 제공됩니다. Rust는 또한 정수 오버플로 보호 기능을 제공하고, 사용하기 전에 변수 값의 필수 초기화가 필요하며, 표준 라이브러리에서 오류를 더 잘 처리하고, 기본적으로 불변 참조 및 변수 개념을 적용하고, 논리적 오류를 최소화하기 위해 강력한 정적 유형 지정을 제공합니다.

Rust를 사용하면 Google이 코드 베이스를 안전하게 유지하기 위해 사용하는 "행동 규칙"을 더 쉽고 안전하게 적용할 수 있습니다.

이 규칙에 따르면 추가하는 모든 코드는 다음 세 가지 조건 중 두 가지 이상을 충족해서는 안 됩니다. 검증되지 않은 입력으로 작업, 안전하지 않은 프로그래밍 언어(C/C++) 사용, 승격된 권한으로 실행. 이 규칙에 따라 외부 데이터를 처리하기 위한 코드는 최소 권한(격리)으로 축소되거나 안전한 프로그래밍 언어로 작성되어야 합니다.

원래 브라우저를 염두에 두고 개발된 Rust의 경우 IPC를 사용하지 않고 기존 코드와의 통합을 수행할 수 있고 메모리 오류 보호를 오케스트레이션하는 복잡성이 적어 개발 프로세스 속도가 빨라집니다( 코드 작성이 덜 필요함). 더 쉬운 검토) 및 보안 관련 버그의 수를 줄입니다.

통합을 단순화하려면 기존 C++ 코드로 코드를 녹이고 현재 통합과 관련된 위험과 제한을 피하십시오. 단방향 상호 작용을 제한하기로 결정했습니다. API 함수를 통해 C++에서 Rust를 호출(예: Rust 코드는 C++ 코드에서만 호출할 수 있지만 C++ 코드와 혼합할 수 없음)하여 종속성 트리를 제어할 수도 있습니다.

두 번째 제한 사항은 Chromium에 연결되지 않고 작업 지향 API가 있는 별도의 구성 요소 형태로 제공되는 타사 라이브러리만 지원한다는 것입니다.

Rust를 사용하여 use-after-free 메모리 취약점 악용을 차단하는 것 외에도 Chrome 102 릴리스부터 C++ 코드는 대신 MiraclePtr(raw_ptr) 유형을 사용하기 시작했습니다. 이러한 액세스가 발견되면 메모리 영역 및 블록.

새로운 보호 방법이 성능 및 메모리 소비에 미치는 영향은 미미할 것으로 예상됩니다.

마지막으로 아직 Rust에서 기존 코드를 다시 작성할 계획이 없습니다., 그러나 지금부터 Rust로 작성된 타사 라이브러리는 코드 베이스에 통합될 수 있습니다.

빌드 시스템에는 Rust 코드 컴파일, 테스트 실행, Rust 구성 요소를 C++ 코드와 통합하기 위한 도구가 이미 추가되었습니다. Rust 코드는 내년 Chrome 릴리스의 일부로 나타날 것으로 예상됩니다.

출처 : https://security.googleblog.com


코멘트를 남겨주세요

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

*

*

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