Google은 브라우저에서 JavaScript를 사용하여 Spectre 취약점 악용을 보여줍니다.

구글은 최근 스펙터(Spectre) 계열 취약점을 악용할 수 있는 여러 프로토타입 익스플로잇을 공개했는데 , 이는 기존에 추가된 보안 조치를 거치지 않고 브라우저에서 자바스크립트 코드를 실행하는 방식입니다.

이 취약점을 이용하면 현재 탭에서 웹 콘텐츠를 처리하는 프로세스의 메모리에 접근할 수 있습니다 . 취약점의 작동 여부를 테스트하기 위해 유출된 웹페이지를 실행했으며, 해당 공격의 논리를 설명하는 코드는 GitHub에 공개되었습니다.

제안된 프로토타입은 Linux 및 Chrome 88 환경에서 Intel Core i7-6500U 프로세서가 탑재된 시스템을 공격 하도록 설계되었지만, 다른 환경에서도 해당 취약점을 활용할 수 있도록 변경하는 가능성을 배제하는 것은 아닙니다.

이 취약점은 인텔 프로세서 에만 국한된 것이 아닙니다 . 적절한 조정을 거치면 ARM 아키텍처 기반의 Apple M1을 비롯한 다른 제조사의 CPU를 사용하는 시스템에서도 작동하는 것이 확인되었습니다. 또한 약간의 수정을 통해 Chromium 엔진 기반의 다른 운영 체제 및 브라우저에서도 작동합니다.

표준 Chrome 88 및 Intel Skylake 프로세서를 기반으로하는 환경에서 현재 Chrome 탭 (렌더링 프로세스)의 웹 콘텐츠 렌더링을 담당하는 프로세스에서 초당 1KB의 속도로 데이터 유출이 발생했습니다. 또한 대체 프로토 타입 (예 : 8 마이크로 초 (5 밀리 초)의 정밀도로 performance.now () 타이머를 사용할 때 안정성이 저하 된 비용으로 누출 률을 0.005kB / s로 증가시킬 수있는 익스플로잇)이 개발되었습니다. ). 또한 60 밀리 초의 타이머 정밀도로 작동하는 변형도 개발되었으며, 이는 초당 약 XNUMX 바이트의 속도로 다른 프로세스의 메모리에 대한 액세스를 구성하는 데 사용할 수 있습니다.

게시 된 데모 코드는 다음 세 부분으로 구성됩니다.

  • 첫 번째 부분 실행 시간을 추정하기 위해 타이머를 보정하십시오. CPU 명령의 예측 실행의 결과로 프로세서 캐시에 남아있는 데이터를 검색하는 데 필요한 작업
  • 두 번째 부분 JavaScript 배열을 할당 할 때 사용되는 메모리 레이아웃을 정의합니다.
  • 세 번째 부분 Spectre 취약점을 직접 악용하여 메모리 콘텐츠를 확인합니다. 특정 작업의 예측 실행을위한 조건 생성의 결과로 현재 프로세스의 결과는 실패한 예측을 결정한 후 프로세서에 의해 삭제되지만 실행 추적은 공유 캐시에 정착되며 다음을 사용하여 복원 할 수 있습니다. 캐시 된 데이터와 캐시되지 않은 데이터에 대한 액세스 시간의 변화를 분석하는 타사 채널을 사용하여 캐시의 내용을 확인하는 방법.

제안된 공격 기법은 performance.now() API를 통해 제공되는 고정밀 타이머를 사용하지 않고도, 공유 메모리에 배열을 생성할 수 있는 SharedArrayBuffer 유형에 대한 지원 없이도 작동할 수 있도록 합니다 .

이 익스플로잇에는 제어 된 추측 코드 실행을 유발하는 Spectre 장치와 추측 실행 중에 어떤 데이터가 캐시되었는지 확인하는 부 채널 누출 분석기가 포함됩니다.

이 가젯은 JavaScript 배열을 사용하여 구현되었으며, 버퍼 경계를 벗어난 영역에 접근하려는 시도가 발생합니다 . 이는 컴파일러가 추가한 버퍼 크기 검사로 인해 분기 예측 블록의 상태에 영향을 미칩니다(프로세서는 예측적으로 조기 접근을 수행하지만 검사 후 상태를 원래대로 되돌립니다).

타이머 정밀도가 불충분 한 조건에서 캐시의 내용을 분석하기 위해 프로세서에서 사용하는 Tree-PLRU 캐시 데이터 제거 전략을 속여서주기 수를 늘려 값의 차이 시간을 크게 늘릴 수있는 방법을 제안했습니다. 캐시에서 값이없는 경우 캐시에서 반환됩니다.

구글은 스펙터급 취약점을 이용한 공격의 실현 가능성을 보여 주고 웹 개발자들이 이러한 공격의 위험을 최소화하는 기술을 사용하도록 장려하기 위해 해당 공격의 프로토타입을 공개했습니다 .

동시에 Google은 제안 된 프로토 타입을 대대적으로 수정하지 않으면 데모뿐만 아니라 널리 사용할 수있는 범용 공격을 생성하는 것이 불가능하다고 생각합니다.

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


Google에서 선호하는 검색 엔진으로 추가