보안 연구원 그룹, 그중 일부는 첫 번째 Meltdown 및 Spectre 취약점 탐지에 참여했습니다. 타사 채널에 대한 새로운 유형의 공격을 개발했습니다.
이 공격 페이지 캐시 콘텐츠 분석을 기반으로 수행, 획득 한 정보를 포함합니다. 디스크, SSD 및 기타 잠금 장치에 대한 운영 체제 액세스의 결과입니다.
스펙터 공격과 달리 새로운 취약점은 하드웨어 문제로 인한 것이 아닙니다., 그러나 페이지 캐시의 소프트웨어 구현에만 관련됩니다. Linux에서 매니페스트 (CVE-2019-5489), Windows 및 아마도 다른 많은 운영 체제.
mincore (Linux) 및 QueryWorkingSetEx (Windows) 시스템 호출을 조작하여 시스템 페이지 캐시에 메모리 페이지가 있는지 확인합니다., 권한이없는 로컬 공격자가 다른 프로세스의 일부 메모리 액세스를 추적 할 수 있습니다.
공격을 통해 블록 수준에서 액세스를 추적 할 수 있습니다. Linux에서 4 마이크로 초 (초당 2 회 측정) 및 Windows에서 6.7 나노초 (초당 446 회 측정)의 시간 분해능으로 223KB
페이지 캐시는 실행 파일 추출, 공유 라이브러리, 디스크에로드 된 데이터, 메모리의 미러링 된 파일을 포함하여 매우 다양한 데이터를 축적합니다. 및 일반적으로 디스크에 저장되고 운영 체제 및 응용 프로그램에서 사용되는 기타 정보.
이 공격은 무엇에 대한 것입니까?
공격 모든 프로세스가 공통 시스템 페이지 캐시를 사용한다는 사실을 기반으로하며이 캐시의 정보 유무는 데이터 읽기 지연을 변경하여 판별 할 수 있습니다. 디스크 또는 위에서 언급 한 시스템 호출을 참조하십시오.
캐시 된 페이지는 여러 프로세스에서 사용하는 가상 메모리 영역에서 미러링 될 수 있습니다 (예를 들어, 공유 라이브러리의 사본 하나만 물리적 메모리에 존재할 수 있으며 이는 다른 애플리케이션의 가상 메모리에 미러링 됨).
페이지 캐시에서 정보를 스크롤하고 디스크에서 일반적인 데이터를로드 할 때 채우는 과정에서 다른 응용 프로그램의 가상 메모리에서 유사한 페이지의 상태를 분석 할 수 있습니다.
mincore 및 QueryWorkingSetEx 시스템 호출은 주어진 주소 범위의 어떤 메모리 페이지가 페이지 캐시에 있는지 즉시 확인할 수 있도록함으로써 공격을 크게 단순화합니다.
모니터링되는 블록 (4Kb)의 크기가 너무 커서 반복 당 콘텐츠를 결정할 수 없기 때문에 공격은 은밀한 데이터 전송에만 사용될 수 있습니다.
알고리즘 동작을 추적하거나 알려진 프로세스의 일반적인 메모리 액세스 패턴을 평가하거나 다른 프로세스의 진행 상황을 모니터링하여 암호화 작업의 강도를 줄입니다.
공격자가 알려진 메모리의 데이터 레이아웃 (예를 들어, 인증 대화 상자를 종료 할 때 버퍼의 기본 내용이 처음에 알려진 경우 사용자 개입 중에 갈취 기호를 기반으로 Arola를 결정할 수 있습니다.)
이에 대한 해결책이 있습니까?
예, 이미 Linux의 솔루션이있는 경우 이러한 유형의 연구는 해로운 의도를 가진 다른 사람들이 문제를 이용하기 전에 문제를 감지하는 데 도움이됩니다.
Linux 커널의 경우 솔루션은 이미 패치로 사용 가능하며 이미 사용 가능합니다. 설명 및 여기에 문서화.
Windows 10의 경우 테스트 빌드 (Insider Preview Build) 18305에서 문제가 수정되었습니다.
연구원들이 입증 한 로컬 시스템에 대한 공격의 실제 적용에는 격리 된 격리 된 환경에서 데이터 전송 채널 생성, 온 스크린 인터페이스 요소 (예 : 인증 대화 상자) 재생성, 키 입력 정의 및 자동 생성 복구가 포함됩니다. 임시 암호).