KR101954623B1 - 가상화 환경에서의 소프트웨어 업데이트 장치 및 방법 - Google Patents
가상화 환경에서의 소프트웨어 업데이트 장치 및 방법 Download PDFInfo
- Publication number
- KR101954623B1 KR101954623B1 KR1020170025478A KR20170025478A KR101954623B1 KR 101954623 B1 KR101954623 B1 KR 101954623B1 KR 1020170025478 A KR1020170025478 A KR 1020170025478A KR 20170025478 A KR20170025478 A KR 20170025478A KR 101954623 B1 KR101954623 B1 KR 101954623B1
- Authority
- KR
- South Korea
- Prior art keywords
- software
- profile
- virtual machine
- update
- target
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
가상화 환경에서의 소프트웨어 업데이트 장치 및 방법이 개시된다. 본 발명에 따른 가상화 환경에서의 소프트웨어 업데이트 장치에 의해 수행되는 소프트웨어 업데이트 방법은, 게스트 운영체제 영역에서 소프트웨어를 업데이트 할 때 호출되는 오퍼레이션을 모니터링 하는 단계, 상기 모니터링 결과를 분석하여 소프트웨어 프로파일을 생성하는 단계, 가상머신 모니터 영역에서 대상 가상머신의 가상 디스크 이미지를 대상 디렉터리에 마운트하는 단계, 그리고 상기 소프트웨어 프로파일에 명시된 파일 및 레지스트리 중 적어도 어느 하나의 업데이트 정보를 마운트된 상기 대상 디렉터리에 반영하는 단계를 포함한다.
Description
본 발명은 가상화 환경에서 소프트웨어를 업데이트하는 기술에 관한 것으로, 특히 클라우드 가상화 환경에서 소프트웨어 프로파일을 생성하고, 생성된 소프트웨어 프로파일을 적용하여 소프트웨어를 업데이트하는 기술에 관한 것이다.
허용되지 않은 수정이나 접근으로부터 프로세스를 보호하기 위하여, 컴퓨터 시스템은 계층적으로 Ring 0 내지 ring 3까지 총 4개의 프로텍션 도메인(Protection domain)을 갖는다.
프로텍션 도메인은 컴퓨터 시스템 자원에 접근할 수 있는 권한의 레벨을 정의한 것으로, 사용자 영역을 Ring 3(최하위 권한)로, 커널 영역을 Ring 0(최상위 권한)로 정의한다. 이에 따라, 사용자 영역에서 컴퓨터 시스템의 자원을 사용하기 위해서는 반드시 커널 영역에 시스템 자원 접근을 요청해야 한다.
가상화 환경에서는 호스트 컴퓨터에서 다수의 게스트 운영체제를 동시에 실행하기 위해 하이퍼바이저 또는 가상머신 모니터(Virtual Machine Monitor)로 불리는 논리적 플랫폼 레이어가 존재한다. 해당 논리적 플랫폼 레이어는 컴퓨터 시스템의 프로텍션 도메인에서 논리적으로 Ring -1, 즉 새로운 최상위 권한을 갖는다. 따라서 Ring 0 권한을 갖는 게스트 운영체제의 커널이 악성코드에 의해 전복되더라도 Ring -1 권한을 갖는 가상머신 모니터 컨텍스트에 접근하는 것은 시스템 구조 상 불가능하다.
이러한 가상머신 모니터 영역의 특성을 이용하여, 게스트 운영체제의 보안 이벤트를 가상머신 모니터 영역에서 모니터링 하거나 보안에 민감한 게스트 운영체제의 작업을 가상머신 모니터 영역에서 대신 수행하는 방안이 제시되고 있다.
한편, 클라우드 가상화 환경을 대상으로 게스트 운영체제의 소프트웨어를 설치 및 관리하기 위하여, 게스트 운영체제 또는 서드파티 업체가 제공하는 소프트웨어 설치관리자를 활용할 수 있다. 운영체제는 일반적으로 소프트웨어의 추가, 삭제, 시스템 설정 변경 및 복원용 백업 생성에 관련된 일체의 작업을 수행하는 고유의 소프트웨어 설치관리자와 기타 지원 도구들을 포함한다. 일례로, Windows 운영체제에서는 운영체제 내부의 설치관리자, PowerShell과 WMI(Windows Management Instrumentation) 서비스를 활용하여 로컬, 원격 또는 가상머신 모니터 영역에서 소프트웨어 설치관리를 수행할 수 있다.
이러한 소프트웨어 설치 관리 방법은 일반 호스트 환경과 클라우드 가상화 호스트 환경에 모두 적용 가능하다. 그리고 운영체제 벤더가 제공하는 소프트웨어 설치관리 기능을 활용할 수 있다는 장점이 있다.
그러나 프로텍션 도메인의 분류에 따라, 소프트웨어 설치관리자와 기타 지원 도구들 전부 또는 일부가 Ring 0부터 Ring 3사이의 권한 레벨에서 수행되므로, 해당 소프트웨어 설치관리자에 의해 수행되는 모든 작업이 Ring 0 권한을 갖는 악성코드의 위협에 노출된다.
일례로, 윈도우즈 운영체제의 보안 업데이트 설치 작업 수행 시 운영체제 내부에 악성 프록시 에이전트를 설치하여 악의적인 시스템 드라이버를 설치하는 중간자 공격(Man-in-the-Middle Attack)이 발생할 수 있다. 또한, 이러한 보안 약점은 클라우드 가상화 인프라 환경의 가상머신 내부에서도 그대로 재현될 수 있다.
따라서, 소프트웨어 업데이트를 게스트 운영체제 내부에서 수행할 때 발생할 수 있는 보안 약점을 최소화할 수 있는 기술의 개발이 필요하다.
본 발명의 목적은 게스트 운영체제 내부에서 소프트웨어 업데이트를 수행하는 동안 발생할 수 있는 보안 약점을 최소화하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 가상화 환경에서의 소프트웨어 업데이트 장치에 의해 수행되는 소프트웨어 업데이트 방법은, 게스트 운영체제 영역에서 소프트웨어를 업데이트 할 때 호출되는 오퍼레이션을 모니터링 하는 단계, 상기 모니터링 결과를 분석하여 소프트웨어 프로파일을 생성하는 단계, 가상머신 모니터 영역에서 대상 가상머신의 가상 디스크 이미지를 대상 디렉터리에 마운트하는 단계, 그리고 상기 소프트웨어 프로파일에 명시된 파일 및 레지스트리 중 적어도 어느 하나의 업데이트 정보를 마운트된 상기 대상 디렉터리에 반영하는 단계를 포함한다.
이때, 상기 호출되는 오퍼레이션을 모니터링 하는 단계는, 모니터링의 대상이 되는 프로세스 및 오퍼레이션 중 적어도 어느 하나를 포함하는 모니터링 대상을 설정하는 단계, 그리고 상기 모니터링 대상이 상기 소프트웨어를 업데이트 할 때 호출되는 상기 오퍼레이션의 호출 내역을 모니터링 하여 로그 데이터를 생성하는 단계를 포함 할 수 있다.
이때, 상기 소프트웨어 프로파일을 생성하는 단계는, 상기 소프트웨어의 업데이트가 시스템 재부팅을 필요로 하는 업데이트인지 여부를 판단하는 단계, 상기 시스템 재부팅이 필요한 것으로 판단된 경우, 지연된 파일 리네임 작업을 수행하는 프로세스를 상기 모니터링 대상으로 설정하는 단계, 상기 시스템 재부팅 시, 모니터링의 대상이 되는 상기 오퍼레이션이 동작하도록 설정하고, 상기 시스템 재부팅을 수행하는 단계, 그리고 상기 오퍼레이션의 호출 내역을 모니터링 하여 상기 로그 데이터를 생성하는 단계를 포함 할 수 있다.
이때, 상기 시스템 재부팅이 필요하지 않은 것으로 판단된 경우, 상기 로그 데이터를 이용하여 원시 소프트웨어 프로파일을 생성하는 단계, 그리고 상기 원시 소프트웨어 프로파일의 목록을 기반으로 상기 소프트웨어 프로파일을 생성하는 단계를 더 포함 할 수 있다.
이때, 상기 원시 소프트웨어 프로파일의 목록을 기반으로 상기 소프트웨어 프로파일을 생성하는 단계는, 상기 원시 소프트웨어 프로파일을 상기 대상 가상머신에 적용할 때 미치는 영향 정도 및 오류를 기반으로, 상기 소프트웨어 프로파일을 생성 할 수 있다.
이때, 상기 가상 디스크 이미지를 대상 디렉터리에 마운트하는 단계는, 상기 소프트웨어 프로파일을 적용할 상기 대상 가상머신의 상기 가상 디스크 이미지를 선택하는 단계, 상기 가상머신 모니터 영역에서 상기 대상 디렉터리의 위치를 설정하는 단계, 그리고 선택된 상기 가상 디스크 이미지를 상기 대상 디렉터리의 위치에 마운트하는 단계를 포함할 수 있다.
이때, 상기 업데이트 정보를 마운트된 상기 대상 디렉터리에 반영하는 단계는, 상기 소프트웨어 프로파일을 이용하여 마운트된 상기 대상 디렉터리의 하위에서 레지스트리 파일을 탐색하는 단계, 탐색된 상기 레지스트리 파일을 파싱하여 레지스트리 업데이트를 수행하는 단계, 그리고 상기 가상 디스크 이미지의 마운트를 해제하는 단계를 포함 할 수 있다.
이때, 상기 모니터링 대상, 상기 소프트웨어 프로파일 및 상기 대상 디렉터리의 위치 중 적어도 어느 하나를 재설정하는 단계를 더 포함 할 수 있다.
이때, 상기 재설정하는 단계는, 상기 가상머신이 비활성화 상태일 때, 상기 가상머신이 비활성화 상태에서 활성화 상태로 전환되기 직전 상태일 때 및 상기 가상머신이 활성화 상태일 때 중 적어도 어느 하나의 상태에서 상기 마운트하는 단계 및 상기 대상 디렉터리에 반영하는 단계를 수행하도록 하는 운용 모드를 제공할 수 있다.
이때, 상기 소프트웨어 프로파일은, 상기 소프트웨어의 명칭, 업데이트의 명칭, 상기 소프트웨어 프로파일의 속성, 상기 모니터링 대상이 되는 프로세스의 식별자, 상기 프로세스의 명칭, 상기 모니터링 대상이 되는 오퍼레이션의 사용 시간, 상기 오퍼레이션의 명칭, 상기 오퍼레이션의 매개변수를 파싱하여 획득할 수 있는 파일, 상기 레지스트리의 경로명, 상기 오퍼레이션의 수행 결과, 상기 오퍼레이션의 상세 매개변수 정보, 실제 생성된 파일, 상기 레지스트리의 정보 중 적어도 어느 하나를 포함하는 하나 이상의 레코드로 구성될 수 있다.
또한, 본 발명의 일실시예에 따른 가상화 환경에서의 소프트웨어 업데이트 장치는 게스트 운영체제 영역에서 소프트웨어를 업데이트 할 때 호출되는 오퍼레이션을 모니터링 하는 모니터링부, 상기 모니터링 결과를 분석하여 소프트웨어 프로파일을 생성하는 소프트웨어 프로파일 생성부, 가상머신 모니터 영역에서 대상 가상머신의 가상 디스크 이미지를 대상 디렉터리에 마운트하는 마운트부, 그리고 상기 소프트웨어 프로파일에 명시된 파일 및 레지스트리 중 적어도 어느 하나의 업데이트 정보를 마운트된 상기 대상 디렉터리에 반영하는 파일 제어부를 포함한다.
이때, 상기 모니터링부는, 모니터링의 대상이 되는 프로세스 및 오퍼레이션 중 적어도 어느 하나를 포함하는 모니터링 대상을 설정하고, 상기 모니터링 대상이 상기 소프트웨어를 업데이트 할 때 호출되는 상기 오퍼레이션의 호출 내역을 모니터링 하여 로그 데이터를 생성 할 수 있다.
이때, 상기 소프트웨어 프로파일 생성부는, 상기 소프트웨어의 업데이트가 시스템 재부팅을 필요로 하는 업데이트인지 여부를 판단하고, 상기 시스템 재부팅이 필요한 것으로 판단된 경우, 지연된 파일 리네임 작업을 수행하는 프로세스를 상기 모니터링 대상으로 설정하며, 상기 시스템 재부팅 시, 모니터링의 대상이 되는 상기 오퍼레이션이 동작하도록 설정하고, 상기 시스템 재부팅을 수행하며, 상기 오퍼레이션의 호출 내역을 모니터링 하여 상기 로그 데이터를 생성 할 수 있다.
이때, 상기 소프트웨어 프로파일 생성부는, 상기 시스템 재부팅이 필요하지 않은 것으로 판단된 경우, 상기 로그 데이터를 이용하여 원시 소프트웨어 프로파일을 생성하고, 상기 원시 소프트웨어 프로파일의 목록을 기반으로 상기 소프트웨어 프로파일을 생성 할 수 있다.
이때, 상기 소프트웨어 프로파일 생성부는, 상기 원시 소프트웨어 프로파일을 상기 대상 가상머신에 적용할 때 미치는 영향 정도 및 오류를 기반으로, 상기 소프트웨어 프로파일을 생성 할 수 있다.
이때, 상기 마운트부는, 상기 소프트웨어 프로파일을 적용할 상기 대상 가상머신의 상기 가상 디스크 이미지를 선택하고, 상기 가상머신 모니터 영역에서 상기 대상 디렉터리의 위치를 설정하며, 선택된 상기 가상 디스크 이미지를 상기 대상 디렉터리의 위치에 마운트 할 수 있다.
이때, 상기 파일 제어부는, 상기 소프트웨어 프로파일을 이용하여 마운트된 상기 대상 디렉터리의 하위에서 레지스트리 파일을 탐색하고, 탐색된 상기 레지스트리 파일을 파싱하여 레지스트리 업데이트를 수행하며, 상기 가상 디스크 이미지의 마운트를 해제 할 수 있다.
이때, 상기 모니터링 대상, 상기 소프트웨어 프로파일 및 상기 대상 디렉터리의 위치 중 적어도 어느 하나를 재설정하는 관리부를 더 포함 할 수 있다.
이때, 상기 관리부는, 상기 마운트부 및 상기 파일 제어부 중 적어도 어느 하나가, 상기 가상머신이 비활성화 상태일 때, 상기 가상머신이 비활성화 상태에서 활성화 상태로 전환되기 직전 상태일 때 및 상기 가상머신이 활성화 상태일 때 중 적어도 어느 하나의 상태에서 동작하도록 하는 운용 모드를 제공할 수 있다.
이때, 상기 소프트웨어 프로파일은, 상기 소프트웨어의 명칭, 업데이트의 명칭, 상기 소프트웨어 프로파일의 속성, 상기 모니터링 대상이 되는 프로세스의 식별자, 상기 프로세스의 명칭, 상기 모니터링 대상이 되는 오퍼레이션의 사용 시간, 상기 오퍼레이션의 명칭, 상기 오퍼레이션의 매개변수를 파싱하여 획득할 수 있는 파일, 상기 레지스트리의 경로명, 상기 오퍼레이션의 수행 결과, 상기 오퍼레이션의 상세 매개변수 정보, 실제 생성된 파일, 상기 레지스트리의 정보 중 적어도 어느 하나를 포함하는 하나 이상의 레코드로 구성될 수 있다.
본 발명에 따르면, 게스트 운영체제 내부에서 소프트웨어 업데이트를 수행하는 동안 발생할 수 있는 보안 약점을 최소화 할 수 있다.
도 1은 본 발명의 일실시예에 따른 가상화 환경에서의 소프트웨어 업데이트 장치의 구성을 나타낸 블록도이다.
도 2는 본 발명의 일실시예에 따른 가상화 환경에서의 소프트웨어 업데이트 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 일실시예에 따른 소프트웨어 프로파일 생성 과정을 설명하기 위한 순서도이다.
도 4는 본 발명의 일실시예에 따른 소프트웨어 프로파일의 구성을 설명하기 위한 예시도이다.
도 5는 도 3의 S330 단계에서 IRP 관련 오퍼레이션을 모니터링 하는 과정을 설명하기 위한 예시도이다.
도 6은 도 3의 S330 단계에서 콜백 관련 오퍼레이션을 모니터링 하는 과정을 설명하기 위한 예시도이다.
도 7은 본 발명의 일실시예에 따른 소프트웨어 프로파일의 적용 과정을 설명하기 위한 순서도이다.
도 8은 본 발명의 일실시예에 따른 가상화 컴퓨팅 인프라 환경에서의 소프트웨어 업데이트 과정을 나타낸 도면이다.
도 9는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
도 2는 본 발명의 일실시예에 따른 가상화 환경에서의 소프트웨어 업데이트 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 일실시예에 따른 소프트웨어 프로파일 생성 과정을 설명하기 위한 순서도이다.
도 4는 본 발명의 일실시예에 따른 소프트웨어 프로파일의 구성을 설명하기 위한 예시도이다.
도 5는 도 3의 S330 단계에서 IRP 관련 오퍼레이션을 모니터링 하는 과정을 설명하기 위한 예시도이다.
도 6은 도 3의 S330 단계에서 콜백 관련 오퍼레이션을 모니터링 하는 과정을 설명하기 위한 예시도이다.
도 7은 본 발명의 일실시예에 따른 소프트웨어 프로파일의 적용 과정을 설명하기 위한 순서도이다.
도 8은 본 발명의 일실시예에 따른 가상화 컴퓨팅 인프라 환경에서의 소프트웨어 업데이트 과정을 나타낸 도면이다.
도 9는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일실시예에 따른 가상화 환경에서의 소프트웨어 업데이트 장치의 구성을 나타낸 블록도이다.
도 1에 도시한 바와 같이, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 복수의 가상머신이 동작하는 가상화 환경의 일부로 동작하는 컴퓨터 시스템 상에서, 가상머신 내부의 소프트웨어 업데이트를 수행한다.
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 모니터링부(110), 소프트웨어 프로파일 생성부(120), 마운트부(130), 파일 제어부(140) 및 관리부(150)를 포함한다.
먼저, 모니터링부(110)는 게스트 운영체제 영역에서 소프트웨어를 업데이트할 때 호출되는 오퍼레이션을 모니터링한다.
여기서, 게스트 운영체제 영역은 Ring 3에서 Ring 0까지의 권한을 갖는 게스트 운영체제 플랫폼 레이어를 의미한다. 반면, 가상머신 모니터 영역은 가상머신 모니터에 의해 논리적으로 생성된 최상위 권한인 Ring -1의 특권 레벨을 갖는 플랫폼 레이어를 의미한다.
그리고 모니터링부(110)는 소프트웨어의 업데이트를 수행하는 프로세스의 오퍼레이션을 모니터링한다. 여기서, 소프트웨어의 업데이트는 소프트웨어 또는 업데이트의 설치, 삭제, 복원용 백업 생성 작업 중 적어도 어느 하나의 동작을 의미할 수 있다.
이때, 모니터링부(110)는 모니터링 대상을 설정하고, 모니터링 대상이 소프트웨어를 업데이트할 때 호출되는 오퍼레이션의 호출 내역을 모니터링 하여, 소프트웨어 프로파일 생성에 필요한 로그 데이터를 생성할 수 있다. 여기서, 모니터링 대상은 모니터링의 대상이 되는 프로세스 및 오퍼레이션 중 적어도 어느 하나를 포함할 수 있다.
그리고 모니터링부(110)는 모니터링 모듈 드라이버 및 모니터링 모듈 컨트롤러를 포함할 수 있다. 모니터링 모듈 드라이버는 게스트 운영체제의 커널 영역에서 게스트 운영체제가 제공하는 필터 드라이버 또는 API 콜백 루틴으로부터 IRP 오퍼레이션 또는 콜백 오퍼레이션을 전달받고, 전달받은 오퍼레이션을 유저 영역의 모니터링 모듈 컨트롤러로 전달할 수 있다.
또한, 모니터링 모듈 컨트롤러는 게스트 운영체제의 유저 영역에서 모니터링 모듈 드라이버와 통신하고, 오퍼레이션 모니터링 작업을 제어하며, 모니터링 결과를 참조하여 소프트웨어 프로파일 생성에 필요한 로그 데이터를 생성할 수 있다.
모니터링부(110)의 모니터링 모듈 컨트롤러는 모니터링 모듈 드라이버의 모니터링 대상 프로세스를 지정할 수 있으며, 모니터링 대상 프로세스가 호출하는 별도의 프로세스를 모니터링 대상에 추가하여 오퍼레이션 모니터링을 수행할 수 있다.
또한, 모니터링부(110)는 소프트웨어의 설치 또는 삭제를 수행한 후 시스템이 재부팅 될 때, 지연된 파일 리네임 작업(Pending File Rename Operation)의 수행에 따른 오퍼레이션 발생을 추가로 모니터링 할 수 있다.
그리고 모니터링부(110)는 파일의 생성, 변경, 삭제와 관련된 IRP_MJ_CREATE, IRP_MJ_WRITE, IRP_MJ_SET_INFORMATION, IRP_MJ_SET_SECURITY IRP 오퍼레이션 등을 모니터링하고, 모니터링 대상이 되는 오퍼레이션을 추가하거나 제외하여 모니터링 작업을 수행할 수 있다.
또한 모니터링부(110)는 레지스트리의 생성, 변경, 삭제와 관련된 RegCreateKey, RegDeleteKey, RegSetInfoKey, RegSetKeySecurity, RegSetValue의 Callback 오퍼레이션 등을 모니터링하고, 모니터링 대상이 되는 오퍼레이션을 추가하거나 제외하여 모니터링 작업을 수행할 수 있다.
다음으로 소프트웨어 프로파일 생성부(120)는 모니터링 결과를 분석하여 소프트웨어 프로파일을 생성한다.
소프트웨어 프로파일 생성부(120)는 로그 데이터의 오퍼레이션 모니터링 내역을 분석하고, 실제 생성된 파일 및 레지스트리 정보를 추출하여 원시 소프트웨어 프로파일을 생성할 수 있다. 또한, 소프트웨어 프로파일 생성부(120)는 오퍼레이션에 의해 실제 생성된 파일 및 레지스트리 정보를 가상 디스크 이미지로부터 수집할 수 있다.
또한, 소프트웨어 프로파일 생성부(120)는 최종적으로 생성된 소프트웨어 프로파일을 소프트웨어 프로파일 데이터베이스에 저장할 수 있다. 소프트웨어 프로파일 생성부(120)는 모니터링 내역과 가상 디스크 이미지로부터 수집된 정보를 분석하여, 소프트웨어 프로파일에 상응하는 레코드 형식에 맞게 데이터를 가공할 수 있으며, 가공한 데이터인 원시 소프트웨어 프로파일을 소프트웨어 프로파일 데이터베이스에 저장할 수 있다.
그리고 소프트웨어 프로파일 생성부(120)는 원시 소프트웨어 프로파일의 목록 중에서, 적용 대상 게스트 운영체제에 큰 영향을 미치지 않거나, 심각한 오류를 유발하는 목록을 제거하고, 적용 대상 게스트 운영체제의 컨텍스트에 상응하도록 원시 소프트웨어 프로파일의 목록을 수정하여, 최종 소프트웨어 프로파일을 생성할 수 있다.
소프트웨어 프로파일 생성부(120)는 원시 소프트웨어 프로파일이 포함하는 레코드의 파일 경로 명이 파일 시스템 메타 영역 및 레지스트리 파일 중 적어도 어느 하나를 가리키는 경우 또는 IRP_MJ_CREATE 오퍼레이션의 옵션(options) 매개변수 값이 FILE_OPENED일 경우 해당 레코드를 제거할 수 있다.
또한, 소프트웨어 프로파일 생성부(120)는 소프트웨어 프로파일을 대상 게스트 운영체제에 적용하려는 시점을 기준으로, 레지스트리의 소프트웨어 설치 일자에 해당하는 키, 서브 키 및 값을 수정하고, 시스템 정보에 해당하는 키, 서브 키 및 값을 대상 게스트 운영체제의 시스템 정보에 상응하도록 수정할 수 있다.
그리고 소프트웨어 프로파일 생성부(120)는 소프트웨어의 업데이트가 시스템 재부팅을 필요로하는 업데이트인지 여부를 판단할 수 있다.
판단 결과, 해당 업데이트가 시스템 재부팅을 필요로 하는 경우, 소프트웨어 프로파일 생성부(120)는 지연된 파일 리네임 작업을 수행하는 프로세스를 모니터링 대상으로 설정한다. 그리고 소프트웨어 프로파일 생성부(120)는 시스템 재부팅 시 모니터링의 대상이 되는 오퍼레이션이 동작되도록 설정하고 시스템 재부팅을 수행한다. 또한, 소프트웨어 프로파일 생성부(120)는 오퍼레이션의 호출 내역을 모니터링 하여 로그 데이터를 생성할 수 있다.
반면, 해당 업데이트가 시스템 재부팅을 필요로 하지 않는 경우, 소프트웨어 프로파일 생성부(120)는 로그 데이터를 이용하여 원시 소프트웨어 프로파일을 생성하고, 원시 소프트웨어 프로파일의 목록을 기반으로 소프트웨어 프로파일을 생성할 수 있다.
이때, 소프트웨어 프로파일 생성부(120)는 원시 소프트웨어 프로파일을 대상 가상머신에 적용할 때 미치는 영향 정도 및 오류를 기반으로, 소프트웨어 프로파일을 생성할 수 있다.
그리고 마운트부(130)는 가상머신 모니터 영역에서 대상 가상머신의 가상 디스크 이미지를 대상 디렉터리에 마운트한다.
마운트부(130)는 소프트웨어 프로파일을 적용하고자 하는 가상머신의 가상 디스크 이미지를 가상머신 모니터 영역의 특정 디렉터리에 마운트 할 수 있다. 이때, 마운트부(130)는 소프트웨어 프로파일을 적용할 대상 가상머신의 가상 디스크 이미지를 선택하고, 가상머신 모니터 영역에서 대상 디렉터리의 위치를 설정할 수 있다. 그리고 마운트부(130)는 선택된 가상 디스크 이미지를 대상 디렉터리의 위치에 마운트할 수 있다.
여기서, 가상 디스크 이미지는 img, qcow2, vhd, vmdk, ova, ovf 등의 확장자를 가지는 가상 디스크 이미지 파일을 의미할 수 있다. 그리고 가상 디스크 이미지 파일은 ext 2/3/4, FAT, NTFS 등과 같은 파일시스템 정보를 포함할 수 있다.
마운트부(130)는 가상 디스크 이미지 포맷과 해당 이미지 포맷이 포함하는 파일 시스템을 파싱하여, 파일 시스템 내부 디렉터리 및 파일 정보를 구조화할 수 있다. 그리고 마운트부(130)는 구조화된 정보에 접근하거나, 새로운 디렉터리 및 파일을 생성, 변경 및 삭제하는 업데이트를 수행할 수 있다.
또한, 마운트부(130)는 가상머신 모니터 영역 시스템의 단일 소프트웨어 또는 가상머신 모니터 영역 시스템과 네트워크로 연결된 서버-클라이언트 소프트웨어 형태로 구성될 수 있다.
다음으로 파일 제어부(140)는 소프트웨어 프로파일에 명시된 파일 및 레지스트리 중 적어도 어느 하나의 업데이트 정보를 마운트된 대상 디렉터리에 반영할 수 있다.
파일 제어부(140)는 마운트 디렉터리에 접근하고, 소프트웨어 프로파일을 참조하여 소프트웨어 업데이트 작업을 수행할 수 있다. 즉, 파일 제어부(140)는 대상 디렉터리에 접근하여 소프트웨어 또는 업데이트의 설치 작업, 삭제 작업 및 복원용 백업 생성 작업 중 적어도 어느 하나의 소프트웨어 업데이트 작업을 수행할 수 있다.
또한, 파일 제어부(140)는 소프트웨어 프로파일을 이용하여 마운트된 대상 디렉터리의 하위에서 레지스트리 파일을 탐색한다. 그리고 파일 제어부(140)는 탐색된 레지스트리의 파일을 파싱하여 레지스트리 업데이트를 수행하고, 가상 디스크 이미지의 마운트를 해제할 수 있다.
이때, 파일 제어부(140)는 탐색된 레지스트리의 파일 구조를 해석하여, 소프트웨어 프로파일에 따라 레지스트리 키, 서브 키 및 값의 생성, 변경, 삭제 작업을 수행할 수 있다.
그리고 소프트웨어 프로파일이 포함하는 레코드에서 오퍼레이션 종류의 항목이 IRP_MJ_CREATE이고, 오퍼레이션 수행 결과 항목이 SUCCESS이며, 오퍼레이션 상세 매개변수 정보 항목의 options 값이 Directory일 경우, 파일 제어부(140)는 해당 레코드의 파일 경로명 항목에 기재된 디렉터리를 대상 디렉터리 하위의 동일한 상대 경로에 생성할 수 있다.
또한, 소프트웨어 프로파일이 포함하는 레코드에서 오퍼레이션 종류 항목이IRP_MJ_CREATE이고, 오퍼레이션 수행 결과 항목이 SUCCESS이며, 오퍼레이션 상세 매개변수 정보 항목의 options 값이 FILE_DELETE_ON_CLOSE일 경우, 파일 제어부(140)는 해당 레코드의 파일 경로명 항목에 기재된 파일을 대상 디렉터리 하위의 동일한 상대 경로에서 제거할 수 있다.
파일 제어부(140)는 소프트웨어 프로파일이 포함하는 레코드에서 오퍼레이션 종류가 IRP_MJ_WRITE이고, 오퍼레이션 수행 결과가 SUCCESS일 경우, 해당 레코드의 파일 경로명 항목에 기재된 파일을 대상 디렉터리 하위의 동일한 상대 경로에 생성할 수 있다.
그리고 파일 제어부(140)는 소프트웨어 프로파일이 포함하는 레코드에서 오퍼레이션 종류가 IRP_MJ_SET_SECURITY이고, 오퍼레이션 수행 결과가 SUCCESS일 경우, 해당 레코드의 파일 경로명 항목에 기재된 파일과 오퍼레이션 상세 매개변수 항목의 파일 보안 속성 정보를 참조하여, 대상 디렉터리 하위의 동일한 상대 경로에 존재하는 파일의 보안속성 정보를 변경할 수 있다.
또한 파일 제어부(140)는 레지스트리 파일을 탐색하고, 소프트웨어 프로파일을 참조하여 소프트웨어 업데이트 작업을 수행할 수도 있다. 파일 제어부(140)는 소프트웨어 프로파일이 포함하는 레코드에서 오퍼레이션 종류가 RegCreateKey이고 오퍼레이션 수행 결과가 SUCCESS이고, 오퍼레이션 상세 매개변수 정보의 disposition 값이 REG_CREATED_NEW_KEY일 경우, 해당 레코드의 레지스트리 경로명 항목에 기재된 키 또는 서브 키를 대상 게스트 운영체제의 동일한 레지스트리 경로에 생성할 수 있다.
그리고 파일 제어부(140)는 소프트웨어 프로파일이 포함하는 레코드에서 오퍼레이션 종류가 RegSetValue일 경우, 해당 레코드의 레지스트리 경로명 항목에 기재된 값을 대상 게스트 운영체제의 동일한 레지스트리 경로에 생성할 수 있다.
또한, 파일 제어부(140)는 소프트웨어 프로파일이 포함하는 레코드에서 오퍼레이션 종류가 RegDeleteKey이고, 오퍼레이션 수행 결과가 SUCCESS일 경우, 해당 레코드의 레지스트리 경로명 항목에 기재된 키 또는 서브 키와 해당 키가 포함하는 값을 대상 게스트 운영체제의 레지스트리에서 제거할 수 있다.
마지막으로 관리부(150)는 가상화 환경에서의 소프트웨어 업데이트 장치(100)의 동작 및 설정을 제어한다.
관리부(150)는 모니터링 대상, 소프트웨어 프로파일 및 대상 디렉터리의 위치 중 적어도 어느 하나를 재설정할 수 있다. 소프트웨어 프로파일을 생성하는 과정에서, 관리부(150)는 모니터링 하고자 하는 프로세스 및 오퍼레이션 중 적어도 어느 하나를 포함하는 모니터링 대상을 추가 또는 삭제할 수 있다.
또한, 관리부(150)는 소프트웨어 프로파일을 생성하는 과정에서, 소프트웨어 프로파일을 구성하는 레코드의 항목을 추가하거나 삭제할 수 있다. 그리고 관리부(150)는 소프트웨어 프로파일을 적용하는 과정에서 가상 디스크 이미지의 마운트 경로를 설정할 수 있다.
또한, 관리부(150)는 가상화 환경에서의 소프트웨어 업데이트 장치(100)의 구성요소의 동작 및 동작과 관련된 설정 정보를 로컬 또는 원격에서 제어할 수 있다. 또한 관리부(150)는 운용 모드를 로컬 또는 원격에서 설정할 수 있도록 외부 제어 인터페이스를 제공할 수 있다.
관리부(150)는 가상머신이 비활성화 상태일 때, 가상머신이 비활성화 상태에서 활성화 상태로 전환되기 직전 상태일 때 및 가상머신이 활성화 상태일 때 중 적어도 어느 하나의 상태를 포함하는 운용 모드를 제공하고, 해당 운용 모드에 상응하도록 가상화 환경에서의 소프트웨어 업데이트 장치(100)의 동작 및 설정을 제어할 수 있다.
이하에서는 도 2 내지 도 7을 통하여 본 발명의 일실시예에 따른 가상화 환경에서의 소프트웨어 업데이트 장치에 의해 수행되는 누설 전자파에 의한 가상화 환경에서의 소프트웨어 업데이트 방법에 대하여 더욱 상세하게 설명한다.
도 2는 본 발명의 일실시예에 따른 가상화 환경에서의 소프트웨어 업데이트 방법을 설명하기 위한 순서도이다.
먼저, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 오퍼레이션 호출 내역을 모니터링한다(S210).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 게스트 운영체제 영역에서 소프트웨어를 업데이트할 때 호출되는 오퍼레이션을 모니터링한다.
이때, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 모니터링 대상을 설정하고, 모니터링 대상이 소프트웨어를 업데이트할 때 호출되는 오퍼레이션 호출 내역을 모니터링 하여 로그 데이터를 생성할 수 있다. 여기서, 모니터링 대상은 모니터링의 대상이 되는 프로세스 및 오퍼레이션 중 적어도 어느 하나를 포함할 수 있다.
설명의 편의상, 가상화 환경에서의 소프트웨어 업데이트 장치(100)가 S210 단계에서 모니터링 대상을 설정하는 것으로 설명하였으나 이에 한정하지 않고, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 후술할 S220 단계 내지 S240 단계를 수행하는 과정에서 모니터링하고자 하는 프로세스 및 오퍼레이션 중 적어도 어느 하나를 추가 또는 제외하는 동작을 수행할 수 있다.
그리고 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 소프트웨어 프로파일을 생성한다(S220).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 S210 단계에서 모니터링된 결과를 분석하여, 소프트웨어 프로파일을 생성한다.
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 소프트웨어의 업데이트가 시스템 재부팅을 필요로 하는 업데이트인지 여부를 판단하고, 시스템 재부팅이 필요한 것으로 판단된 경우, 지연된 파일 리네임 작업(Pending File Rename Operation)을 수행하는 프로세스를 모니터링 대상으로 설정할 수 있다.
그리고 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 시스템 재부팅 시 모니터링의 대상이 되는 오퍼레이션의 동작하도록 설정하고, 시스템 재부팅을 수행한다. 시스템 재부팅 시, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 오퍼레이션의 호출 내역을 모니터링 하여 로그 데이터를 생성하는 S210 단계를 다시 수행할 수 있다.
반면, 시스템 재부팅이 필요하지 않은 것으로 판단된 경우, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 로그 데이터를 이용하여 원시 소프트웨어 프로파일을 생성한다. 그리고 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 원시 소프트웨어 프로파일의 목록을 기반으로 최종 소프트웨어 프로파일을 생성할 수 있다.
이때, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 원시 소프트웨어 프로파일을 대상 가상머신에 적용할 때 미치는 영향 정도 및 오류를 기반으로 소프트웨어 프로파일을 생성할 수 있다.
설명의 편의상, 가상화 환경에서의 소프트웨어 업데이트 장치(100)가 S220 단계를 통하여 소프트웨어 프로파일을 생성하는 것으로 설명하였으나 이에 한정하지 않고 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 후술할 S230 단계 및 S240 단계를 수행하는 과정에서 소프트웨어 프로파일을 구성하는 레코드의 항목을 추가하거나, 제외할 수 있다.
가상화 환경에서의 소프트웨어 업데이트 장치(100)가 오퍼레이션 호출 내역을 모니터링하고, 소프트웨어 프로파일을 생성하는 과정은 후술할 도 3을 통하여 더욱 상세하게 설명한다.
다음으로 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 가상 디스크 이미지를 마운트한다(S230).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 가상머신 모니터 영역에서 대상 가상머신의 가상 디스크 이미지를 대상 디렉터리에 마운트한다. 이때, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 소프트웨어 프로파일을 적용할 대상 가상머신의 가상 디스크 이미지를 선택할 수 있다.
그리고 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 가상머신 모니터 영역에서 대상 디렉터리의 위치를 설정하고, 선택된 가상 디스크 이미지를 대상 디렉터리의 위치에 마운트할 수 있다.
또한, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 소프트웨어 업데이트를 수행한다(S240).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 소프트웨어 프로파일에 명시된 파일 및 레지스트리 중 적어도 어느 하나의 업데이트 정보를 마운트된 대상 디렉터리에 반영하여 소프트웨어 업데이트를 수행할 수 있다.
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 마운트 디렉터리에 접근하고, 소프트웨어 프로파일을 참조하여 소프트웨어 업데이트 작업을 수행할 수 있다.
또한, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 소프트웨어 프로파일을 이용하여 마운트된 대상 디렉터리의 하위에서 레지스트리 파일을 탐색할 수 있다. 그리고 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 탐색된 레지스트리 파일을 파싱하여 레지스트리 업데이트를 수행할 수 있다.
마지막으로, 업데이트 수행을 완료한 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 마운트를 해제한다(S250).
가상화 환경에서의 소프트웨어 업데이트 장치(100)가 가상 디스크 이미지를 마운트하고, 업데이트 정보를 반영하며 마운트를 해제하는 과정은 후술할 도 7을 통하여 더욱 상세하게 설명한다.
이하에서는 도 3 및 도 4을 통하여 본 발명의 일실시예에 따른 가상화 환경에서의 소프트웨어 업데이트 장치에 의해 수행되는 소프트웨어 프로파일 생성 과정에 대하여 더욱 상세하게 설명한다.
도 3은 본 발명의 일실시예에 따른 소프트웨어 프로파일 생성 과정을 설명하기 위한 순서도이다.
먼저, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 모니터링 대상을 설정한다(S310).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 프로파일 전용 게스트 운영체제 영역에서, 소프트웨어 업데이트 작업을 수행하는 하나 이상의 모니터링 대상 프로세스와 모니터링 대상 오퍼레이션을 설정할 수 있다.
이때, 프로파일 전용 게스트 운영체제와 소프트웨어 프로파일을 적용하려는 대상 게스트 운영체제의 종류 및 버전은 동일할 수 있다.
그리고 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 소프트웨어 업데이트를 수행한다(S320).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 소프트웨어 또는 업데이트의 설치, 삭제, 복원용 백업 생성 중 적어도 어느 하나의 동작을 포함하는 소프트웨어 업데이트를 실행하여, 모니터링을 시작할 수 있다.
또한, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 로그 데이터를 생성한다(S330).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 모니터링 대상 프로세스가 소프트웨어 업데이트를 실행하면서 발생하는 오퍼레이션 호출 내역을 모니터링 하여, 로그 데이터를 생성할 수 있다.
다음으로 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 업데이트가 시스템 재부팅을 필요로 하는 업데이트인지 여부를 판단한다(S340).
시스템 재부팅을 필요로 하는 것으로 판단된 경우, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 지연된 파일 리네임 작업(Pending File Rename Operation)을 수행하는 프로세스를 모니터링 대상으로 지정한다(S350).
여기서, 지연된 파일 리네임 작업은 실제 수행 시점이 다음 번 부팅 시점으로 지연된 오퍼레이션들의 집합을 의미할 수 있다.
그리고 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 오퍼레이션 모니터링이 동작하도록 설정한 후, 시스템 재부팅을 수행한다(S360).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 지연된 파일 리네임 작업을 수행하는 프로세스를 모니터링 대상으로 지정한 후, 오퍼레이션 모니터링이 부팅 과정에서 동작하도록 설정한 후 시스템 재부팅을 수행할 수 있다.
시스템 재부팅을 수행한 후, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 로그 데이터를 생성하는 S330 단계를 재 수행할 수 있다.
반면, 시스템 재부팅이 필요하지 않은 것으로 판단된 경우, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 원시 소프트웨어 프로파일을 생성하고(S370), 원시 소프트웨어 목록을 기반으로 최종 소프트웨어 프로파일을 생성한다(S380).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 생성된 로그 데이터를 가공하여 원시 소프트웨어 프로파일을 생성하고, 소프트웨어 업데이트 과정에서 생성된 파일을 추출하여 원시 소프트웨어 프로파일 항목에 추가할 수 있다. 그리고 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 원시 소프트웨어 프로파일 목록을 수정하여 최종 소프트웨어 프로파일을 생성한다.
여기서, 최종 소프트웨어 프로파일은 게스트 운영체제용 소프트웨어 및 업데이트의 설치 및 삭제를 위한 소프트웨어 프로파일을 의미한다.
도 4는 본 발명의 일실시예에 따른 소프트웨어 프로파일의 구성을 설명하기 위한 예시도이다.
도 4에 도시한 바와 같이, 소프트웨어 프로파일(400)은 하나 이상의 레코드(410, 420)를 포함할 수 있다.
그리고 각각의 레코드(410, 420)들은 소프트웨어의 명칭, 업데이트의 명칭, 소프트웨어 프로파일의 속성, 모니터링 대상이 되는 프로세스의 식별자, 프로세스의 명칭, 모니터링 대상이 되는 오퍼레이션의 사용 시간, 오퍼레이션의 명칭, 오퍼레이션의 매개변수를 파싱하여 획득할 수 있는 파일, 레지스트리의 경로명, 오퍼레이션의 수행 결과, 오퍼레이션의 상세 매개변수 정보, 실제 생성된 파일, 레지스트리의 정보의 항목으로 구성될 수 있다.
여기서, 소프트웨어 프로파일의 속성 항목은 설치, 삭제 및 복원용 백업 생성으로 구분될 수 있다.
도 4의 제1 레코드(410)는 KB2506014라는 이름을 가진 업데이트 컴포넌트의 설치 과정에서, 설치를 수행하는 TrustedInstaller.exe 프로세스를 모니터링 했을 때 발생한 IRP_MJ_WRITE 오퍼레이션에 대한 상세한 모니터링 내용을 포함한다.
그리고 제2 레코드(420)는 KB2506014라는 이름을 가진 업데이트 컴포넌트의 설치 과정에서, 설치를 수행하는 TrustedInstaller.exe 프로세스를 모니터링 했을 때 발생한 RegCreateKey 오퍼레이션에 대한 상세한 모니터링 내용을 포함한다.
또한, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 S370 단계에서 생성된 원시 소프트웨어 프로파일 목록을 기반으로, 최종적인 소프트웨어 프로파일을 생성할 수 있다.
이때, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 원시 소프트웨어 프로파일을 대상 가상머신에 적용할 때 미치는 영향 정도 및 오류를 기반으로 소프트웨어 프로파일을 생성할 수 있다. 특히, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 대상 가상머신에 적용할 때 큰 영향을 미치지 않는 레코드 또는 심각한 오류를 유발하는 레코드를 제거하고, 적용 대상 게스트 운영체제의 컨텍스트에 상응하도록 레코드의 내용을 수정하여 최종적으로 소프트웨어 프로파일을 생성할 수 있다.
이하에서는 도 5 및 도 6을 통하여 본 발명의 일실시예에 따른 가상화 환경에서의 소프트웨어 업데이트 장치가 오퍼레이션을 모니터링 하는 과정에 대하여 더욱 상세하게 설명한다.
도 5는 도 3의 S330 단계에서 IRP 관련 오퍼레이션을 모니터링 하는 과정을 설명하기 위한 예시도이다.
도 5에 도시한 바와 같이, 모니터링부(모니터링 모듈)가 프로파일 전용 게스트 운영체제에서 IRP 관련 오퍼레이션(Operation)을 모니터링 할 때, 모니터링 대상 프로세스 집합이 NtCreateFile, NtDeleteFile 등의 오퍼레이션을 발생하는 경우, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 파일 시스템 디바이스 드라이버로 IRP 요청을 전달할 수 있다.
이때, 게스트 운영체제에 등록된 필터 디바이스 드라이버는 IRP 오퍼레이션을 중간에서 가로채어 모니터링 모듈 드라이버로 전달할 수 있다. 그리고 모니터링 모듈 드라이버는 전달받은 IRP 오퍼레이션을 다시 유저 영역의 모니터링 모듈 컨트롤러에 전달하여, IRP 오퍼레이션의 매개변수를 분석하여 원시 소프트웨어 프로파일 데이터를 생성할 수 있다.
도 6은 도 3의 S330 단계에서 콜백 관련 오퍼레이션을 모니터링 하는 과정을 설명하기 위한 예시도이다.
도 6과 같이, 모니터링부(모니터링 모듈)가 프로파일 전용 게스트 운영체제에서 콜백(Callback) 관련 오퍼레이션을 모니터링 할 때, 모니터링 대상 프로세스 집합이 RegNtPostCreateKeyEx 등의 오퍼레이션을 발생하면, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 레지스트리 하이브(Registry Hives)에 접근하여 해당 오퍼레이션이 명시하는 작업을 수행할 수 있다.
이때, 게스트 운영체제의 레지스트리 콜백 루틴은 콜백 오퍼레이션을 가로채어 모니터링 모듈 드라이버로 전달할 수 있다. 그리고 모니터링 모듈 드라이버는 전달받은 콜백 오퍼레이션을 다시 유저 영역의 모니터링 모듈 컨트롤러로 전달하여, 콜백 오퍼레이션의 매개변수를 분석하여 원시 소프트웨어 프로파일 데이터를 생성할 수 있다.
이하에서는 도 7을 통하여 본 발명의 일실시예에 따른 가상화 환경에서의 소프트웨어 업데이트 장치가 소프트웨어 프로파일을 적용하는 과정에 대하여 더욱 상세하게 설명한다.
도 7은 본 발명의 일실시예에 따른 소프트웨어 프로파일의 적용 과정을 설명하기 위한 순서도이다.
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 도 7의 과정을 통해 소프트웨어 프로파일을 대상 가상머신의 가상 디스크 이미지에 적용하여, 소프트웨어 업데이트를 수행한다.
먼저, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 가상 디스크 이미지를 선택한다(S710).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 소프트웨어 프로파일을 적용하려는 대상 가상머신의 가상 디스크 이미지를 선택한다.
그리고 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 대상 디렉터리의 위치를 설정한다(S720).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 가상머신 모니터 영역 시스템 내부에 대상 디렉터리의 위치를 지정한다.
다음으로 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 가상 디스크 이미지를 마운트한다(S730).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 S710 단계에서 선택된 가상 디스크 이미지를 S720 단계에서 설정한 대상 디렉터리의 위치에 마운트한다. 이때, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 가상 디스크 이미지의 마운트 경로를 설정하고, 설정된 마운트 경로에 상응하도록 가상 디스크 이미지를 마운트할 수 있다.
그리고 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 업데이트 정보를 반영한다(S740).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 소프트웨어 프로파일을 참조하여, 마운트된 대상 디렉터리의 하위에서 파일의 생성, 변경, 삭제 등의 업데이트를 수행한다.
그리고 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 소프트웨어 프로파일을 참조하여, 마운트된 대상 디렉터리의 하위에서 레지스트리 파일을 탐색하고, 탐색된 레지스트리 파일을 파싱하여, 레지스트리의 생성, 변경 삭제 등의 업데이트를 수행한다.
마지막으로, 가상화 환경에서의 소프트웨어 업데이트 장치(100)는 가상 디스크 이미지를 언마운트한다(S750).
가상화 환경에서의 소프트웨어 업데이트 장치(100)는 가상 디스크 이미지의 마운트를 해제하여, 소프트웨어 프로파일의 적용을 완료할 수 있다.
도 7에 도시된 소프트웨어 프로파일을 적용하는 과정의 각 단계는 가상머신이 비활성화 상태일 때, 가상머신이 비활성화 상태에서 활성화 상태로 전환되기 직전 상태일 때 및 가상머신이 활성화 상태일 때 중 적어도 어느 하나의 운용 모드에 상응하도록 동작할 수 있다.
이하에서는 도 8을 통하여 본 발명의 일실시예에 따른 가상화 컴퓨팅 인프라 환경에서의 소프트웨어 업데이트 과정에 대하여 더욱 상세하게 설명한다.
도 8은 본 발명의 일실시예에 따른 가상화 컴퓨팅 인프라 환경에서의 소프트웨어 업데이트 과정을 나타낸 도면이다.
도 8에 도시한 바와 같이, 가상화 환경에서의 소프트웨어 업데이트 장치는 게스트 운영체제 영역(810)에서 소프트웨어 업데이트를 수행하는 프로세스의 오퍼레이션을 모니터링 하여, 소프트웨어 프로파일 생성에 필요한 로그 데이터를 생성한다.
그리고 가상화 환경에서의 소프트웨어 업데이트 장치는 가상머신 모니터 영역(820)에서 로그 데이터의 오퍼레이션 모니터링 내역을 분석하고, 실제 생성된 파일 및 레지스트리 정보를 추출하여 원시 소프트웨어 프로파일을 생성한다. 또한, 가상화 환경에서의 소프트웨어 업데이트 장치는 원시 소프트웨어 프로파일을 필터링하여 생성한 소프트웨어 프로파일을 저장한다.
가상화 환경에서의 소프트웨어 업데이트 장치 소프트웨어 프로파일을 적용하고자 하는 가상머신의 가상 디스크 이미지 파일을 가상머신 모니터 시스템의 특정 디렉터리에 마운트하고, 마운트 디렉터리에 접근하여 소프트웨어 프로파일을 기반으로 소프트웨어 업데이트를 수행한다.
이때, 가상화 환경에서의 소프트웨어 업데이트 장치는 소프트웨어 프로파일에 명시된 파일 및 레지스트리 중 적어도 어느 하나의 업데이트 정보를 마운트 디렉터리에 반영하여 업데이트를 수행할 수 있다. 특히, 가상화 환경에서의 소프트웨어 업데이트 장치는 마운트 디렉터리에 접근하여, 레지스트리 파일을 탐색하고, 소프트웨어 프로파일을 참조하여 소프트웨어 업데이트를 수행할 수 있다.
여기서, 소프트웨어 업데이트는 소프트웨어 또는 업데이트의 설치, 삭제 및 복원용 백업 생성 중 적어도 어느 하나의 작업을 의미할 수 있다.
도 9은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
도 9을 참조하면, 본 발명의 실시예는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(900)에서 구현될 수 있다. 도 9에 도시된 바와 같이, 컴퓨터 시스템(900)은 버스(920)를 통하여 서로 통신하는 하나 이상의 프로세서(910), 메모리(930), 사용자 입력 장치(940), 사용자 출력 장치(950) 및 스토리지(960)를 포함할 수 있다. 또한, 컴퓨터 시스템(900)은 네트워크(980)에 연결되는 네트워크 인터페이스(970)를 더 포함할 수 있다. 프로세서(910)는 중앙 처리 장치 또는 메모리(930)나 스토리지(960)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(930) 및 스토리지(960)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(931)이나 RAM(932)을 포함할 수 있다.
따라서, 본 발명의 실시예는 컴퓨터로 구현된 방법이나 컴퓨터에서 실행 가능한 명령어들이 기록된 비일시적인 컴퓨터에서 읽을 수 있는 매체로 구현될 수 있다. 컴퓨터에서 읽을 수 있는 명령어들이 프로세서에 의해서 수행될 때, 컴퓨터에서 읽을 수 있는 명령어들은 본 발명의 적어도 한 가지 태양에 따른 방법을 수행할 수 있다.
이상에서와 같이 본 발명에 따른 가상화 환경에서의 소프트웨어 업데이트 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100: 가상화 환경에서의 소프트웨어 업데이트 장치
110: 모니터링부 120: 소프트웨어 프로파일 생성부
130: 마운트부 140: 파일 제어부
150: 관리부 400: 소프트웨어 프로파일
810: 게스트 운영체제 영역 820: 가상머신 모니터 영역
900: 컴퓨터 시스템 910: 프로세서
920: 버스 930: 메모리
931: 롬 932: 램
940: 사용자 입력 장치 950: 사용자 출력 장치
960: 스토리지 970: 네트워크 인터페이스
980: 네트워크
110: 모니터링부 120: 소프트웨어 프로파일 생성부
130: 마운트부 140: 파일 제어부
150: 관리부 400: 소프트웨어 프로파일
810: 게스트 운영체제 영역 820: 가상머신 모니터 영역
900: 컴퓨터 시스템 910: 프로세서
920: 버스 930: 메모리
931: 롬 932: 램
940: 사용자 입력 장치 950: 사용자 출력 장치
960: 스토리지 970: 네트워크 인터페이스
980: 네트워크
Claims (20)
- 가상화 환경에서의 소프트웨어 업데이트 장치에 의해 수행되는 소프트웨어 업데이트 방법에 있어서,
모니터링의 대상이 되는 프로세스 및 오퍼레이션 중 적어도 어느 하나를 포함하는 모니터링 대상을 설정하는 단계,
게스트 운영체제 영역에서 상기 모니터링 대상이 소프트웨어를 업데이트 할 때 호출되는 오퍼레이션의 호출 내역을 모니터링하여 로그 데이터를 생성하는 단계,
상기 소프트웨어의 업데이트가 시스템 재부팅을 필요로 하는 업데이트인지 여부를 판단하는 단계,
상기 시스템 재부팅을 필요로 하지 않는 경우, 상기 로그 데이터를 이용하여 소프트웨어 프로파일을 생성하는 단계,
가상머신 모니터 영역에서 대상 가상머신의 가상 디스크 이미지를 대상 디렉터리에 마운트하는 단계,
상기 소프트웨어 프로파일에 명시된 파일 및 레지스트리 중 적어도 어느 하나의 업데이트 정보를 마운트된 상기 대상 디렉터리에 반영하는 단계, 그리고
상기 시스템 재부팅이 필요한 것으로 판단된 경우, 지연된 파일 리네임 작업을 수행하는 프로세스를 상기 모니터링 대상으로 설정하고, 상기 시스템 재부팅 시 상기 모니터링 대상인 상기 오퍼레이션이 동작하도록 설정한 후 상기 시스템 재부팅을 수행하며, 상기 로그 데이터를 생성하는 과정을 재 수행하는 단계를 포함하는 가상화 환경에서의 소프트웨어 업데이트 방법. - 삭제
- 삭제
- 제1항에 있어서,
상기 로그 데이터를 이용하여 소프트웨어 프로파일을 생성하는 단계는,
상기 시스템 재부팅이 필요하지 않은 것으로 판단된 경우, 상기 로그 데이터를 이용하여 원시 소프트웨어 프로파일을 생성하는 단계, 그리고
상기 원시 소프트웨어 프로파일의 목록을 기반으로 상기 소프트웨어 프로파일을 생성하는 단계를 포함하는 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 방법. - 제4항에 있어서,
상기 원시 소프트웨어 프로파일의 목록을 기반으로 상기 소프트웨어 프로파일을 생성하는 단계는,
상기 원시 소프트웨어 프로파일을 상기 대상 가상머신에 적용할 때 미치는 영향 정도 및 오류를 기반으로, 상기 소프트웨어 프로파일을 생성하는 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 방법. - 제1항에 있어서,
상기 가상 디스크 이미지를 대상 디렉터리에 마운트하는 단계는,
상기 소프트웨어 프로파일을 적용할 상기 대상 가상머신의 상기 가상 디스크 이미지를 선택하는 단계,
상기 가상머신 모니터 영역에서 상기 대상 디렉터리의 위치를 설정하는 단계, 그리고
선택된 상기 가상 디스크 이미지를 상기 대상 디렉터리의 위치에 마운트하는 단계
를 포함하는 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 방법. - 제6항에 있어서,
상기 업데이트 정보를 마운트된 상기 대상 디렉터리에 반영하는 단계는,
상기 소프트웨어 프로파일을 이용하여 마운트된 상기 대상 디렉터리의 하위에서 레지스트리 파일을 탐색하는 단계,
탐색된 상기 레지스트리 파일을 파싱하여 레지스트리 업데이트를 수행하는 단계, 그리고
상기 가상 디스크 이미지의 마운트를 해제하는 단계
를 포함하는 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 방법. - 제1항에 있어서,
상기 모니터링 대상, 상기 소프트웨어 프로파일 및 상기 대상 디렉터리의 위치 중 적어도 어느 하나를 재설정하는 단계를 더 포함하는 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 방법. - 제8항에 있어서,
상기 재설정하는 단계는,
상기 가상머신이 비활성화 상태일 때, 상기 가상머신이 비활성화 상태에서 활성화 상태로 전환되기 직전 상태일 때 및 상기 가상머신이 활성화 상태일 때 중 적어도 어느 하나의 상태에서 상기 마운트하는 단계 및 상기 대상 디렉터리에 반영하는 단계를 수행하도록 하는 운용 모드를 제공하는 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 방법. - 제1항에 있어서,
상기 소프트웨어 프로파일은,
상기 소프트웨어의 명칭, 업데이트의 명칭, 상기 소프트웨어 프로파일의 속성, 상기 모니터링 대상이 되는 프로세스의 식별자, 상기 프로세스의 명칭, 상기 모니터링 대상이 되는 오퍼레이션의 사용 시간, 상기 오퍼레이션의 명칭, 상기 오퍼레이션의 매개변수를 파싱하여 획득할 수 있는 파일, 상기 레지스트리의 경로명, 상기 오퍼레이션의 수행 결과, 상기 오퍼레이션의 상세 매개변수 정보, 실제 생성된 파일, 상기 레지스트리의 정보 중 적어도 어느 하나를 포함하는 하나 이상의 레코드로 구성된 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 방법. - 게스트 운영체제 영역에서 소프트웨어를 업데이트 할 때 호출되는 오퍼레이션을 모니터링 하는 모니터링부,
상기 모니터링 결과를 분석하여 소프트웨어 프로파일을 생성하는 소프트웨어 프로파일 생성부,
가상머신 모니터 영역에서 대상 가상머신의 가상 디스크 이미지를 대상 디렉터리에 마운트하는 마운트부, 그리고
상기 소프트웨어 프로파일에 명시된 파일 및 레지스트리 중 적어도 어느 하나의 업데이트 정보를 마운트된 상기 대상 디렉터리에 반영하는 파일 제어부를 포함하고,
상기 파일 제어부는,
상기 소프트웨어 프로파일을 이용하여 마운트된 상기 대상 디렉터리의 하위에서 레지스트리 파일을 탐색하고, 탐색된 상기 레지스트리 파일을 파싱하여 레지스트리 업데이트를 수행하며, 상기 가상 디스크 이미지의 마운트를 해제하는 가상화 환경에서의 소프트웨어 업데이트 장치. - 제11항에 있어서,
상기 모니터링부는,
모니터링의 대상이 되는 프로세스 및 오퍼레이션 중 적어도 어느 하나를 포함하는 모니터링 대상을 설정하고, 상기 모니터링 대상이 상기 소프트웨어를 업데이트 할 때 호출되는 상기 오퍼레이션의 호출 내역을 모니터링 하여 로그 데이터를 생성하는 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 장치. - 제12항에 있어서,
상기 소프트웨어 프로파일 생성부는,
상기 소프트웨어의 업데이트가 시스템 재부팅을 필요로 하는 업데이트인지 여부를 판단하고, 상기 시스템 재부팅이 필요한 것으로 판단된 경우, 지연된 파일 리네임 작업을 수행하는 프로세스를 상기 모니터링 대상으로 설정하며, 상기 시스템 재부팅 시, 모니터링의 대상이 되는 상기 오퍼레이션이 동작하도록 설정하고, 상기 시스템 재부팅을 수행하며, 상기 오퍼레이션의 호출 내역을 모니터링 하여 상기 로그 데이터를 생성하는 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 장치. - 제13항에 있어서,
상기 소프트웨어 프로파일 생성부는,
상기 시스템 재부팅이 필요하지 않은 것으로 판단된 경우, 상기 로그 데이터를 이용하여 원시 소프트웨어 프로파일을 생성하고, 상기 원시 소프트웨어 프로파일의 목록을 기반으로 상기 소프트웨어 프로파일을 생성하는 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 장치. - 제14항에 있어서,
상기 소프트웨어 프로파일 생성부는,
상기 원시 소프트웨어 프로파일을 상기 대상 가상머신에 적용할 때 미치는 영향 정도 및 오류를 기반으로, 상기 소프트웨어 프로파일을 생성하는 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 장치. - 제11항에 있어서,
상기 마운트부는,
상기 소프트웨어 프로파일을 적용할 상기 대상 가상머신의 상기 가상 디스크 이미지를 선택하고, 상기 가상머신 모니터 영역에서 상기 대상 디렉터리의 위치를 설정하며, 선택된 상기 가상 디스크 이미지를 상기 대상 디렉터리의 위치에 마운트하는 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 장치. - 삭제
- 제12항에 있어서,
상기 모니터링 대상, 상기 소프트웨어 프로파일 및 상기 대상 디렉터리의 위치 중 적어도 어느 하나를 재설정하는 관리부를 더 포함하는 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 장치. - 제18항에 있어서,
상기 관리부는,
상기 마운트부 및 상기 파일 제어부 중 적어도 어느 하나가, 상기 가상머신이 비활성화 상태일 때, 상기 가상머신이 비활성화 상태에서 활성화 상태로 전환되기 직전 상태일 때 및 상기 가상머신이 활성화 상태일 때 중 적어도 어느 하나의 상태에서 동작하도록 하는 운용 모드를 제공하는 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 장치. - 제11항에 있어서,
상기 소프트웨어 프로파일은,
상기 소프트웨어의 명칭, 업데이트의 명칭, 상기 소프트웨어 프로파일의 속성, 상기 모니터링 대상이 되는 프로세스의 식별자, 상기 프로세스의 명칭, 상기 모니터링 대상이 되는 오퍼레이션의 사용 시간, 상기 오퍼레이션의 명칭, 상기 오퍼레이션의 매개변수를 파싱하여 획득할 수 있는 파일, 상기 레지스트리의 경로명, 상기 오퍼레이션의 수행 결과, 상기 오퍼레이션의 상세 매개변수 정보, 실제 생성된 파일, 상기 레지스트리의 정보 중 적어도 어느 하나를 포함하는 하나 이상의 레코드로 구성된 것을 특징으로 하는 가상화 환경에서의 소프트웨어 업데이트 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170025478A KR101954623B1 (ko) | 2017-02-27 | 2017-02-27 | 가상화 환경에서의 소프트웨어 업데이트 장치 및 방법 |
US15/656,206 US10318275B2 (en) | 2017-02-27 | 2017-07-21 | Software update apparatus and method in virtualized environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170025478A KR101954623B1 (ko) | 2017-02-27 | 2017-02-27 | 가상화 환경에서의 소프트웨어 업데이트 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180098842A KR20180098842A (ko) | 2018-09-05 |
KR101954623B1 true KR101954623B1 (ko) | 2019-03-06 |
Family
ID=63246758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170025478A KR101954623B1 (ko) | 2017-02-27 | 2017-02-27 | 가상화 환경에서의 소프트웨어 업데이트 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10318275B2 (ko) |
KR (1) | KR101954623B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11327739B2 (en) | 2019-09-06 | 2022-05-10 | Samsung Electronics Co., Ltd. | Method and apparatus for improving runtime performance after application update in electronic device |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10884763B2 (en) * | 2018-08-24 | 2021-01-05 | International Business Machines Corporation | Loading new code in the initial program load path to reduce system restarts |
US10990372B2 (en) | 2018-09-20 | 2021-04-27 | Microsoft Technology Licensing, Llc | Updating an edge computing device |
US11669599B2 (en) * | 2018-11-26 | 2023-06-06 | Servicenow, Inc. | Systems and methods for software license management |
US11379209B2 (en) * | 2019-05-22 | 2022-07-05 | EMC IP Holding Company LLC | Upgrade of a software product |
CN110286913B (zh) * | 2019-06-06 | 2020-06-09 | 口碑(上海)信息技术有限公司 | 核对代码包部署方法及装置 |
US11334364B2 (en) | 2019-12-16 | 2022-05-17 | Microsoft Technology Licensing, Llc | Layered composite boot device and file system for operating system booting in file system virtualization environments |
TWI728625B (zh) * | 2019-12-26 | 2021-05-21 | 幻雲資訊股份有限公司 | 複雜資訊環境的管理系統與其運作方法 |
US20210382739A1 (en) * | 2020-06-04 | 2021-12-09 | Microsoft Technology Licensing, Llc | Partially Privileged Lightweight Virtualization Environments |
US11720341B2 (en) * | 2021-10-05 | 2023-08-08 | Vmware, Inc. | Simulation of updates in a software defined network (SDN) virtualized computing environments |
US20230305871A1 (en) * | 2022-03-22 | 2023-09-28 | International Business Machines Corporation | Reducing downtime caused by incompatability issues from upgrading firmware and software |
KR20240059367A (ko) | 2022-10-27 | 2024-05-07 | 삼성에스디에스 주식회사 | 소프트웨어 구성 요소에 대한 관리 방법, 장치, 시스템 및 컴퓨터 프로그램 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008084029A (ja) * | 2006-09-27 | 2008-04-10 | Hitachi Software Eng Co Ltd | 仮想マシン管理システム |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6711572B2 (en) * | 2000-06-14 | 2004-03-23 | Xosoft Inc. | File system for distributing content in a data network and related methods |
CA2444685A1 (en) * | 2003-02-07 | 2004-08-07 | Yaron Mayer | System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows |
US20060184937A1 (en) * | 2005-02-11 | 2006-08-17 | Timothy Abels | System and method for centralized software management in virtual machines |
US8201243B2 (en) * | 2006-04-20 | 2012-06-12 | Webroot Inc. | Backwards researching activity indicative of pestware |
US20070261045A1 (en) * | 2006-05-05 | 2007-11-08 | Dell Products L.P. | Method and system of configuring a directory service for installing software applications |
US20080127162A1 (en) * | 2006-11-29 | 2008-05-29 | Sap Ag | Method and apparatus for configuring application software |
US8205194B2 (en) * | 2007-06-29 | 2012-06-19 | Microsoft Corporation | Updating offline virtual machines or VM images |
KR100883208B1 (ko) | 2007-12-13 | 2009-02-13 | 성균관대학교산학협력단 | 가상화 기술을 기반으로 하여 소프트웨어의 업데이트가가능한 이동통신 단말기 및 그 업데이트 방법 |
US8175863B1 (en) * | 2008-02-13 | 2012-05-08 | Quest Software, Inc. | Systems and methods for analyzing performance of virtual environments |
US8117435B2 (en) * | 2008-06-30 | 2012-02-14 | Intel Corporation | Method and system for secured dynamic bios update |
US9690562B2 (en) * | 2010-02-26 | 2017-06-27 | Red Hat, Inc. | Detecting computing processes requiring reinitialization after a software package update |
US9152484B2 (en) * | 2010-02-26 | 2015-10-06 | Red Hat, Inc. | Generating predictive diagnostics via package update manager |
US9009696B2 (en) * | 2010-04-27 | 2015-04-14 | Red Hat, Inc. | Generating encoded identifications of selected subsets of installed software packages on a client machine |
JP5772127B2 (ja) * | 2011-03-25 | 2015-09-02 | 富士通株式会社 | 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム |
US8924954B2 (en) | 2011-11-22 | 2014-12-30 | Huawei Technologies Co., Ltd. | Application software installation method and application software installation apparatus |
WO2014166603A1 (en) * | 2013-04-12 | 2014-10-16 | Alcatel Lucent | Flow migration between virtual network appliances in a cloud computing network |
US20170109190A1 (en) * | 2014-05-30 | 2017-04-20 | Samuel Sha | Providing a custom virtual computing system |
US20150378762A1 (en) * | 2014-06-30 | 2015-12-31 | Vmware, Inc. | Monitoring and dynamic configuration of virtual-machine memory-management |
US9965307B2 (en) * | 2014-10-06 | 2018-05-08 | Vmware, Inc. | Building virtual appliances |
US9495193B2 (en) * | 2014-12-05 | 2016-11-15 | International Business Machines Corporation | Monitoring hypervisor and provisioned instances of hosted virtual machines using monitoring templates |
US9292332B1 (en) * | 2014-12-11 | 2016-03-22 | Amazon Technologies, Inc. | Live updates for virtual machine monitor |
US9858105B1 (en) * | 2015-11-24 | 2018-01-02 | Amazon Technologies, Inc. | Service for managing custom virtual machine images |
US11544049B2 (en) * | 2016-02-12 | 2023-01-03 | Nutanix, Inc. | Virtualized file server disaster recovery |
US10728090B2 (en) * | 2016-12-02 | 2020-07-28 | Nutanix, Inc. | Configuring network segmentation for a virtualization environment |
US11281484B2 (en) * | 2016-12-06 | 2022-03-22 | Nutanix, Inc. | Virtualized server systems and methods including scaling of file system virtual machines |
-
2017
- 2017-02-27 KR KR1020170025478A patent/KR101954623B1/ko active IP Right Grant
- 2017-07-21 US US15/656,206 patent/US10318275B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008084029A (ja) * | 2006-09-27 | 2008-04-10 | Hitachi Software Eng Co Ltd | 仮想マシン管理システム |
Non-Patent Citations (1)
Title |
---|
Bryan D. Payne et al, "Secure and Flexible Monitoring of Virtual Machines", 23rd Annual Computer Security Applications Conference, pp. 385-397(2007.10.)* |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11327739B2 (en) | 2019-09-06 | 2022-05-10 | Samsung Electronics Co., Ltd. | Method and apparatus for improving runtime performance after application update in electronic device |
Also Published As
Publication number | Publication date |
---|---|
US20180246710A1 (en) | 2018-08-30 |
US10318275B2 (en) | 2019-06-11 |
KR20180098842A (ko) | 2018-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101954623B1 (ko) | 가상화 환경에서의 소프트웨어 업데이트 장치 및 방법 | |
US10606628B2 (en) | Systems and methods for modifying an operating system for a virtual machine | |
US10606800B1 (en) | Policy-based layered filesystem management | |
JP5781736B2 (ja) | 仮想化サブレイヤを統合する方法、システムおよびコンピュータ可読記憶媒体 | |
EP2765508B1 (en) | Installation method and installation device for application software | |
US8924954B2 (en) | Application software installation method and application software installation apparatus | |
US8959055B1 (en) | Method and system for creation, analysis and navigation of virtual snapshots | |
US9135260B2 (en) | Method and system for creation, analysis and navigation of virtual snapshots | |
US9852198B1 (en) | Method and system for fast generation of file system snapshot bitmap in virtual environment | |
US8381231B2 (en) | Deployment and management of virtual containers | |
US8290912B1 (en) | Endpoint virtualization aware backup | |
CN103827809B (zh) | 用于虚拟分区监测的系统和方法 | |
US11010259B1 (en) | Container-based upgrades for appliances | |
US20030191911A1 (en) | Using disassociated images for computer and storage resource management | |
CN104407938A (zh) | 一种虚拟机镜像级备份后的多种粒度恢复方法 | |
US11886902B2 (en) | Physical-to-virtual migration method and apparatus, and storage medium | |
JP6861886B2 (ja) | カスタマイズされたオペレーティングシステム変換のためのシステムおよび方法 | |
US20060106896A1 (en) | System and method for creating list of backup files based upon program properties | |
US9910662B2 (en) | Selectively migrating applications during an operating system upgrade | |
EP2639698B1 (en) | Backup control program, backup control method, and information processing device | |
US8819657B1 (en) | Method and apparatus for maintaining data consistency in a virtualized application during software update installation | |
US8612994B1 (en) | Methods and systems for activating and deactivating virtualization layers | |
US9910667B2 (en) | Segregating a monolithic computing system into multiple attachable application containers based on application boundaries | |
CN100424652C (zh) | 一种基于嵌入式操作系统的硬盘自恢复保护方法 | |
US8402458B1 (en) | Methods and systems for converting non-layered-software-application installations into layered installations |
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 |