Mozilla에서 사용하는 새로운 라이브러리 격리 기술인 RLBox

Firefox 로고

스탠포드 대학 연구원캘리포니아 대학 샌디에고에서 y la 텍사스 대학교 오스틴 그들은 개발했습니다 그들이 이름을 붙인 도구 세트 «RLBox», 해적 추가 단열 수준으로 사용 가능 함수 라이브러리의 취약성을 차단합니다.

RLBox는 타사 라이브러리의 보안 문제를 해결하는 것을 목표로합니다. 개발자에 의해 제어되지 않는 신뢰할 수 없지만 주요 프로젝트가 손상 될 수있는 취약점.

Mozilla는 Linux 용 Firefox 74 빌드에서 RLBox를 사용할 계획입니다. 편집 Firefox 75의 macOS Graphite 라이브러리 실행 격리, 소스를 나타내는 책임이 있습니다.

동시에 RLBox는 Firefox에만 국한되지 않으며 임의의 프로젝트에서 모든 라이브러리를 분리하는 데 사용할 수 있습니다.

RLBox 정보

작동 메커니즘 RLBox는 격리 된 라이브러리에서 중간 WebAssembly 코드로 C / C ++ 코드를 컴파일하는 것으로 요약됩니다. 저수준, 그런 다음 WebAssembly 모듈로 발행되고 권한은이 모듈에만 바인딩되도록 설정됩니다 (예 : 문자열 처리 용 라이브러리는 소켓 또는 네트워크 파일을 열 수 없음) C / C ++ 코드 변환 a WebAssembly는 wasi-sdk를 사용하여 수행됩니다.

직접 실행을 위해 WebAssembly 모듈은 Lucet 컴파일러를 사용하여 기계 코드로 컴파일됩니다. 나머지 응용 프로그램 메모리와는 별도로 "nanoprocess"에서 실행됩니다. Lucet 컴파일러는 WebAssembly를 실행하기 위해 Firefox에서 사용되는 Cranelift JIT 엔진과 동일한 코드를 기반으로합니다.

조립 된 모듈은 별도의 메모리 영역에서 작동합니다. 나머지 주소 공간에는 액세스 할 수 없습니다. 라이브러리의 취약점을 악용하는 경우 공격자는 제한되며 주 프로세스의 메모리 영역에 액세스하거나 샌드 박스 외부로 제어를 전송할 수 없습니다.

개발자를위한 고급 API가 제공되어 격리 모드에서 라이브러리 함수를 호출 할 수 있습니다.

WebAssembly 컨트롤러에는 추가 리소스가 거의 필요하지 않습니다. 그리고 그들과 상호 작용하는 것은 일반 함수를 호출하는 것보다 훨씬 느리지 않습니다 (라이브러리 함수는 네이티브 코드 형태로 실행되며 샌드 박스 환경과 상호 작용하는 과정에서 데이터를 복사하고 확인할 때만 오버로드가 발생합니다).

격리 된 라이브러리의 기능은 직접 호출 할 수 없으며 액세스하려면 레이어를 사용해야합니다. invoke_sandbox_function().

차례로 라이브러리에서 외부 함수를 호출해야하는 경우 이러한 함수는 register_callback 메서드를 사용하여 명시 적으로 정의되어야합니다 (기본적으로 RLBox는 표준 라이브러리 함수에 대한 액세스를 제공합니다).

안전한 메모리 작동을 보장하려면 격리 코드 실행만으로는 충분하지 않습니다. 또한 반환 된 데이터 스트림의 확인을 제공해야합니다.

격리 된 환경에서 생성 된 값은 신뢰할 수없는 것으로 표시되고 오염 된 태그로 제한되며 "정리"를 위해 확인 및 애플리케이션 메모리에 복사해야합니다.

정리하지 않고 정규 데이터가 필요한 컨텍스트에서 오염 된 데이터를 사용하려고하면 (반대의 경우도 마찬가지) 컴파일 단계에서 오류가 발생합니다.

작은 함수 인수, 반환 값 및 구조는 프로세스 메모리와 샌드 박스 메모리간에 복사하여 전달됩니다. 대용량 데이터 세트의 경우 메모리가 격리 된 환경에 할당되고 직접 "샌드 박스 참조"포인터가 기본 프로세스로 반환됩니다.

RLBox 개발은 MIT 라이선스에 따라 배포됩니다.. RLBox는 현재 Linux 및 macOS를 지원합니다. 나중에 Windows와 호환 될 예정입니다.

Mozilla가 Firefox에서 구현할 계획 인이 새로운 기술에 대해 더 알고 싶다면 API를 테스트 할뿐만 아니라 개발을 참조 할 수 있습니다. 다음 링크에서.


기사의 내용은 우리의 원칙을 준수합니다. 편집 윤리. 오류를보고하려면 여기에.

코멘트를 첫번째로 올려

코멘트를 남겨주세요

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

*

*

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