Spook.js, Chrome의 Spectre 취약점을 악용하는 새로운 기술

연구자 그룹 미국, 호주 및 이스라엘 대학에서 보고한 새로운 공격 기술 설명 취약점을 악용할 수 있는 Chromium 기반 브라우저의 Spectre 클래스입니다.

공격, 코드네임 Spook.js, JavaScript 코드 실행 시 사이트 격리 메커니즘 우회 허용 및 현재 프로세스의 전체 주소 공간의 내용을 읽는 것, 즉 다른 탭에서 실행되지만 동일한 프로세스에서 처리되는 페이지의 데이터에 액세스하는 단계를 포함합니다.

Chrome은 서로 다른 프로세스에서 서로 다른 사이트를 시작하기 때문에 실제 공격은 서로 다른 사용자가 페이지를 호스팅할 수 있도록 하는 서비스로 제한됩니다. Spook.js 공격 방법은 공격자가 자신의 JavaScript 코드를 삽입할 수 있는 페이지에서 가능하게 합니다., 동일한 사이트의 사용자가 연 다른 페이지의 존재 여부 확인 기밀 정보 추출 예를 들어, 웹 양식의 자동 완성 시스템으로 대체된 자격 증명 또는 은행 세부 정보.

이 방법의 또 다른 응용 프로그램은 브라우저 플러그인에 대한 공격입니다. 공격자가 제어하는 ​​플러그인이 설치된 경우 다른 플러그인에서 데이터를 추출할 수 있습니다.

Spook.js는 Chromium 엔진을 기반으로 하는 모든 브라우저에 적용할 수 있으며, Google Chrome, Microsoft Edge 및 Brave를 포함합니다. 연구원들은 또한 이 방법을 Firefox에서 작동하도록 조정할 수 있다고 생각하지만 Firefox 엔진은 Chrome과 매우 다르기 때문에 이러한 익스플로잇을 만드는 작업은 미래에 남겨둡니다.

브라우저를 통한 명령어의 추측 실행과 관련된 공격으로부터 보호하기 위해 Chrome에서 주소 공간 분할이 구현됩니다. 샌드박스 격리를 사용하면 JavaScript가 32비트 포인터로만 작동하고 겹치지 않는 4GB 스택에서 컨트롤러의 메모리를 공유할 수 있습니다.

프로세스의 전체 주소 공간에 대한 액세스를 구성하고 32비트 제한을 피하기 위해 연구원들은 JavaScript 엔진이 잘못된 유형의 객체를 처리하여 64비트를 형성할 수 있도록 하는 유형 혼동 기술을 사용했습니다. 두 개의 32비트 값 조합을 기반으로 하는 코드입니다.

공격의 본질은 JavaScript 엔진에서 특수하게 조작된 악성 개체를 처리하여 어레이에 액세스하는 명령의 추측 실행으로 이어지는 조건이 생성된다는 것입니다. 공격자가 제어하는 ​​필드가 64비트 포인터가 사용되는 영역에 배치되도록 개체가 선택됩니다.

악성 개체의 유형은 처리 중인 배열 유형과 일치하지 않기 때문에 정상적인 조건에서는 배열에 액세스하는 데 사용되는 코드의 최적화 해제 메커니즘에 의해 Chrome에서 이러한 작업이 차단됩니다. 이 문제를 해결하기 위해 Type Confusion 공격 코드는 "if" 조건 블록에 배치됩니다. 이 블록은 정상적인 조건에서는 실행되지 않지만 프로세서가 더 많은 분기를 잘못 예측하는 경우 추측 모드에서 실행됩니다.

결과적으로 프로세서는 생성된 64비트 포인터에 추론적으로 액세스하여 실패한 예측을 판단한 후 상태를 되돌리지만 실행 궤적은 공유 캐시에 설정되며 XNUMX차 방법을 통해 캐시 내용을 결정하는 방법을 사용하여 복원할 수 있습니다. 캐시된 데이터와 캐시되지 않은 데이터에 대한 액세스 시간의 변화를 분석합니다.

JavaScript에서 사용할 수 있는 타이머의 정밀도가 불충분한 조건에서 캐시의 내용을 분석하기 위해 Google에서 제안한 방법을 사용하여 프로세서에서 사용되는 Tree-PLRU 캐시 데이터 제거 전략을 속이고 횟수 주기를 늘려 다음을 수행할 수 있습니다. 캐시에 값이 있을 때와 없을 때 시차를 크게 증가시킵니다.

연구원들이 Chrome 89 e에서 작동하는 프로토타입 익스플로잇을 출시했습니다.n Intel i7-6700K 및 i7-7600U가 있는 시스템. 익스플로잇은 Spectre 공격을 수행하기 위해 Google에서 이전에 게시한 JavaScript 코드의 프로토타입을 사용하여 만들어졌습니다.

마지막으로 연구자들은 다음과 같이 언급합니다. Intel 및 Apple M1 프로세서 기반 시스템에 대한 작업 익스플로잇을 준비했습니다., 초당 500바이트의 속도와 96%의 정확도로 메모리 읽기를 구성할 수 있는 기회가 제공됩니다. 이 방법은 AMD 프로세서에 적용할 수 있을 것으로 예상되지만 완전한 기능을 갖춘 익스플로잇을 준비하는 것은 불가능했습니다.

출처 : https://www.spookjs.com


코멘트를 남겨주세요

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

*

*

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