Google의 LVI 보호 소프트웨어는 14배의 성능 히트를 보였습니다.

Google의 Zola Bridges предложил LLVM 컴파일러 세트의 경우 SESES(Speculative Execution Side Effect Suppression) 보호가 구현된 패치로 Intel CPU의 추측 실행 메커니즘에 대한 공격을 차단하는 데 도움이 됩니다. LVI. 보호 방법은 컴파일러 수준에서 구현되며 기계어 코드를 생성할 때 컴파일러가 추가하는 명령을 기반으로 합니다. LFENCE, 이는 각 메모리 읽기 또는 쓰기 명령 앞에 삽입될 뿐만 아니라 블록을 끝내는 명령 그룹의 첫 번째 분기 명령 앞에 삽입됩니다.

LFENCE 명령어는 이전의 모든 메모리 읽기가 커밋될 때까지 기다리고 커밋이 완료될 때까지 LFENCE 이후 후속 명령어의 선점을 비활성화합니다. LFENCE를 사용하면 성능이 크게 저하되므로 특히 중요한 코드에 대해 극단적인 경우 보호 기능을 사용하는 것이 좋습니다. 완전한 보호 외에도 패치는 성능에 대한 부정적인 영향을 줄이기 위해 특정 수준의 보호를 선택적으로 비활성화할 수 있는 세 가지 플래그를 제공합니다.

수행된 테스트에서 BoringSSL 패키지에 SESES 보호를 사용하면 라이브러리에서 수행되는 초당 작업 수가 14배 감소했습니다. 보호된 라이브러리 버전의 성능은 평균 7.1%에 불과했습니다. 보호되지 않은 버전(4%에서 23%까지 테스트에 따라 변동).

비교를 위해, 제안 된 이전에는 GNU Assembler의 경우 각 메모리 로드 작업 후 및 일부 분기 명령 이전에 LFENCE 대체를 수행하는 메커니즘이 약 5배(보호되지 않은 코드의 22%)의 성능 저하를 보여주었습니다. 보호 방법은 또한 제안 и 구현 Intel 엔지니어가 수행했지만 이에 대한 성능 테스트 결과는 아직 공개되지 않았습니다. 처음에 LVI 공격을 식별한 연구원들은 전체 보호를 적용할 경우 성능이 2~19배 감소할 것으로 예측했습니다.

출처 : opennet.ru

코멘트를 추가