KR101454837B1 - 하이퍼바이저 보안 api 모듈 및 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템 - Google Patents

하이퍼바이저 보안 api 모듈 및 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템 Download PDF

Info

Publication number
KR101454837B1
KR101454837B1 KR1020130044141A KR20130044141A KR101454837B1 KR 101454837 B1 KR101454837 B1 KR 101454837B1 KR 1020130044141 A KR1020130044141 A KR 1020130044141A KR 20130044141 A KR20130044141 A KR 20130044141A KR 101454837 B1 KR101454837 B1 KR 101454837B1
Authority
KR
South Korea
Prior art keywords
hypervisor
api
virtual
information
processor
Prior art date
Application number
KR1020130044141A
Other languages
English (en)
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 한국인터넷진흥원
Priority to KR1020130044141A priority Critical patent/KR101454837B1/ko
Application granted granted Critical
Publication of KR101454837B1 publication Critical patent/KR101454837B1/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
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

하이퍼바이저 보안 API 모듈 및 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템이 제공된다. 상기 하이퍼바이저 보안 API 모듈은 하이퍼바이저로부터 가상화 시스템의 내부 정보를 획득하고, 상기 가상화 시스템의 내부 정보를 이용한 침입 탐지 결과에 대응하여 상기 하이퍼바이저에 보안 제어를 수행할 수 있도록 API를 제공하는 하이퍼바이저 보안 API 모듈에 있어서, 가상 머신의 가상 메모리 내용을 읽고 쓰는 API를 제공하는 가상 메모리 접근 처리기, 상기 가상 머신의 가상 CPU의 레지스터 값을 읽는 API를 제공하는 가상 CPU 접근 처리기, 상기 가상 머신의 파일 시스템에 접근하여 디렉토리 이동 및 파일을 읽고 쓰는 API를 제공하는 가상 스토리지 접근 처리기, 가상 네트워크 패킷을 캡쳐 및 필터링하는 API를 제공하는 가상 네트워크 접근 처리기, 하이퍼콜 호출을 모니터링하는 API를 제공하는 하이퍼콜 호출 모니터링 처리기, Guest OS에 대한 정보를 읽는 API를 제공하는 Guest OS 정보 접근 처리기, 상기 하이퍼바이저의 내부 정보를 읽는 API를 제공하는 하이퍼바이저 정보 접근 처리기, 및 상기 하이퍼바이저에 상기 보안 제어를 전달하는 API를 제공하는 보안 제어 처리기를 포함한다.

Description

하이퍼바이저 보안 API 모듈 및 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템{Hypervisor security API module and hypervisor-based virtual network intrusion prevention system}
본 발명은 하이퍼바이저 보안 API 모듈 및 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템에 관한 것이다.
하이퍼바이저는 CPU, 메모리, 스토리지 등의 물리 자원을 가상 머신들의 서로 다른 운영체제(OS)가 공유할 수 있도록 하는 소프트웨어를 나타낸다. 가상 스위치(vSwitch)는 가상 머신간 통신을 위해 하이퍼바이저 내부에 존재하는 소프트웨어 형태의 스위치를 나타낸다. 이와 같이 하이퍼바이저를 이용하여 구현되는 가상화 시스템은, 가상 머신에 대한 ARP 스푸핑 도청 또는 침투, 악의적 하이퍼콜로 자원 독점 및 고갈 유발 등의 보안 위협이 존재한다.
본 발명이 해결하려는 과제는, 클라우드 컴퓨팅을 위한 가상화 시스템에서 가상 머신의 내부 정보, 하이퍼바이저의 내부 정보, 가상 네트워크 패킷에 접근하여 악의적인 침입을 탐지할 수 있는 하이퍼바이저 보안 API 모듈 및 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 하이퍼바이저 보안 API 모듈의 일 태양(aspect)은 하이퍼바이저로부터 가상화 시스템의 내부 정보를 획득하고, 상기 가상화 시스템의 내부 정보를 이용한 침입 탐지 결과에 대응하여 상기 하이퍼바이저에 보안 제어를 수행할 수 있도록 API를 제공하는 하이퍼바이저 보안 API 모듈에 있어서, 가상 머신의 가상 메모리 내용을 읽고 쓰는 API를 제공하는 가상 메모리 접근 처리기, 상기 가상 머신의 가상 CPU의 레지스터 값을 읽는 API를 제공하는 가상 CPU 접근 처리기, 상기 가상 머신의 파일 시스템에 접근하여 디렉토리 이동 및 파일을 읽고 쓰는 API를 제공하는 가상 스토리지 접근 처리기, 가상 네트워크 패킷을 캡쳐 및 필터링하는 API를 제공하는 가상 네트워크 접근 처리기, 하이퍼콜 호출을 모니터링하는 API를 제공하는 하이퍼콜 호출 모니터링 처리기, Guest OS에 대한 정보를 읽는 API를 제공하는 Guest OS 정보 접근 처리기, 상기 하이퍼바이저의 내부 정보를 읽는 API를 제공하는 하이퍼바이저 정보 접근 처리기, 및 상기 하이퍼바이저에 상기 보안 제어를 전달하는 API를 제공하는 보안 제어 처리기를 포함한다.
상기 과제를 해결하기 위한 본 발명의 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템의 일 태양은 가상 머신의 내부 정보, 하이퍼바이저의 내부 정보, 가상화 시스템의 가상 네트워크 패킷를 이용하여 침입 탐지를 수행하는 침입 탐지 모듈, 및 상기 가상 머신의 내부 정보, 상기 하이퍼바이저의 내부 정보, 상기 가상화 시스템의 가상 네트워크 패킷을 상기 침입 탐지 모듈에 제공하고, 상기 침입 탐지 모듈로부터 침입 탐지 결과를 입력받는 하이퍼바이저 기반 침입 방지 플랫폼을 포함하되, 상기 하이퍼바이저 기반 침입 방지 플랫폼은, 하이퍼바이저로부터 상기 가상 머신의 내부 정보, 상기 하이퍼바이저의 내부 정보, 상기 가상화 시스템의 가상 네트워크 패킷을 획득하고, 상기 침입 탐지 결과에 대응하여 상기 하이퍼바이저에 보안 제어를 수행할 수 있도록 API를 제공하는 하이퍼바이저 보안 API 모듈을 포함하고, 상기 하이퍼바이저 보안 API 모듈은, 상기 가상 머신의 가상 메모리 내용을 읽고 쓰는 API를 제공하는 가상 메모리 접근 처리기와, 상기 가상 머신의 가상 CPU의 레지스터 값을 읽는 API를 제공하는 가상 CPU 접근 처리기와, 상기 가상 머신의 파일 시스템에 접근하여 디렉토리 이동 및 파일을 읽고 쓰는 API를 제공하는 가상 스토리지 접근 처리기와, 상기 가상 네트워크 패킷을 캡쳐 및 필터링하는 API를 제공하는 가상 네트워크 접근 처리기와, 하이퍼콜 호출을 모니터링하는 API를 제공하는 하이퍼콜 호출 모니터링 처리기와, Guest OS에 대한 정보를 읽는 API를 제공하는 Guest OS 정보 접근 처리기와, 상기 하이퍼바이저의 내부 정보를 읽는 API를 제공하는 하이퍼바이저 정보 접근 처리기와, 상기 하이퍼바이저에 상기 보안 제어를 전달하는 API를 제공하는 보안 제어 처리기를 포함한다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 실시예에 따른 클라우드 환경 보안 시스템을 설명하기 위한 블록도이다.
도 2는 도 1의 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템의 세부 구성을 설명하기 위한 블록도이다.
도 3은 도 2의 하이퍼바이저 보안 API 모듈이 보안 제어를 수행하는 구조를 설명하기 위한 블록도이다.
도 4는 도 2의 하이퍼바이저 보안 API 모듈의 세부 구성을 설명하기 위한 블록도이다.
도 5는 도 4의 가상 메모리 접근 처리기의 동작을 설명하기 위한 순서도이다.
도 6은 도 4의 가상 CPU 접근 처리기의 동작을 설명하기 위한 순서도이다.
도 7은 도 4의 가상 스토리지 접근 처리기의 파일 시스템 접근 동작을 설명하기 위한 순서도이다.
도 8은 도 4의 가상 스토리지 접근 처리기의 블록 I/O 행위 모니터링 동작을 설명하기 위한 순서도이다.
도 9 내지 도 10은 도 4의 가상 네트워크 접근 처리기의 동작을 설명하기 위한 도면이다.
도 11은 도 4의 Guest OS 정보 접근 처리기의 동작을 설명하기 위한 순서도이다.
도 12는 도 4의 하이퍼콜 호출 모니터링 처리기의 동작을 설명하기 위한 순서도이다.
도 13은 도 4의 하이퍼바이저 정보 접근 처리기의 동작을 설명하기 위한 순서도이다.
도 14는 도 4의 보안 제어 처리기의 동작을 설명하기 위한 순서도이다.
도 15는 도 2의 vIPS 프레임워크의 세부 구성을 설명하기 위한 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 명세서에서 사용되는 '모듈'이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '모듈'은 어떤 역할들을 수행한다. 그렇지만 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '모듈'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '모듈'들로 결합되거나 추가적인 구성요소들과 '모듈'들로 더 분리될 수 있다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 클라우드 환경 보안 시스템을 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 클라우드 환경 보안 시스템(1)은 가상화 시스템(10), 클라우드 통합 보안 관제 시스템(20)을 포함한다.
가상화 시스템(10)은 단일의 물리 머신(phisical machine)에서 다수의 가상 머신(virtual machine)들을 구동시킨다. 각각의 가상 머신은 독립적으로 동작할 수 있으며, 서로 다른 운영체제를 구동시킬 수 있다. 이러한 가상화 시스템(10)은 하이퍼바이저(1000), 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템(2000; vIPS), 클라우드 에이전트(3000)를 포함한다.
하이퍼바이저(1000; hypervisor)는 가상화 시스템(10)에서 다수의 가상 머신들을 구동하기 위하여, 물리적 자원(예를 들어, CPU, 메모리, 스토리지, 네트워크 등)들을 다수의 가상 머신들에게 배분 및 스케쥴링한다. 하이퍼바이저(1000)는 가상화 시스템(10) 내의 가상 머신들과, 가상 머신들이 사용 중인 자원들에 접근(access)할 수 있다. 하이퍼바이저(1000)는 가상 머신들 간 통신을 위해 가상 네트워크 패킷을 중계하는 소프트웨어 형태의 가상 스위치(vSwitch), 설정된 규칙에 따라 가상 네트워크 패킷을 필터링하는 방화벽 패킷 필터를 포함할 수 있다. 이러한 하이퍼바이저(1000)를 VMM(Virtual Machine Monitor)라 부를 수도 있다.
vIPS(2000)는 하이퍼바이저(1000)를 통해 가상화 시스템(10)의 내부 정보를 획득하고, 이를 이용하여 가상화 네트워크 침입 탐지를 수행한다. vIPS(2000)는 침입에 대응하기 위한 보안 제어 명령을 하이퍼바이저(1000)에 제공한다. 가상화 시스템(10)의 내부 정보는 가상 머신의 내부 정보, 하이퍼바이저(1000)의 내부 정보, 가상화 시스템(10) 내의 가상 네트워크 패킷 등을 포함할 수 있다. 보안 제어는 가상 머신의 동작 제어, 가상 네트워크 트래픽의 레이트(rate) 제어 등을 포함할 수 있다.
클라우드 통합 보안 관제 시스템(20)은, 다수의 vIPS(2000)들로부터 가상화 시스템(10)의 정보 및 보안 이벤트 등을 수집하여, 클라우드 인프라 전체에 대한 통합 보안 관제를 수행한다. 클라우드 통합 보안 관제 시스템(20)은 침입에 대응하기 위한 보안 제어 명령 및 관련 보안 정책을 각각의 vIPS(2000)에 제공한다. 클라우드 통합 보안 관제 시스템(20)은 vIPS(2000)의 동작 제어 및 환경 변수 관리를 위한 시스템 제어 명령을 각각의 vIPS(2000)에 제공한다. 수집 정보는 가상 머신 현황 정보, 하이퍼바이저(1000) 현황 정보, 가상화 시스템(10)의 물리 자원 명세 정보, 가상화 시스템(10) 내의 네트워크 트래픽 요약 정보, 보안 이벤트, vIPS(2000) 시스템 로그 등을 포함할 수 있다. 보안 제어는 가상 머신의 동작 제어, 가상 네트워크 트래픽의 레이트(rate) 제어, 공격 대응 정책, 정책 및 시그니쳐 룰 셋 등을 포함할 수 있다. 시스템 제어는 vIPS(2000) 시스템의 동작 제어, vIPS(2000) 시스템의 환경 변수 설정 및 조회 등을 포함할 수 있다.
클라우드 에이전트(3000)는 가상화 시스템(10) 상에서 동작하여, 클라우드 통합 보안 관제 시스템(20)과 vIPS(2000) 간의 커뮤니케이션을 중계한다. 클라우드 에이전트(3000)는 가상화 시스템(10)의 정보, 보안 이벤트를 vIPS(2000)로부터 수집하여, 클라우드 통합 보안 관제 시스템(20)에 전달한다. 또한, 클라우드 에이전트(3000)는 클라우드 통합 보안 관제 시스템(20)으로부터 보안 제어 명령, 시스템 제어 명령을 전달받아 vIPS(2000)에 제공한다.
도 2는 도 1의 하이버파이저 기반 가상화 네트워크 침입 방지 시스템의 세부 구성을 설명하기 위한 블록도이다.
도 2를 참조하면, vIPS(2000)는 하이퍼바이저 기반 침입 방지 플랫폼(2100), Stateful 방화벽 모듈(2200), NIPS 모듈(2300), 가상화 자원 고갈 공격 탐지 모듈(2400)을 포함한다.
하이퍼바이저 기반 침입 방지 플랫폼(2100)은 상위의 Stateful 방화벽 모듈(2200), NIPS(Network-based IPS) 모듈, 가상화 자원 고갈 공격 탐지 모듈(2400)들의 동작을 제어한다. 하이퍼바이저 기반 침입 방지 플랫폼(2100)은 상기 모듈들이 침입 탐지를 수행하기 위해 필요한 정보를 제공하는 인터페이스와, 상기 모듈들로부터 침입 탐지 결과를 입력 받는 인터페이스 등을 제공한다. 이러한 하이퍼바이저 기반 침입 방지 플랫폼(2100)은 하이버파이저 보안 API 모듈(2110), vIPS 프레임워크(2120), 관리자 계정 관리 및 인증 모듈(2130), 환경 설정 관리 모듈(2140), 외부 인터페이스 모듈(2150)을 포함한다.
하이퍼바이저 보안 API 모듈(2110)은 하이퍼바이저 기반 침입 방지 플랫폼(2100)의 모듈들이 하이퍼바이저(1000)를 통해 가상화 시스템(10)의 내부 정보에 접근하고, 하이퍼바이저(1000)에 보안 제어 명령을 내릴 수 있도록 API(예를 들어, XenSecurity API)를 제공한다. 즉, 하이퍼바이저 보안 API 모듈(2110)은 보안 관련 기능을 위한 하이퍼바이저(1000)에의 접근에 대한 추상화를 제공하는 모듈이다.
하이퍼바이저 보안 API 모듈(2110)은 하이퍼바이저(100)로부터 vIPS 프레임워크(2120) 내의 모듈들이 필요로 하는 가상화 시스템(10) 내부 정보를 입력 받으며, 하이퍼바이저(100)에 가상화 시스템(10)의 보안 제어를 수행한다.
vIPS 프레임워크(2120)는 vIPS(2000)에서 IPS(Intrusion Prevention System)와 방화벽을 구성하기 위한 필수 공통 모듈들의 집합이다. vIPS 프레임워크(2120)는 상위의 침입 탐지 모듈들(Stateful 방화벽 모듈(2200), NIPS 모듈(2300), 가상화 자원 고갈 공격 탐지 모듈(2400))이 접근 제어, 침입 탐지 및 대응을 수행하기 위해 필요한 공통 기능 및 구조를 제공한다.
관리자 계정 관리 및 인증 모듈(2130)은 사용자(즉, vIPS(2000)의 관리자) 계정을 관리하며 관리자 계정의 인증을 수행한다.
환경 설정 관리 모듈(2140)은 환경 설정 값들을 관리한다. 모든 모듈의 환경 설정 값에 접근(읽기, 쓰기)시에 환경 설정 관리 모듈(2140)을 통하도록 함으로써, vIPS(2000)가 항상 최신의 설정 값에 따라 동작하도록 할 수 있다.
외부 인터페이스 모듈(2150)은 vIPS(2000)에의 시스템 제어 및 보안 제어를 위한 인터페이스를 제공한다.
침입 탐지 모듈들(Stateful 방화벽 모듈(2200), NIPS 모듈(2300), 가상화 자원 고갈 공격 탐지 모듈(2400))은, 하이퍼바이저 기반 침입 방지 플랫폼(2100)로부터 침입 탐지 및 접근 제어를 위한 정보(예를 들어, 가상 머신의 내부 정보, 하이퍼바이저(1000)의 내부 정보, 가상 네트워크 패킷 등)를 입력 받아 침입 탐지 기능을 수행 한다. Stateful 방화벽 모듈(2200)은 Stateful 방화벽의 엔진 기능을 수행한다. NIPS 모듈(2300)은 네트워크 기반 IPS(Network-based IPS)의 엔진 기능을 수행한다. 가상화 자원 고갈 공격 탐지 모듈(2400)은 가상화 자원에 대한 자원 고갈 공격을 탐지한다.
도 3은 도 2의 하이퍼바이저 보안 API 모듈이 보안 제어를 수행하는 구조를 설명하기 위한 블록도이다.
도 3을 참조하면, 하이퍼바이저 보안 API 모듈(2110)은 보안 제어를 수행하기 위해서, 하이퍼바이저(1000)와 도메인 0(11; Domain 0)에 접근한다.
가상화 시스템(10)의 가상 머신들은 도메인 0(11)와 도메인 U(12; Domain U)로 구분될 수 있다. 도메인 0(11)은 특권(privilege)을 가지고 있는 관리 도메인으로서, 사용자 가상 머신으로 사용되는 도메인 U(12)들을 관리할 수 있다. 하이퍼바이저(1000)는 드라이버를 포함하지 않고, 도메인 0(11)가 네트워크와 통신하는 네트워크 드라이버(11a), 물리 디바이스(예를 들어, 디스크 등)를 핸들링하는 디바이스 드라이버(11b) 등을 포함한다. 그리고, 도메인 0(11)는 각 도메인 U(12)를 제어하기 위한 관리 모듈(11c)을 포함한다.
도 4는 도 2의 하이버파이저 보안 API 모듈의 세부 구성을 설명하기 위한 블록도이다. 도 4에서는 하이퍼바이저(1000)의 일 예로 오픈소스 Xen을 사용하여 설명하기로 한다. 그러나, 하이퍼바이저(1000)가 Xen에 한정되는 것은 아니다.
도 4를 참조하면, 하이퍼바이저 보안 API 모듈(2110)은 가상 메모리 접근 처리기(2111), 가상 CPU 접근 처리기(2112), 가상 스토리지 접근 처리기(2113), 가상 네트워크 접근 처리기(2114), 하이퍼콜 호출 모니터링 처리기(2115), Guest OS 정보 접근 처리기(2116), 하이퍼바이저 정보 접근 처리기(2117), 보안 제어 처리기(2118)를 포함한다. 하이퍼바이저 보안 API 모듈 내(2110)의 각각의 처리기들은 해당 기능에 관련된 API를 구현한다.
가상 메모리 접근 처리기(2111)는 각각의 가상 머신의 가상 메모리 내용을 읽고 쓰는 기능을 구현하며, 이에 대한 API를 제공한다.
가상 CPU 접근 처리기(2112)는 각각의 가상 머신에 할당된 가상 CPU의 레지스터 값을 읽어 오는 기능을 구현하며, 이에 대한 API를 제공한다.
가상 스토리지 접근 처리기(2113)는 각각의 가상 머신의 파일 시스템에 접근하여 디렉토리 이동(directory traversal) 및 파일을 읽고 쓸 수 있는 기능을 구현하며, 이에 대한 API를 제공한다. 가상 스토리지 접근 처리기(2113)는 각각의 가상 머신의 스토리지 블록 I/O 행위를 모니터링 하기 위한 기능을 구현하며, 이에 대한 API를 제공한다.
가상 네트워크 접근 처리기(2114)는 네트워크 패킷을 캡쳐 및 필터링하며 네트워크 트래픽 레이트(rate)를 제어하는 기능과 NetFlow 제공 기능을 구현하며, 이에 대한 API를 제공한다.
하이퍼콜 호출 모니터링 처리기(2115)는 하이퍼콜 호출 행위를 모니터링하기 위한 기능을 구현하며, 이에 대한 API를 제공한다.
Guest OS 정보 접근 처리기(2116)는 Guest OS에 대한 정보를 읽는 기능을 구현하며, 이에 대한 API를 제공한다.
하이퍼바이저 정보 접근 처리기(2117)는 하이퍼바이저(1000)의 내부 정보를 읽는 기능을 구현하며, 이에 대한 API를 제공한다.
보안 제어 처리기(2118)는 보안 제어 명령을 하이퍼바이저(1000)에 전달하는 기능을 구현하며, 이에 대한 API를 제공한다.
Xen 하이퍼바이저는 본 발명이 속하는 기술 분야의 통상의 기술자에게 자명하며, 이에 관한 상세한 설명은 본 발명의 요지를 흐릴 수 있으므로, 이를 생략하기로 한다.
도 5는 도 4의 가상 메모리 접근 처리기의 동작을 설명하기 위한 순서도이다.
도 5를 참조하면, 가상 메모리 접근 처리기(2111)는 각각의 가상 머신의 가상 메모리에 대한 접근을 위해 크게 세가지 종류의 API, 즉 커널 심볼의 값(메모리 내용)을 읽는 API들, 특정 주소의 메모리 내용을 읽고 쓰는 API들(여기서, 주소는 가상 및 물리적 메모리 주소 모두를 의미한다. 따라서, 가상 주소와 물리 주소의 메모리 내용을 읽고 쓰는 API들을 각각 제공한다), 유틸리티 API들(가상 및 물리적 메모리 주소간 변환 등 가상 메모리 접근과 관련된 유틸리티 기능의 함수(function)들을 제공한다)를 구현 및 제공한다.
가상 메모리에 접근하기 위해, 가상 메모리 접근 처리기(2111)는 xenstore로부터 guest의 환경정보를 얻고, libxc를 이용하여 하이퍼바이저(hypervisor) 내부에서 guest의 메모리 페이지 모드(page mode) 설정 및 메모리에 대한 접근 요청을 한다.
먼저, guest의 메모리 페이지 모드 설정 단계에서, 가상 메모리 접근 처리기(2111)는 xenstore handle을 생성하고(S101~S102), 이어서, xencontrol(libxc) handle을 생성한다(S103~S106). 가상 메모리 접근 처리기(2111)는 xenstore로부터 guest의 메모리의 크기를 구하고(S107~S108), 이어서, xencontrol을 통해서 guest의 가상 CPU의 레지스터 CR0, CR3, CR4의 값을 얻는다(S109~S112). 이어서, 가상 메모리 접근 처리기(2111)는 guest의 페이지 모드를 설정한다(S113).
다음으로, guest의 메모리 접근 단계에서, 가상 메모리 접근 처리기(2111)는 xencontrol을 통해서 guest의 DTB(Directory Table Base) 주소를 얻는다(S114~S117). 이 때, 가상 메모리 접근 처리기(2111)는 가상 메모리 주소를 DTB 주소로부터 guest의 페이지 모드에 따라 물리 주소로 변환할 수 있다.
가상 메모리 접근 처리기(2111)는 xencontrol을 통해서 guest의 PFN(Page Frame Number) 주소를 얻을 수도 있다(S118~S121). 이 때, 가상 메모리 접근 처리기(2111)는 guest의 물리적 메모리의 PFN과 오프셋(offset)을 구하고, PFN에 대한 메모리 주소로부터 오프셋 위치의 주소의 내용(실제 메모리 내용)에 접근할 수 있다.
도 6은 도 4의 가상 CPU 접근 처리기의 동작을 설명하기 위한 순서도이다.
도 6을 참조하면, 각각의 가상 머신에 할당된 가상 CPU의 현재 레지스터 값을 읽어오기 위해, 먼저 API caller가 가상 CPU의 레지스터 정보를 요청하는 API를 호출한다(S131). 이어서, 가상 CPU 접근 처리기(2112)는 libxc를 이용해서 가상 CPU의 레지스터 값을 하이퍼바이저(hypervisor)에 요청하여 받는다(S132~S135). 이어서, 가상 CPU 접근 처리기(2112)는 가상 CPU의 레지스터 값을 API 반환 값 형태로 변경하여 API caller에 반환한다(S136).
도 7은 도 4의 가상 스토리지 접근 처리기의 파일 시스템 접근 동작을 설명하기 위한 순서도이다.
도 7을 참조하면, 가상 스토리지 접근 처리기(2113)는 파일 시스템 접근 기능을 제공한다. 가상 스토리지 접근 처리기(2113)는, 가상 스토리지 이미지를 복제하여 복제본에 대한 접근하는 모드(읽기 및 쓰기 모드)와 현재 동작 중인 가상 머신의 가상 스토리지 이미지에 직접 접근하는 모드(읽기 모드)로, 가상 머신이 사용 중인 가상 스토리지에 접근할 수 있다. 가상 스토리지 접근 처리기(2113)는 가상 스토리지 이미지에 직접 접근하여 디렉토리 이동 및 파일을 읽고 쓸 수 있는 API를 제공한다.
파일 시스템에 접근하기 위해, 가상 스토리지 접근 처리기(2113)는 xenstore로부터 guest의 디스크 이미지 위치 정보를 찾는다. 가상 스토리지 접근 처리기(2113)는 찾아낸 디스크 이미지 위치에 libguestfs를 이용하여 직접 마운트(mount)한다.
가상 스토리지 접근 처리기(2113)는 먼저 xenstore로부터 guest의 디스크 이미지 위치를 수집한다(S141~S144). 필요한 경우, 가상 스토리지 접근 처리기(2113)는 guest의 디스크 이미지 사본을 만들어 사본의 위치 정보를 이용한다(S145~S148). 이어서, 가상 스토리지 접근 처리기(2113)는 guest의 디스크 이미지에 마운트(mount)한다(S149). 이어서, 가상 스토리지 접근 처리기(2113)는 마운트한 디스크에 대한 탐색/조회/수정 작업을 한다(S150). 이어서, 가상 스토리지 접근 처리기(2113)는 작업이 끝나면 디스크 이미지를 언마운트(unmount)한다(S151).
도 8은 도 4의 가상 스토리지 접근 처리기의 블록 I/O 행위 모니터링 동작을 설명하기 위한 순서도이다.
도 8을 참조하면, 가상 스토리지 접근 처리기(2113)는 블록 I/O 행위 모니터링 기능을 제공한다.
블록 I/O 행위 모니터링을 위해, 가상 스토리지 접근 처리기(2113)는 먼저 환경 설정 관리 모듈(2140)로부터 환경 설정 값을 요청하여 받은 후 받은 값을 이용하여 환경 설정한다(S161~S163). 이어서, 가상 스토리지 접근 처리기(2113)는 설정한 값에 따라 일정 주기로 I/O data를 dom0에 위치하는 agent에게 요청하고, 이전에 받은 I/O data와 차이를 이용하여 설정한 시간 동안의 I/O data 처리량을 계산한다(S164~S166). 이어서, 가상 스토리지 접근 처리기(2113)는 일정 주기마다 I/O 처리량 계산하는 동안 API caller로부터 API 호출이 오면 I/O data 처리량을 반환한다(S167~S168).
도 9 내지 도 10은 도 4의 가상 네트워크 접근 처리기의 동작을 설명하기 위한 도면이다.
도 9를 참조하면, 가상 네트워크 접근 처리기(2114)는 가상 네트워크 패킷의 캡쳐링 및 필터링을 설정하는 API, 트래픽 레이트를 제어하는 API, NetFlow 지원 설정을 위한 API 등을 구현 및 제공 한다. 패킷 캡쳐링 동작 모드는, 네트워크 패킷이 NIPS 및 방화벽 엔진의 센서로 우회되는 inline 모드, 네트워크 패킷이 NIPS 및 방화벽 엔진으로 미러링되서 보내지는 tap 모드를 포함한다. 패킷 필터링 결과, 네트워크 패킷은 다른 포트로 포워딩되거나, 차단될 수 있다. NetFlow 제공 설정은 NetFlow 전송을 위한 도착지 IP(destination IP)와 포트(port) 설정을 포함한다.
가상 네트워크 접근 처리기(2114)는 Open vSwitch가 제공하는 원격관리를 위한 두 가지 프로토콜(OpenFlow, OVSDB management protocol)과 세 가지의 유틸리티(ovs-controller, ovs-ofctl, ovs-vsctl)를 이용한다. 여기서, OpenFlow는 flow-based forwarding state를 제공하고, OVSDB management protocol은 switch port state를 제공한다.
도 10을 참조하면, 패킷 캡쳐링을 위해, inline 모드에서, 브리지(Bridge) 역할을 해줄 DomUbridge를 추가하고, DomUbridge에는 Dom0와 연결될 인터페이스 vPortdom0와, DomU와 연결될 가상 인터페이스 vPortdomU를 각각 가지고 있도록 한다. Dom0의 물리적 인터페이스 ethN와 vPortdom0가 연결된 브릿지 brdom0를 구성한다. DomU의 가상 인터페이스와 vPortdomU가 연결된 브릿지 brdomU를 구성한다. DomUbridge에서는 vPortdom0와 vPortdomU 사이에서 패킷을 검사하도록 한다.
tap 모드에서는, Open vSwitch의 미러링을 설정함으로써 네트워크 패킷을 지정한 네트워크 포트로 보낸다. 미러링 설정은 ovs-vsctl을 이용할 수 있다.
패킷 필터링을 위해, Open vSwitch의 필터링 기능을 이용하여 필터링하려는 flow 조건을 설정함으로써, 네트워크 패킷에 대한 처리 방법을 지정한다. ovs-vsctl 또는 OpenFlow protocol을 이용하여, flow를 정의하고 이에 대한 대응 행위를 설정할 수 있다.
트래픽 레이트를 제어하기 위해, Open vSwitch의 포트 QoS를 조절하여 네트워크 트래픽 레이트를 제어한다. ovs-vsctl을 이용하여 QoS Rate-Limiting을 수행할 수 있다.
NetFlow를 설정하기 위해, Open vSwitch의 NetFlow 제공 설정을 조절하여, NetFlow 프로토콜을 이용한 트래픽 요약 정보 제공의 설정 기능을 제공한다. ovs-vsctl을 이용하여 NetFlow를 설정할 수 있다.
도 11은 도 4의 Guest OS 정보 접근 처리기의 동작을 설명하기 위한 순서도이다.
도 11을 참조하면, Guest OS 정보 접근 처리기(2116)는 Guest OS의 타입, 버전, 서비스팩, 보안패치, 가상 CPU 개수, 가상 CPU의 사용량, 가상 메모리의 사용량, 가상 스토리지의 사이즈 및 사용량, PV(Para-virtualization) 혹은 HVM(Hardware-assited Virtual Machine) guest 여부 등을 제공할 수 있다.
Guest OS에 대한 정보를 읽기 위해, API caller는 API 호출을 하여 Guest OS 정보를 요청한다(S171). 이어서, Guest OS 정보 접근 처리기(2116)는 libxc를 이용하여 하이퍼바이저(hypervisor)로부터 각각의 domU 별로 가상 CPU의 사용량과 가상 메모리의 사용량 정보(가상 CPU의 개수, 가상 CPU의 현재 사용량, 가상 메모리의 할당량)를 얻는다(S172~S175). 이어서, Guest OS 정보 접근 처리기(2116)는 가상 스토리지 접근 처리기로부터 guest OS file(레지스트리, 시스템 파일 등)을 읽어서 guest OS에 대한 버전, 서비스팩, 보안패치 현황 등의 정보를 얻는다(S176~S177). 이어서, Guest OS 정보 접근 처리기(2116)는 PV guest인지 HVM guest인지 판별하기 위해서 xe vm-list의 정보 중 “HVM-boot-policy" 정보(값이 있으면 HVM guest, 값이 없으면 PV guest)를 얻는다(S178~S181). 이어서, Guest OS 정보 접근 처리기(2116)는 가상 스토리지의 사이즈를 얻기 위해서 libxenserver를 이용하여 하이퍼바이저(hypervisor)로부터 정보를 얻는다(S182~S185). 이어서, Guest OS 정보 접근 처리기(2116)는 얻어온 정보들을 API의 반환 형태로 취합 및 변환하여 API caller에 반환한다(S186~S187).
도 12는 도 4의 하이퍼콜 호출 모니터링 처리기의 동작을 설명하기 위한 순서도이다.
도 12를 참조하면, 하이퍼콜 호출 모니터링 처리기(2115)는, 해당 API의 호출이 이루어지기 전 정해진 시간 동안 각각의 가상 머신이 호출한 하이퍼콜의 요약 정보를 제공한다. 하이퍼콜의 수집 정보 주기는 사용자가 직접 설정할 수 있도록 관리 화면에서 제공하고, 정해진 시간동안 하이퍼콜의 호출 정보를 최근 3~20회 정도의 요약 정보(각 하이퍼콜별 호출 횟수)로 저장하고, 이전의 정보도 같이 제공할 수 있다.
하이퍼콜 호출 행위를 모니터링하기 위해, 하이퍼콜 호출 모니터링 처리기(2115)는 모듈 시작이 호출되면, 환경 설정 관리 모듈(2140)로부터 설정값(분석 데이터 저장 주기 시간 값)을 받아서 설정한다(S191~S193). 이어서, 하이퍼콜 호출 모니터링 처리기(2115)는 하이퍼바이저(hypervisor)에 몇 개의 도메인이 작동 중인지 확인 후 정보를 저장할 자료구조(linked list, 배열 등) 설정한다(S194~S197). 이어서, 하이퍼콜 호출 모니터링 처리기(2115)는 트레이스 버퍼(trace buffer)에 데이터가 작성될 때마다 이벤트를 받을 이벤트 채널(event channel)을 설정한다(S198~S201). 트레이스 버퍼에 데이터가 실시간으로 바뀌므로, 데이터가 작성 될 때 마다 정보를 받아오는 방법이 필요하기 때문이다. 이어서, 하이퍼콜 호출 모니터링 처리기(2115)는 트레이스 버퍼의 메타 데이터(트레이스 버퍼의 어느 부분을 읽어야 하는지)와 실제로 데이터가 있는 부분의 정보를 받아서 구조체에 저장한다(S202~S205). 이어서, 하이퍼바이저(hypervisor)는 트레이스 버퍼에 데이터가 작성될 때, 설정된 이벤트 채널로 이벤트를 알린다(S206). 하이퍼콜 호출 모니터링 처리기(2115)는 트레이스 버퍼 정보를 저장한 구조체를 참조하여 트레이스 버퍼의 data를 읽는다(S207). 이어서, 읽어온 트레이스 버퍼에는 하이퍼콜 외의 정보도 포함되어있으므로, 하이퍼콜 호출 모니터링 처리기(2115)는 필요한 데이터 부분만을 추출, 분석하여 어느 도메인(domain)이 어느 정도의 하이퍼콜을 호출하였는지 분석한다(S208). 이어서, 하이퍼콜 호출 모니터링 처리기(2115)는 데이터 저장 주기 설정 값에 따라, 일정 시간마다 분석한 정보를 저장할 버퍼의 내용을 삭제하고 새로운 정보를 저장한다(S209). 수집되는 정보가 많아서 일정 시간마다 버퍼의 내용을 삭제 하지 않으면, dom0의 저장 공간 제약 때문에 문제가 생길 수 있다. 이어서, API caller가 정보 요청 API를 호출하면, 하이퍼콜 호출 모니터링 처리기(2115)는 분석 정보 저장 버퍼의 내용을 읽어서 전송한다(S210~S211).
도 13은 도 4의 하이퍼바이저 정보 접근 처리기의 동작을 설명하기 위한 순서도이다.
도 13을 참조하면, 하이퍼바이저 정보 접근 처리기(2117)는, 하이퍼바이저 종류(XenServer, VMware vSphere (ESXi) 등), 버전, 보안패치, Dom0 관련 정보로서 Frontdriver 정보, 도메인(Domain) 이름, 도메인 ID, 메모리 정보, 콘솔(Console) 정보 등과, 디바이스 및 메모리 상세 정보, 콘솔 상세정보, 블록 디바이스 정보, 가상 인터페이스 정보 등을 제공할 수 있다.
하이퍼바이저의 내부 정보를 읽기 위해, 먼저 API caller가 하이퍼바이저 내부 정보를 요청하는 API를 호출한다(S221). 이어서, 하이퍼바이저 정보 접근 처리기(2117)는 하이퍼바이저(hypervisor)로부터 물리 호스트 정보(cpu, 메모리, 하이퍼바이저 버전 정보)를 요청하여 받는다(S222~225). 이 때, 하이퍼바이저 정보 접근 처리기(2117)가 받는 하이퍼바이저 버전 정보는 citrix xenserver version 정보가 아니다. 이어서, 하이퍼바이저 정보 접근 처리기(2117)는 xe command 명령어를 이용해서 ctirix xenserver 패치 정보(XS602E001등)를 받아 온다(S226~S229). 이어서, citrix xenserver version 정보는 파일에 기록(/etc/redgat-release)되어있으므로, 하이퍼바이저 정보 접근 처리기(2117)는 파일을 읽어서 정보를 얻는다(S230). 이어서, 하이퍼바이저 정보 접근 처리기(2117)는 받은 정보를 취합 및 변환하는 과정을 통해서 API의 반환 값에 맞는 형태로 API caller에 값을 반환한다(S231~S232).
도 14는 도 4의 보안 제어 처리기의 동작을 설명하기 위한 순서도이다.
도 14를 참조하면, 보안 제어 처리기(2118)는 가상 머신의 동작을 제어하는 명령, 가상 네트워크 트래픽의 레이트 제어 등에 대한 API를 구현 및 제공한다.
가상 머신 동작을 제어하는 명령은, start / shutdown / suspend / resume / save / restore / attach-device / detach-device / destroy / reset / reboot 등의 가상 머신의 통제 명령과, interface / network filter / network / storage / volume / snapshot 등의 관제에 필요한 명령을 포함할 수 있다.
가상 네트워크 트래픽의 레이트를 제어하는 명령은 interface-start / interface-destroy / interface-edit / interface-list / interface-bridge / interface-unbridge / net-create / net-destroy / net-edit / net-list / net-define / net-undefine 등의 명령을 포함할 수 있다.
보안 제어 명령을 하이퍼바이저에 전달하기 위해, 먼저 API caller가 하이퍼바이저(hypervisor)에 제어를 요청한다(S241). 이 때, port QoS 설정 또는 domU control 대한 요청과 설정 관련 값을 넘겨 받아야 한다. 이어서, 보안 제어 처리기(2118)는 하이퍼바이저(hypervisor)에 대한 제어 요청 중, DomU control에 대한 요청일 경우, libxenserver를 이용하여 xml-rpc 형태로 API(xenapi) 호출하고, 결과 값(성공인지 또는 실패인지)에 따른 예외 처리를 수행한다(S242~S245).
보안 제어 처리기(2118)는 port QoS 설정 관련 요청일 경우, 가상 네트워크 접근 처리기(2114)에 Port QoS 설정 요청을 보내고, 결과 값(성공인지 또는 실패인지)에 따른 예외 처리를 수행한다(S246~S249). 보안 제어 처리기(2118)는 해당 요청에 대한 결과 값(성공인지 실패인지)을 API caller에 전송한다(S250).
도 15는 도 2의 vIPS 프레임워크의 세부 구성을 설명하기 위한 블록도이다.
도 15를 참조하면, vIPS 프레임워크(2120)는 침입 탐지 모듈들에게 침입 탐지를 수행하기 위해 필요한 정보를 제공하고, 상기 모듈들로부터 침입 탐지 결과를 입력 받는다. vIPS 프레임워크(2120)는 외부 인터페이스 모듈(2150)에 클라우드 에이전트(3000)가 요구하는 가상화 시스템(10)의 자원 정보와 vIPS(2000)에서 발생되는 보안 이벤트를 제공하고, 보안 제어 명령과 정책을 입력 받는다. vIPS 프레임워크(2120)는 환경 설정 관리 모듈(2140)로부터 내부 모듈들의 기능 수행을 위한 환경 설정 값을 입력 받는다.
이러한 vIPS 프레임워크(2120)는 가상화 시스템 내부 정보 수집 및 분석 모듈(2121), 침입 방지 시스템 제어 모듈(2122), 침입 대응 처리 모듈(2123), 정책 및 시그니쳐 관리 모듈(2124), 로깅 모듈(2125)을 포함한다.
가상화 시스템 내부 정보 수집 및 분석 모듈(2121)은 하이퍼바이저 보안 API 모듈(2110)을 통해 가상 머신의 내부 정보, 하이퍼바이저(1000)의 내부 정보 등을 획득한다. 가상화 시스템 내부 정보 수집 및 분석 모듈(2121)은 특히 가상 머신의 메모리 내용에 대해 가상 머신 guest OS에 따른 해석을 제공할 수 있다.
침입 방지 시스템 제어 모듈(2122)은 vIPS(2000)의 전체적인 동작을 제어한다. 침입 방지 시스템 제어 모듈(2122)은 침입 탐지 모듈들(Stateful 방화벽 모듈(2200), NIPS 모듈(2300), 가상화 자원 고갈 공격 탐지 모듈(2400))의 동작을 각각 제어한다.
침입 대응 처리 모듈(2123)은 침입 탐지 결과에 대해 대응 정책에 따른 대응을 수행한다.
정책 및 시그니쳐 관리 모듈(2124)은 NIPS 모듈(2300)의 공격 탐지 시그니쳐 및 대응 정책 룰과 방화벽을 위한 정책 룰 등을 관리한다.
로깅 모듈(2125)은 로그를 생성하고 관리한다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 컴퓨터로 읽을 수 있는 기록 매체에 상주할 수도 있다. 예시적인 기록 매체는 프로세서에 커플링되며, 그 프로세서는 기록 매체로부터 정보를 판독할 수 있고 기록 매체에 정보를 기입할 수 있다. 다른 방법으로, 기록 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
10: 가상화 시스템
20: 클라우드 통합 보안 관제 시스템
1000: 하이퍼바이저
2000: 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템
2100: 하이퍼바이저 기반 침입 방지 플랫폼
2110: 하이퍼바이저 보안 API 모듈
2111: 가상 메모리 접근 처리기
2112: 가상 CPU 접근 처리기
2113: 가상 스토리지 접근 처리기
2114: 가상 네트워크 접근 처리기
2115: 하이퍼콜 호출 모니터링 처리기
2116: Guest OS 정보 접근 처리기
2117: 하이퍼바이저 정보 접근 처리기
2118: 보안 제어 처리기
2120: vIPS 프레임워크
2121: 가상화 시스템 내부 정보 수집 및 분석 모듈
2122: 침입 방지 시스템 제어 모듈
2123: 침입 대응 처리 모듈
2124: 정책 및 시그니쳐 관리 모듈
2125: 로깅 모듈
2130: 관리자 계정 관리 및 인증 모듈
2140: 환경 설정 관리 모듈
2150: 외부 인터페이스 모듈
2200: Stateful 방화벽 모듈
2300: NIPS 모듈
2400: 가상화 자원 고갈 공격 탐지 모듈
3000: 클라우드 에이전트

Claims (14)

  1. 하이퍼바이저로부터 가상화 시스템의 내부 정보를 획득하고, 상기 가상화 시스템의 내부 정보를 이용한 침입 탐지 결과에 대응하여 상기 하이퍼바이저에 보안 제어를 수행할 수 있도록 API를 제공하는 하이퍼바이저 보안 API 모듈 장치에 있어서,
    가상 머신의 가상 메모리 내용을 읽고 쓰는 API를 제공하는 가상 메모리 접근 처리기;
    상기 가상 머신의 가상 CPU의 레지스터 값을 읽는 API를 제공하는 가상 CPU 접근 처리기;
    상기 가상 머신의 파일 시스템에 접근하여 디렉토리 이동 및 파일을 읽고 쓰는 API를 제공하는 가상 스토리지 접근 처리기;
    가상 네트워크 패킷을 캡쳐 및 필터링하는 API를 제공하는 가상 네트워크 접근 처리기;
    하이퍼콜 호출을 모니터링하는 API를 제공하는 하이퍼콜 호출 모니터링 처리기;
    Guest OS에 대한 정보를 읽는 API를 제공하는 Guest OS 정보 접근 처리기;
    상기 하이퍼바이저의 내부 정보를 읽는 API를 제공하는 하이퍼바이저 정보 접근 처리기; 및
    상기 하이퍼바이저에 상기 보안 제어를 전달하는 API를 제공하는 보안 제어 처리기를 포함하는, 하이퍼바이저 보안 API 모듈 장치.
  2. 제1항에 있어서,
    상기 가상 메모리 접근 처리기는, 커널 심볼의 값을 읽는 API, 특정 주소의 메모리 내용을 읽고 쓰는 API, 상기 가상 메모리의 접근과 관련된 함수들을 제공하는 유틸리티 API를 포함하는, 하이퍼바이저 보안 API 모듈 장치.
  3. 제1항에 있어서,
    상기 가상 스토리지 접근 처리기는, 상기 가상 머신의 가상 스토리지 이미지를 복제하고 복제본에 접근하거나, 상기 가상 머신의 상기 가상 스토리지 이미지에 직접 접근하여 디렉토리 이동 및 파일을 읽고 쓸 수 있는 API를 제공하고, 상기 가상 머신의 스토리지 블록 I/O 행위를 모니터링하는 API를 제공하는, 하이퍼바이저 보안 API 모듈 장치.
  4. 제1항에 있어서,
    상기 가상 네트워크 접근 처리기는, 가상 네트워크 트래픽 레이트를 제어하고, NetFlow 지원 설정하는 API를 제공하는, 하이퍼바이저 보안 API 모듈 장치.
  5. 제1항에 있어서,
    상기 하이퍼콜 호출 모니터링 처리기는, 정해진 시간 동안 가상 머신이 호출한 하이퍼콜의 호출 정보를 제공하는, 하이퍼바이저 보안 API 모듈 장치.
  6. 제1항에 있어서,
    상기 하이퍼바이저 정보 접근 처리기는, 상기 하이퍼바이저의 물리적 정보, 상기 하이퍼바이저의 버전 정보, 상기 하이퍼바이저의 패치 정보를 제공하는, 하이퍼바이저 보안 API 모듈 장치.
  7. 제1항에 있어서,
    상기 보안 제어 처리기는, 상기 가상 머신의 동작을 제어하는 명령, 가상 네트워크 트래픽의 레이트를 제어하는 명령을 전달하는, 하이퍼바이저 보안 API 모듈 장치.
  8. 가상 머신의 내부 정보, 하이퍼바이저의 내부 정보, 가상화 시스템의 가상 네트워크 패킷를 이용하여 침입 탐지를 수행하는 침입 탐지 모듈 장치; 및
    상기 가상 머신의 내부 정보, 상기 하이퍼바이저의 내부 정보, 상기 가상화 시스템의 가상 네트워크 패킷을 상기 침입 탐지 모듈 장치에 제공하고, 상기 침입 탐지 모듈 장치로부터 침입 탐지 결과를 입력받는 하이퍼바이저 기반 침입 방지 플랫폼을 포함하되,
    상기 하이퍼바이저 기반 침입 방지 플랫폼은, 하이퍼바이저로부터 상기 가상 머신의 내부 정보, 상기 하이퍼바이저의 내부 정보, 상기 가상화 시스템의 가상 네트워크 패킷을 획득하고, 상기 침입 탐지 결과에 대응하여 상기 하이퍼바이저에 보안 제어를 수행할 수 있도록 API를 제공하는 하이퍼바이저 보안 API 모듈 장치를 포함하고,
    상기 하이퍼바이저 보안 API 모듈 장치는,
    상기 가상 머신의 가상 메모리 내용을 읽고 쓰는 API를 제공하는 가상 메모리 접근 처리기와,
    상기 가상 머신의 가상 CPU의 레지스터 값을 읽는 API를 제공하는 가상 CPU 접근 처리기와,
    상기 가상 머신의 파일 시스템에 접근하여 디렉토리 이동 및 파일을 읽고 쓰는 API를 제공하는 가상 스토리지 접근 처리기와,
    상기 가상 네트워크 패킷을 캡쳐 및 필터링하는 API를 제공하는 가상 네트워크 접근 처리기와,
    하이퍼콜 호출을 모니터링하는 API를 제공하는 하이퍼콜 호출 모니터링 처리기와,
    Guest OS에 대한 정보를 읽는 API를 제공하는 Guest OS 정보 접근 처리기와,
    상기 하이퍼바이저의 내부 정보를 읽는 API를 제공하는 하이퍼바이저 정보 접근 처리기와,
    상기 하이퍼바이저에 상기 보안 제어를 전달하는 API를 제공하는 보안 제어 처리기를 포함하는, 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템.
  9. 제8항에 있어서,
    상기 가상 메모리 접근 처리기는, 커널 심볼의 값을 읽는 API, 특정 주소의 메모리 내용을 읽고 쓰는 API, 상기 가상 메모리의 접근과 관련된 함수들을 제공하는 유틸리티 API를 포함하는, 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템.
  10. 제8항에 있어서,
    상기 가상 스토리지 접근 처리기는, 상기 가상 머신의 가상 스토리지 이미지를 복제하고 복제본에 접근하거나, 상기 가상 머신의 상기 가상 스토리지 이미지에 직접 접근하여 디렉토리 이동 및 파일을 읽고 쓸 수 있는 API를 제공하고, 상기 가상 머신의 스토리지 블록 I/O 행위를 모니터링하는 API를 제공하는, 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템.
  11. 제8항에 있어서,
    상기 가상 네트워크 접근 처리기는, 가상 네트워크 트래픽 레이트를 제어하고, NetFlow 지원 설정하는 API를 제공하는, 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템.
  12. 제8항에 있어서,
    상기 하이퍼콜 호출 모니터링 처리기는, 정해진 시간 동안 가상 머신이 호출한 하이퍼콜의 호출 정보를 제공하는, 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템.
  13. 제8항에 있어서,
    상기 하이퍼바이저 정보 접근 처리기는, 상기 하이퍼바이저의 물리적 정보, 상기 하이퍼바이저의 버전 정보, 상기 하이퍼바이저의 패치 정보를 제공하는, 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템.
  14. 제8항에 있어서,
    상기 보안 제어 처리기는, 상기 가상 머신의 동작을 제어하는 명령, 가상 네트워크 트래픽의 레이트를 제어하는 명령을 전달하는, 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템.
KR1020130044141A 2013-04-22 2013-04-22 하이퍼바이저 보안 api 모듈 및 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템 KR101454837B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130044141A KR101454837B1 (ko) 2013-04-22 2013-04-22 하이퍼바이저 보안 api 모듈 및 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130044141A KR101454837B1 (ko) 2013-04-22 2013-04-22 하이퍼바이저 보안 api 모듈 및 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템

Publications (1)

Publication Number Publication Date
KR101454837B1 true KR101454837B1 (ko) 2014-10-28

Family

ID=51998784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130044141A KR101454837B1 (ko) 2013-04-22 2013-04-22 하이퍼바이저 보안 api 모듈 및 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템

Country Status (1)

Country Link
KR (1) KR101454837B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101816751B1 (ko) 2015-10-07 2018-01-10 한국전자통신연구원 하이퍼바이저 기반의 가상머신 모니터링 장치 및 방법
US10121004B2 (en) 2015-10-07 2018-11-06 Electronics And Telecommunications Research Institute Apparatus and method for monitoring virtual machine based on hypervisor
KR20200041028A (ko) 2018-10-11 2020-04-21 전석기 패치 환경을 이용한 멀웨어 판단 방법 및 시스템
KR20210056810A (ko) 2019-11-11 2021-05-20 주식회사 아이티스테이션 스마트 산업제어시스템용 악성코드 대응을 위한 즉시 복구 방법
KR20210056807A (ko) 2019-11-11 2021-05-20 주식회사 아이티스테이션 스마트 산업제어시스템용 중앙제어용 능동형 복구 시스템
WO2022119110A1 (ko) * 2020-12-02 2022-06-09 삼성전자 주식회사 하이퍼바이저를 이용한 가상 머신 모니터링 방법 및 이를 지원하는 전자 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110036420A (ko) * 2009-10-01 2011-04-07 윤성진 클라우드 컴퓨팅 환경을 위한 가상 방화 장치 및 방법
KR101059199B1 (ko) 2011-01-13 2011-08-25 주식회사 이글루시큐리티 클라우드 컴퓨팅 통합보안관제시스템 및 그 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110036420A (ko) * 2009-10-01 2011-04-07 윤성진 클라우드 컴퓨팅 환경을 위한 가상 방화 장치 및 방법
KR101059199B1 (ko) 2011-01-13 2011-08-25 주식회사 이글루시큐리티 클라우드 컴퓨팅 통합보안관제시스템 및 그 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101816751B1 (ko) 2015-10-07 2018-01-10 한국전자통신연구원 하이퍼바이저 기반의 가상머신 모니터링 장치 및 방법
US10121004B2 (en) 2015-10-07 2018-11-06 Electronics And Telecommunications Research Institute Apparatus and method for monitoring virtual machine based on hypervisor
KR20200041028A (ko) 2018-10-11 2020-04-21 전석기 패치 환경을 이용한 멀웨어 판단 방법 및 시스템
KR20210056810A (ko) 2019-11-11 2021-05-20 주식회사 아이티스테이션 스마트 산업제어시스템용 악성코드 대응을 위한 즉시 복구 방법
KR20210056807A (ko) 2019-11-11 2021-05-20 주식회사 아이티스테이션 스마트 산업제어시스템용 중앙제어용 능동형 복구 시스템
WO2022119110A1 (ko) * 2020-12-02 2022-06-09 삼성전자 주식회사 하이퍼바이저를 이용한 가상 머신 모니터링 방법 및 이를 지원하는 전자 장치

Similar Documents

Publication Publication Date Title
KR101394424B1 (ko) 하이퍼바이저 기반 침입 방지 플랫폼 및 가상화 네트워크 침입 방지 시스템
KR101535502B1 (ko) 보안 내재형 가상 네트워크 제어 시스템 및 방법
US10567422B2 (en) Method, apparatus and system for processing attack behavior of cloud application in cloud computing system
KR101454837B1 (ko) 하이퍼바이저 보안 api 모듈 및 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템
US9769250B2 (en) Fight-through nodes with disposable virtual machines and rollback of persistent state
US11979428B1 (en) Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints
US11743289B2 (en) Managing transmissions of virtual machines using a network interface controller
Vrable et al. Scalability, fidelity, and containment in the potemkin virtual honeyfarm
US20170054686A1 (en) Agentless Security of Virtual Machines using a Filtering Platform
US8707417B1 (en) Driver domain as security monitor in virtualization environment
US20150199513A1 (en) Threat-aware microvisor
CN112003877B (zh) 一种网络隔离方法、装置、电子设备及存储介质
JP2018538633A (ja) 複数のネットワークエンドポイントをセキュアにするためのデュアルメモリイントロスペクション
EP3265949B1 (en) Operating system management
EP3070633B1 (en) Network interface devices with remote storage control
CN111324891A (zh) 用于容器文件完整性监视的系统和方法
Lengyel et al. Towards hybrid honeynets via virtual machine introspection and cloning
US10649847B2 (en) Communication apparatus, system, method, and non-transitory medium
US20180137274A1 (en) Malware analysis method and storage medium
Fan et al. Adaptive and flexible virtual honeynet
Zhan et al. CIADL: cloud insider attack detector and locator on multi-tenant network isolation: an OpenStack case study
Zhang et al. Xen-based virtual honeypot system for smart device
KR101454838B1 (ko) 하이퍼바이저 기반 가상화 네트워크 및 호스트 침입방지 시스템과 연동하는 클라우드 통합 보안 관제 시스템
Nguyen et al. Exploring infrastructure support for app-based services on cloud platforms
Mohan et al. Towards non-intrusive software introspection and beyond

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee