KR20140033169A - 가상 머신 이미지 분석 기법 - Google Patents

가상 머신 이미지 분석 기법 Download PDF

Info

Publication number
KR20140033169A
KR20140033169A KR1020137034508A KR20137034508A KR20140033169A KR 20140033169 A KR20140033169 A KR 20140033169A KR 1020137034508 A KR1020137034508 A KR 1020137034508A KR 20137034508 A KR20137034508 A KR 20137034508A KR 20140033169 A KR20140033169 A KR 20140033169A
Authority
KR
South Korea
Prior art keywords
virtual machine
settings
target
image
subset
Prior art date
Application number
KR1020137034508A
Other languages
English (en)
Other versions
KR101930113B1 (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 KR20140033169A publication Critical patent/KR20140033169A/ko
Application granted granted Critical
Publication of KR101930113B1 publication Critical patent/KR101930113B1/ko

Links

Images

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Investigating Or Analysing Biological Materials (AREA)

Abstract

가상 머신을 분석하는 기법들이 기술된다. 일실시예에서, 설정들의 서브세트가 하나 이상의 가상 머신 이미지로부터 추출되는데, 가상 머신 이미지는 설정들의 값을 저장하고 있다. 설정들은 가상 머신 내에서 실행중인 가상 머신 이미지의 소프트웨어에 의해 각각 사용된다. 가상 머신 이미지 중 타겟 가상 머신 이미지가 선택되고 설정들의 타겟 값이 타겟 가상 머신 이미지로부터 획득된다. 설정들의 샘플 값은 복수의 가상 머신 이미지로부터 획득된다. 서브세트는 가상 머신 이미지들 간의 값의 유사점 및 차이점을 식별함으로써 형성된다.

Description

가상 머신 이미지 분석 기법{VIRTUAL MACHINE IMAGE ANALYSIS}
가상 머신에서의 소프트웨어 관리 분야에서, 가상 머신 게스트 운영체제에서의 다수의 변수들은 사람들이 몇몇 임의의 목적에 대해 관련이 있거나 중요한 소프트웨어 설정들(settings) 간을 구별하기 어렵게 만들 수 있다. 예를 들어, (가상 머신의)게스트 운영체제의 환경 설정 및/또는 가상 머신에 설치된 애플리케이션 소프트웨어로 실험하는 사람은 시간이 지남에 따라 예컨대 직접 수동 편집을 함으로써 소프트웨어 인스톨 또는 언인스톨 등과 같은 작업에 대한 부작용으로서 구성을 많이 변경할 수 있다. 이러한 구성 또는 설정 변경이 누적됨에 따라, 사용자가 행한 동작들을 거슬러 조사하는 것이 어려울 수 있고 무엇이 가상 기계로 하여금 바람직한 상태 또는 바람직하지 않은 상태로 동작을 시작하게 했는지를 알아내는 것이 어려울 수 있다.
가상 머신의 많은 변경 상태 파라미터들 중에서 의미 또는 중요성을 갖는 파라미터를 식별하는 것은 어려울 뿐만 아니라, 가상 머신 상에서 다른 유형 또는 카테고리의 변경가능 값들 간을 구별하는 것도 어려울 수 있다. 일부는 게스트 운영체제 또는 애플리케이션 소프트웨어가 어떻게 기능하는지를 결정하기 위해 읽을 수 있는 진정한 구성 파라미터일 수 있다. 나머지는 성능 메트릭, 타임스탬프, 사용량 카운트 등과 같은 게스트 운영체제에 의해 출력되는 운영 데이터를 포함할 수 있다. 이들 중에서도, 가상 머신을 평가하기 위해, 가상 머신의 바람직한 또는 바람직하지 않은 현재 상태와 상관되는 운영 데이터 및 가상 머신의 상태에 사실상 독립적인 운영 데이터를 결정하는 것이 어려울 수 있다.
피어 프레셔 타입 알고리즘을 사용하여 가상 머신 이미지를 분석하는 것과 관련된 기술이 아래에 설명된다.
본 요약부는 이하 발명의 상세한 설명에서 보다 자세히 기술될 일부 개념들을 소개하기 위해 제공되는 것이다. 본 요약부는 포괄적으로 이루어진 것이 아니고, 말미에 제시되는 청구항에 기재된 청구대상의 범위를 정확하게 기술하고자 하는 것도 아니다.
가상 머신을 분석하는 기법들이 기술된다. 일실시예에서, 설정들의 서브세트가 하나 이상의 가상 머신 이미지로부터 추출되는데, 가상 머신 이미지는 설정들의 값을 저장하고 있다. 설정들은 가상 머신 내에서 실행중인 가상 머신 이미지의 소프트웨어에 의해 각각 사용된다. 가상 머신 이미지 중 타겟 가상 머신 이미지가 선택되고 설정들의 타겟 값이 타겟 가상 머신 이미지로부터 획득된다. 설정들의 샘플 값은 복수의 가상 머신 이미지로부터 획득된다. 서브세트는 가상 머신 이미지들 간의 값의 유사점 및 차이점을 식별함으로써 형성된다. 유사점 및 차이점은, 예컨대 베이지안 추정을 이용하여 통계적으로 분석될 수 있다.
많은 부수적인 특징들은 첨부 도면과 관련하여 고려되는 하기 상세한 설명을 참조하여 이하에 설명될 것이다.
본 발명은 첨부한 도면을 참고로 한 상세한 설명으로부터 가장 잘 이해될 수 있을 것이며, 도면에서 유사한 참조번호는 유사한 부분을 지시하는데 사용된다.
도 1은 예시적은 가상화층을 도시한 도면.
도 2는 가상 머신 및 가상 머신 이미지에 대한 가상화층의 프로세스 및 상호작용을 도시한 도면.
도 3은 실행중인 가상 머신의 스냅샷이 어떻게 캡처될 수 있는 지를 도시한 도면.
도 4는 일반적인 피어 프레셔 알고리즘(peer pressure algorithm)을 도시한 도면.
도 5는 설정을 획득하는 다양한 접근법을 도시한 도면.
도 6은 가상 머신 이미지 내 예시적인 설정들을 도시한 도면.
도 7은 설정들 및 값들의 예시적인 데이터베이스를 도시한 도면.
도 8은 피어 프레셔 컴포넌트 및 예시적인 출력들을 이용한 시스템을 도시한 도면.
이하에서 논의하는 실시예들은 가상 머신 이미지를 분석하는 것과 관련이 있다. 배경기술에서 언급한 바와 같이, 가상 머신 상에서의 많은 관측가능한 값들 중에서 어느 값이 설정(setting)을 위한 값인지 또는 관심이 있는 파라미터이고 관심이 없는 파라미터인지를 식별하기 위해 사용자가 이들을 조사하는 것은 어려울 수 있다. 가상 머신 상에 존재할 수 있는 많은 설정 중에서 의미있는 설정을 식별하기 위해, 가상 머신의 파라미터 또는 설정을 평가하고 분류하는 베이지안 기반 피어 프레셔(Bayesian-based peer-pressure) 기법이 이용된다. 머신 가상화의 개요에 대해 설명한 후에, 피어 프레셔 알고리즘에 대해 논의하고, 그 다음에 피어 프레셔 알고리즘이 어떻게 가상 머신 이미지로부터 추출된 데이터에 적용될 지에 대해 설명할 것이다.
도 1은 예시적인 가상화층(100)을 도시한 것이다. 컴퓨터(102)는 CPU(106), 메모리(108), 네트워크 인터페이스(110), 비휘발성 저장 장치(112), 및 버스, 디스플레이 어댑터 등과 같은 도시되지 않은 다른 컴포너트를 포함하는 하드웨어(104)를 포함한다. 가상화층(100)은 가상 머신(114)의 실행을 관리하고 실행을 용이하게 한다. 도 1에는 도시되어 있지 않지만, 각각의 가상 머신(114)은 통상적으로 관련 가상 디스크 이미지 및 게스트 운영 체제를 갖는다. 간략화를 위해, 운영 체제 및 아마도 가상 머신의 애플리케이션 소프트웨어는 때론 게스트라고도 하는데, 이는 가상 머신(114)과 연관된 가상 디스크 이미지로부터 저장되고 실행된다.
가상화층(100)은 Hyper-V 서버(TM), VMWare ESX 서버(TM), Xen, Oracle VM(TM) 등과 같은 임의의 다양한 기존의 또는 향후의 구현들일 수 있다. 가상화층의 아키텍처는 호스트 운영 체제에서 실행되는 가상 머신 모니터(VMM)를 갖는 호스트형(hosted type) 또는 컴퓨터(102)의 하드웨어(104) 상에서 직접 실행되는 하이퍼바이저를 갖는 베어 메탈형(bare-metal type) 등일 수 있다. 본 명세서에서 사용된 바와 같이, "가상 머신(virtual machine)"이란 용어는 자신에 대한 네이티브 코드(native code)를 실행할 수 있는 임의의 특정한 하드웨어 아키텍처(예컨대, x86)를 시뮬레이트하는 시스템형 가상 머신을 지칭하는데, 게스트에게는, 가상 머신과 하드웨어 머신이 거의 구별 가능하지 않다. 본 명세서에서 논의된 가상 머신은 자바 가상 머신과 같은 추상형(abstract type) 또는 프로세스형 가상 머신이 아니다.
가상화층(100)은, 가상 머신(114)을 관리하고 자신과 가상 머신(114)에 의해 하드웨어(104)를 공유하는 기본 기능을 수행한다. 하드웨어(104)로부터 가상 머신(114)을 격리시키기 위한 다양한 기법들 중 임의의 기법이 사용될 수 있다. 일실시예에서, 가상화층은 가상 머신들(114)에 대응하는 여러 격리 환경(즉, 파티션 또는 도메인)을 제공할 수 있다. 공유된 가상 장치 드라이버, 다양한 가상 머신 통신 설비 및 가상 머신 관리 API(application programming interface)와 같은 일부 가상화층(100)은 특별한(special privileged) 파티션 또는 도메인에서 실행될 수 있으며, 세밀하고 효율적인 하이퍼바이저를 가능하게 한다. 다른 실시예들에서, 가상 머신 관리 및 하드웨어(104)의 일관된 공유를 위한 기능이 획일적인 온더메탈(on-the-metal) 하이퍼바이저에 상주한다.
도 2는 가상 머신(114) 및 가상 머신 이미지(140)에 대한 가상화층(100)의 프로세스 및 상호작용을 도시한 것이다. 가상화층(100)은 가능하게는 대응하는 가상 머신 구성 파라미터에 따라서 가상 머신(114)을 시동시키고 실행시키는 프로세스(142)를 수행한다. 가상 머신(VM)(114)이 시동되면, 가상화층은 관련 가상 머신 이미지(140)를 식별한다. 실제로, 임의의 가상 머신 이미지(140)는 임의의 가상 머신(114)에 의해 사용될 수 있다. 가상 머신 이미지(140)는 가상화층(100)의 파일 시스템(141) 상의 특별히 포맷된 파일(예컨대, VHD)일 수 있다. 가상화층(100)은 식별된 가상 머신 이미지(140)를 로딩한다. 시동된 가상 머신(114)은 가상 머신 이미지(140)를 탑재하고 판독하고, 아마도 마스터 부트 레코드 또는 다른 부트 정보를 추적하며, 실행을 시작하는 게스트 운영 체제를 부팅한다.
가상화층(100)은 가상 머신(114)의 실행, 게스트의 커널에 대한 소정의 호출, 하이퍼콜(hypercall) 등의 처리 및 하부 하드웨어(104)에 대한 가상 머신(114)의 액세스 조정을 관리한다. 게스트 및 그 소프트웨어가 실행되면, 가상화층(100)은 가상 디스크 이미지(140) 상에서의 게스트의 상태를 유지할 수 있으며, 게스트 또는 게스트에 의해 실행되는 애플리케이션이 데이터를 "디스크"에 기록할 경우 가상화층(100)은 데이터를 가상 디스크 이미지(140)의 포맷으로 변환하여 이미지에 기록한다.
가상화층(100)은 가상 머신(114)을 셧다운하는 프로세스(144)를 수행할 수 있다. 가상 머신(114) 중지 명령이 수신되면, 가상 머신(114)의 상태 및 그 게스트가 가상 디스크 이미지(140)에 저장되고, 실행중인 가상 머신(114) 프로세스(또는 파티션)가 삭제된다. 가상 머신(114)의 나중의 재시동을 위해 가상 머신(114)의 이력이 유지될 수 있다.
도 3은 실행중인 가상 머신의 스냅샷이 어떻게 캡처될 수 있는지를 보여준다. 가상 머신(114)은 하드웨어(104)를 사용하여 실행되는 게스트 운영 체제(180)를 포함한다. 실행중인 가상 머신(113)은 게스트 운영 체제(180) 및 임의의 애플리케이션 또는 설치되어 있는 기타 소프트웨어를 저장하는 가상 디스크 저장부를 제공한다. 요컨대, 게스트 운영 체제(180) 및 애플리케이션의 상태(182)는 가상화층(100)에 의해 관리되는 하드웨어(104) 전역에 걸쳐 물리적으로 존재할 수 있다. 결국 물리적 머신의 임의의 알려진 하드웨어 또는 소프트웨어 특징은 가상 머신(114) 상에서 거의 동등한 양을 가질 수 있다. 가상화층(100)은 스냅샷(188)을 캡처하기 위한 프로세스(186)를 수행하는 스냅샷 컴포넌트(184)를 포함한다. 가상 머신(114)이 실행 중인 동안, 가상 머신(114)의 스냅샷 캡처 명령이 수신된다. 예를 들어, 가상화 관리 시스템은 가상화층(100)에 의해 수신되는 명령을 네트워크를 통해 전송할 수 있다. 일부 가상화 구현에서는, 스냅샷이 캡처되기 전에, 일부 사전 준비가 요구될 수도 있다. 예를 들어, 캐시가 플러싱(flushing)을 요구할 수 있거나, 파일 시스템 또는 저장 시스템이 비활성화될(quiesced) 필요가 있을 수 있거나, 게스트 운영 체제(180)의 메모리 페이지가 저장될 필요가 있거나 할 수 있다.
스냅샷(188) 캡처는 기존의 기법들 또는 현존하는 가상화 기술의 구현들을 이용하여 수행될 수 있다. 특히, 스냅샷(188)은 그에 상당하는 실행중인 물리적 머신에서 이용가능한 임의의 정보를 포함할 수 있다. 예를 들어, 스냅샷(188)은 가상 머신(113)의 메모리의 카피를 포함할 수 있는데, 이 카피는 실행 프로세스(190), 커널 데이터 구조(192) 또는 가상 머신(113)의 가상화된 물리적 메모리 내의 임의의 정보를 포함할 수 있다. 또한, 스냅샷(188)은 레지스터 값, 버퍼 내용(buffer content) 등을 포함한, 가상 머신에 의해 사용된 물리적 장치 또는 가상 장치로부터 캡처된 정보를 포함할 수 있다. 일부 구현에서, 스냅샷 프로세스(186)는 또한 가상 CPU 정보(가상 코어 또는 CPU의 개수), 메모리 및 저장 장치의 양, 가상 장치, 가상 네트워크 인터페이스 카드, BIOS, 가상 마더 보드, 장치 드라이버 등과 같은 가상 머신(113)의 가상의 물리적 환경에 대한 정보를 캡처할 수도 있다. 일부 가상화 구현들은 스냅샷을 가상 머신의 디스크 이미지에 링크시킬 수 있고, 스냅샷은 가상 머신의 디스크 이미지와 다른 실행중인 가상 머신의 저장 블록을 포함할 수 있다. 요컨대, 스냅샷(188)은 가상 머신의 캡처된 작업 상태를 포함하는 파일과 같은 지속성 객체(persistent object)이다. 대부분의 가상화 구현들은 스냅샷이 로딩되어 실행될 수 있게 하는데, 즉 스냅샷을 실행하는 가상 머신(가능하게는 스냅샷을 캡처한 원래의 가상 머신 이외의 가상 머신)이 마치 스냅샷이 취해진 시간에서의 원래의 가상 머신처럼 실행을 시작한다. 다른 말로 하면, 실행중인 가상 머신의 상태가 캡처되어 동일 또는 새로운 가상 머신에서 나중에 다시 시작될 수 있다.
일부 가상화 구현에서는, 스냅샷 및 디스크 이미지 파일이 기능적으로 호환가능함을 주지해야 한다. 따라서, 본 명세서에서 사용된 바와 같이, "가상 머신 이미지"란 용어는 가상화층이 가상 디스크로서 가상 머신에 제공하는 특별한 포맷의 파일뿐만 아니라 실행중인 가상 머신으로부터 캡처된 스냅샷 모두를 지칭할 것이다.
도 4는 일반적인 피어 프레셔 알고리즘을 보여준다. 결함있는 기계(faulty machine)를 진단하는데 적용되는 피어 프레셔 알고리즘은 "utomatic Misconfiguration Troubleshooting with PeerPressure" (H.Wang, J.Platt, Y.Chen, R. Zhang, and Y.-M.Wang; USENIX OSDE, 2004)에 상세히 설명되어 있다. 전술한 참조문헌은 본 명세서에 참조로서 포함된다. 도 4에 대한 이하의 설명은 인용문헌에 기술된 알고리즘을 요약하고 일반화한다.
단계 220에서, 타겟 머신, 예컨대 결함있는 머신이 사용자에 의해 선택된다. 단계 222에서, 타겟 관련 설정값 쌍이 추출된다. 일반적으로, 가상 머신 이미지 내에서 찾아낼 수 있는 임의의 유형의 설정값 쌍이 추출될 수 있다(본 명세서에서 사용된 바와 같이, "설정(seting)"은 가상 머신 이미지에 대해 지속되는 로그 파일 또는 임의의 게스트/애플리케이션 상태 또는 출력과 같은 동작 상태 또는 기록/출력 데이터를 지칭할 수도 있다). 예를 들어, 설정값 쌍은 레지스트리 키 및 그 내용(값), 파일 디렉토리 및 디렉토리 내 파일의 이름, 파일 및 그 파일의 첫번째 라인, 로그 파일 및 그 로그 파일 내 라인의 수, 가상화 파라미터(예컨대, 메모리 할당) 및 그 값 등일 수 있다. 즉, 설정 또는 파라미터는 대응하는 값의 출처가 되는 가상 머신 이미지 상의 위치를 식별하는 일부 정보이고, 그 값은 그 위치에서의 내용이다.
단계 224에서, 타겟 설정값 쌍이 정규화(canonicalized)될 수 있다. 이것은 단지 설정 및 값을 일부 정규 형식(canonical form)으로 하여 이들이 의미론적으로 정확하게 비교될 수 있게 하는 것을 포함한다. 예를 들어, 철자 또는 형식에서의 변형(variation)이 수정될 수 있거나(예컨대, "#1"이 "1"로 변환될 수 있다), 값들이 숨겨질 수 있거나 할 수 있다.
단계 226에서, 관련 가상 머신의 샘플 세트가 식별되고, 단계 222에서의 설정에 대응하는 설정값 쌍(또는 단지 값들)의 샘플 세트가 획득된다. 가상 머신은 임의의 기준, 아마도 사용자가 정의한 기준에 기초하여 식별될 수 있다. 예를 들어, 골든 이미지(golden image)와 같은 동일한 가상 머신 이미지에 기초한 가상 이미지가 선택될 수 있다. 동일한 애플리케이션을 갖는 가상 머신이 식별될 수 있다. 사용자에 의해 선택된 가상 머신 세트가 식별될 수 있다. 그 후 값들이 추출된다. 이 값들은 식별된 가상 머신의 가상 머신 이미지로부터 사전 추출될 수 있고, 그 후 정규 형식으로 데이터베이스에 저장되며(도 7 참조), 필요시 이 데이터베이스로부터 값들이 얻어질 수 있다. 이 값들은 가상 머신 이미지로부터 직접 추출될 수 있고, 필요시 정규화될 수 있다.
단계 228에서, 피어 프레셔 알고리즘이 통계적 분석을 수행하여 설정에 대한 정보를 도출해낸다. 즉, 어느 설정이 (단계 220으로부터의)그 타겟 머신에 대해 관심이 있을 것 같은지 그리고 어느 설정이 관심이 없을 것 같은지를 식별하는 것을 돕기 위한 계산이 수행된다. 바꾸어 말하면, 통계적 계산은 샘플링된 가상 머신에 대한 타겟 가상 머신의 동작에 실질적으로 영향을 미칠(또는 신호를 줄) 가능성이 낮은 것으로 여겨지는 설정을 식별해 낸다. 전술한 참조 문헌에 자세히 설명되어 있지만, 그 중 일부를 이하에 설명한다.
일반적인 아이디어는, 일부 주어진 설정에 대하여, 설정의 값이 가상 머신들 사이에서 비교된다는 것이다. 모든 머신에 걸쳐 매우 균일한 경향이 있는 값을 갖는 설정은 머신 동작에 영향을 미치는 또는 머신 동작의 표시(telltale) 역할을 하는 설정일 것 같지 않다. 매우 비균일한 경향이 있는 설정은 동작 제어(behavior-controlling) 또는 동작 표시(hehavior-indicatig)할 것 같지 않다. 즉, 모든 가상 머신이 주어진 설정에 대해 상이한 값을 가지면, 그 설정은 타겟 가상 머신의 특징에 영향을 주거나 예측할 것 같지 않다. 값들이 다소 균일하지만 몇몇 통계적 중요성에 따라 변하는 설정이 중간에 있다. 예를 들어, 머신들 중 절반 또는 1/3이 설정에 대해 상이한 값을 갖고 나머지는 동일한 값을 가지면, 그 설정은 의도적으로 변경되고 있거나 효과를 가질 가능성이 있다. 평가 단계(228)는 매우 불균일한 설정 및 매우 비균일한 설정을 제외시켜 사용자에게 관심이 있을만한 설정들의 서브세트를 식별한다. 일실시예에서, 베이지안 통계 평가가 사용되는데, 이는 전술한 논문에 충분히 설명되어 있다.
도 5는 설정을 획득하기 위한 상이한 방법을 보여준다. 일실시예에서, 가상 머신(114A)이 가상 머신(114B)과 관련된다. 이들은 둘 모두가 동일한 베이스 또는 "골든(golden)" 가상 머신 이미지로부터 도출되는 가상 머신 이미지를 갖는 점에서 관련이 있을 수 있다. 이들은 시간적으로 관련이 있을 수 있는데, 하나가 (직계 후손으로서 또는 상대편의 클론/스냅샷으로서)다른 하나의 나중 시간에서의 버전일 수 있는 등이다. 이들은 모두 동일한 소프트웨어 인스톨, 게스트 운영 체제 등을 갖는다는 점에서 관련이 있을 수 있다. 시간의 경과에 따라, 가상 머신(114A, 114B)은 제각기의 가상 머신 이미지에 반영되는 수정, 업데이트, 구성 편집 및 기타 지속적인 상태 변경을 겪게 된다. 예를 들어, 가상 머신(114A, 114B)은 설정(252A, 252B)("설정 i")과 같은 동일 설정의 인스턴스를 가질 수 있다. 시간의 경과에 따라, 설정(252A, 252B)은 상이한 값을 취할 수 있다. 단일 가상 머신이 시간의 경과에 따라 스냅샷되거나 또는 캡처/카피되면, 리니지(lineage)가 타겟 가상 머신 역할을 할 수 있다는 점에서 이들 인스턴스는 샘플 세트(단계 226 참고) 및 가상 머신 역할을 할 수 있다. 즉, 동일한 가상 머신의 동일한 설정의 상이한 시간에서의 값이 그 샘플 세트 역할을 할 수 있다.
도 6은 가상 머신 이미지(270)에서의 예시적인 설정을 보여준다. 앞서 살펴본 바와 같이, 이들 설정은 가상 머신 이미지 내 임의의 지속적인 어드레스 가능 값, 예컨대, 파이 시스템 객체, 레지스트리 개체, 가상 머신 메타데이터(예컨대, 가상 머신 이미지의 헤더 내의) 등일 수 있다. 설정의 값은 시간의 경과에 따라 변할 수 있고 이들 값이 샘플 공간에 걸쳐 얼마나 균일한지에 따라 변할 수 있다. 일부 설정은 매우 균일한 값을 가질 수 있고, 일부 값은 매우 비균일한 값(예컨대, 호스트명, 네트워크 어드레스, 사용자명 등과 같은 특정 머신의 "특성(character)"을 반영하는 값)을 가질 수 있다.
도 7은 설정 및 값에 대한 예시적인 데이터베이스(290)를 보여준다. "설정"과 같은 컬럼 제목은 따로 설명이 필요치 않다. 이 예에서, 이용가능한 파퓰레이션 내 각 가상 머신은 자신의 컬럼 또는 값의 벡터를 갖는다. 실제로, 설정(행)의 수는 수만개 이상이 될 수 있다. 일부 설정에 있어서, 값들은 가상 머신에 걸쳐 대부분 균일할 수 있는데, 예컨대, "installDir" 설정은 각 가상 머신에 대해 동일한 값을 갖는다. 다른 설정들은 매우 비균일한 값을 가질 수도 있다. 예컨대, "registryKeyX"는 각각의 머신에 대해 상이한 값을 갖는다. 다른 설정들은 매우 균일하지도 않고 매우 비균일하지도 않은 값을 가질 수 있는데, 어느 설정이 관심 대상인지를 식별하기 위해 구현 특정 파라미터를 이용한 베이지안 통계 분석이 사용될 수도 있다. 일실시예에서, 다차원 데이터베이스가 사용된다. 예를 들어, 동일한 머신의 값들이 상이한 시간에 걸쳐 상이한 개정으로 색인될 수 있다.
도 8은 피어 프레셔 컴포넌트(310) 및 예시적인 출력(312A, 312B)을 사용하는 시스템을 도시한다. 피어 프레셔 컴포넌트(310)는 타겟 설정값 쌍의 타겟 세트(314)(또는 일정한 설정 세트가 사용될 경우에는 단지 그 값들만)를 전달받는다. 샘플 세트(316)가 또한 피어 프레셔 컴포넌트(310)로 전달된다. 피어 프레셔 컴포넌트(310)는 입력에 대한 통계적 분석을 수행하여 출력을 생성하며, 이 출력은 기록 매체에 저장될 수 있거나 디스플레이 상에 디스플레이될 수 있거나 또는 네트워크를 통해 전송될 수 있거나 한다. 일실시예에서, 출력(312A)은 균일한 것으로 추정되는 설정, 비균일한 것으로 추정되는 설정 및 관심 대상 후보인 설정으로 추정되는 설정과 같이 분류된 설정 세트이다. 다른 실시예에서, 출력(312B)은 입력된 타겟 설정값 쌍(314) 중에서의 확률순 설정(probability-ranked setting) 세트이다. 출력(312B)은 상위 M개(예컨대, 상위 3개)의 순위화된 설정 세트로 감소될 수도 있다. 확률 임계치가 대신 사용될 수도 있다.
하기 청구범위에 의해 변형 실시예 및 다른 실시예가 고려되고 포함될 수도 있음을 이해할 수 있을 것이다.
결론
전술한 실시예들 및 특징들은 휘발성 또는 비휘발성 컴퓨터 또는 장치 판독가능한 매체에 저장된 정보의 형태로 실현될 수 있다. 이것은 적어도 광학 저장 장치(예컨대, CD-ROM(compact-disk read-only memory)), 자기 매체, 플래시 판독 전용 메모리(ROM), 또는 임의의 현재의 또는 미래의 디지털 정보 저장 수단과 같은 매체를 포함하는 것으로 간주된다. 저장된 정보는 컴퓨팅 장치로 하여금 전술한 다양한 실시예를 수행하게 하거나 또는 그와 같이 컴퓨팅 장치를 구성하는데 사용될 수 있는 기계 실행가능 명령어(예컨대, 컴파일된 실행가능 이진 코드), 소스 코드, 바이트코드 또는 임의의 다른 정보 형태일 수 있다. 이것은 또한 적어도 RAM(random-access memory)과 같은 휘발성 메모리 및/또는 실시예를 수행하는 프로그램의 실행 동안 CPU(central processing unit) 명령어와 같은 정보를 저장하는 가상 메모리, 및 프로그램 또는 실행 파일이 로딩되어 실행될 수 있게 하는 정보를 저장하는 비휘발성 매체를 포함하는 것으로 간주된다. 실시예 및 특징들은 휴대형 장치, 워크스테이션, 서버, 이동 무선 장치 등을 포함한 임의의 유형의 컴퓨팅 장치 상에서 수행될 수 있다.

Claims (15)

  1. 하나 이상의 가상 머신 이미지로부터 추출된 설정들(settings)의 서브세트를 선택하는 방법 -상기 가상 머신 이미지는 상기 설정들의 값을 저장하고 있고, 상기 설정들은 상기 가상 머신 이미지의 가상 머신에서 실행되는 소프트웨어에 의해 각각 사용됨- 으로서,
    상기 가상 머신 이미지 중 타겟 가상 머신 이미지를 선택하고, 상기 타겟 가상 머신 이미지로부터 상기 설정들의 타겟 값을 획득하는 단계와,
    상기 설정들의 샘플 값에 액세스하는 단계 -상기 샘플 값은 복수의 가상 머신 이미지로부터 획득됨- 와,
    상기 가상 머신 이미지 간의 값의 유사점(similarity) 및 차이점(difference)을 식별함으로써 상기 서브세트를 형성하는 단계를 포함하는
    설정들의 서브세트 선택 방법.
  2. 제1항에 있어서,
    상기 유사점 및 차이점의 개수(count)에 따라 동작하는 베이지안 통계 함수(Bayesian statistic function)로 이루어진 피어 프레셔 알고리즘(peer-pressure algorithm)을 실행하는 단계를 더 포함하는
    설정들의 서브세트 선택 방법.
  3. 제1항에 있어서,
    상기 타겟 가상 머신 이미지는 사용자 선택 가상 머신 이미지를 포함하고, 상기 복수의 가상 머신 이미지는 서로 관련되며 상기 타겟 가상 머신 이미지와 관련되는
    설정들의 서브세트 선택 방법.
  4. 제3항에 있어서,
    상기 복수의 가상 머신 이미지 및 타겟 가상 머신 이미지는 상이한 시점에서의 동일한 가상 머신 이미지의 카피인 것으로서 관련되는
    설정들의 서브세트 선택 방법.
  5. 제3항에 있어서,
    상기 복수의 가상 머신 이미지 및 상기 타겟 가상 머신 이미지는 원래 동일한 가상 머신 이미지의 카피였던 것으로서 관련되는
    설정들의 서브세트 선택 방법.
  6. 제5항에 있어서,
    상기 복수의 가상 머신 이미지는 가상 머신으로서 실행되었고, 상기 값들 중 적어도 일부는 상기 가상 머신 이미지가 가상 머신으로서 실행되고 있었던 동안 생성된
    설정들의 서브세트 선택 방법.
  7. 가상 머신의 설정을 식별하는 방법으로서,
    타겟 가상 머신으로부터 타겟 설정의 복수의 타겟 값을 추출하는 단계와,
    샘플 가상 머신 세트를 선택하고 상기 타겟 설정에 대응하는 상기 가상 머신의 샘플 값을 획득하는 단계와,
    상기 샘플 값 및 상기 타겟 값에 따라 상기 타겟 설정의 서브세트를 식별하는 단계를 포함하는
    가상 머신의 설정 식별 방법.
  8. 제7항에 있어서,
    상기 식별하는 단계는 상기 샘플 값과 타겟 값 사이의 일치 정도에 따라 통계적 계산을 수행하는 단계를 포함하는
    가상 머신의 설정 식별 방법.
  9. 제8항에 있어서,
    상기 식별하는 단계는 복수의 베이지안 추정 계산(Bayesian estimation calculation)을 포함하는
    가상 머신의 설정 식별 방법.
  10. 제7항에 있어서,
    상기 설정 중 주어진 하나의 설정의 샘플 값이 일치하는(in agreement) 정도에 기초하여 상기 주어진 하나의 설정을 포함할 지의 여부를 판정하는 단계를 더 포함하는
    가상 머신의 설정 식별 방법.
  11. 제10항에 있어서,
    상기 샘플 값이 충분한 통계적 일치(statistical agreement)를 갖는다고 판정될 경우 상기 주어진 설정은 상기 서브세트에 포함되는
    가상 머신의 설정 식별 방법.
  12. 제11항에 있어서,
    특정 값이 상기 샘플 값에 대해 통계적 일치로 판정되고, 상기 판정은 상기 주어진 값이 상기 특정 값과 상이한 것에 기초하는
    가상 머신의 설정 식별 방법.
  13. 제7항에 있어서,
    상기 샘플 가상 머신은 별개의 가상 머신 이미지를 각각 포함하고, 상기 샘플 값은 가상 머신 이미지로부터 획득된
    가상 머신의 설정 식별 방법.
  14. 제7항에 있어서,
    상기 설정은 상기 가상 머신 상의 소프트웨어의 구성 설정을 포함하는
    가상 머신의 설정 식별 방법.
  15. 제7항에 있어서,
    상기 샘플 가상 머신은 상이한 시점에서의 동일한 가상 머신 이미지를 포함하는
    가상 머신의 설정 식별 방법.
KR1020137034508A 2011-06-28 2012-06-08 가상 머신 이미지 분석 기법 KR101930113B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/171,366 US8645950B2 (en) 2011-06-28 2011-06-28 Virtual machine image analysis
US13/171,366 2011-06-28
PCT/US2012/041700 WO2013003005A2 (en) 2011-06-28 2012-06-08 Virtual machine image analysis

Publications (2)

Publication Number Publication Date
KR20140033169A true KR20140033169A (ko) 2014-03-17
KR101930113B1 KR101930113B1 (ko) 2019-03-14

Family

ID=47392073

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137034508A KR101930113B1 (ko) 2011-06-28 2012-06-08 가상 머신 이미지 분석 기법

Country Status (7)

Country Link
US (2) US8645950B2 (ko)
EP (1) EP2726977B1 (ko)
JP (1) JP5960259B2 (ko)
KR (1) KR101930113B1 (ko)
CN (1) CN103620550B (ko)
TW (2) TWI547874B (ko)
WO (1) WO2013003005A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200041028A (ko) * 2018-10-11 2020-04-21 전석기 패치 환경을 이용한 멀웨어 판단 방법 및 시스템

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286182B2 (en) * 2011-06-17 2016-03-15 Microsoft Technology Licensing, Llc Virtual machine snapshotting and analysis
US8949829B1 (en) 2011-06-30 2015-02-03 Emc Corporation Virtual machine disaster recovery
US9311327B1 (en) 2011-06-30 2016-04-12 Emc Corporation Updating key value databases for virtual backups
US8843443B1 (en) * 2011-06-30 2014-09-23 Emc Corporation Efficient backup of virtual data
US9158632B1 (en) 2011-06-30 2015-10-13 Emc Corporation Efficient file browsing using key value databases for virtual backups
US9229951B1 (en) 2011-06-30 2016-01-05 Emc Corporation Key value databases for virtual backups
US8849777B1 (en) 2011-06-30 2014-09-30 Emc Corporation File deletion detection in key value databases for virtual backups
DE102012217202B4 (de) * 2011-10-12 2020-06-18 International Business Machines Corporation Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
US9063815B2 (en) * 2012-09-17 2015-06-23 International Business Machines Corporation Provisioning a virtual machine from one or more VM images
CN104424013B (zh) * 2013-08-26 2018-03-09 国际商业机器公司 在计算环境中部署虚拟机的方法和设备
KR101554554B1 (ko) 2013-11-29 2015-09-22 한국과학기술정보연구원 가상 머신 구동 시스템 및 방법
US9507621B1 (en) 2014-08-26 2016-11-29 Amazon Technologies, Inc. Signature-based detection of kernel data structure modification
US9530007B1 (en) 2014-08-26 2016-12-27 Amazon Technologies, Inc. Identifying tamper-resistant characteristics for kernel data structures
US9575793B1 (en) 2014-08-26 2017-02-21 Amazon Technologies, Inc. Identifying kernel data structures
US9767276B1 (en) 2014-08-26 2017-09-19 Amazon Technologies, Inc. Scanning kernel data structure characteristics
US9495188B1 (en) 2014-09-30 2016-11-15 Palo Alto Networks, Inc. Synchronizing a honey network configuration to reflect a target network environment
US9882929B1 (en) 2014-09-30 2018-01-30 Palo Alto Networks, Inc. Dynamic selection and generation of a virtual clone for detonation of suspicious content within a honey network
US10044675B1 (en) 2014-09-30 2018-08-07 Palo Alto Networks, Inc. Integrating a honey network with a target network to counter IP and peer-checking evasion techniques
US9860208B1 (en) 2014-09-30 2018-01-02 Palo Alto Networks, Inc. Bridging a virtual clone of a target device in a honey network to a suspicious device in an enterprise network
US10007445B2 (en) 2014-11-04 2018-06-26 Rubrik, Inc. Identification of virtual machines using a distributed job scheduler
JP6787573B2 (ja) * 2015-01-28 2020-11-18 日本電気株式会社 仮想ネットワークファンクション管理装置、システム、ヒーリング方法及びプログラム
JP6197816B2 (ja) * 2015-03-24 2017-09-20 日本電気株式会社 ストレージシステム、ストレージの管理方法、及び、コンピュータ・プログラム
JP6696252B2 (ja) * 2016-03-24 2020-05-20 富士ゼロックス株式会社 通信プログラム、通信装置及び情報処理装置
EP3452904B1 (en) 2016-05-02 2023-12-27 Nokia Solutions and Networks Oy Snapshot creation in virtual network environment
US10768961B2 (en) 2016-07-14 2020-09-08 International Business Machines Corporation Virtual machine seed image replication through parallel deployment
JP6919173B2 (ja) * 2016-10-20 2021-08-18 富士通株式会社 表示制御プログラム、表示制御方法、及び表示制御装置
US11221920B2 (en) 2017-10-10 2022-01-11 Rubrik, Inc. Incremental file system backup with adaptive fingerprinting
US11372729B2 (en) 2017-11-29 2022-06-28 Rubrik, Inc. In-place cloud instance restore
CN111240794B (zh) * 2018-11-28 2023-06-13 阿里巴巴集团控股有限公司 容器镜像提取方法、装置以及容器镜像测试方法、装置
US11271907B2 (en) 2019-12-19 2022-03-08 Palo Alto Networks, Inc. Smart proxy for a large scale high-interaction honeypot farm
US11265346B2 (en) 2019-12-19 2022-03-01 Palo Alto Networks, Inc. Large scale high-interactive honeypot farm
CN117891472A (zh) * 2024-03-11 2024-04-16 杭州吉利汽车数字科技有限公司 一种裸金属镜像部署的方法、装置及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070162521A1 (en) * 2006-01-09 2007-07-12 International Business Machines Corporation Method and system for sharing files among different virtual machine images
US20080256534A1 (en) * 2007-04-12 2008-10-16 International Business Machines Corporation Method for improved image-customization by use of embedded metadata
US20080263258A1 (en) * 2007-04-19 2008-10-23 Claus Allwell Method and System for Migrating Virtual Machines Between Hypervisors
US20090198731A1 (en) * 2008-01-31 2009-08-06 Prowess Consulting, Llc Method and system for modularizing windows imaging format
US20110035747A1 (en) * 2008-03-07 2011-02-10 Fumio Machida Virtual machine package generation system, virtual machine package generation method, and virtual machine package generation program

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386611B2 (en) * 2002-12-10 2008-06-10 International Business Machines Corporation Apparatus and methods for co-location and offloading of web site traffic based on traffic pattern recognition
US20050198303A1 (en) 2004-01-02 2005-09-08 Robert Knauerhase Dynamic virtual machine service provider allocation
US8074214B2 (en) 2005-05-19 2011-12-06 Oracle International Corporation System for creating a customized software installation on demand
US8806479B2 (en) 2007-06-05 2014-08-12 International Business Machines Corporation Creating an application virtual machine image by isolating installation artifacts in shadow area
US20090070752A1 (en) 2007-09-06 2009-03-12 International Business Machines Corporation Method and system for optimization of an application
WO2009108943A2 (en) 2008-02-29 2009-09-03 Doyenz Incorporated Automation for virtualized it environments
US8543998B2 (en) * 2008-05-30 2013-09-24 Oracle International Corporation System and method for building virtual appliances using a repository metadata server and a dependency resolution service
US8191065B2 (en) 2009-04-06 2012-05-29 Red Hat Israel, Ltd. Managing virtual machine images
US9069730B2 (en) * 2009-06-29 2015-06-30 Hewlett-Packard Development Company, L. P. Coordinated reliability management of virtual machines in a virtualized system
US8140907B2 (en) * 2010-06-29 2012-03-20 International Business Machines Corporation Accelerated virtual environments deployment troubleshooting based on two level file system signature
JP5772127B2 (ja) * 2011-03-25 2015-09-02 富士通株式会社 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070162521A1 (en) * 2006-01-09 2007-07-12 International Business Machines Corporation Method and system for sharing files among different virtual machine images
US20080256534A1 (en) * 2007-04-12 2008-10-16 International Business Machines Corporation Method for improved image-customization by use of embedded metadata
US20080263258A1 (en) * 2007-04-19 2008-10-23 Claus Allwell Method and System for Migrating Virtual Machines Between Hypervisors
US20090198731A1 (en) * 2008-01-31 2009-08-06 Prowess Consulting, Llc Method and system for modularizing windows imaging format
US20110035747A1 (en) * 2008-03-07 2011-02-10 Fumio Machida Virtual machine package generation system, virtual machine package generation method, and virtual machine package generation program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Helen J. Wang 외 4명. 'Automatic misconfiguration troubleshooting with peerpressure'. Proceedings of the 6th Conference on Symposium on OSDI, 2004.11., pp.1-13.. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200041028A (ko) * 2018-10-11 2020-04-21 전석기 패치 환경을 이용한 멀웨어 판단 방법 및 시스템

Also Published As

Publication number Publication date
US9207962B2 (en) 2015-12-08
CN103620550B (zh) 2018-10-02
US20140143775A1 (en) 2014-05-22
WO2013003005A2 (en) 2013-01-03
KR101930113B1 (ko) 2019-03-14
JP2014518424A (ja) 2014-07-28
EP2726977A4 (en) 2015-01-07
WO2013003005A3 (en) 2013-03-14
EP2726977B1 (en) 2019-12-11
TWI547874B (zh) 2016-09-01
TWI563449B (en) 2016-12-21
TW201627859A (zh) 2016-08-01
US20130007732A1 (en) 2013-01-03
CN103620550A (zh) 2014-03-05
EP2726977A2 (en) 2014-05-07
JP5960259B2 (ja) 2016-08-02
US8645950B2 (en) 2014-02-04
TW201301137A (zh) 2013-01-01

Similar Documents

Publication Publication Date Title
KR101930113B1 (ko) 가상 머신 이미지 분석 기법
US10379967B2 (en) Live rollback for a computing environment
US8387046B1 (en) Security driver for hypervisors and operating systems of virtualized datacenters
EP4018319B1 (en) Data preservation using memory aperture flush order
US20110225459A1 (en) Generating a debuggable dump file for a virtual machine
US9558023B2 (en) Live application mobility from one operating system level to an updated operating system level and applying overlay files to the updated operating system
US20220035905A1 (en) Malware analysis through virtual machine forking
US9547514B2 (en) Maintaining virtual hardware device ID in a virtual machine
US20110231455A1 (en) Detailed Inventory Discovery on Dormant Systems
US10089474B2 (en) Virtual machine introspection
US10268466B2 (en) Software installer with built-in hypervisor
US20180081930A1 (en) Maintaining storage profile consistency in a cluster having local and shared storage
US20120124355A1 (en) Single volume image file extraction
US20240020103A1 (en) Parallelizing data processing unit provisioning
CN109564533B (zh) 一种支持即时恢复进程中执行引导进程的设备和方法
US9720762B2 (en) Clearing bank descriptors for reuse by a gate bank

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant