KR101807441B1 - 가상 머신들 간의 사이드 채널 공격들의 검출 - Google Patents

가상 머신들 간의 사이드 채널 공격들의 검출 Download PDF

Info

Publication number
KR101807441B1
KR101807441B1 KR1020167011581A KR20167011581A KR101807441B1 KR 101807441 B1 KR101807441 B1 KR 101807441B1 KR 1020167011581 A KR1020167011581 A KR 1020167011581A KR 20167011581 A KR20167011581 A KR 20167011581A KR 101807441 B1 KR101807441 B1 KR 101807441B1
Authority
KR
South Korea
Prior art keywords
rate
value
side channel
cmr
ipi
Prior art date
Application number
KR1020167011581A
Other languages
English (en)
Other versions
KR20160072135A (ko
Inventor
케빈 에스 파인
Original Assignee
엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 filed Critical 엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Publication of KR20160072135A publication Critical patent/KR20160072135A/ko
Application granted granted Critical
Publication of KR101807441B1 publication Critical patent/KR101807441B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

기술들은 가상 머신들 간의 사이드 채널 공격을 식별하기 위한 검출기에 관한 것이다. 몇몇 예들에 따르면, 제 1 가상 머신 (VM) 의 프로세서간 인터럽트 (IPI) 레이트, 제 2 VM의 타임 스탬프 카운터 (TSC) 레이트, 및 제 3 VM의 캐시 미스 비율 (CMR) 이 모니터링될 수 있다. 이후 사이드 채널 공격은 IPI 레이트, TSC 레이트 및 CMR에 기초하여 검출될 수도 있다.

Description

가상 머신들 간의 사이드 채널 공격들의 검출{DETECTION OF SIDE CHANNEL ATTACKS BETWEEN VIRTUAL MACHINES}
본 출원은 2013년 12월 4일에 출원된 PCT 출원 일련 번호 PCT/US13/73140의 35 US.C. §371 하에서의 국내 단계 출원이다. 본 PCT 출원은 그 전체가 참조로써 본원에 통합된다.
본원에서 달리 나타내지 않는다면, 본 섹션에서 설명되는 내용은 본 출원에서 청구범위에 대한 종래 기술이 아니며, 본 섹션에 포함함으로써 선행 기술로 인정되지 않는다.
클라우드 인프라스트럭처 제공자는 동적인 온디멘드 컴퓨팅 리소스들을 보다 저비용으로 제공하기 위해 스케일의 절약을 활용할 수도 있다. 가상화는 효율을 증가시키고 성능을 향상시키기 위해 인프라스트럭처 제공자에 의해 이용될 수도 있는 툴 중 하나이다. 다수 고객으로부터의 가상 머신 (VM) 은 서버들과 같은 물리적 리소스를 공유할 수도 있다. 공유 리소스들은 동일한 제공자로부터의 물리적 리소스들을 동시에 공유하는 다수의 상호 불신 고객을 유발할 수도 있다. 고객은 클라우드 인프라스트럭처의 공유 특성을 인식할 수도 있다. 고객이 클라우드 컴퓨팅으로 이동하는 것을 막는 하나의 장애물은 다른 사용자로부터 감시되는 공포이다.
요약
본 개시물에는 일반적으로 검출기를 사용하여 가상 머신들 간의 사이드 채널 공격을 식별하기 위한 기술들이 기재되어 있다.
몇몇 예에 따르면, 가상 머신들 간의 사이드 채널 공격을 식별하는 방법이 제공된다. 방법은, 제 1 가상 머신 (VM) 의 프로세서간 인터럽트 (IPI) 레이트를 모니터링하는 것, 제 2 VM의 타임 스탬프 카운터 (TSC) 레이트를 모니터링하는 것, 제 3 VM의 캐시 미스 비율 (CMR) 를 모니터링하는 것, 및 IPI 레이트, TSC 레이트 및 CMR에 기초하여 사이드 채널 공격을 검출하는 것을 포함할 수도 있다.
다른 예들에 따르면, 가상 머신들 간의 사이드 채널 공격을 검출하기 위해 컴퓨팅 디바이스가 제공될 수도 있다. 컴퓨팅 디바이스는 명령들을 저장하도록 구성된 메모리, 메모리에 커플링된 컨트롤러를 포함할 수도 있으며, 여기서 컨트롤러는 사이드 채널 공격 검출 모듈을 실행한다. 사이드 채널 공격 검출 모듈은, 제 1 가상 머신 (VM) 의 프로세서간 인터럽트 (IPI) 레이트를 모니터링하고, 소정의 IPI 레이트 임계치를 초과하는 IPI 레이트를 검출하고, 제 1 VM을 공모자 후보 및 방관자 후보의 일세트로부터의 적어도 하나로서 라벨링하고, 제 3 VM의 캐시 미스 비율 (CMR) 을 모니터링하고, 소정의 CMR 임계치를 초과하는 CMR을 검출하며, 그리고 제 3 VM을 피해자 후보로서 라벨링하도록 구성될 수도 있다.
다른 예들에 따르면, 컴퓨터 판독가능 매체는 가상 머신들 간의 사이드 채널 공격을 검출하기 위해 제공될 수도 있다. 명령들은 방법이 실행에 응답하여 수행될 수 있게 할 수도 있으며, 이 방법은 본원에 기재된 방법과 유사하다.
상기 요약은 단지 예증적인 것이며 제한하려는 의도는 아니다. 상기 상술된 예시적인 양태들, 구체예들, 및 특징들에 부가하여, 다른 양태들, 구체예들, 및 특징들이 첨부된 도면과 연계한 하기의 상세한 설명으로부터 더욱 명확해질 것이다.
본 개시물의 전술한 특징 및 다른 특징은 첨부 도면과 결합하여, 다음의 설명 및 첨부된 청구범위로부터 더욱 충분히 명백해질 것이다. 이들 도면은 본 개시물에 따른 단지 몇 개의 예시를 묘사할 뿐이고, 따라서, 본 개시물의 범위를 제한하는 것으로 고려되어서는 안 될 것임을 이해하면서, 본 개시물은 첨부 도면의 사용을 통해 더 구체적이고 상세하게 설명될 것이다.
도 1은 사이드 채널 공격들이 있는 환경에서 가상 머신들의 예시적인 스키마를 나타낸다.
도 2는 가상 머신들 간의 사이드 채널 공격의 예를 나타낸다.
도 3은 가상 머신들 간의 사이드 채널 공격의 다른 예를 나타낸다.
도 4는 가상 머신들 간의 사이드 채널 공격을 식별하기 위해 검출기를 동작시키는 예시적인 흐름도를 나타낸다.
도 5는 가상 머신들 간의 사이드 채널 공격을 검출하기 위해 사용되는 검출기의 예를 나타낸다.
도 6은 검출기를 동작시켜 가상 머신들 간의 사이드 채널 공격을 식별하기 위해 사용될 수도 있는, 범용 컴퓨팅 디바이스를 나타낸다.
도 7은 가상 머신들 간의 사이드 채널 공격을 식별하기 위해 검출기를 동작시키는 예시적인 방법을 나타낸 흐름도이다.
도 8은 가상 머신들 간의 사이드 채널 공격을 식별하기 위해 검출기를 동작시키는 예시적인 컴퓨터 프로그램 제품의 블록도를 나타내며,
이들 모두는 본원에서 설명되는 적어도 몇몇의 구체예들에 따라 배열된다.
하기의 상세한 설명에서는, 상세한 설명의 일부를 형성하는 첨부된 도면들을 참조한다. 도면에서, 문맥상 다르게 지시하지 않는 한, 유사한 도면 부호는 통상 유사한 컴포넌트를 식별한다. 상세한 설명, 도면, 및 특허청구범위에서 설명된 예증적인 구체예들은 제한적인 것을 의미하는 것은 아니다. 본원에서 제시되는 본질의 취지 또는 범위를 벗어나지 않으면서, 다른 구체예들이 활용될 수도 있고, 다른 변경예들이 이루어질 수도 있다. 여기에서 일반적으로 설명되고, 도면에 도시되는 본 개시물의 양태는 다양한 다른 구성으로 배열, 대체, 조합, 분리 및 설계될 수 있으며, 이 모두는 여기에서 명시적으로 고려됨이 명백히 이해될 것이다.
본 개시물은, 그 중에서도, 가상 머신들 간의 사이드 채널 공격을 식별하기 위한 검출기의 동작과 관련된 방법, 장치, 시스템, 디바이스 및/또는 컴퓨터 프로그램 제품에 일반적으로 관련된다.
간략히 언급하여, 기술들은 가상 머신들 간의 사이드 채널 공격을 식별하는 검출기에 관한 것이다. 몇몇 예들에 따르면, 제 1 가상 머신 (VM) 의 프로세서간 인터럽트 (IPI) 레이트, 제 2 VM의 타임 스탬프 카운터 (TSC) 레이트, 및 제 3 VM의 캐시 미스 비율 (CMR) 이 모니터링될 수 있다. 이후 사이드 채널 공격은 IPI 레이트, TSC 레이트 및 CMR에 기초하여 검출될 수도 있다.
도 1은, 본원에 기재된 적어도 몇몇 실시형태들에 따라 배열되는, 사이드 채널 공격들이 있는 환경에서 가상 머신들의 예시적인 스키마를 나타낸다
다이어그램 (100) 에 도시된 바와 같이, 가상 머신 커널 (vmKernel) (116) 은 다수의 가상 머신 관리자들 (VMM) (110, 112, 및 114) 을 관리할 수도 있다. 가상 머신은 애플리케이션들 및 서비스들을 위한 자족적인 실행 환경일 수도 있다. 가상 머신은 운영 시스템과 같은 높은 하이 레벨 애플리케이션들을 실행할 수도 있다. VMM은 VM을 관리 및 모니터링하고, VM을 실행할 수 있도록 리소스들을 제공할 수도 있다. VMM (110) 은 VM과 연관된 동작들을 실행하는 가상 중앙 처리 유닛 (vCPU; virtual central processing unit) 1을 제공할 수도 있다. vCPU는 스레드와 같은 프로세서 플레이서홀더일 수도 있다. 각각 VM은 vCPU가 배정될 수도 있으며, vCPU는 차례로 VM과 연관된 동작들을 실행하기 위한 프로세서에 배정될 수도 있다. 대안으로, VM 및 vCPU는 자족적인 실행 환경을 설명하기 위해 사용되는 유의어일 수도 있다.
대안의 예에서, VMM (112) 은 듀얼 VM들을 관리할 수도 있다. 듀얼 VM들에는 vCPU 2 및 vCPU 3가 배정될 수도 있다. VMM (114) 은 vCPU 4에 배정된 다른 VM을 관리할 수도 있다. vmKernel (116) 은, 명령들을 실행하는 물리적 CPU (pCPU) 1 (120) 및 pCPU 2 (118) 와 같은 물리적 리소스들을 할당함으로써 vCPU 1, vCPU 2, vCPU 3, 및 vCPU 4로부터 명령들의 실행을 관리할 수도 있다.
vCPU 3를 통해 명령들을 전송하는 공격자 (attacker)(106) 는 피해자 (victim)(108) 와 공유된 리소스들을 이용하여 피해자 (108) 에 의해 실행되는 명령들을 캡처하기 위한 사이드 채널 공격을 실행할 수도 있다. 공격자 (106) 는 사이드 채널 공격동안 공모자 (accomplice)(104) 를 이용할 수도 있다. 공모자 (104) 는 공격자 (106) 에게 IPI들을 이슈하여 공격자 (106) 가 피해자 (108) 에 의한 명령들의 실행을 간섭할 수 있게 할 수도 있다. 방관자 (bystander)(102) 는 사이드 채널 공격에 참여하거나 참여하지 않을 수도 있다. 방관자 (102) 는, 이들 명령들이 피해자 (108) 에 의해 pCPU 1 (120) 또는 pCPU 2 (118) 와 같은 공유 리소스들 중 하나에 대해 실행되기 전후에 명령들을 실행할 수도 VMM (110) 을 포함할 수도 있다.
공격자 (106) 는 사이드 채널 공격을 실행하는 애플리케이션의 일반적으로 사용되는 코드 기반을 이용할 수도 있다. 일반적으로 사용되는 코드 기반은 애플리케이션을 구성하기 위해 사용되는 오픈 소스 코드 엘리먼트 또는 라이브러리를 포함할 수도 있다. 공격자 (106) 는 pCPU 1 (120) 또는 pCPU 2 (118) 와 같은 피해자 (108) 와 공격자 (106) 사이에서 일반적으로 사용되는 프로세서에서 실행되는 애플리케이션으로 이어지는 경로를 결정할 수도 있다. 경로의 지식은 비밀 키와 같이 (피해자 (108) 에 의해 실행되는) 애플리케이션의 데이터의 입력 또는 출력을 결정하기 위해 사용될 수있다.
실행 경로는 일반적으로 사용되는 프로세서의 L1 명령 캐시로 로딩되는 피해자 (108) 의 명령을 검사함으로써 결정될 수도 있다. 공격자 (106) 는 예를 들어 L1 명령 캐시 또는 명령 캐시 (I-캐시) 를 검사하는 프라임 프로브 공격 프로토콜을 이용할 수도 있다. 프라임 프로브 공격 프로토콜을 이용하는 공격자 (106) 는 더미 명령들 (즉, 모방 명령들) 에 의해 I-캐시를 완전히 로딩할 수도 있다. 다음으로, 공격자 (106) 는 피해자 (108) 가 I-캐시를 사용하여 몇 개의 명령을 실행하는 것을 허용할 수도 있다. 이어서 공격자는 더미 명령들에 의해 I-캐시를 계속 로딩한다. I-캐시를 계속 로딩하는 동안, 공격자 (106) 는 각각의 더미 명령을 I-캐시로 로딩하는데 걸리는 시간을 측정할 수도 있다. 공격자 (106) 는 판독 타임 스탬프 카운터 (rdtsc) 명령을 사용하여 I-캐시를 로드하는데 걸리는 시간을 측정할 수도 있다. rdtsc 명령은 타임 스탬프 카운터 (TSC) 를 판독할 수도 있다. TSC는 리셋 이후의 클록 사이클의 총 수를 카운트하는 프로세서의 카운터 (예를 들어, 64 비트) 이다. rdtsc 명령의 실행 전후의 리턴 값의 변화는 명령 소비의 시간을 결정할 수도 있다. 공격자 (106) 가 이전에 축출된 캐시 위치에 로딩하는 경우, 명령 소비의 시간은 큰 값일 수도 있다. 공격자 (106) 는, 캐시 위치가 피해자 (108) 에 의해 실행된 명령을 위해 사용되었다는 것을 인식할 수도 있다.
캐시 위치와 시스템 메모리 위치 사이의 직접적인 관계가 식별되지 않을 수도 있다. 그러나, 캐시가 설정 연관성이 있다. 즉, 실행된 애플리케이션과 연관된 명령들의 캐시 내의 위치는, 실행된 애플리케이션과 연관된 시스템 메모리 내의 위치의 서브세트에만 대응할 수도 있다. 따라서, 사용되는 캐쉬 위치를 모니터링하는 것은 공격자 (106) 가 피해자 (108) 의 실행 경로를 결정할 수 있게 할 수도 있다.
다수의 VM 환경에서, 공격자 (106) 는 사이드 채널 공격을 실행하기 위해 관찰 입상도 (observation granularity), 관찰 잡음 및 vCPU 이동을 이용할 수도 있다. 관찰 입상도는 공격자 (106) 에 의해 관찰 기간을 압축할 수도 있다. 예시적인 시나리오에서, vmKernel은 피해자 (108) 가 소정의 시구간 동안 명령들을 실행하는 것을 허용할 수도 있다. 몇몇 예들에서, 피해자 (108) 에 의해 실행된 명령들의 수는 비교적 큰 수일 수도 있으며, 그것은 공격자 (106) 에 의한 명령들의 분석을 방해할 수도 있다. 예를 들어, 초당 30 억개의 명령들을 실행하는 동안 프로세스가 30 밀리초 동안 인터럽트없이 실행된다면, 대략 총 9000 만 명령들이 실행될 수도 있다. 이것은, 명령 캐시가 다수회 오버라이팅된다는 것을 암시하는 명령 캐시보다 훨씬 더 클 수도 있어, 공격자에 의한 분석을 방지한다. 공격자 (106) 는 피해자 (108) 에 의한 명령들의 실행을 인터럽트하여 관찰 입상도를 더 낮출 수도 있다. 공격자 (106) 는 IPI들을 이용하여 피해자 (108) 에 의한 명령들의 실행을 인터럽트할 수도 있다. 공격자 (106) 는 또한 공모자 (104) 와 같은 제 2 공격자 프로세스를 이용할 수도 있다. 제 2 공격자 프로세스의 일례는, IPI들을 공격자 (106) 에게 이슈하는 반복을 수행하도록 구성된 공모자 (104) 를 포함할 수도 있다. 반복은 vmKernel를 프롬프트하여, 공격자가 IPI를 관리하고 피해자 (108) 에 의한 실행을 방지하도록 부추길 수도 있다. 피해자 (108) 의 실행 시간은, 공격자 (106) 가 피해자 (108) 에 의해 실행된 애플리케이션을 인터럽트하여 IPI를 관리할 수도 있기 때문에 단축될 수도 있다. 피해자 (108) 의 단축된 실행 시간은, 공격자 (106) 가 피해자 (108) 의 실행된 애플리케이션의 실행 경로를 추적하는 것을 허용할 수도 있다.
관찰 잡음은 피해자 (108) 의 명령들의 수동 분석과 연관된 잡음을 압축할 수도 있다. 예시적인 시나리오에서, 공격자 (106) 는, 피해자 (108) 의 명령들의 분석을 억제하는 관찰 잡음을 포함하도록 피해자 (108) 에 의한 실행의 측정 시간을 결정할 수도 있다. 공격자 (106) 는, 예를 들어 관찰 잡음을 극복하기 위해 은닉 마르코프 모델 (HMM; hidden Markov model) 을 기반으로 한 서포트 벡터 머신 (SVM; support vector machine) 을 포함하는 기계 학습 알고리즘을 사용할 수도 있다. 공격자 (106) 는 기계 학습 알고리즘을 이용하여 소수의 오류를 갖는 실행된 동작들을 추론할 수도 있다.
vCPU 이동은 물리적 리소스 공유를 압축할 수도 있다. 예시적인 시나리오에서, 공격자는 피해자 (108) 와 pCPU 1 (120) 을 공유할 수도 있다. 대안으로, 공격자 (106) 는 pCPU 1 (120) 을 공유하지 않을 수도 있다. 공격자 (106) 는, 피해자 (108) 와 연관된 시간 측정을 결정하기 위해 SVM 및 HMM을 포함하는 기계 학습 알고리즘을 이용하여 피해자 (108) 와 연관된 코드 프레그먼트 시퀀스들을 집계할 수도 있다.
도 2는, 본원에 기재된 적어도 몇몇 실시형태들에 따라 배열된, 가상 머신들 사이의 사이드 채널 공격의 일례를 도시한다.
다이어그램 (200) 에 도시된 바와 같이, vmKernel은 시간 (202) 에 걸쳐 pCPU 1 (204) 및 pCPU 2 (206) 에서 VMM들의 vCPU들 (208) 에 의해 명령들을 실행하기 위해서 시분할 방식을 이용할 수도 있다. 방관자는 처음에 pCPU 1 (204) 에서 동작들을 실행할 수도 있다. 방관자가 pCPU 1 (204) 에서 명령들을 실행하는 시구간 동안, 공격자와 피해자는 pCPU 2 (206) 에서 명령을 실행할 수도 있다. 공격자는, 방관자가 pCPU 1 (204) 에서 명령을 실행하는 시구간 동안 명령들의 피해자의 실행을 인터럽트하지 못할 수도 있다. 다음, 공모자는 피해자에 의한 실행을 인터럽트함으로써 피해자의 실행된 명령들을 공격자가 모니터링하는 것을 허용할 수도 있다. pCPU 2 (206) 에서 인터럽트된 실행 기간은, 피해자와 공유된 pCPU 2 (206) 의 캐시의 명령들의 모니터링을 통해, 피해자에 의한 명령들의 실행 경로를 공격자가 모니터링하는 것을 허용할 수도 있다.
공모자는, 프로세서간 인터럽트 (210) 를 송신하여 공격자가 pCPU 2 (206) 에서 명령을 실행할 수 있게 하고 피해자에 의해 명령들의 실행을 인터럽트할 수 있게 함으로써, 공격자를 도울 수도 있다. 타이밍 공격 (212) 과 같은 기간 동안, 공모자는 pCPU 2 (206) 에서 피해자에 의해 명령들의 실행을 인터럽트하기 위해서 공격자에게 다수의 IPI들을 전송할 수도 있다. 공격자는, 반복 과정으로 피해자에 의해 실행되는 명령들을 모니터링하기 위해 주요 프로브 공격을 수행하도록 허용될 수도 있다. 반복 과정은, 공모자가 pCPU 1 (204) 에서 방관자로 대체될 때까지 계속될 수도 있다. 타이밍 공격 (212) 기간 동안, 공격자는 피해자와 공유된 pCPU 2 (206) 의 캐시를 분석하기 위한 타이밍 데이터를 기록할 수도 있다.
도 3은, 본원에 기재된 적어도 몇몇 실시형태들에 따라 배열된, 가상 머신들 사이의 사이드 채널 공격의 다른 예를 도시한다.
다이어그램 (300) 은 사이드 채널 공격의 컴포넌트들을 나타낸다. 3개의 vCPU들은 VM들을 호스팅하는 데이터센터에서의 사이드 채널 공격에 관여될 수도 있다. 공격자 1 (304) 은 IPI들 (312) 을 pCPU 2 (308) 에 발행할 수도 있다. 공격자 1 (304) 은 공모자일 수도 있다. 공격자 2 (306) 는 pCPU 2 (308) 로 rdtsc 명령들을 실행할 수도 있다. 다음, 공격자 2 (306) 는 pCPU 2 (308) 에서 명령들을 실행하기 위해서 피해자 (310) 와 자리를 바꾸도록 허용될 수도 있다. 공격자 2 (306) 는, 공격자 1 (304) 에 의해 이슈된 IPI들의 결과로서 인터럽션 기간 동안 캐시에 저장된 피해자 (310) 에 의해 실행된 명령들을 결정하기 위해서 pCPU 2 (308) 의 캐시를 모니터링할 수도 있다. 피해자 (310) 는, 피해자 (310) 에 의한 명령들의 실행을 인터럽트하는 IPI들 (312) 때문에 L1 캐시 또는 I-캐시 미스들을 가질 수도 있다.
상술한 바와 같이, 각 동작은 데이터센터에서 정상 작동하는 동안 별도로 발생할 수도 있다. 하지만, 함께 발생하는 동작은 사이드 채널 공격의 표시자일 수도 있다. 사이드 채널 공격의 방지는, 다수의 vCPU들 사이에서 일반적으로 사용되는 메트릭들을 크로스 VM 타이밍 공격을 시그널링하는 스폿 거동과 상관시키는 검출기에 의해 달성될 수도 있다.
도 4는, 본원에 기재된 적어도 몇몇 실시형태들에 따라 배열된, 가상 머신들 사이의 사이드 채널 공격의 식별하기 위해 검출기를 동작시키는 예시적인 흐름도를 나타낸다.
다이어그램 (400) 에 도시된 바와 같이, 사이드 채널 공격의 검출은 다수의 동작을 수반할 수도 있다. 검출기는, 동작 (402)(모니터들로부터 메트릭들을 분석) 에서 vmKernel을 통해 pCPU들에서 명령들을 실행하는 vCPU들을 모니터링하는 모니터들로부터 메트릭들을 분석할 수도 있다. 메트릭들은 IPI 레이트, TSC 레이트, 및 CMR을 포함할 수도 있다. vCPU_m (즉, 제 1 VM) 의 IPI 레이트는 동작 (404)(Vcpu_m의 IPI 레이트가 IPI 레이트 임계치를 초과하는가?) 에서 소정의 IPI 레이트 임계치와 비교될 수도 있다. IPI 레이트 임계치는 vmKernel, pCPU, vCPU, VM, 또는 VMM 과 연관된 다수의 파라미터들에 기초하여 조정가능한 동적 시스템 설정에 의해 결정될 수도 있다. 대안으로, IPI 레이트 임계치는 데이터센터와 같은 외부 또는 내부 소스에 의해 수동으로 설정될 수도 있다. vCPU_m의 IPI 레이트가 IPI 레이트 임계치를 초과한다는 결정에 응답하여, vCPU_m은 동작 (406)(vCPU_m 을 공모자로 라벨링) 에서 공모자로 라벨링될 수도 있다. vCPU_m은 공격자 페어의 일부일 수도 있다.
다음, vCPU_m으로부터 IPI들을 수신하는 vCPU_n (즉, 제 2 VM) 은 동작 (408)(IPI들을 수신하는 vCPU_n 공격자를 식별) 에서 공격자로서 식별될 수도 있다. vCPU_n은 vCPU_m에 의해 인터럽트될 수도 있다. vCPU_n은 공격자 페어의 다른 일부일 수도 있다. 인터럽트된 vCPU_n은 공동 실행자 vCPU_k (즉, 제 3 VM) 에 의해 사용되는 pCPU에서 실행하도록 허용될 수도 있다.
pCPU에서의 vCPU_n에 의한 RDTSC와 같은 명령들의 실행은 공동 실행자 vCPU_k에 의해 명령들의 실행을 인터럽트할 수도 있다. 공동 실행자 vCPU_k는 동작 (410)(vCPU_n 공격자의 공동 실행자 vCPU_k 피해자를 식별) 에서 피해자로 식별될 수도 있다.
vCPU_k의 CMR은 동작 (412) (vCPU_k의 CMR은 CMR 임계치를 초과하는가?) 에서 CMR 임계치와 비교될 수도 있다. CMR은 vCPU (또는 VM) 와 연관된 총 캐시 액세스로 제산된 캐시 미스의 수일 수도 있다. 캐시는 CMR이 제로에 근접하도록 설계될 수도 있다. 주요 프로브 공격은 1의 값에 가까운 CMR을 갖도록 vCPU_k를 강제할 수도 있다. 1의 값에 가까운 높은 CMR을 갖는 vCPU는 사이드 채널 공격을 결정하기 위해 더욱 검토될 수도 있다. CMR 임계치는 vmKernel, pCPU, vCPU, VM, 또는 VMM과 연관된 다수의 파라미터들에 기초하여 조정가능한 동적 시스템 설정에 의해 결정될 수도 있다. 대안으로, CMR 임계치는 데이터센터와 같은 외부 또는 내부 소스에 의해 수동으로 설정될 수도 있다. CMR이 CMR 임계치를 초과한다는 결정에 응답하여, 3개의 vCPU들에 기초한 사이드 채널 공격과 연관된 S_mnk 또는 의심값이 계산될 수도 있다.
S_mnk는 vCPU_m의 IPI 레이트, vCPU_n의 TSC 레이트, 및 vCPU_k의 CMR에 기초하여 계산될 수도 있다. 계산된 S_mnk는 동작 (414)(S_mnk는 S 임계치를 초과하는가?) 에서 의심값 임계치와 비교될 수도 있다. 의심값 임계치는 vmKernel, pCPU, vCPU, VM, 또는 VMM과 연관된 다수의 파라미터들에 기초하여 조정가능한 동적 시스템 설정에 의해 결정될 수도 있다. 대안으로, 의심값 임계치는 데이터센터와 같은 외부 또는 내부 소스에 의해 수동으로 설정될 수도 있다. 의심값 S_mnk가 의심값 임계치를 초과한다는 결정에 응답하여, 데이터센터 관리와 같은 시스템이 동작 (416)(시스템에 통지) 에서 vCPU_m, vCPU_n, 및 vCPU_k와 연관된 사이드 채널 공격을 통지받을 수도 있다.
몇몇 예들에서, S_mnk는 S_mnk =α * (vCPU_m의 IPI 레이트 / IPI 레이트 임계치) + β * (vCPU_n의 TSC 레이트 / TSC 레이트 임계치) + γ * (vCPU_k의 CMR / CMR 임계치) 의 식을 이용하여 계산될 수도 있다. 식은, 의심스러운 거동의 증가에 응답하여 S_mnk의 의심값을 경험적으로 증가시킬 수도 있다. 팩터들 α, β, 및 γ는, 실세계 거동에 대한 S_mnk를 계산하기 위해 데이터센터들이 식을 구성 또는 조절할 수 있게 하기 위해 포함될 수도 있다. α, β 및 γ 각각에 대한 디폴트 값은, 예를 들어 1.0 일 수도 있다.
S_mnk 값이 의심 임계치를 초과한다는 결정에 응답하여, vCPU_m 및 vCPU_n은 공격자들 (또는 공격자 페어) 로서 식별될 수도 있다. 다음, vCPU들을 공격자로 식별하는 이벤트가 데이터 저장소에 기록될 수도 있다. 이벤트는, IPI 레이트, TSC 레이트, CMR 및 vCPU_m, vCPU_n, 및 vCPU_k과 연관된 데이터를 이벤트로 클러스터링함으로써 생성될 수도 있다. 공격을 방지하기 위해, vCPU_n은 pCPU에서 단독 실행하도록 강제될 수도 있다. α, β, 및 γ에 부가하여, IPI 레이트 임계치, TSC 레이트 임계치, CMR 임계치, 및 의심 임계치가 일부 예에서 데이터센터에 의해 구성될 수도 있다.
몇몇 실시형태들에 따르면, L1 데이터 캐시의 CMR도 또한 L1 명령 캐시 (L1i) 의 CMR 대신에 모니터링될 수도 있다. L1 데이터 캐시에 대한 사이드 채널 공격들은 L1i에서와 유사할 가능성이 있을 수도 잇다. L2 및 L3 캐시의 사이드 채널 공격은, L2 및 L3 캐시의 증가된 사이즈, L2 및 L3 캐시에서의 혼합된 명령들, 및 L2 및 L3 캐시의 pCPU로부터 증가된 거리 때문에 가능성이 없을 수도 있다.
공모자 VM이 입력/출력 (I/O) 인터럽트들을 포함하는 대안의 인터럽트들을 사용하여 공격자 VM을 인터럽트하고 피해자 VM이 명령들의 실행을 중지하게 강제하기 때문에, 다른 인터럽트들도 또한 모니터링될 수 있다. 사이드 채널 공격을 검출하기 위해 인터럽트들을 모니터링 및 분석하는 검출기는 IPI들뿐만 아니라 다른 인터럽트들도 모니터링할 수 있다.
다른 실시형태들에 따르면, 공격자는 타임 이벤트에 rdtsc 이외의 명령을 사용할 수도 있다. 공격자가 타임 이벤트에 다른 명령을 사용할 수도 있는 예시적인 시나리오에서, 검출기는 사이드 채널 공격을 결정하기 위해 피해자와 연관된 CMR 및 공모자와 연관된 IPI 레이트를 모니터링할 수도 있다. CMR 임계치를 초과하는 CMR 및 IPI 레이트 임계치를 초과하는 IPI 레이트가 사이드 채널 공격을 나타낼 수도 있다.
도 5는, 본원에 기재된 적어도 몇몇 실시형태들에 따라 배열된, 가상 머신들 사이의 사이드 채널 공격을 검출하기 위해 사용되는 검출기의 일례를 나타낸다.
다이어그램 (500) 에 도시된 바와 같이, 방관자 vCPU 1은 VMM (502) 에 의해 관리될 수도 있고, 공모자 vCPU 2 및 공격자 vCPU 3은 VMM (504) 에 의해 관리될 수도 있고, 그리고 피해자 vCPU 4는 VMM (506) 에 의해 관리될 수도 있다. vmKernel (508) 은 vCPU들 1, 2, 3 및 4가 명령들을 실행할 수 있도록 리소스들을 할당할 수도 있다. vmKernel (508) 은 리소스들 pCPU 1 (512) 및 pCPU 2 (514) 를 관리할 수도 있다.
vmKernel (508) 은 VMM들 (502, 504, 및 506) 에서 모니터들로부터 송신된 메트릭들을 분석하는 검출기 (510) 를 호스팅할 수도 있다. 모니터들은 IPI 레이트, TSC 레이트 및 vCPU 1, vCPU 2, vCPU 3, 및 vCPU 4와 연관된 CMR을 포함하는 메트릭들을 모니터링할 수도 있다. 검출기는 vCPU 2, vCPU 3, 및 vCPU 4와 연관된 의심값을 결정하기 위해서 IPI 레이트, TSC 레이트 및 CMR을 분석할 수도 있다. 의심값은 vCPU 2 및 vCPU 3을 공격자 페어로 식별하기 위해서 의심값 임계치와 비교될 수도 있다.
도 6은, 본원에 기재된 적어도 몇몇 실시형태들에 따라 배열된, 가상 머신들 사이의 사이드 채널 공격을 식별하기 위한 검출기를 동작시키기 사용될 수도 있는 범용 컴퓨팅 디바이스를 나타낸다. 도 6의 컴퓨팅 디바이스 (600) 는 데이터센터에 의해 실행된 vmKernel (508), 또는 도 1, 2, 3, 4, 및 5에 도시되지 않은 몇몇 다른 디바이스 중 하나 이상일 수도 있다. 구성 (602) 에서, 컴퓨팅 디바이스 (600) 는 일반적으로 하나 이상의 프로세서들 (604) 및 시스템 메모리 (606) 를 포함한다. 메모리 버스 (608) 는 프로세서 (604) 와 시스템 메모리 (606) 사이에서 통신하기 위해 사용될 수도 있다.
특정 구성에 따라, 프로세서 (604) 는, 마이크로프로세서 (μP), 마이크로컨트롤러 (μC), 디지털 신호 프로세서 (DSP), 또는 이들의 임의의 조합을 포함하는 임의의 형태를 취할 수도 있지만, 이들에 제한되는 것은 아니다. 프로세서 (604) 는 레벨 캐시 메모리 (612) 와 같은 하나 이상의 레벨들의 캐시, 프로세서 코어 (614), 및 레지스터(616) 를 포함할 수도 있다. 예시적인 프로세서 코어 (614) 는 산술 로직 유닛 (ALU), 부동소수점 유닛 (FPU), 디지털 신호 프로세싱 코어 (DSP Core), 또는 이들의 임의의 조합을 포함할 수도 있다. 예시적인 메모리 컨트롤러 (618) 는 또한 프로세서 (604) 와 함께 사용될 수도 있고, 또는 몇몇 구현예들에서 메모리 컨트롤러 (618) 는 프로세서 (604) 의 내부 부분일 수도 있다.
특정 구성에 따라, 시스템 메모리 (606) 는 휘발성 메모리 (예컨데, RAM), 비휘발성 메모리 (예컨데, ROM, 플래시 메모리 등) 또는 이들의 임의의 조합을 포함하는 임의의 형태를 취할 수도 있는데, 이들에 제한되는 것은 아니다. 시스템 메모리 (606) 는 운영 시스템 (620), 하나 이상의 애플리케이션들 (622), 및 프로그램 데이터 (624) 를 포함할 수도 있다. 검출기 애플리케이션 (622) 은, VM들 (또는 vCPU들) 간의 사이드 채널 공격을 검출하기 위해 배열되는, 사이드 채널 모듈 (626) 을 포함할 수도 있다. 프로그램 데이터 (624) 는, 적어도 도 1, 2, 3, 4 및 5와 연계하여 상기에서 논의된, 메트릭스 데이터 (628) 및 유사 데이터 중 하나 이상을 포함할 수도 있다. 이 데이터는, 본원에 설명된 바와 같이, VM들 간의 사이드 채널 공격을 검출하는데 유용할 수도 있다. 이러한 설명된 기본 구성 (602) 은, 내부 점선 내의 이들 컴포넌트들에 의해 6에 도시된다.
컴퓨팅 디바이스 (600) 는 부가적인 특징 또는 기능, 및 기본 구성 (602) 및 임의의 필요한 디바이스들 및 인터페이스들 간의 통신들을 용이하게 하기 위한 부가적인 인터페이스들을 구비할 수도 있다. 예를 들면, 버스/인터페이스 컨트롤러 (630) 는 기본 구성 (602) 및 하나 이상의 데이터 스토리지 디바이스들 (632) 간의 스토리지 인터페이스 버스 (634) 를 통한 통신들을 용이하게 하기 위해 사용될 수도 있다. 데이터 스토리지 디바이스들 (632) 은 제거 가능한 스토리지 디바이스들 (636), 제거 불가능한 스토리지 디바이스들 (638), 또는 이들의 조합일 수도 있다. 제거 가능한 스토리지 및 제거 불가능한 스토리지 디바이스들의 예들은, 몇몇을 거론하자면, 플렉시블 디스크 드라이브들 및 하드 디스크 드라이브들 (HDD) 과 같은 자기 디스크 디바이스들, 컴팩트 디스크 (CD) 드라이브들 또는 디지털 다기능 디스크 (DVD) 드라이브들과 같은 광학 디스크 드라이브들, 솔리드 스테이트 드라이브들 (SSD), 및 테이프 드라이브들을 포함한다. 예시적인 컴퓨터 저장 매체는, 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터와 같이, 정보 저장을 위한 임의의 방법 또는 기술에 의해 구현되는 휘발성 및 불휘발성, 제거 가능 및 제거 불가능 매체를 포함할 수도 있다.
시스템 메모리 (606), 제거 가능한 스토리지 디바이스들 (636) 및 제거 불가능한 스토리지 디바이스들 (638) 은 컴퓨터 저장 매체의 예들이다. 컴퓨터 저장 매체는, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크들 (DVD들) 또는 다른 광학 스토리지, 자기 카세트들, 자기 테이프, 자기 디스크 스토리 또는 다른 자기 스토리지 디바이스들, 또는 소망의 정보를 저장하기 위해 사용될 수도 있고 컴퓨팅 디바이스 (600) 에 의해 액세스될 수도 있는 임의의 다른 매체를 포함하지만, 이들에 제한되는 것은 아니다. 임의의 이러한 컴퓨터 저장 매체는 컴퓨팅 디바이스 (600) 의 일부일 수도 있다.
컴퓨팅 디바이스 (600) 는 또한 여러 인터페이스 디바이스들 (예를 들면, 출력 디바이스들 (642), 주변 인터페이스들 (644), 및 통신 디바이스들 (666) 로부터 기본 구성 (602) 으로의 버스/인터페이스 컨트롤러 (630) 를 통한 통신을 용이하게 하기 위한 인터페이스 버스 (640) 를 포함할 수도 있다. 예시적인 출력 디바이스들 (642) 은 그래픽 프로세싱 유닛 (648), 및 오디오 프로세싱 유닛 (650) 을 포함하며, 이들은 하나 이상의 A/V 포트들 (652) 을 통해 디스플레이 또는 스피커들과 같은 여러 외부 디바이스들과 통신하도록 구성될 수도 있다. 예시적인 주변 인터페이스들 (644) 은 직렬 인터페이스 컨트롤러 (654) 또는 병렬 인터페이스 컨트롤러 (656) 를 포함하며, 이들은 입력 디바이스들 (예를 들면, 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스 등) 과 같은 외부 디바이스들과 하나 이상의 I/O 포트들 (658) 을 통해 통신하도록 구성될 수도 있다. 예시적인 통신 디바이스 (666) 는 네트워크 컨트롤러 (660) 를 포함하며, 이것은 하나 이상의 통신 포트들 (664) 을 통한 네트워크 통신 링크를 통해 하나 이상의 다른 컴퓨팅 디바이스들 (662) 과의 통신을 용이하게 하도록 배열될 수도 있다.
네트워크 통신 링크는 통신 매체의 일례일 수도 있다. 통신 매체는 일반적으로 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호의 다른 데이터에 의해 구체화될 수도 있고, 임의의 정보 전송 매체를 포함할 수도 있다. "변조된 데이터 신호"는 하나 이상의 특성들 세트를 구비하거나 또는 신호에 정보를 인코딩하도록 변경된 신호일 수도 있다. 예로서, 통신 매체는 유선 네트워크 또는 직결 접속과 같은 유선 매체, 및 음향, 라디오 주파수 (RF), 마이크로파, 적외선 (IR) 과 같은 무선 매체 및 다른 무선 매체를 포함할 수도 있으며, 이들로 제한되는 것은 아니다. 본원에서 사용된 컴퓨터 판독가능 매체는 스토리지 매체 및 통신 매체 양자를 포함할 수도 있다.
컴퓨팅 디바이스 (600) 는, 상기 기능들 중 임의의 기능을 포함하는, 물리적 서버, 가상 서버, 컴퓨팅 클라우드, 또는 하이브리드 디바이스의 부분으로서 구현될 수도 있다. 컴퓨팅 디바이스 (600) 는 또한 랩탑 컴퓨터 및 비랩탑 컴퓨터 구성들 양자를 포함하는 퍼스널 컴퓨터로서 구현될 수도 있다. 또한, 컴퓨팅 디바이스 (600) 는 범용 또는 특수 서버의 일부로서 또는 네트워크화된 시스템으로서 구현될 수도 있다.
컴퓨팅 디바이스 (600) 를 포함하는 네트워크화된 시스템을 위한 네트워크들은 서버, 클라이언트, 스위치, 라우터, 모뎀, 인터넷 서비스 제공자, 및 임의의 적절한 통신 매체 (예를 들어, 유전 또는 무선 통신들) 중 임의의 토폴로지를 포함할 수도 있다. 실시형태에 따른 시스템은 정적 또는 동적 네트워크 토폴로지를 가질 수도 있다. 네트워크들은 엔터프라이즈 네트워크와 같은 보안 네트워크 (예를 들어, LAN, WAN, 또는 WLAN), 무선 오픈 네트워크와 같은 비보안 네트워크 (예를 들어, IEEE 802.11 무선 네트워크), 또는 월드 와이드 네트워크 (예를 들어, 인터넷) 를 포함할 수도 있다. 네트워크들은 또한, 함께 작동하도록 구성되는 복수의 별개 네트워크를 포함할 수도 있다. 그러한 네트워크들은 본원에 기재된 노드들 간에 통신을 제공하도록 구성된다. 예로서, 한정되지는 않지만, 이들 네트워크들은 음향, RF, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함할 수도 있다. 또한, 네트워크들은 동일한 네트워크 또는 별도의 네트워크들의 부분일 수도 있다.
도 7은, 본원에 기재된 적어도 몇몇 실시형태들에 따라 배열된, 도 6에서의 컴퓨팅 디바이스 (600) 와 같은, 컴퓨팅 디바이스 (710) 에 의해 수행될 수도 있는 가상 머신들 사이의 사이드 채널 공격의 식별하기 위해 검출기를 동작시키는 예시적인 방법을 나타낸 흐름도이다.
컴퓨팅 디바이스 (710) 는 컴퓨팅 디바이스 (600), 또는 방법을 수행하기 위한 비일시적 컴퓨터 판독가능 매체 (720) 에 저장된 명령들을 실행하는 유사 디바이스들로 구현될 수도 있다. 가상 머신들 간의 사이드 채널 공격을 식별하기 위한 검출기를 동작시키기 위한 프로세스는, 하나 이상의 블록들 (722, 724, 726 및/또는 728) 에 의해 도시된 바와 같이 하나 이상의 동작, 기능 또는 액션을 포함할 수도 있다.
일부 예시적인 프로세스는 동작 (722), "제 1 가상 머신 (VM) 의 프로세서간 인터럽트 (IPI) 레이트를 모니터링"으로 시작할 수도 있다. 동작 (722) 에서, 컴퓨팅 디바이스 (600) 는 소정의 IPI 레이트 임계치를 초과하는 IPI 레이트를 갖는 VM을 공모자 (104) 로서 식별할 수도 있다.
동작 (722) 은, 동작 (724), "제 2 VM의 타임 스탬프 카운터 (TSC) 레이트를 모니터링"으로 이어질 수도 있다. 동작 (724) 에서, 컴퓨팅 디바이스 (600) 는 소정의 TSC 레이트 임계치를 초과하는 TSC 레이트를 갖는 VM을 공격자 (106) 로서 식별할 수도 있다.
동작 (724) 은, 동작 (726), "제 3 VM의 캐시 미스 비율 (CMR) 을 모니터링"으로 이어질 수도 있다. 동작 (726) 에서, 컴퓨팅 디바이스 (600) 는 소정의 CMR 레이트 임계치를 초과하는 CMR을 갖는 VM을 피해자 (108) 로서 식별할 수도 있다.
도 8은, 본원에 기재된 적어도 몇몇 실시형태들에 따라 배열된, 가상 머신들 사이의 사이드 채널 공격을 식별하기 위해 검출기를 동작시키기 위한 예시적인 컴퓨터 프로그램 제품의 블록도를 나타낸다.
도 8에 도시된 몇몇 예들에서, 컴퓨터 프로그램 제품 (800) 은, 예를 들어, 프로세서에 의한 실행에 응답하여 도 1 내지 7과 관련하여 상술된 기능성을 제공할 수도 있는, 기계 판독가능 명령들 (804) 을 포함할 수도 있는 신호 베어링 매체 (802) 를 포함할 수도 있다. 이로써, 예를 들어, 컴퓨팅 디바이스 (600) 와 관련하여, 가상 머신들 간의 사이드 채널 공격을 식별하기 위한 검출기와 연관된 액션들을 수행하기 위해 매체 (802) 에 의해 컴퓨팅 디바이스 (600) 로 전달되는 명령들 (804) 에 응답하여, 도 8에 도시된 하나 이상의 작업들이 착수될 수도 있다. 이들 명령들의 몇몇은 제 1 가상 머신 (VM) 의 프로세서간 인터럽트 (IPI) 레이트를 모니터링하는 것, 제 2 VM의 타임 스탬프 카운터 (TSC) 레이트를 모니터링하는 것, 제 3 VM의 캐시 미스 비율 (CMR) 를 모니터링하는 것, 및 IPI 레이트, TSC 레이트 및 CMR에 기초하여 사이드 채널 공격을 검출하는 것을 포함할 수도 있다.
몇몇 구현예들에서, 도 8에 도시된 신호 베어링 매체 (802) 는 하드 디스크 드라이브, CD (Compact Disk), DVD (Digital Versatile Disk), 디지털 테이프, 메모리 등과 같은 비일시적 컴퓨터 판독 가능 매체 (806) 를 포함할 수도 있으나, 이에 제한되지는 않는다. 일부 구현예에서, 신호 베어링 매체 (802) 는 메모리, 판독/기록 (R/W) CD들, R/W DVD들 등과 같은 기록가능 매체 (808) 를 포함할 수도 있으나, 이에 제한되지는 않는다. 일부 구현예에서, 신호 베어링 매체 (802) 는 디지털 및/또는 아날로그 통신 매체 (예컨대, 광섬유 케이블, 도파관 (waveguide), 유선 통신 링크, 무선 통신 링크 등) 와 같은 통신 매체 (810) 를 포함할 수 있으나, 이에 제한되지는 않는다. 따라서, 예를 들어, 프로그램 제품 (800) 은, 신호 베어링 매체 (802) 가 무선 통신 매체 (810)(예컨대, IEEE 802.11 표준에 따르는 무선 통신 매체) 에 의해 전달되는, RF 신호 베어링 매체 (802) 에 의하여 프로세서 (804) 로 전달될 수도 있다.
몇몇 예에 따르면, 가상 머신들 간의 사이드 채널 공격을 식별하는 방법이 제공된다. 방법은, 제 1 가상 머신 (VM) 의 프로세서간 인터럽트 (IPI) 레이트를 모니터링하는 것, 제 2 VM의 타임 스탬프 카운터 (TSC) 레이트를 모니터링하는 것, 제 3 VM의 캐시 미스 비율 (CMR) 를 모니터링하는 것, 및 IPI 레이트, TSC 레이트 및 CMR에 기초하여 사이드 채널 공격을 검출하는 것을 포함할 수도 있다.
다른 예들에 따르면, 사이드 채널 공격을 검출하는 것은 소정의 IPI 레이트 임계치를 초과하는 IPI 레이트를 검출하고, 제 1 VM을 공모자 후보와 방관자 후보의 세트로부터의 적어도 하나로 라벨링하는 것을 포함할 수도 있다. 사이드 채널을 검출하는 것은 또한 소정의 TSC 레이트 임계치를 초과하는 TSC 레이트를 검출하고, 제 2 VM을 공격자 후보로 라벨링하는 것을 포함할 수도 있다. 사이드 채널을 검출하는 것은 소정의 CMR 임계치를 초과하는 CMR을 검출하고, 제 3 VM을 피해자 후보로 라벨링하는 것을 더 포함할 수도 있다.
다른 예들에 따르면, 방법은 제 1 VM에 의해 전송되고, 제 2 VM에 의해 수신되는 하나 이상의 IPI를 검출하는 것, 및 제 2 VM이 제 1 VM에 의해 인터럽트되도록 결정하는 것을 더 포함할 수도 있다. CMR은 제 3 VM에 의해 액세스된 총 캐시의 제 2의 수로 제산된 캐시 미스의 제 1 의 수를 통해 결정될 수도 있다. 사이드 채널 공격과 연관된 의심값은: IPI 레이트의 몫과 소정의 IPI 레이트 임계치에 기초하여 제 1 값을 결정하고, TSC 레이트의 몫과 소정의 TSC 레이트 임계치에 기초하여 제 2 값을 결정하고, CMR의 몫과 소정의 CMR 임계치에 기초하여 제 3 값을 결정하고, 그리고 제 1 값, 제 2 값 및 제 3 값을 가산하여 의심값을 계산하는 것에 의해 계산될 수도 있다. 의심값은 소정의 의심값 임계치를 초과하는 것으로 검출될 수도 있고, 그리고 제 1 VM 및 제 2 VM은 공격자 페어로 식별될 수도 있다. 하나 이상의 데이터센터 오퍼레이터는 소정의 IPI 레이트 임계치, 소정의 TSC 임계치, 소정의 CMR 임계치, 및 소정의 의심값 임계치의 세트로부터 하나 이상을 조절하도록 허용될 수도 있다.
몇몇 예들에 따라, 방법은 사이드 채널 공격을 결정하는 것에 응답하여 IPI 레이트, TSC 레이트, CMR 및 제 1 VM, 제 2 VM 및 제 3 VM과 연관된 데이터를 이벤트에 클러스터링하는 것, 및 그 이벤트를 데이터 스토어에 기록하는 것을 더 포함할 수도 있다. 하나 이상의 데이터센터 오퍼레이터는 사이드 채널 공격을 결정하는 것에 응답하여 통지될 수도 있다.
다른 예들에 따르면, 가상 머신들 간의 사이드 채널 공격을 검출하기 위해 컴퓨팅 디바이스가 제공될 수도 있다. 컴퓨팅 디바이스는 명령들을 저장하도록 구성된 메모리, 메모리에 커플링된 컨트롤러를 포함할 수도 있으며, 여기서 컨트롤러는 사이드 채널 공격 검출 모듈을 실행한다. 사이드 채널 공격 검출 모듈은, 제 1 가상 머신 (VM) 의 프로세서간 인터럽트 (IPI) 레이트를 모니터링하고, 소정의 IPI 레이트 임계치를 초과하는 IPI 레이트를 검출하고, 제 1 VM을 공모자 후보 및 방관자 후보의 일세트로부터의 적어도 하나로서 라벨링하고, 제 3 VM의 캐시 미스 비율 (CMR) 을 모니터링하고, 소정의 CMR 임계치를 초과하는 CMR을 검출하며, 그리고 제 3 VM을 피해자 후보로서 라벨링하도록 구성될 수도 있다.
몇몇 예들에 따르면, 사이드 채널 공격 검출 모듈은 제 2 VM의 타임 스템프 카운터 (TSC) 레이트를 모니터링하고, 그리고 IPI 레이트, TSC 레이트 및 CMR에 기초하여 사이드 채널 공격을 검출하도록 더욱 구성될 수도 있다. TSC 레이트는 소정의 TSC 레이트 임계치를 초과하는 것으로 검출될 수도 있고, 제 2 VM은 공격자 후보로 라벨링될 수도 있다. 제 1 VM에 의해 전송되고 제 2 VM에 의해 수신된 하나 이상의 IPI가 검출될 수도 있고, 제 2 VM은 제 1 VM에 의해 인터럽트되는 것으로 결정될 수도 있다. CMR은 제 3 VM에 의해 액세스된 총 캐시의 제 2 의 수로 제산된 캐시 미스들의 제 1 의 수를 통해 계산될 수도 있다.
다른 예들에 따르면, 사이드 채널 공격 검출 모듈은 또한, IPI 레이트의 몫과 소정의 IPI 레이트 임계치에 기초하여 제 1 값을 결정하고, 제 2 VM의 TSC 레이트의 몫과 소정의 TSC 레이트 임계치에 기초하여 제 2 값을 결정하고, CMR의 몫과 소정의 CMR 임계치에 기초하여 제 3 값을 결정하고, 그리고 의심값을 계산하기 위해 제 1 값, 제 2 값 및 제 3 값을 가산하는 동작을 통해 사이드 채널 공격과 연관된 의심값을 계산하도록 구성될 수도 있다.
다른 예들에 따르면, 사이드 채널 공격 검출 모듈은 또한, 제 1 VM, 제 2 VM, 및 제 3 VM에 대한 의심값을 계산하고, 소정의 의심값 임계치를 초과하는 의심값을 검출하며, 그리고 제 1 VM 및 제 2 VM을 공격자 페어로 식별하도록 구성될 수도 있다. IPI 레이트, TSC 레이트, CMR 및 제 1 VM, 제 2 VM, 및 제 3 VM과 연관된 데이터는 사이드 채널 공격 결정에 응답하여 이벤트로 클러스터링될 수도 있고, 그 이벤트는 데이터 스토어에 기록될 수도 있다. 하나 이상의 데이터센터 오퍼레이터들은 소정의 IPI 레이트 임계치, 소정의 TSC 임계치, 소정의 CMR 임계치, 및 소정의 의심값 임계치의 세트로부터의 하나 이상을 조절하도록 허용될 수도 있다. 하나 이상의 데이터센터 오퍼레이터들은 사이드 채널 공격을 결정하는 것에 응답하여 통지될 수도 있다.
다른 예들에 따르면, 컴퓨터 판독가능 매체는 가상 머신들 간의 사이드 채널 공격을 검출하기 위해 제공될 수도 있다. 명령들은 방법이 실행에 응답하여 수행될 수 있게 할 수도 있으며, 이 방법은 상술된 방법과 유사하다.
시스템 양상들의 하드웨어와 소프트웨어 구현 사이에는 구별이 거의 없다. 하드웨어 또는 소프트웨어의 사용은 일반적으로 (그러나 어떤 맥락에서 하드웨어 및 소프트웨어 사이의 선택이 중요하게 될 수 있다는 점에서 항상 그런 것은 아니지만) 비용 대비 효율의 트레이드오프를 나타내는 설계상 선택이다. 본원에 기재된된 프로세스 및/또는 시스템 및/또는 다른 기술들이 영향 받을 수 있는 다양한 수단 (vehicles)(예를 들어, 하드웨어, 소프트웨어 및/또는 펌웨어) 이 있으며, 선호되는 수단은 프로세스 및/또는 시스템 및/또는 다른 기술이 사용되는 맥락에 따라 변경될 것이다. 예를 들어, 만약 구현자가 속도 및 정확도가 중요하다고 결정하면, 구현자는 주로 하드웨어 및/또는 펌웨어 수단을 선택할 수 있고, 만약 유연성이 중요하다면, 구현자는 주로 소프트웨어 구현을 선택할 수 있으며, 또는, 또 다른 대안으로서, 구현자는 하드웨어, 소프트웨어, 및/또는 펌웨어 중 일부 조합을 선택할 수 있다.
전술한 상세한 설명은 블록도, 흐름도, 및/또는 예시의 사용을 통해 장치 및/또는 프로세스의 다양한 실시예를 설명하였다. 그러한 블록도, 흐름도, 및/또는 예시가 하나 이상의 기능 및/또는 동작을 포함하는 한, 당업자라면 그러한 블록도, 흐름도, 또는 예시 내의 각각의 기능 및/또는 동작은 하드웨어, 소프트웨어, 펌웨어, 또는 실질적으로 그들 임의의 조합의 넓은 범위에 의해 개별적으로 및/또는 집합적으로 구현될 수 있다는 것이 이해될 것이다. 일 실시예에서, 본원에 기재된 청구물의 몇몇 부분은 ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array), DSP (Digital Signal Processor) 또는 다른 집적의 형태를 통해 구현될 수 있다. 그러나, 당업자라면, 본원에 기재된 실시예의 일부 양상이, 하나 이상의 컴퓨터 상에 실행되는 하나 이상의 컴퓨터 프로그램 (예를 들어, 하나 이상의 컴퓨터 시스템 상에 실행되는 하나 이상의 프로그램), 하나 이상의 프로세서 상에서 실행되는 하나 이상의 프로그램 (예를 들어, 하나 이상의 마이크로프로세서 상에서 실행되는 하나 이상의 프로그램), 펌웨어 또는 실질적으로 그들의 조합으로서, 전체적으로 또는 부분적으로 균등하게 집적 회로에 구현될 수 있다는 알 수 있으며, 소프트웨어 및/또는 펌웨어를 위한 코드의 작성 및/또는 회로의 설계는 본 개시물에 비추어 당업자에게 자명할 것이다.
본 개시물은 다양한 태양의 예시로서 의도된 본 출원에 기술된 특정 실시예들에 제한되지 않을 것이다. 당업자에게 명백할 바와 같이, 많은 수정과 변형이 그 사상과 범위를 벗어나지 않으면서 이루어질 수 있다. 여기에 열거된 것들에 더하여, 본 개시물의 범위 안에서 기능적으로 균등한 방법과 장치가 위의 설명으로부터 당업자에게 명백할 것이다. 그러한 수정과 변형은 첨부된 청구항의 범위에 들어가도록 의도된 것이다. 본 개시물은 첨부된 청구항의 용어에 의해서만, 그러한 청구항에 부여된 균등물의 전 범위와 함께, 제한될 것이다. 본 개시물은 물론 다양할 수 있는 특정 방법, 시스템, 또는 컴포넌트에 제한되지 않는 것으로 이해될 것이다. 또한, 본원에서 사용된 용어는 단지 특정 실시예들을 기술하기 위한 목적이고, 제한하는 것으로 의도되지 않음이 이해될 것이다.
또한, 당업자라면, 본원에 기재된 청구물의 메카니즘들이 다양한 형태의 프로그램 제품으로 분배될 수 있음을 이해할 것이며, 본원에 기재된 청구물의 예시는, 분배를 실제로 수행하는데 사용되는 신호 베어링 매체 (signal bearing medium) 의 특정 유형과 무관하게 적용됨을 이해할 것이다. 신호 베어링 매체의 예시는, 플로피 디스크, 하드 디스크 드라이브, CD (Compact Disc), DVD (Digital Versatile Disk), 디지털 테이프, 컴퓨터 메모리 등과 같은 판독가능 유형의 매체 및 디지털 및/또는 아날로그 통신 매체 (예를 들어, 섬유 광학 케이블, 웨이브가이드, 유선 통신 링크, 무선 통신 링크 등) 와 같은 전송 유형 매체를 포함할 수 있으나, 이에 제한되지는 않는다.
당업자라면, 본원에 기재된 형식으로 장치 및/또는 프로세스를 기술하고, 이후, 공학 실무를 사용하여 그러한 기술된 장치 및/또는 프로세스을 데이터 처리 시스템에 통합한다는 것이 당해 분야에서는 일반적이란 것을 인식할 것이다. 즉, 본원에 기재된 장치 및/또는 프로세스의 적어도 일부는 합당한 실험량을 통해 데이터 처리 시스템에 통합될 수 있다. 당업자라면, 전형적인 데이터 처리 시스템은 일반적으로 시스템 유닛 하우징, 비디오 디스플레이 장치, 휘발성 및 비휘발성 메모리 같은 메모리, 마이크로프로세서 및 디지털 신호 프로세서와 같은 프로세서, 운영 체제, 드라이버, 그래픽 사용자 인터페이스 및 애플리케이션 프로그램과 같은 컴퓨터 엔티티 (computational entities), 터치 패드 또는 스크린 같은 하나 이상의 상호작용 장치, 및/또는 피드백 루프를 포함하는 제어 시스템 중 하나 이상을 일반적으로 포함한다는 것을 인식할 것이다.
전형적인 데이터 처리 시스템은 데이터 컴퓨팅/통신 및/또는 네트워크 컴퓨팅/통신 시스템에서 전형적으로 발견되는 바와 같은 임의의 적절한 상업적으로 이용 가능한 컴포넌트를 이용하여 구현될 수 있다. 본원에 기재된 청구물은 때때로 상이한 다른 컴포넌트 내에 포함되거나 접속된 상이한 컴포넌트를 도시한다. 도시된 그러한 아키텍처는 단순히 예시적인 것이고, 사실상 동일한 기능을 달성하는 다른 많은 아키텍처가 구현될 수 있다는 것이 이해되어야 한다. 개념적으로, 동일한 기능을 달성하기 위한 컴포넌트의 임의의 배치는 특정 기능이 달성되도록 유효하게 "연관"된다. 이에 따라, 특정 기능을 달성하기 위해 여기서 결합된 임의의 두 개의 컴포넌트는, 아키텍처 또는 중간 컴포넌트와는 무관하게, 특정 기능이 달성되도록 서로 "연관"된 것으로 볼 수 있다. 마찬가지로, 연관된 임의의 두 개의 컴포넌트는 또한 특정 기능을 달성하기 위해 서로 "동작적으로 접속"되거나 또는 "동작적으로 연결"되는 것으로 간주될 수 있고, 그와 같이 연관될 수 있는 임의의 두 개의 컴포넌트는 또한 특정 기능을 달성하기 위해 서로 "동작적으로 연결가능"한 것으로 볼 수 있다. 동작적으로 연결가능하다는 것의 특정예는 물리적으로 양립가능 (mateable) 하고 및/또는 물리적으로 인터액팅하는 컴포넌트 및/또는 무선으로 인터액팅이 가능하고 및/또는 무선으로 인터액팅하는 컴포넌트 및/또는 논리적으로 인터액팅하고 및/또는 논리적으로 인터액팅이 가능한 컴포넌트를 포함하지만, 이에 한정되는 것은 아니다.
여기에서 실질적으로 임의의 복수 및/또는 단수의 용어의 사용에 대하여, 당업자는 맥락 및/또는 응용에 적절하도록, 복수를 단수로 및/또는 단수를 복수로 해석할 수 있다. 다양한 단수/복수의 치환은 명확성을 위해 여기에서 명시적으로 기재될 수 있다.
당업자라면, 일반적으로 본 개시물에 사용되며 특히 첨부된 청구범위 (예를 들어, 첨부된 청구범위) 에 사용된 용어들이 일반적으로 "개방적 (open)" 용어 (예를 들어, 용어 "포함하는"은 "포함하지만 이에 제한되지 않는"으로, 용어 "갖는"은 "적어도 갖는"으로, 용어 "포함하다"는 "포함하지만 이에 한정되지 않는" 등으로 해석되어야 함) 로 의도되었음을 이해할 것이다. 또한, 당업자라면, 도입된 청구항의 기재사항의 특정 수가 의도된 경우, 그러한 의도가 청구항에 명시적으로 기재될 것이며, 그러한 기재사항이 없는 경우, 그러한 의도가 없음을 또한 이해할 것이다. 예를 들어, 이해를 돕기 위해, 이하의 첨부 청구범위는 "적어도 하나" 및 "하나 이상" 등의 도입 구절의 사용을 포함하여 청구항 기재사항을 도입할 수 있다. 그러나, 그러한 구절의 사용이, 부정관사 "하나" ("a" 또는 "an") 에 의한 청구항 기재사항의 도입이, 그러한 하나의 기재사항을 포함하는 실시예들로, 그러한 도입된 청구항 기재사항을 포함하는 특정 청구항을 제한함을 암시하는 것으로 해석되어서는 안되며, 동일한 청구항이 도입 구절인 "하나 이상" 또는 "적어도 하나" 및 "하나" ("a" 또는 "an") 과 같은 부정관사 (예를 들어, "하나"는 "적어도 하나" 또는 "하나 이상"을 의미하는 것으로 해석되어야 함) 를 포함하는 경우에도 마찬가지로 해석되어야 한다. 이는 청구항 기재사항을 도입하기 위해 사용된 정관사의 경우에도 적용된다. 또한, 도입된 청구항 기재사항의 특정 수가 명시적으로 기재되는 경우에도, 당업자라면 그러한 기재가 적어도 기재된 수 (예를 들어, 다른 수식어가 없는 "두개의 기재사항"을 단순히 기재한 것은, 적어도 두 개의 기재사항 또는 두 개 이상의 기재사항을 의미함) 를 의미하도록 해석되어야 함을 이해할 것이다.
또한, "A, B 및 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다 (예를 들어, "A, B 및 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템 등을 포함하지만 이에 제한되지 않음). 또한 당업자라면, 실질적으로 임의의 이접 접속어 (disjunctive word) 및/또는 두 개 이상의 대안적인 용어들을 나타내는 구절은, 그것이 상세한 설명, 청구범위 또는 도면에 있는지와 상관없이, 그 용어들 중의 하나, 그 용어들 중의 어느 하나, 또는 그 용어들 두 개 모두를 포함하는 가능성을 고려했음을 이해할 것이다. 예를 들어, "A 또는 B"라는 구절은 "A" 또는 "B" 또는 "A 및 B"의 가능성을 포함하는 것으로 이해될 것이다.
당업자에게 이해될 것과 같이, 임의의 그리고 모든 목적에서든, 기술 내용을 제공하는 것 등에 있어서, 여기에 개시되어 있는 모든 범위는 임의의 그리고 모든 가능한 하위범위와 그러한 하위범위의 조합을 또한 포함한다. 임의의 열거된 범위는 적어도 1/2, 1/3, 1/4, 1/5, 1/10 등으로 나누어지는 동일한 범위를 충분히 설명하고 실시가능하게 하는 것으로서 쉽게 인식될 수 있다. 제한하지 않는 예시로서, 여기서 논의되는 각각의 범위는 하위 1/3, 중앙 1/3, 상위 1/3 등으로 나누어질 수 있다. 또한, "까지", "적어도", "보다 많은", "보다 적은" 등과 같은 언어는 기재된 수를 포함하며, 전술한 하위범위로 후속적으로 나누어질 수 있는 범위를 지칭함이 당업자에게 이해되어야 한다. 마지막으로, 범위는 각각의 개별 요소를 포함함이 이해되어야 한다. 따라서, 예를 들어, 1-3개의 셀을 갖는 그룹은 1, 2 또는 3개의 셀을 갖는 그룹들을 의미한다. 유사하게, 1-5개의 셀을 갖는 그룹은 1, 2, 3, 4 또는 5개의 셀을 갖는 그룹을 의미한다.
다양한 양상 및 실시예들이 여기에서 개시되었지만, 다른 양상 및 실시예들이 당업자에게 명확할 것이다. 본 개시물에 기재된 다양한 양상 및 실시예는 예시의 목적으로 제시된 것이고, 제한하려고 의도된 것이 아니며, 진정한 범위와 사상은 이하 청구범위에 의해 나타낸다.

Claims (39)

  1. 가상 머신들 간의 사이드 채널 공격을 검출하는 방법으로서,
    제 1 가상 머신 (VM) 의 프로세서간 인터럽트 (IPI) 레이트를 모니터링하는 것;
    제 2 VM의 타임 스탬프 카운터 (TSC) 레이트를 모니터링하는 것;
    제 3 VM의 캐시 미스 비율 (CMR) 을 모니터링하는 것;
    상기 IPI 레이트, 상기 TSC 레이트 및 상기 CMR에 기초하여 상기 사이드 채널 공격을 검출하는 것; 및
    상기 CMR이 CMR 임계치를 초과한다는 검출에 응답하여 상기 제 3 VM을 피해자 후보로 라벨링하는 것을 포함하고,
    상기 방법은, 상기 제 3 VM에 의해 액세스된 총 캐시의 제 2 의 수로 제산된 캐시 미스들의 제 1 의 수를 통해 상기 CMR을 결정하는 것을 더 포함하는, 가상 머신들 간의 사이드 채널 공격을 검출하는 방법.
  2. 제 1 항에 있어서,
    상기 사이드 채널 공격을 검출하는 것은:
    상기 IPI 레이트가 IPI 레이트 임계치를 초과하는 것을 검출하는 것; 및
    상기 제 1 VM을 공모자 후보 및 방관자 후보의 세트로부터의 적어도 하나로 라벨링하는 것을 포함하는, 가상 머신들 간의 사이드 채널 공격을 검출하는 방법.
  3. 제 1 항에 있어서,
    상기 사이드 채널 공격을 검출하는 것은:
    상기 TSC 레이트가 TSC 레이트 임계치를 초과하는 것을 검출하는 것; 및
    상기 제 2 VM을 공격자 후보로 라벨링하는 것을 포함하는, 가상 머신들 간의 사이드 채널 공격을 검출하는 방법.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 제 1 VM에 의해 전송되고 상기 제 2 VM에 의해 수신된 적어도 하나의 IPI를 검출하는 것; 및
    상기 제 2 VM이 상기 제 1 VM에 의해 인터럽트된다고 결정하는 것을 더 포함하는, 가상 머신들 간의 사이드 채널 공격을 검출하는 방법.
  6. 삭제
  7. 제 1 항에 있어서,
    상기 사이드 채널 공격과 연관된 의심값 (suspicion value) 을 계산하는 것을 더 포함하고,
    상기 의심값을 계산하는 것은:
    상기 IPI 레이트의 몫과 IPI 레이트 임계치에 기초하여 제 1 값을 결정하는 것;
    상기 TSC 레이트의 몫과 TSC 레이트 임계치에 기초하여 제 2 값을 결정하는 것;
    상기 CMR의 몫과 CMR 임계치에 기초하여 제 3 값을 결정하는 것:
    상기 제 1 값, 상기 제 2 값, 및 상기 제 3 값을 제 1 계수, 제 2 계수, 및 제 3 계수와 각각 승산하는 것; 및
    상기 제 1 값과 상기 제 1 계수의 곱, 상기 제 2 값과 상기 제 2 계수의 곱, 및 제 3 값과 상기 제 3 계수의 곱을 가산하여 상기 의심값을 계산하는 것에 의한 것인, 가상 머신들 간의 사이드 채널 공격을 검출하는 방법.
  8. 제 7 항에 있어서,
    의심값 임계치를 초과하는 상기 의심값을 검출하는 것; 및
    상기 제 1 VM 및 상기 제 2 VM을 공격자 페어로 식별하는 것을 더 포함하는, 가상 머신들 간의 사이드 채널 공격을 검출하는 방법.
  9. 삭제
  10. 제 1 항에 있어서,
    상기 사이드 채널 공격을 결정하는 것에 응답하여 상기 IPI 레이트, 상기 TSC 레이트, 상기 CMR, 및 상기 제 1 VM, 제 2 VM 및 제 3 VM과 연관된 데이터를 이벤트에 클러스터링하는 것; 및
    상기 이벤트를 데이터 스토어에 기록하는 것을 더 포함하는, 가상 머신들 간의 사이드 채널 공격을 검출하는 방법.
  11. 삭제
  12. 가상 머신들 간의 사이드 채널 공격을 검출하는 컴퓨팅 디바이스로서,
    상기 컴퓨팅 디바이스는:
    명령들을 저장하도록 구성된 메모리;
    상기 메모리에 커플링된 컨트롤러로서, 사이드 채널 공격 검출 모듈을 실행시키도록 구성되는, 상기 컨트롤러를 포함하고,
    상기 사이드 채널 공격 검출 모듈은:
    제 1 가상 머신 (VM) 의 프로세서간 인터럽트 (IPI) 레이트를 모니터링하고;
    제 2 VM의 타임 스탬프 카운터 (TSC) 레이트를 모니터링하고;
    IPI 레이트 임계치를 초과하는 상기 IPI 레이트를 검출하고;
    상기 제 1 VM을 공모자 후보 및 방관자 후보의 세트로부터의 적어도 하나로 라벨링하고;
    제 3 VM의 캐시 미스 비율 (CMR) 을 모니터링하고;
    상기 IPI 레이트, 상기 TSC 레이트 및 상기 CMR에 기초하여 상기 사이드 채널 공격을 검출하고;
    CMR 임계치를 초과하는 상기 CMR을 검출하며; 그리고
    상기 제 3 VM을 피해자 후보로 라벨링하도록 구성되고,
    상기 사이드 채널 공격 검출 모듈은 또한 상기 제 3 VM에 의해 액세스된 총 캐시의 제 2 의 수로 제산된 캐시 미스들의 제 1 의 수를 통해 상기 CMR을 계산하도록 구성되는, 가상 머신들 간의 사이드 채널 공격을 검출하는 컴퓨팅 디바이스.
  13. 삭제
  14. 제 12 항에 있어서,
    상기 사이드 채널 공격 검출 모듈은 또한:
    TSC 레이트 임계치를 초과하는 상기 TSC 레이트를 검출하고; 그리고
    상기 제 2 VM을 공격자 후보로 라벨링하도록 구성되는, 가상 머신들 간의 사이드 채널 공격을 검출하는 컴퓨팅 디바이스.
  15. 제 12 항에 있어서,
    상기 사이드 채널 공격 검출 모듈은 또한:
    상기 제 1 VM에 의해 전송되고 상기 제 2 VM에 의해 수신된 적어도 하나의 IPI를 검출하고; 그리고
    상기 제 2 VM을 상기 제 1 VM에 의해 인터럽트된 것으로 결정하도록 구성되는, 가상 머신들 간의 사이드 채널 공격을 검출하는 컴퓨팅 디바이스.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 제 12 항에 있어서,
    상기 사이드 채널 공격 검출 모듈은 또한:
    상기 사이드 채널 공격과 연관된 의심값을:
    상기 IPI 레이트의 몫과 IPI 레이트 임계치에 기초하여 제 1 값을 결정하고;
    상기 TSC 레이트의 몫과 TSC 레이트 임계치에 기초하여 제 2 값을 결정하고;
    상기 CMR의 몫과 CMR 임계치에 기초하여 제 3 값을 결정하고:
    상기 제 1 값, 상기 제 2 값, 및 상기 제 3 값을 제 1 계수, 제 2 계수, 및 제 3 계수와 각각 승산하며; 그리고
    상기 제 1 값과 상기 제 1 계수의 곱, 상기 제 2 값과 상기 제 2 계수의 곱, 및 상기 제 3 값과 상기 제 3 계수의 곱을 가산하여 상기 의심값을 계산하는
    동작을 통해 계산하도록 구성되는, 가상 머신들 간의 사이드 채널 공격을 검출하는 컴퓨팅 디바이스.
  33. 제 33 항에 있어서,
    상기 사이드 채널 공격 검출 모듈은 또한:
    상기 제 1 VM, 상기 제 2 VM, 및 상기 제 3 VM에 대한 상기 의심값을 계산하고;
    의심값 임계치를 초과하는 상기 의심값을 검출하며; 그리고
    상기 제 1 VM 및 상기 제 2 VM을 공격자 페어로 식별하도록 구성되는, 가상 머신들 간의 사이드 채널 공격을 검출하는 컴퓨팅 디바이스.
  34. 제 33 항에 있어서,
    상기 사이드 채널 공격 검출 모듈은 또한:
    상기 사이드 채널 공격의 결정에 응답하여 상기 IPI 레이트, 상기 TSC 레이트, 상기 CMR, 및 상기 제 1 VM, 상기 제 2 VM 및 상기 제 3 VM과 연관된 데이터를 이벤트에 클러스터링하고; 그리고
    상기 이벤트를 데이터 스토어에 기록하도록 구성되는, 가상 머신들 간의 사이드 채널 공격을 검출하는 컴퓨팅 디바이스.
  35. 가상 머신들 간의 사이드 채널 공격을 검출하기 위해 저장된 명령들을 갖는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은 실행에 응답하여 방법이 수행되도록 하며,
    상기 방법은:
    제 1 가상 머신 (VM) 의 프로세서간 인터럽트 (IPI) 레이트를 모니터링하는 것;
    IPI 레이트 임계치를 초과하는 상기 IPI 레이트를 검출하는 것;
    상기 제 1 VM을 공모자 후보 및 방관자 후보의 세트로부터의 적어도 하나로 라벨링하는 것;
    제 2 VM의 타임 스탬프 카운터 (TSC) 레이트를 모니터링하는 것;
    TSC 레이트 임계치를 초과하는 상기 TSC 레이트를 검출하는 것;
    상기 제 2 VM을 공격자 후보로 라벨링하는 것;
    제 3 VM의 캐시 미스 비율 (CMR) 을 모니터링하는 것;
    상기 IPI 레이트, 상기 TSC 레이트 및 상기 CMR에 기초하여 상기 사이드 채널 공격을 검출하는 것; 및
    상기 CMR이 CMR 임계치를 초과한다는 검출에 응답하여 상기 제 3 VM을 피해자 후보로 라벨링하는 것을 포함하고,
    상기 CMR은 상기 제 3 VM에 의해 액세스된 총 캐시의 제 2 의 수로 제산된 캐시 미스들의 제 1 의 수를 통해 상기 CMR을 계산되는, 컴퓨터 판독가능 저장 매체.
  36. 제 36 항에 있어서,
    적어도 하나의 IPI는 상기 제 1 VM에 의해 전송되고 상기 제 2 VM에 의해 수신된 것으로 검출되고, 상기 제 2 VM은 상기 제 1 VM에 의해 인터럽트된 것으로 결정되는, 컴퓨터 판독가능 저장 매체.
  37. 제 36 항에 있어서,
    상기 사이드 채널 공격과 연관된 의심값은,
    제 1 값, 제 2 값, 및 제 3 값을 제 1 계수, 제 2 계수, 및 제 3 계수와 각각 승산하고; 그리고
    상기 제 1 값과 상기 제 1 계수의 곱, 상기 제 2 값과 상기 제 2 계수의 곱, 및 상기 제 3 값과 상기 제 3 계수의 곱을 가산하는 것에 의해 계산되고,
    상기 제 1 값은 상기 IPI 레이트를 상기 IPI 레이트 임계치로 제산하여 결정되고, 상기 제 2 값은 상기 TSC 레이트를 상기 TSC 레이트 임계치로 제산하여 결정되고, 상기 제 3 값은 상기 CMR을 상기 CMR 임계치로 제산하여 결정되는, 컴퓨터 판독가능 저장 매체.
  38. 제 38 항에 있어서,
    상기 제 1 VM 및 상기 제 2 VM은, 상기 의심값이 의심값 임계치를 초과한다는 검출에 응답하여 공격자 페어로 식별되는, 컴퓨터 판독가능 저장 매체.
  39. 제 36 항에 있어서,
    상기 IPI 레이트, 상기 TSC 레이트, 상기 CMR, 및 상기 제 1 VM, 제 2 VM, 및 제 3 VM과 연관된 데이터는 상기 사이드 채널 공격의 결정에 응답하여 이벤트로 클러스터링되고, 상기 이벤트는 데이터 스토어에 기록되는, 컴퓨터 판독가능 저장 매체.
KR1020167011581A 2013-12-04 2013-12-04 가상 머신들 간의 사이드 채널 공격들의 검출 KR101807441B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/073140 WO2015084344A1 (en) 2013-12-04 2013-12-04 Detection of side channel attacks between virtual machines

Publications (2)

Publication Number Publication Date
KR20160072135A KR20160072135A (ko) 2016-06-22
KR101807441B1 true KR101807441B1 (ko) 2017-12-08

Family

ID=53273903

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167011581A KR101807441B1 (ko) 2013-12-04 2013-12-04 가상 머신들 간의 사이드 채널 공격들의 검출

Country Status (4)

Country Link
US (1) US9438624B2 (ko)
KR (1) KR101807441B1 (ko)
CN (1) CN105917345B (ko)
WO (1) WO2015084344A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210018802A (ko) * 2018-04-17 2021-02-18 르노 에스.아.에스. 접속 모듈을 타깃으로 하는 공격 흐름들을 필터링하는 방법
WO2022092499A1 (ko) * 2020-10-30 2022-05-05 재단법인대구경북과학기술원 신뢰가능한 실행 환경을 이용한 캐시 부 채널 공격 탐지 방법 및 장치

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015179865A1 (en) * 2014-05-23 2015-11-26 The George Washington University System and method for uncovering covert timing channels
WO2016108980A2 (en) * 2014-10-03 2016-07-07 The Trustees Of The University Of Pennsylvania Methods, systems, and computer readable media for detecting covert timing channels
CN106295337B (zh) * 2015-06-30 2018-05-22 安一恒通(北京)科技有限公司 用于检测恶意漏洞文件的方法、装置及终端
KR102411884B1 (ko) 2017-09-28 2022-06-22 삼성전자주식회사 전자 장치 및 그의 제어 방법
US10521585B2 (en) * 2017-10-02 2019-12-31 Baidu Usa Llc Method and apparatus for detecting side-channel attack
KR102424357B1 (ko) 2017-10-24 2022-07-25 삼성전자주식회사 부채널 공격으로부터 정보를 보호하는 방법 및 디바이스
CN109033826B (zh) * 2018-06-26 2019-06-28 天津飞腾信息技术有限公司 可抵御边信道攻击的缓存加固方法及装置
US10929535B2 (en) * 2018-06-29 2021-02-23 Intel Corporation Controlled introduction of uncertainty in system operating parameters
WO2020040859A1 (en) * 2018-08-24 2020-02-27 Hrl Laboratories, Llc System and method for cyber attack detection based on rapid unsupervised recognition of recurring signal patterns
US11316875B2 (en) * 2020-01-31 2022-04-26 Threatology, Inc. Method and system for analyzing cybersecurity threats and improving defensive intelligence
CN111289890A (zh) * 2020-02-27 2020-06-16 致能装备科技(集团)有限公司 一种基于边信道的dtu安全监测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130297832A1 (en) * 2009-04-24 2013-11-07 Vmware, Inc. Interrupt coalescing for outstanding input/output completions
WO2013172913A2 (en) * 2012-03-07 2013-11-21 The Trustees Of Columbia University In The City Of New York Systems and methods to counter side channels attacks

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
CA2496779C (en) * 2002-08-26 2011-02-15 Guardednet, Inc. Determining threat level associated with network activity
IL187046A0 (en) 2007-10-30 2008-02-09 Sandisk Il Ltd Memory randomization for protection against side channel attacks
EP2315465A1 (en) * 2009-10-20 2011-04-27 ETH Zurich Method for secure communication between devices
JP2011182038A (ja) 2010-02-26 2011-09-15 Konica Minolta Business Technologies Inc 画像処理装置、画像処理システムおよび表示画面制御方法
BR112012022088B1 (pt) 2010-03-01 2020-12-08 EMC IP Holding Company LLC meio de armazenamento não transitório legível por computador com instruções para execução em um computador hospedeiro, método para fornecer segurança em um computador hospedeiro, e aparelho de segurança de rede
US8359488B2 (en) 2010-04-12 2013-01-22 Red Hat, Inc. Keeping time in multi-processor virtualization environments
US8438644B2 (en) * 2011-03-07 2013-05-07 Isight Partners, Inc. Information system security based on threat vectors
US9009385B1 (en) * 2011-06-30 2015-04-14 Emc Corporation Co-residency detection in a cloud-based system
CN102571746B (zh) * 2011-11-23 2014-11-05 西安交通大学 一种面向云计算环境侧通道攻击防御的虚拟机部署方法
US9537651B2 (en) * 2012-03-02 2017-01-03 Sony Corporation Information processing apparatus, information processing method, and program
US9209968B2 (en) * 2012-03-02 2015-12-08 Sony Corporation Information processing apparatus, information processing method, and program
US9015838B1 (en) * 2012-05-30 2015-04-21 Google Inc. Defensive techniques to increase computer security
US8813240B1 (en) * 2012-05-30 2014-08-19 Google Inc. Defensive techniques to increase computer security
US9304795B2 (en) * 2013-01-15 2016-04-05 Empire Technology Development Llc Function-targeted virtual machine switching
US9342343B2 (en) * 2013-03-15 2016-05-17 Adventium Enterprises, Llc Wrapped nested virtualization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130297832A1 (en) * 2009-04-24 2013-11-07 Vmware, Inc. Interrupt coalescing for outstanding input/output completions
WO2013172913A2 (en) * 2012-03-07 2013-11-21 The Trustees Of Columbia University In The City Of New York Systems and methods to counter side channels attacks

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210018802A (ko) * 2018-04-17 2021-02-18 르노 에스.아.에스. 접속 모듈을 타깃으로 하는 공격 흐름들을 필터링하는 방법
KR102643547B1 (ko) 2018-04-17 2024-03-06 르노 에스.아.에스. 접속 모듈을 타깃으로 하는 공격 흐름들을 필터링하는 방법
WO2022092499A1 (ko) * 2020-10-30 2022-05-05 재단법인대구경북과학기술원 신뢰가능한 실행 환경을 이용한 캐시 부 채널 공격 탐지 방법 및 장치

Also Published As

Publication number Publication date
KR20160072135A (ko) 2016-06-22
US9438624B2 (en) 2016-09-06
US20160044059A1 (en) 2016-02-11
CN105917345A (zh) 2016-08-31
CN105917345B (zh) 2019-02-05
WO2015084344A1 (en) 2015-06-11

Similar Documents

Publication Publication Date Title
KR101807441B1 (ko) 가상 머신들 간의 사이드 채널 공격들의 검출
Pessl et al. {DRAMA}: Exploiting {DRAM} addressing for {Cross-CPU} attacks
Zhang et al. Cloudradar: A real-time side-channel attack detection system in clouds
US10705904B2 (en) Detecting anomalous behavior in an electronic environment using hardware-based information
US9465636B2 (en) Controlling virtual machine in cloud computing system
US9086960B2 (en) Ticket consolidation for multi-tiered applications
KR102493262B1 (ko) 포렌식을 위한 거동-기반 vm 리소스 캡처
KR101701014B1 (ko) 운영 체제에의 악성 활동 보고
US9785769B2 (en) Countering attacks on a cache
US9419993B2 (en) Randomization of processor subunit timing to enhance security
US20140123139A1 (en) Secure system time reporting
US20140359778A1 (en) Function-targeted virtual machine switching
WO2012069276A1 (en) Device emulation in a virtualized computing environment
US10146589B2 (en) Processor unplug in virtualized computer systems
Zhang et al. A comprehensive study of co-residence threat in multi-tenant public paas clouds
US9542295B2 (en) Method to apply perturbation for resource bottleneck detection and capacity planning
US10296436B2 (en) Adjusting trace points based on overhead analysis
US9785492B1 (en) Technique for hypervisor-based firmware acquisition and analysis
CN110750301B (zh) 检测处理器安全性的方法、装置、系统及存储介质
US9696940B1 (en) Technique for verifying virtual machine integrity using hypervisor-based memory snapshots
Schwarz et al. Keydrown: eliminating keystroke timing side-channel attacks
Milenkoski et al. On benchmarking intrusion detection systems in virtualized environments
Li et al. Towards An Out-of-the-box Cloud Application Monitoring Framework
Barbhuiya et al. LS-ADT: Lightweight and Scalable Anomaly Detection for Cloud Datacentres
Wu et al. C 2 hunter: Detection and mitigation of covert channels in data centers

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant