Rust는 이미 Android 개발에서 가장 선호되는 제품입니다.

Google 공개 최근에 포함 프로그래밍 언어 허용되는 언어 중 Rust Android 개발 용.

Rust 컴파일러가 2019 년에 Android 소스 트리에 포함 되었기 때문에 언어 지원은 실험적입니다. Android에 제공되는 최초의 Rust 구성 요소 중 일부는 Binder 프로세스 간 통신 메커니즘과 Bluetooth 스택의 새로운 구현입니다.

Rust 구현 보안 강화 프로젝트의 일환으로 수행, 보안 코딩 기술을 홍보하고 Android에서 메모리로 작업 할 때 문제를 식별하는 효율성을 개선합니다. Android에서 식별 된 모든 위험한 취약성의 약 70 %가 메모리 작업시 오류로 인해 발생하는 것으로 관찰되었습니다.

Rust 언어의 사용, 해적 안전한 메모리 관리에 중점을 둡니다. 자동 메모리 관리를 제공하므로 메모리가 해제 된 후 메모리 영역에 액세스하고 버퍼 제한을 초과하는 등 메모리 처리 중 오류로 인한 취약성의 위험을 줄일 수 있습니다.

참조를 확인하고, 객체 소유권과 객체 수명 (범위)을 추적하고, 런타임에 메모리에 대한 액세스의 정확성을 평가하여 컴파일 타임에 안전한 메모리 처리가 보장됩니다.

또한 오버플로로부터 보호하는 수단을 제공합니다. 정수, 사용하기 전에 변수 값의 필수 초기화가 필요하고, 표준 라이브러리의 오류를 더 잘 처리하고, 참조 및 불변 변수의 개념을 기본적으로 채택하고, 강력한 정적 쓰기를 제공하여 논리적 오류를 최소화합니다.

Android에서는 보안 메모리 관리가 Kotlin 및 Java 언어로 제공됩니다. 이미 지원되지만 과도한 오버 헤드로 인해 시스템 구성 요소 개발에는 적합하지 않습니다.

Rust는 C 및 C ++ 언어에 가까운 성능을 얻을 수 있습니다., 하드웨어와 인터페이스 할 플랫폼 및 구성 요소의 저수준 부분을 개발하는 데 사용할 수 있습니다.

C 및 C ++ 코드의 보안을 보장하기 위해 Android는 샌드 박스 격리, 정적 분석 및 퍼징 테스트를 사용합니다. 샌드 박스 격리 기능이 제한되어 있고 해당 기능의 한계에 도달했습니다 (프로세스의 추가 조각화는 리소스 소비 관점에서 실용적이지 않음).

샌드 박스 사용의 한계 중에는 IPC 사용과 관련된 추가 대기 시간뿐만 아니라 새로운 프로세스 생성 필요성으로 인한 높은 오버 헤드와 더 높은 메모리 소비가 언급됩니다.

동시에 샌드 박스는 코드의 취약성을 제거하지 않고 위험을 줄이고 공격을 복잡하게 만듭니다. 악용시 하나가 아닌 여러 취약성을 식별해야하기 때문입니다.

오류를 감지하려면 문제의 발현 조건을 만들어야하므로 코드 테스트 방법이 제한됩니다. 가능한 모든 옵션을 다룰 수는 없으므로 많은 오류가 눈에 띄지 않게됩니다.

Android의 시스템 프로세스의 경우 Google은 '두 가지 법칙'을 고수합니다.~에 따르면 추가 된 코드는 XNUMX 가지 조건 중 XNUMX 가지 이상을 충족하지 않아야합니다.-확인되지 않은 입력 데이터로 작업하고, 안전하지 않은 프로그래밍 언어 (C / C ++)를 사용하고, 하드 샌드 박스 격리없이 (상승 된 권한으로) 실행합니다.

이 규칙에 따라 외부 데이터를 처리하는 코드는 최소 권한 (격리)으로 축소되거나 보안 프로그래밍 언어로 작성되어야합니다.

Google은 코드를 다시 작성하는 것을 목표로하지 않습니다. Rust에 존재하는 C / C ++, 그러나 그는이 언어를 사용하여 새로운 코드를 개발할 계획입니다.

통계적으로 대부분의 오류는 새 코드 나 최근에 수정 된 코드에 나타나기 때문에 새 코드에 Rust를 사용하는 것이 좋습니다. 특히 Android에서 감지 된 메모리 오류의 약 50 %가 XNUMX 년 이내에 작성된 코드에서 감지됩니다.

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


코멘트를 남겨주세요

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

*

*

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

  1.   미구엘로드 리 게스

    아이러니하게도, 당신의 가장 큰 경쟁자가 당신의 목적을 위해 당신이 개발 한 것을 채택하게 될 때… Rust가 증가하고 있습니다.