Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
spectre-attack-demo — 공개된 'Spectre' 익스플로잇(CVE-2017-5753 및 CVE-2017-5715) 사용 예시 | Kitploit
도구/GitHubGitHub/pedrolucasoliva/spectre-attack-demo
Vulnerability AnalysisExploitationCryptographyHardware SecurityLearning & EducationBinary Exploitation
GitHubpedrolucasoliva/spectre-attack-demo

spectre-attack-demo

공개된 'Spectre' 익스플로잇(CVE-2017-5753 및 CVE-2017-5715) 사용 예시

저장소 보기
118년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Spectre Attack 예제

2018년 1월 2일에 공개된 "Spectre" 취약점 (CVE-2017-5753 및 CVE-2017-5715)을 사용한 예제입니다.

Spectre는 서로 다른 애플리케이션 간의 격리를 깨뜨립니다. 공격자가 모범 사례를 따르는 오류 없는 프로그램을 속여 비밀을 유출하도록 할 수 있습니다. 실제로, 해당 모범 사례의 안전 검사는 공격 표면을 증가시키고 애플리케이션을 Spectre에 더 취약하게 만들 수 있습니다.

  • Spectre 논문 - Spectre 논문 및 코드 소스

언어

C, 다음 라이브러리 사용:

  • stdio.h
  • stdlib.h
  • stdint.h
  • intrin.h - rdtscp 및 clflush 용

예제의 기능은 무엇인가요?

메모리에 "The Magic Words are Squeamish Ossifrage."라는 텍스트를 저장한 다음 익스플로잇을 사용하여 읽으려고 시도합니다. 시스템이 취약한 경우, 메모리에서 읽은 동일한 텍스트가 출력에 표시됩니다.


이 코드에서, victim_function()의 컴파일된 명령어가 엄격한 프로그램 순서대로 실행된다면, array1 크기가 16이므로 함수는 array1[0..15]에서만 읽을 것입니다. 그러나 추측 실행(speculative execution) 시에는 범위를 벗어난 읽기가 가능합니다. readMemoryByte() 함수는 victim_function()을 여러 번 훈련 호출하여 분기 예측기가 x에 대해 유효한 값을 예상하도록 한 후, 범위를 벗어난 x로 호출합니다. 조건부 분기가 잘못 예측되고, 이어진 추측 실행이 범위를 벗어난 x를 사용하여 비밀 바이트를 읽습니다. 그런 다음 추측 코드가 array2[array1[x] * 512]에서 읽어 array1[x]의 값을 캐시 상태로 유출합니다. 공격을 완료하기 위해 간단한 flush+probe를 사용하여 array2에서 로드된 캐시 라인을 식별하여 메모리 내용을 밝혀냅니다. 공격은 여러 번 반복되므로, 대상 바이트가 처음에 캐시되지 않았더라도 첫 번째 반복에서 캐시로 가져옵니다.

최적화되지 않은 코드는 i7 Surface Pro 3에서 초당 약 10KB를 읽습니다.

출처

  • Spectre 익스플로잇 정보
  • CVE-2017-5753 - 변종 1: 경계 검사 우회
  • CVE-2017-5715 - 변종 2: 분기 대상 주입
  • 영향 받는 Intel CPU 목록
도구 다운로드