KR20170043438A - 컨테이너 기반의 가상화 시스템용 조작 포획 방법 및 장치 - Google Patents

컨테이너 기반의 가상화 시스템용 조작 포획 방법 및 장치 Download PDF

Info

Publication number
KR20170043438A
KR20170043438A KR1020160103690A KR20160103690A KR20170043438A KR 20170043438 A KR20170043438 A KR 20170043438A KR 1020160103690 A KR1020160103690 A KR 1020160103690A KR 20160103690 A KR20160103690 A KR 20160103690A KR 20170043438 A KR20170043438 A KR 20170043438A
Authority
KR
South Korea
Prior art keywords
signal
container
system call
function
unit
Prior art date
Application number
KR1020160103690A
Other languages
English (en)
Other versions
KR101845162B1 (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 KR20170043438A publication Critical patent/KR20170043438A/ko
Application granted granted Critical
Publication of KR101845162B1 publication Critical patent/KR101845162B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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/445Program loading or initiating
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

Abstract

본 출원은 컨테이너 기반의 가상화 시스템용 조작 포획 방법, 보안 제어 방법 및 장치를 개시한다. 상기 조자 포획 방법은 사용자 모드에서 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스의 작동시작 조작을 검측하는 단계; 및 상기 프로세스의 작동시작 조작이 검측되면 커널 모드에서 신호 처리 조작을 포획하는 단계를 실행하는 단계;를 포함하되,
상기 신호 처리 조작을 포획하는 단계는, 상기 프로세스에 처리되지 않은 신호가 존재하는지 확인하고, 상기 처리되지 않은 신호가 존재할 경우, 상기 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시키고 상기 신호의 신호 번호를 상기 제1 함수로 전달하고, 상기 제1 함수가 호출되면, 호출시 전달된 신호 번호에 대응되는 신호 처리 조작을 포획하는 것을 포함한다. 상기 실시예에 의하면, 컨테이너 중의 프로세스가 호스트 커널을 액세스하는 조작에 대한 포획을 실현하여 차후에 포획된 조작에 대해 보안 제어를 진행함으로써 시스템 보안을 확보하였다.

Description

컨테이너 기반의 가상화 시스템용 조작 포획 방법 및 장치{METHOD FOR CAPTURING OPRATIONS FOR CONTAINER-BASED VIRTUALIZATION SYSTEM AND APPARATUS}
본 발명은 컴퓨터 기술 분야에 관한 것으로, 보다 상세하게는 컴퓨터 보안 기술 분야에 관한 것이며, 특히는 컨테이너 기반의 가상화 시스템용 조작 포획 방법, 보안 제어 방법 및 장치에 관한 것이다.
가상화는 가상화 기술을 통해 하나의 컴퓨터(물리적 머신)를 다수의 논리적 컴퓨터(가상 머신)로 가상화시키는 것을 가리킨다. 다수의 논리적 컴퓨터는 하나의 컴퓨터에서 동시에 가동되되, 각 논리적 컴퓨터는 서로 다른 운영체제를 가동시킬 수 있으며, 응용 프로그램은 모두 서로 독립된 공간에서 서로 영향 주지 않으면서 작동될 수 있기 때문에 컴퓨터의 작업 효율을 현저히 향상시킨다. 현재, 컨테이너 기반(Contrainer-Based)의 가상화 기술은 가장 많이 응용되는 가상화 기술 중의 하나로서 명령어 해석 메카니즘과 전가상화(Full Virtualization)의 기타 복잡한 처리가 필요없이 프로세스와 자원을 격리시키도록 가벼운 가상화를 제공할 수 있다. 컨테이너 기반의 가상화 시스템은 컨테이너 기반의 가상화 기술을 통해 만들어 낸 컨테이너와 호스트를 포함한 가상화 환경이다. 컨테이너(Container)는 단일 운영체제가 관리하는 자원을 고립된 그룹으로 효율적으로 분할하여 고립된 그룹 사이에서 상충되는 자원 사용에 대한 수요가 더 좋은 균형을 이루도록 한다. 컨테이너 기반의 가상화 기술은 전통적인 가상화 기술에 비해 호스트와 동일한 커널을 사용하여 성능 소모가 적고, 명령어 레벨의 에뮬레이션을 필요로 하지 않는다.
다만, 컨테이너 기반의 가상화 시스템에 있어서, 컨테이너가 호스트의 커널을 직접 액세스할 수 있으므로 컨테이너의 프로세스는 호스트의 커널을 쉽게 뚫고 호스트의 제어권을 획득함으로써 호스트 전체 및 기타 컨테이너의 안전을 위협할 수 있다. 컨테이너 기반의 가상화 시스템의 안전을 확보하기 위해, 컨테이너 중의 프로세스가 호스트의 커널을 액세스하는 조작을 포획하고 포획된 조작에 대해 상응한 처리를 진행해야 하나, 현재로서는 아직 컨테이너 중의 프로세스가 호스트의 커널을 액세스하는 조작에 대한 포획을 구현할 방법이 존재하지 않는다.
본 발명은 상기 배경 기술 부분에서 언급된 기술적 문제를 해결하기 위해 안출한 것으로, 컨테이너 기반의 가상화 시스템용 조작 포획 방법, 보안 제어 방법 및 장치를 제공하고자 한다.
제1 방면에 있어서, 본 출원은 컨테이너 기반의 가상화 시스템용 조작 포획 방법을 제공하며, 상기 방법은, 사용자 모드에서 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스의 작동시작 조작을 검측하는 단계; 및 상기 프로세스의 작동시작 조작이 검측되면 커널 모드에서 신호 처리 조작을 포획하는 단계를 실행하는 단계;를 포함하되, 상기 신호 처리 조작을 포획하는 단계는 상기 프로세스에 처리되지 않은 신호가 존재하는지 여부를 확인하고, 상기 처리되지 않은 신호가 존재할 경우 상기 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시키고 상기 신호의 신호 번호를 상기 제1 함수로 전달하고, 상기 제1 함수가 호출되면 호출시 전달된 신호 번호에 대응되는 신호 처리 조작을 포획하는 것을 포함한다.
제2 방면에 있어서, 본 출원은 컨테이너 기반의 가상화 시스템용 보안 제어 방법을 제공하며, 상기 방법은, 제1 방면에 기재된 방법에 의해 신호 처리 조작 또는 시스템 호출 조작인 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스가 커널을 액세스하는 조작을 포획하는 단계; 포획된 상기 조작이 신호 처리 조작일 경우, 상기 신호 처리 조작에 대응되는 신호 번호를 획득하는 단계; 및 상기 신호 번호에 대응되는 신호가 지시하는 실행 명령어를 중앙처리장치의 특권 레벨 Ring3에서 작동하도록 전환하는 단계;를 포함한다.
제3 방면에 있어서, 본 출원은 컨테이너 기반의 가상화 시스템용 조작 포획 장치를 제공하며, 상기 장치는, 사용자 모드에서 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스의 작동시작 조작을 검측하는 프로세스 작동시작 검측 유닛; ?? 프로세스 작동시작 검측 유닛이 상기 프로세스의 작동시작 조작을 검측하면 커널 모드에서 신호 처리 조작을 포획하는 단계를 실행하는 신호 처리 포획 유닛;을 포함하되, 상기 신호 처리 포획 유닛은 상기 프로세스에 처리되지 않은 신호가 존재하는지 확인하는 신호 검출 서브 유닛과, 상기 처리되지 않은 신호가 존재할 경우 상기 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시키고 상기 신호의 신호 번호를 상기 제1 함수로 전달하는 실행 명령어 점프 서브 유닛과, 상기 제1 함수가 호출되면 호출시 전달된 신호 번호에 대응되는 신호 처리 조작을 포획하는 신호 처리 포획 서브 유닛을 포함한다.
제4 방면에 있어서, 본 출원은 컨테이너 기반의 가상화 시스템용 보안 제어 장치를 제공하며, 상기 장치는, 제1 방면에 기재된 방법에 의해 신호 처리 조작 또는 시스템 호출 조작인 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스가 커널을 액세스하는 조작을 포획하는 조작 포획 유닛; 포획된 상기 조작이 신호 처리 조작일 경우, 상기 신호 처리 조작에 대응되는 신호 번호를 획득하는 신호 번호 획득 유닛; 및 상기 신호 번호에 대응되는 신호가 지시하는 실행 명령어를 중앙처리장치의 특권 레벌 Ring3에서 작동하도록 전환하는 특권 레벨 전환 유닛;을 포함한다.
본 출원에 제공된 컨테이너 기반의 가상화 시스템용 조작 포획 방법, 보안 제어 방법 및 장치는 프로세스에 처리되지 않은 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시킴으로써 커널을 액세스할 수 있는 신호 처리 조작을 포획하여 포획된 조작에 대해 후속적인 보안 제어를 진행하도록 컨테이너 중의 프로세스가 호스트 커널을 액세스하는 조작에 대한 포획을 실현함으로써 시스템 보안을 확보한다.
본 출원의 기타 특징, 목적 및 장점들은 하기 도면을 참조하여 진행하는 비한정적 실시예들에 대한 상세한 설명을 통하여 더욱 명확해 질 것이다.
도 1은 본 출원에 따른 컨테이너 기반의 가상화 시스템용 조작 포획 방법의 일 실시예의 흐름도이다.
도 2는 본 출원에 따른 컨테이너 기반의 가상화 시스템용 조작 포획 방법의 다른 일 실시예의 흐름도이다.
도 3은 본 출원에 따른 컨테이너 기반의 가상화 시스템용 보안 제어 방법의 일 실시예의 흐름도이다.
도 4는 본 출원에 따른 컨테이너 기반의 가상화 시스템용 조작 포획 장치의 일 실시예의 예시적 구성도이다.
도 5는 본 출원에 따른 컨테이너 기반의 가상화 시스템용 보안 제어 장치의 일 실시예의 예시적 구성도이다.
도 6은 본 출원의 컨테이너 기반의 가상화 시스템이 위치한 물리적 머신을 실현하기에 적합한 컴퓨터 시스템의 예시적 구성도이다.
이하, 첨부된 도면 및 실시예들을 결합하여 본 출원에 대한 진일보 상세한 설명을 진행하기로 한다. 본 명세서에 설명된 구체적인 실시예들은 오직 관련 발명을 해석하기 위한 것일 뿐, 해당 발명을 한정하기 위한 것이 아님을 자명할 것이다. 또한, 설명의 편의를 위하여, 도면에는 오직 관련 발명에 연관되는 부분만 도시되어 있음을 자명할 것이다.
본 발명의 실시예 및 실시예의 특징들은 서로 모순되지 않는 한 상호 조합될 수 있다. 이하, 첨부된 도면을 참조하고 본 발명에 대한 상세한 설명을 실시예들을 결합하여 진행하기로 한다.
도 1은 본 출원에 따른 컨테이너 기반의 가상화 시스템용 조작 포획 방법의 일 실시예의 흐름(100)이다.
도 1에 도시된 바와 같이, 본 실시예의 컨테이너 기반의 가상화 시스템용 조작 포획 방법은 아래와 같은 단계들을 포함한다.
단계(101), 사용자 모드에서 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스의 작동시작 조작을 검측한다.
본 실시예에 있어서, 단계(101)는 상기 프로세스가 가상화 시스템의 호스트의 중앙처리장치에 호출되어 실행되는 것에 대응되는 조작을 검측하는 것을 포함할 수 있다. CPU(중앙처리장치) 가상화 기술에 근거하여 프로세스는 운행시 먼저 커널 중의 하나의 가상화 CPU를 점용하므로, 본 단계는 가상화 CPU에 대한 처리에 검측 처리를 추가함으로써 상기 프로세스의 작동시작 조작에 대한 검측을 실현할 수 있다.
단계(102), 상기 프로세스의 작동시작 조작이 검측되면 커널 모드에서 상기 프로세스에 처리되지 않은 신호가 존재하는지 확인한다.
본 실시예에 있어서, 상기 프로세스의 작동시작 조작이 검측된 후, 커널 모드에서 상기 프로세스의 task_struck 구조(Linux 운영체제용 프로세스 기술자)를 획득할 수 있고, 상기 task_struck 구조를 통해 상기 프로세스에 처리되지 않은 신호가 존재하는지 확인할 수 있다.
단계(103), 상기 신호가 존재할 경우, 상기 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시키고 상기 신호의 신호 번호를 상기 제1 함수로 전달한다.
본 실시예에 있어서, 단계(102) 전에 사용자 모드에서 상기 제1 함수의 입구주소를 상기 가상화 시스템의 호스트의 커널로 전달하고, 커널 모드에서 상기 제1 함수의 입구주소를 커널 공간에 저장할 수 있다. 따라서, 상기 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시키는 것은 상기 커널 공간에 저장된 상기 제1 함수의 입구주소를 획득하는 것; 및 상기 신호가 지시하는 실행 명령어를 상기 제1 함수의 입구주소로 점프시키는 것;을 포함할 수 있다.
단계(104), 상기 제1 함수가 호출되면 호출시 전달된 신호 번호에 대응되는 신호 처리 조작을 포획한다.
각 신호에 대응되는 양의 정수인 상수를 신호 번호라고 지칭하며, 이는 시스템 헤더 파일에 한정된다. 본 실시예에 있어서, 단계(103)에서 상기 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시키고 상기 신호의 신호 번호를 상기 제1 함수로 전달함으로써, 제1 함수가 호출되어 작동할 때, 제1 함수에서 상기 전달된 신호 번호에 대응되는 신호 처리 조작을 포획할 수 있고, 이로 하여 상기 신호 번호에 대응되는 신호 처리 조작이 포획된다.
본 실시예가 제공하는 컨테이너 기반의 가상화 시스템용 조작 포획 방법은 프로세스의 처리되지 않은 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시킴으로써 커널을 액세스할 수 있는 신호 처리 조작을 포획하여 컨테이너 중의 프로세스가 호스트의 커널을 액세스하는 조작에 대한 포획을 실현한다.
이어서 도 2를 참조하면, 도 2는 본 출원의 컨테이너 기반의 가상화 시스템용 조작 포획 방법의 다른 일 실시예에 따른 흐름(200)이다.
도 2에 도시된 바와 같이, 본 실시예의 컨테이너 기반의 가상화 시스템용 조작 포획 방법은 아래와 같은 단계를 포함한다.
단계(201), 사용자 모드에서 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스의 작동시작 조작을 검측한다.
본 실시예에 있어서, 단계(201)의 구체적인 처리는 도 1에 대응되는 실시예의 단계(101)에 대한 상기 상세한 설명을 참조할 수 있으므로, 중복된 설명은 생략하기로 한다.
단계(202), 상기 프로세스의 작동시작 조작이 검측되면 커널 모드에서 신호 처리 조작을 포획하는 단계를 실행한다.
여기서, 상기 신호 처리 조작을 포획하는 단계는 아래와 같은 단계들을 포함한다.
단계(2021), 상기 프로세스에 처리되지 않은 신호가 존재하는지 확인한다.
단계(2022), 상기 처리되지 않은 신호가 존재할 경우, 자체 정의 제1 함수의 입구주소로 상기 신호가 지시하는 실행 명령어를 점프시키고 상기 제1 함수에 상기 신호의 신호 번호를 전달한다.
단계(2023), 상기 제1 함수가 호출되면 호출시 전달된 신호 번호에 대응되는 신호 처리 조작을 포획한다.
본 실시예에 있어서, 단계(2021), 단계(2022) 및 단계(2023)의 구체적인 처리는 각각 도 1에 대응되는 실시예의 단계(102), 단계(103) 및 단계(104)에 대한 상세한 설명을 참조할 수 있으므로, 이에 대한 중복된 설명은 생략하기로 한다.
단계(203), 상기 프로세스의 작동시작 조작이 검측되면 시스템 호출 조작을 포획하는 단계를 실행한다.
여기서, 상기 시스템 호출 조작을 포획하는 단계는 아래와 같은 단계를 포함한다.
단계(2031), 커널 모드에서 특정 모델 레지스터(Model Specific Register, MSR)를 판독함으로써 시스템이 호출한 입구주소를 획득할 수 있다.
본 실시예에 있어서, 사용자 모드에서 상기 프로세스의 작동시작 조작이 검측되면, 사용자 모드에서 커널 모드의 소정의 인터페이스에 자체 정의 명령(예를 들어, GET_SYSCALL)을 발송할 수 있다. 커널 모드에서의 상기 인터페이스는 상기 명령을 전달받은 후, MSR_LSTAR 명령을 통해 특정 모델 레지스터를 판독함으로써 시스템에 의해 호출된 입구주소를 획득할 수 있다.
단계(2032), 사용자 모드에서 자체 정의 제2 함수의 주소로 상기 입구주소 중 시스템에 의해 호출된 입구 함수의 주소를 교체한다.
본 실시예에 있어서, 본 단계는 상기 프로세스의 주소 공간에서 실행될 수 있고, 단계(2021)에서 획득한 시스템에 의해 호출된 입구주소에 저장된 데이터가 시스템에 의해 호출된 입구 함수의 주소인 바, 상기 입구주소의 기존 데이터를 자체 정의 제2 함수의 주소로 변경함으로써 상기 프로세스가 시스템 호출 조작을 진행할 때 제2 함수에서 관련된 입구 파라미터와 시스템 호출 번호를 획득할 수 있다.
단계(2033), 상기 제2 함수가 호출되면 상기 제2 함수를 호출하는 시스템 호출 조작을 포획한다.
본 실시예에 있어서, 단계(2032)를 통해 상기 프로세스가 시스템 호출 조작을 진행할 때 제2 함수에서 관련 입구 파라미터와 시스템 호출 번호를 획득하는 것을 실현하였다. 따라서, 제2 함수가 호출되어 실행되면 상기 시스템 호출 번호에 대응되는 시스템 호출 조작을 포획한다.
단계(203)는 단계(202)와 동시에 진행될 수 있으며, 본 실시예에서는 이들의 실행 순서를 한정하지 않음을 자명하여야 한다.
도 2는 도 1에 대응되는 실시예에 대비하여 본 실시예 중의 조작 포획 방법의 흐름(200)에 시스템 호출 조작을 포획하는 단계를 추가하였다. 이에 따라, 본 실시예에 설명된 방안은 컨테이너 중의 프로세스가 커널을 액세스하는 조작을 더욱 전면적으로 포획할 수 있으므로 차후 포획된 조작에 대해 일정한 보안 조치를 취함으로써 컨테이너 기반의 가상화 시스템의 보안을 더욱 전면적으로 확보할 수 있다.
이하 도 3은 본 출원에 따른 컨테이너 기반의 가상화 시스템용 보안 제어 방법의 일 실시예의 흐름(300)을 나타낸다.
도 3에 도시된 바와 같이, 본 실시예의 컨테이너 기반의 가상화 시스템용 보안 제어 방법은 아래와 같은 단계들을 포함한다.
단계(301), 도 1 또는 도 2에 대응되는 실시예의 조작 포획 방법에 의해 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스가 커널을 액세스하는 조작을 포획하되, 상기 커널을 액세스하는 조작은 신호 처리 조작 또는 시스템 호출 조작이다.
본 실시예에 있어서, 단계(301)의 구체적인 처리는 도 1 또는 도 2에 대응되는 실시예에 대한 상기 상세한 설명을 참조할 수 있으므로, 이에 대한 중복된 설명은 생략하기로 한다.
단계(302), 포획된 상기 조작이 신호 처리 조작일 경우, 상기 신호 처리 조작에 대응되는 신호 번호를 획득한다.
본 실시예에 있어서, 본 단계는 도 1 또는 도 2에 대응되는 실시예 중의 제1 함수에 의해 실행될 수 있고, 단계(301)에서 처리되지 않은 신호의 신호 번호는 제1 함수로 전달되므로 제1 함수에서 상기 신호 처리 조작에 대응되는 신호 번호를 획득할 수 있다.
단계(303), 상기 신호 번호에 대응되는 신호가 지시하는 실행 명령어를 중앙처리장치의 특권 레벨 Ring3에서 작동하도록 전환한다.
중앙처리장치의 특권 레벨 Ring3은 현재 권한이 가장 낮은 특권 레벨인 바, Ring3에서 작동되는 프로그램은 오직 상대적으로 안전한 명령어만 실행할 수 있을 뿐, 레벌이 Ring3보다 높은 상대적으로 위험한 명령어(예를 들어, Ring0 명령어)를 실행할 수 없으므로, 본 실시예에 있어서, 포획된 신호 처리 조작에 대응되는 실행 명령어가 보안 모드에서 작동하도록 상기 신호 번호에 대응되는 신호가 지시하는 실행 명령어를 중앙처리장치의 특권 레벌 Ring3에서 작동하도록 전환함으로써 컨테이너 기반의 가상화 시스템의 보안성을 보강하였다.
본 실시예의 몇몇 구현방식에 있어서, 단계(301)는 도 2에 대응되는 실시예의 조작 포획 방법으로 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스가 커널을 액세스하는 조작을 획득할 수 있다. 또한, 본 실시예의 보안 제어 방법은 아래와 같은 동작을 더 포함할 수 있다.
포획된 상기 조작이 시스템 호출 조작일 경우, 포획된 시스템 호출 조작에 대응되는 시스템 호출 번호와 입구 파라미터에 근거하여 상기 시스템 호출 조작이 안전한지 여부를 확인하고; 상기 시스템 호출 조작이 불안전한 것으로 확인되면 상기 시스템 호출 조작을 저지한다.
여기서, 상기 포획된 시스템 호출 조작에 대응되는 시스템 호출 번호와 입구 파라미터에 근거하여 상기 시스템 호출 조작이 안전한지 여부를 확인하는 것은 사전에 구성된 구성파일을 통해 상기 시스템 호출 조작이 안전한지 여부를 확인하는 것을 포함하되, 상기 구성파일은 검사될 시스템 호출 번호 및/또는 보호할 자원과 상기 시스템 호출 번호 및/또는 보호할 자원에 연관된 조작 지시를 지정한다. 예를 들어, 어느 한 경로의 파일들을 보호하여 쓰기 조작을 진행하지 못하게 할 경우, 시스템 호출 번호는 write() 시스템 호출과 대응되는 시스템 호출 번호이고 입구 파라미터가 상기 경로를 포함할 경우에 취할 조치(예를 들어, 상기 시스템 호출을 저지함)를 구성파일에 설정할 수 있다.
상기 구현방식은 시스템 호출 조작에 대한 보안 제어 방법을 추가함으로써, 본 출원의 보안 제어 방법이 컨테이너 기반의 가상화 시스템을 더욱 전면적으로 보호할 수 있도록 한다.
본 실시예가 제공하는 컨테이너 기반의 가상화 시스템의 보안 제어 방법은 포획된 신호 처리 조작에 대응되는 신호가 지시하는 실행 명령어를 중앙처리장치의 특권 레벨 Ring3에서 작동하도록 전환함으로써, 상기 실행 명령어가 보안 모드에서 작동되도록 하여, 위험한 명령어의 실행을 저지하고 컨테이너 기반의 가상화 시스템의 안전을 보강하였다.
도 4를 진일보 참조하면, 상기 도 1에 도시된 방법의 실현으로서 본 출원은 컨테이너 기반의 가상화 시스템의 조작 포획 장치의 일 실시예를 제공하였고, 상기 장치의 실시예는 도 1에 도시된 방법 실시예와 서로 대응되며, 상기 장치는 구체적으로 컨테이너 기반의 가상화 시스템에 적용될 수 있다.
도 4에 도시된 바와 같이, 본 실시예의 조작 포획 장치(400)는 프로세스 작동시작 검측 유닛(401)과 신호 처리 포획 유닛(402)을 포함한다. 여기서, 프로세스 작동시작 검측 유닛(401)은 사용자 모드에서 컨테이너 기반의 가상화 시스템 중의 컨테이너의 프로세스의 작동시작 조작을 검측하고, 신호 처리 포획 유닛(402)은 프로세스 작동시작 검측 유닛에서 상기 프로세스의 작동시작 조작이 검측되면 커널 모드에서 신호 처리 조작을 포획하는 단계를 실행한다. 여기서, 신호 처리 포획 유닛(402)은 상기 프로세스에 처리되지 않은 신호가 존재하는지 확인하는 신호 검출 서브 유닛(4021)과, 상기 처리되지 않은 신호가 존재할 경우 상기 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시키고 상기 신호의 신호 번호를 상기 제1 함수로 전달하는 실행 명령어 점프 서브 유닛(4022)과, 상기 제1 함수가 호출되면 호출시 전달된 신호 번호에 대응되는 신호 처리 조작을 포획하는 신호 처리 포획 서브 유닛(4023)을 포함한다.
본 실시예에 있어서, 프로세스 작동시작 검측 유닛(401)은 프로세스가 상기 가상화 시스템의 호스트의 중앙처리장치로 호출되어 실행되는 것에 대응되는 조작을 검측하도록 진일보 구성될 수 있다. 프로세스 작동시작 검측 유닛(401)의 구체적인 처리는 도 1에 대응되는 실시예의 단계(101)에 대한 상세한 설명을 참조할 수 있으므로, 이에 대한 중복된 설명은 생략하기로 한다.
본 실시예에 있어서, 실행 명령어 점프 서브 유닛(4022)은 상기 커널 공간에 저장된 상기 제1 함수의 입구주소를 획득하는 제1 함수 입구주소 획득 모듈(도시되지 않음)과, 상기 신호가 지시하는 실행 명령어를 상기 제1 함수의 입구주소로 점프시키는 실행 명령어 점프 모듈(도시되지 않음)을 포함할 수 있다.
본 실시예에 있어서, 신호 검출 서브 유닛(4021), 실행 명령어 점프 서브 유닛(4022) 및 신호 처리 포획 서브 유닛(4023)의 구체적인 처리는 각각 상기 도 1에 대응되는 실시예의 단계(102), 단계(103) 및 단계(104)에 대한 상세한 설명을 참조할 수 있으므로, 이에 대한 중복된 설명은 생략하기로 한다.
본 실시예의 몇몇 구현방식에 있어서, 본 실시예의 조작 포획 장치는 프로세스 작동시작 검측 유닛에서 상기 프로세스의 작동시작 조작이 검측되면 시스템 호출 조작을 포획하는 단계를 실행하는 시스템 호출 포획 유닛(403)을 더 포함할 수 있다. 여기서, 시스템 호출 포획 유닛(403)은 커널 모드에서 특정 모델 레지스터를 판독함으로써 시스템에 의해 호출된 입구주소를 획득하는 시스템 호출 입구주소 획득 서브 유닛(4031)과, 사용자 모드에서 상기 입구주소중 시스템에 의해 호출된 입구 함수의 주소를 자체 정의 제2 함수의 주소로 교체하는 주소 교체 서브 유닛(4032)과, 상기 제2 함수가 호출되면 상기 제2 함수를 호출하는 시스템 호출 조작을 포획하는 시스템 호출 포획 서브 유닛(4033)을 포함한다.
시스템 호출 입구주소 획득 서브 유닛(4031), 주소 교체 서브 유닛(4032) 및 시스템 호출 포획 서브 유닛(4033)은 각각 상기 도 2에 대응되는 실시예의 단계(2031), 단계(2032) 및 단계(2033)에 대한 상세한 설명을 참조할 수 있으므로, 이에 대한 중복된 설명은 생략하기로 한다.
상술한 실시예들에 의하면, 본 실시예의 조작 포획 방법은 컨테이너 중의 프로세스가 커널을 액세스하는 조작을 더욱 전면적으로 포획할 수 있으므로, 차후에 포획된 조작에 대해 소정의 보안 조치를 취함으로써 컨테이너 기반의 가상화 시스템의 안전을 더욱 전면적으로 확보할 수 있다.
본 실시예의 몇몇 구현방식에 있어서, 신호 처리 포획 유닛(402)은 상기 프로세스에 처리되지 않은 신호가 존재하는지 확인하기 전에 사용자 모드에서 상기 제1 함수의 입구주소를 상기 가상화 시스템의 호스트의 커널로 전달하고 커널 모드에서 상기 제1 함수의 입구주소를 커널 공간에 저장하는 주소 전달 서브 유닛(도시되지 않음)을 더 포함할 수 있다.
본 실시예가 제공하는 컨테이너 기반의 가상화 시스템용 조작 포획 장치는 실행 명령어 점프 서브 유닛(4022)을 통해 프로세스의 처리되지 않은 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시킴으로써 커널을 액세스할 수 있는 신호 처리 조작을 포획하고, 컨테이너 중의 프로세스가 호스트의 커널을 액세스하는 조작에 대한 포획을 실현한다.
상기 조작 포획 장치(400)는 프로세서, 메모리 등과 같은 기타 몇몇 공지된 구조들을 더 포함한다는 것을 해당 분야에서 통상의 지식을 가진 자는 자명할 것이며, 본 개시의 실시예를 불필요하게 흐리지 않도록 도 4에서는 이러한 공지된 구조들을 도시하지 않기로 한다.
이어서 도 5를 참조하면, 상기 도 3에 도시된 방법에 대한 실현으로서 본 출원은 컨테이너 기반의 가상화 시스템용 보안 제어 장치의 일 실시예를 제공하였고, 상기 장치 실시예는 도 3에 도시된 방법 실시예와 서로 대응되며, 상기 장치는 구체적으로 컨테이너 기반의 가상화 시스템에 적용될 수 있다.
도 5에 도시된 바와 같이, 본 실시예의 보안 제어 장치(500)는 조작 포획 유닛(501), 신호 번호 획득 유닛(502) 및 특권 레벨 전환 유닛(503)을 포함한다. 여기서, 조작 포획 유닛(501)은 도 4에 대응되는 실시예가 제공하는 장치에 의해 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스가 커널을 액세스하는 조작, 즉 신호 처리 조작 또는 시스템 호출 조작을 포획하고, 신호 번호 획득 유닛(502)은 포획된 상기 조작이 신호 처리 조작일 경우 상기 신호 처리 조작에 대응되는 신호 번호를 획득하며, 특권 레벨 전환 유닛(503)은 상기 신호 번호에 대응되는 신호가 지시하는 실행 명령어를 중앙처리장치의 특권 레벌 Ring3에서 작동하도록 전환한다.
본 실시예에 있어서, 조작 포획 유닛(501), 신호 번호 획득 유닛(502) 및 특권 레벨 전환 유닛(503)은 각각 상기 도 3에 대응되는 실시예의 단계(301), 단계(302) 및 단계(303)에 대한 상세한 설명을 참조할 수 있으므로, 이에 대한 중복된 설명은 생략하기로 한다.
본 실시예의 몇몇 구현방식에 있어서, 본 실시예의 보안 제어 장치는 포획된 상기 조작이 시스템 호출 조작일 경우 포획된 시스템 호출 조작에 대응되는 시스템 호출 번호와 입구 파라미터에 근거하여 상기 시스템 호출 조작이 안전한지 여부를 확인하는 보안 확인 유닛(504)과, 상기 시스템 호출 조작이 불안전한 것으로 확인되면 상기 시스템 호출 조작을 저지하는 조작 저지 유닛(505)을 더 포함할 수 있다.
여기서, 보안 확인 유닛(504)은 사전에 구성된 구성파일을 통해 상기 시스템 호출 조작이 안전한지 여부를 확인하도록 진일보 구성될 수 있으며, 상기 구성파일은 검사될 시스템 호출 번호 및/또는 보호할 자원과 상기 시스템 호출 번호 및/또는 보호할 자원에 연관된 조작 지시를 지정한다. 보안 확인 유닛(504) 및 조작 차단 유닛(505)의 구체적인 처리와 이들의 기술적 효과는 도 3에 대응되는 실시예의 관련 구현방식에 대한 상세한 설명을 참조할 수 있으므로, 이에 대한 중복된 설명은 생략하기로 한다.
본 실시예가 제공하는 컨테이너 기반의 가상화 시스템용 보안 제어 장치는 포획된 신호 처리 조작에 대응되는 신호가 지시하는 실행 명령어를 중앙처리장치의 특권 레벌 Ring3에서 작동하도록 특권 레벨 전환 유닛(503)으로 전환함으로써 상기 실행 명령어가 보안 모드에서 작동하도록 하고 위험한 명령어의 실행을 저지하여 컨테이너 기반의 가상화 시스템의 보안을 향상시킨다.
상기 조작 포획 장치(400)가 프로세서, 메모리 등과 같은 기타 몇몇 공지된 구조들을 더 포함한다는 것을 해당 분야에서 통상의 지식을 가진 자는 자명할 것이며, 본 개시의 실시예를 불필요하게 흐리지 않도록 도 5에서는 이러한 공지된 구조들을 도시하지 않기로 한다.
이하 도 6을 참조하면, 도 6은 본 출원의 실시예의컨테이너 기반의 가상화 시스템을 실현하기에 적합한 컴퓨터 시스템(600)의 예시적 구성도이다.
도 6에 도시된 바와 같이, 컴퓨터 시스템(600)은 중앙 처리 유닛(CPU)(601)을 포함하고, 이는 읽기 전용 메모리 장치(ROM)(602)에 저장된 프로그램 또는 저장부(608)로부터 랜덤 액세스 메모리 장치(RAM)(603)에 로딩된 프로그램에 의하여 각종 적당한 동작 및 처리를 실행할 수 있다. RAM(603)에는 시스템(600) 조작에 필요한 각종 프로그램 및 데이터들이 더 저장되어 있다. CPU(601), ROM(602) 및 RAM(603)은 버스라인(604)을 통해 서로 연결된다. 입력/출력(I/O) 인터페이스(605)도 버스라인(604)에 연결된다.
I/O 인터페이스(605)에 연결되는 부재로서, 키보드, 마우스 등을 포함하는 입력부(606)와, 예를 들어 음극선관(CRT), 액정 표시 장치(LCD) 등 및 스피커 등을 포함하는 출력부(607)와, 하드 디스크 등을 포함하는 저장부(608)와, 예를 들어 LAN 카드, 모뎀 등의 네트워크 인터페이스 카드를 포함하는 통신부(609)가 포함된다. 통신부(609)는 인터넷과 같은 네트워크를 통하여 통신 처리를 실행한다. 구동부(610)도 수요에 따라 I/O 인터페이스(605)에 연결된다. 자기 디스크, 광 디스크, 광자기 디스크, 반도체 메모리 장치 등과 같은 착탈 가능한 매체(611)는 구동부(610)로부터 판독된 컴퓨터 프로그램을 수요에 따라 저장부(608)에 설치하도록 수요에 따라 구동부(610)에 설치된다.
특히, 본 개시의 실시예에 의하면, 흐름도를 참조하여 설명한 상기 과정들은 컴퓨터 소프트웨어 프로그램으로 실현될 수 있다. 예를 들어, 본 개시의 실시예는 컴퓨터 프로그램 제품을 포함하고, 기계 판독 가능 매체에 유형적으로 포함되는 컴퓨터 프로그램을 포함하며, 상기 컴퓨터 프로그램은 흐름도에 도시된 방법을 실행하기 위한 프로그램 코드를 포함한다. 이러한 실시예에 있어서, 상기 컴퓨터 프로그램은 통신부(609)를 경유하여 네트워크로부터 다운로드되어 설치되거나, 및/또는 착탈 가능한 매체(611)로부터 설치될 수 있다.
첨부된 도면 중의 흐름도 및 블록도는 본 출원의 각 실시예에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 구현 가능한 체계구조, 기능 및 조작을 도시하였다. 이러한 방면에서, 흐름도 또는 블록도 중의 각각은 하나의 모듈, 프로그램 세그먼트 또는 코드의 일부분을 대표할 수 있고, 상기 모듈, 프로그램 세그먼트 또는 코드의 일부분은 규정된 로직 기능을 구현하기 위한 하나 또는 다수의 실행 가능한 명령을 포함한다. 일부 대체 구현에 있어서, 블록에 표기된 기능은 첨부된 도면에 표기된 순서와 다른 순서로 발생할 수도 있음을 주의하여야 한다. 예를 들어, 순차적으로 표시된 두개의 블록은 실제적으로 기본상 동시에 실행될 수 있도, 경우에 따라 반대된 순서에 따라 실행될 수도 있으며, 이는 관련된 기능에 따라 결정된다. 블록도 및/또는 흐름도 중의 각 블록 및 블록도 및/또는 흐름도 중의 블록의 조합은 규정된 기능 또는 조작에 전용되는 하드웨어를 기반으로하는 시스템으로 구현되거나, 전용 하드웨어와 컴퓨터 명령의 조합으로 구현될 수 있음을 주의하여야 한다.
본 출원에 설명된 관련 유닛은 소프트 웨어의 방식으로 구현되거나 하드 웨어의 방식으로 구현될 수 있다. 설명된 유닛은 프로세서에 설치될 수도 있으며, 예를 들어, 프로세서는 프로세스 시작 컴측 유닛과 신호 처리 포획 유닛을 포함한다고 설명될 수 있다. 여기서, 이러한 유닛의 명칭은 일부 경우에 해당 유닛 자체에 대한 한정을 구성하지 않으며, 예를 들어, 신호 처리 포획 유닛은 “신호 처리를 포획하는 유닛”으로 설명될 수도 있다.
다른 한 방면에 있어서, 본 출원은 또한 비휘발성 컴퓨터 기억 매체를 제공하며, 상기 비휘발성 컴퓨터 기억 매체는 상술한 실시예 중의 상기 장치에 포함된 비휘발성 컴퓨터 기억 매체이거나, 독립적으로 존재하며 단말기에 설치되지 않은 비휘발성 컴퓨터 기억 매체일 수 있다. 상기 비휘발성 컴퓨터 기억 매체는 하나 또는 복수의 프로그램을 저장하고, 상기 하나 또는 복수의 프로그램이 하나의 장치에 의해 실행될 경우, 상기 장치로 하여금 사용자 모드에서 컨테이너 기반의 가상화 시스템의 컨테이너의 프로세스의 작동시작 조작을 검측하고, 상기 프로세스의 작동시작 조작이 검측되면 커널 모드에서 신호 처리 조작을 포획하는 단계를 실행하도록 하며, 상기 신호 처리 조작을 포획하는 단계는 상기 프로세스에 처리되지 않은 신호가 존재하는지 확인하고, 상기 처리되지 않은 신호가 존재할 경우 상기 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시키고 상기 신호의 신호 번호를 상기 제1 함수로 전달하며, 상기 제1 함수가 호출되면 호출시 전달된 신호 번호에 대응되는 신호 처리 조작을 포획하는 것을 포함한다.
이상의 설명은 오직 본 출원의 비교적 바람직한 실시예 및 운용하는 기술적 원리에 대한 설명이다. 해당 기술분야의 당업자는 본 발명에 관련된 발명의 범위가 상기 기술적 특징들의 특정 조합으로 이루어진 기술적 방안들에 한정되는 것이 아니라 본 발명의 주지를 벗어나지 않고서 상기 기술적 특징들 또는 그들의 균등한 특징들의 임의의 조합으로 이루어진 기타 기술적 방안들, 예를 들어, 상기 특징을 본 출원에 개시되어 있으나 이에 한정되지 않는 유사한 기능을 구비한 기술적 특징과 서로 대체하여 이루어진 기술적 방안도 포함하고 있음을 자명할 것이다.
401 : 프로세스 작동시작 검측 유닛
402 : 신호 처리 포획 유닛
403 : 시스템 호출 포획 유닛
4021 : 신호 검출 서브 유닛
4022 : 실행 명령어 점프 서브 유닛
4023 : 신호 처리 포획 서브 유닛
4031 : 시스템 호출 입구주소 획득 서브 유닛
4032 : 주소 교체 서브 유닛
4033 : 시스템 호출 포획 서브 유닛
501 : 조작 포획 유닛
502 : 신호 번호 획득 유닛
503 : 특권 레벨 전환 유닛
504 : 보안 확인 유닛
505 : 조작 조지 유닛

Claims (16)

  1. 사용자 모드에서 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스의 작동시작 조작을 검측하는 단계; 및
    상기 프로세스의 작동시작 조작이 검측되면 커널 모드에서 신호 처리 조작을 포획하는 단계를 실행하는 단계;를 포함하되,
    상기 신호 처리 조작을 포획하는 단계는,
    상기 프로세스에 처리되지 않은 신호가 존재하는지 확인하고,
    상기 처리되지 않은 신호가 존재할 경우, 상기 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시키고 상기 신호의 신호 번호를 상기 제1 함수로 전달하고,
    상기 제1 함수가 호출되면, 호출시 전달된 신호 번호에 대응되는 신호 처리 조작을 포획하는 것을 포함하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 조작 포획 방법.
  2. 제 1 항에 있어서,
    상기 프로세스의 작동시작 조작이 검측되면 시스템 호출 조작을 포획하는 단계를 실행하는 단계를 더 포함하되,
    상기 시스템 호출 조작을 포획하는 단계는,
    커널 모드에서 특정 모델 레지스터를 판독함으로써 시스템에 의해 호출된 입구주소를 획득하고,
    사용자 모드에서 자체 정의 제2 함수의 주소로 상기 입구주소 중 시스템에 의해 호출된 입구 함수의 주소를 교체하고,
    상기 제2 함수가 호출되면, 상기 제2 함수를 호출하는 시스템 호출 조작을 포획하는 것을 포함하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 조작 포획 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 컨테이너 기반의 가상화 시스템의 컨테이너의 프로세스의 작동시작 조작을 검측하는 단계는,
    상기 프로세스가 상기 가상화 시스템의 호스트의 중앙처리장치로 호출되어 실행되는 것에 대응되는 조작을 검측하는 것을 포함하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 조작 포획 방법.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 신호 처리 조작을 포획하는 단계는,
    상기 프로세스에 처리되지 않은 신호가 존재하는지 확인하기 전에 사용자 모드에서 상기 제1 함수의 입구주소를 상기 가상화 시스템의 호스트의 커널로 전달하고, 커널 모드에서 상기 제1 함수의 입구주소를 커널 공간에 저장하는 것을 더 포함하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 조작 포획 방법.
  5. 제 4 항에 있어서,
    상기 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시키는 것은,
    상기 커널 공간에 저장된 상기 제1 함수의 입구주소를 획득하고,
    상기 신호가 지시하는 실행 명령어를 상기 제1 함수의 입구주소로 점프시키는 것을 포함하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 조작 포획 방법.
  6. 제 1 항 내지 제 5 항 중 임의의 한 항에 따른 방법에 의해, 신호 처리 조작 또는 시스템 호출 조작인 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스가 커널을 액세스하는 조작을 포획하는 단계;
    포획된 상기 조작이 신호 처리 조작일 경우, 상기 신호 처리 조작에 대응되는 신호 번호를 획득하는 단계; 및
    상기 신호 번호에 대응되는 신호가 지시하는 실행 명령어를 중앙처리장치의 특권 레벨 Ring3에서 작동하도록 전환하는 단계;를 포함하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 보안 제어 방법.
  7. 제 6 항에 있어서,
    상기 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스가 커널을 액세스하는 조작을 포획하는 단계는,
    제 2 항 내지 제 5 항 중 임의의 한 항에 따른 방법에 의해, 상기 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스가 커널을 액세스하는 조작을 포획하는 것을 포함하되,
    상기 컨테이너 기반의 가상화 시스템용 보안 제어 방법은,
    포획된 상기 조작이 시스템 호출 조작일 경우, 포획된 시스템 호출 조작에 대응되는 시스템 호출 번호와 입구 파라미터에 근거하여 상기 시스템 호출 조작이 안전한지 여부를 확인하는 단계; 및
    상기 시스템 호출 조작이 불안전한 것으로 확인되면 상기 시스템 호출 조작을 저지하는 단계를 더 포함하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 보안 제어 방법.
  8. 제 7 항에 있어서,
    상기 포획된 시스템 호출 조작에 대응되는 시스템 호출 번호와 입구 파라미터에 근거하여 상기 시스템 호출 조작이 안전한지 여부를 확인하는 단계는,
    사전에 구성된 구성파일을 통해 상기 시스템 호출 조작이 안전한지 여부를 확인하는 것을 포함하되,
    상기 구성파일은 검사될 시스템 호출 번호 및/또는 보호할 자원과 상기 시스템 호출 번호 및/또는 보호할 자원에 연관된 조작 지시를 지정하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 보안 제어 방법.
  9. 사용자 모드에서 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스의 작동시작 조작을 검측하는 프로세스 작동시작 검측 유닛;
    상기 프로세스 작동시작 검측 유닛이 상기 프로세스의 작동시작 조작을 검측하면 커널 모드에서 신호 처리 조작을 포획하는 단계를 실행하는 신호 처리 포획 유닛;을 포함하되,
    상기 신호 처리 포획 유닛은
    상기 프로세스에 처리되지 않은 신호가 존재하는지 확인하는 신호 검출 서브 유닛;
    상기 처리되지 않은 신호가 존재할 경우 상기 신호가 지시하는 실행 명령어를 자체 정의 제1 함수의 입구주소로 점프시키고 상기 신호의 신호 번호를 상기 제1 함수로 전달하는 실행 명령어 점프 서브 유닛; 및
    상기 제1 함수가 호출되면 호출시 전달된 신호 번호에 대응되는 신호 처리 조작을 포획하는 신호 처리 포획 서브 유닛;을 포함하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 조작 포획 장치.
  10. 제 9 항에 있어서,
    상기 프로세스 작동시작 검측 유닛에서 상기 프로세스의 작동시작 조작이 검측되면 시스템 호출 조작을 포획하는 단계를 실행하는 시스템 호출 포획 유닛을 더 포함하되,
    상기 시스템 호출 포획 유닛은,
    커널 모드에서 특정 모델 레지스터를 판독함으로써 시스템에 의해 호출된 입구주소를 획득하는 시스템 호출 입구주소 획득 서브 유닛;
    사용자 모드에서 상기 입구주소 중 시스템에 의해 호출된 입구 함수의 주소를 자체 정의 제2 함수의 주소로 교체하는 주소 교체 서브 유닛; 및
    상기 제2 함수가 호출되면, 상기 제2 함수를 호출하는 시스템 호출 조작을 포획하는 시스템 호출 포획 서브 유닛;을 포함하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 조작 포획 장치.
  11. 제 9 항 또는 제 10 항에 있어서,
    상기 프로세스 작동시작 검측 유닛은 상기 프로세스가 상기 가상화 시스템의 호스트의 중앙처리장치로 호출되어 실행되는 것에 대응되는 조작을 검측하도록 진일보 구성되는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 조작 포획 장치.
  12. 제 9 항 또는 제 10 항에 있어서,
    상기 신호 처리 포획 유닛은,
    상기 프로세스에 처리되지 않은 신호가 존재하는지 여부를 확인하기 전에 사용자 모드에서 상기 제1 함수의 입구주소를 상기 가상화 시스템의 호스트의 커널로 전달하고, 커널 모드에서 상기 제1 함수의 입구주소를 커널 공간에 저장하는 주소 전달 서브 유닛을 더 포함하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 조작 포획 장치.
  13. 제 12 항에 있어서,
    상기 실행 명령어 점프 서브 유닛은,
    상기 커널 공간에 저장된 상기 제1 함수의 입구주소를 획득하는 제1 함수 입구주소 획득 모듈; 및
    상기 신호가 지시하는 실행 명령어를 상기 제1 함수의 입구주소로 점프시키는 실행 명령어 점프 모듈;을 포함하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 조작 포획 장치.
  14. 제 9 항 내지 제 13 항 중 임의의 한 항에 따는 장치에 의해, 신호 처리 조작 또는 시스템 호출 조작인 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스가 커널을 액세스하는 조작을 포획하는 조작 포획 유닛;
    포획된 상기 조작이 신호 처리 조작일 경우, 상기 신호 처리 조작에 대응되는 신호 번호를 획득하는 신호 번호 획득 유닛; 및
    상기 신호 번호에 대응되는 신호가 지시하는 실행 명령어를 중앙처리장치의 특권 레벌 Ring3에서 작동하도록 전환하는 특권 레벨 전환 유닛;을 포함하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 보안 제어 장치.
  15. 제 14 항에 있어서,
    상기 조작 포획 유닛은 제 10 항 내지 제 13 항 중 임의의 한 항에 따른 장치에 의해, 컨테이너 기반의 가상화 시스템의 컨테이너 중의 프로세스가 커널을 액세스하는 조작을 포획하도록 진일보 구성되되,
    상기 컨테이너 기반의 가상화 시스템용 보안 제어 장치는,
    포획된 상기 조작이 시스템 호출 조작일 경우, 포획된 시스템 호출 조작에 대응되는 시스템 호출 번호와 입구 파라미터에 근거하여 상기 시스템 호출 조작이 안전한지 여부를 확인하는 보안 확인 유닛; 및
    상기 시스템 호출 조작이 불안전한 것으로 확인되면 상기 시스템 호출 조작을 저지하는 조작 저지 유닛;을 더 포함하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 보안 제어 장치.
  16. 제 15 항에 있어서,
    상기 보안 확인 유닛은 사전에 구성된 구성파일을 통해 상기 시스템 호출 조작이 안전한지 여부를 확인하도록 진일보 구성되되, 상기 구성파일은 검사될 시스템 호출 번호 및/또는 보호할 자원과 상기 시스템 호출 번호 및/또는 보호할 자원에 연관된 조작 지시를 지정하는 것을 특징으로 하는 컨테이너 기반의 가상화 시스템용 보안 제어 장치.
KR1020160103690A 2015-10-13 2016-08-16 컨테이너 기반의 가상화 시스템용 조작 포획 방법 및 장치 KR101845162B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510670474.1 2015-10-13
CN201510670474.1A CN105389197B (zh) 2015-10-13 2015-10-13 用于基于容器的虚拟化系统的操作捕获方法和装置

Publications (2)

Publication Number Publication Date
KR20170043438A true KR20170043438A (ko) 2017-04-21
KR101845162B1 KR101845162B1 (ko) 2018-04-03

Family

ID=55421504

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160103690A KR101845162B1 (ko) 2015-10-13 2016-08-16 컨테이너 기반의 가상화 시스템용 조작 포획 방법 및 장치

Country Status (4)

Country Link
US (1) US10102373B2 (ko)
JP (1) JP6196356B2 (ko)
KR (1) KR101845162B1 (ko)
CN (1) CN105389197B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102494791B1 (ko) * 2021-11-08 2023-02-06 숭실대학교산학협력단 컨테이너 환경에서 알려지지 않은 바이너리 검사 및 차단 방법 및 장치

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018014282A1 (en) * 2016-07-21 2018-01-25 Baidu.Com Times Technology (Beijing) Co., Ltd. Efficient communications amongst computing nodes for operating autonomous vehicles
CN108334341B (zh) * 2017-07-20 2021-11-30 创新先进技术有限公司 用户界面ui组件的定位方法及装置
CN107689953B (zh) * 2017-08-18 2020-10-27 中国科学院信息工程研究所 一种面向多租户云计算的容器安全监控方法及系统
CN107679399A (zh) * 2017-10-19 2018-02-09 郑州云海信息技术有限公司 一种基于容器的恶意代码检测沙盒系统及检测方法
CN108416210B (zh) * 2018-03-09 2020-07-14 北京顶象技术有限公司 一种程序保护方法及装置
US11659003B2 (en) 2018-08-30 2023-05-23 International Business Machines Corporation Safe shell container facilitating inspection of a virtual container
US11461474B2 (en) * 2020-01-24 2022-10-04 International Business Machines Corporation Process-based virtualization system for executing a secure application process
CN113791865A (zh) * 2021-09-08 2021-12-14 山石网科通信技术股份有限公司 容器安全的处理方法及装置、存储介质和处理器
CN114489941A (zh) * 2022-01-19 2022-05-13 上海交通大学 运行在宿主模式用户态的虚拟机管理方法及系统
CN114491516B (zh) * 2022-01-26 2023-04-14 北京小佑网络科技有限公司 一种基于容器环境的威胁检测诱捕方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519814B2 (en) * 2003-09-15 2009-04-14 Trigence Corp. System for containerization of application sets
US7552426B2 (en) * 2003-10-14 2009-06-23 Microsoft Corporation Systems and methods for using synthetic instructions in a virtual machine
CN100489728C (zh) * 2004-12-02 2009-05-20 联想(北京)有限公司 一种建立计算机中可信任运行环境的方法
US7665143B2 (en) * 2005-05-16 2010-02-16 Microsoft Corporation Creating secure process objects
US8732824B2 (en) * 2006-01-23 2014-05-20 Microsoft Corporation Method and system for monitoring integrity of running computer system
US20090113111A1 (en) * 2007-10-30 2009-04-30 Vmware, Inc. Secure identification of execution contexts
WO2009102006A1 (ja) * 2008-02-14 2009-08-20 Nec Corporation アクセス制御装置、その方法及び情報記録媒体
US8578483B2 (en) * 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
US8271996B1 (en) * 2008-09-29 2012-09-18 Emc Corporation Event queues
US8402318B2 (en) * 2009-03-24 2013-03-19 The Trustees Of Columbia University In The City Of New York Systems and methods for recording and replaying application execution
US8627414B1 (en) * 2009-08-04 2014-01-07 Carnegie Mellon University Methods and apparatuses for user-verifiable execution of security-sensitive code
US9229783B2 (en) * 2010-03-31 2016-01-05 International Business Machines Corporation Methods and apparatus for resource capacity evaluation in a system of virtual containers
CN103312661B (zh) * 2012-03-07 2016-02-17 腾讯科技(深圳)有限公司 一种服务访问方法及装置
US9043903B2 (en) * 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
US9069782B2 (en) * 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US9117080B2 (en) 2013-07-05 2015-08-25 Bitdefender IPR Management Ltd. Process evaluation for malware detection in virtual machines
WO2015052831A1 (ja) * 2013-10-11 2015-04-16 順子 杉中 情報処理装置、方法およびプログラム
KR101445634B1 (ko) 2014-01-27 2014-10-06 주식회사 이글루시큐리티 프로그램의 취약점을 이용한 공격의 탐지 장치 및 방법
US10013453B2 (en) * 2015-06-22 2018-07-03 Vmware, Inc. Efficient management of large number of file descriptors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102494791B1 (ko) * 2021-11-08 2023-02-06 숭실대학교산학협력단 컨테이너 환경에서 알려지지 않은 바이너리 검사 및 차단 방법 및 장치

Also Published As

Publication number Publication date
US10102373B2 (en) 2018-10-16
CN105389197B (zh) 2019-02-26
CN105389197A (zh) 2016-03-09
JP6196356B2 (ja) 2017-09-13
US20170103206A1 (en) 2017-04-13
JP2017076369A (ja) 2017-04-20
KR101845162B1 (ko) 2018-04-03

Similar Documents

Publication Publication Date Title
KR101845162B1 (ko) 컨테이너 기반의 가상화 시스템용 조작 포획 방법 및 장치
US9202046B2 (en) Systems and methods for executing arbitrary applications in secure environments
JP6378758B2 (ja) 仮想マシンにおけるマルウェア検出のためのプロセス評価
EP2959392B1 (en) Memory introspection engine for integrity protection of virtual machines
KR102255767B1 (ko) 가상 머신 감사를 위한 시스템 및 방법들
CN107690645B (zh) 使用解释器虚拟机的行为恶意软件检测
US9235705B2 (en) Secure virtualization system software
US9117081B2 (en) Strongly isolated malware scanning using secure virtual containers
RU2659472C2 (ru) Внесение ошибки страницы в виртуальных машинах
US8707417B1 (en) Driver domain as security monitor in virtualization environment
US20140053272A1 (en) Multilevel Introspection of Nested Virtual Machines
JP2018041438A (ja) ファイル中の悪意のあるコードの検出システム及び方法
WO2015119522A2 (en) Systems and methods for detecting return-oriented programming (rop) exploits
US9639698B2 (en) Systems and methods for active operating system kernel protection
US9952890B2 (en) Kernel state data collection in a protected kernel environment
US10802989B2 (en) Detecting data corruption by control flow interceptions
US20150379265A1 (en) Systems And Methods For Preventing Code Injection In Virtualized Environments
US10365939B2 (en) Method and apparatus for providing operating system based on lightweight hypervisor
US9734325B1 (en) Hypervisor-based binding of data to cloud environment for improved security
EP3308274B1 (en) Executing services in containers
RU98613U1 (ru) Система обнаружения скрытых ресурсов в системе

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant