KR20220163608A - Method and system for runtime security profile update of containers - Google Patents

Method and system for runtime security profile update of containers Download PDF

Info

Publication number
KR20220163608A
KR20220163608A KR1020210071971A KR20210071971A KR20220163608A KR 20220163608 A KR20220163608 A KR 20220163608A KR 1020210071971 A KR1020210071971 A KR 1020210071971A KR 20210071971 A KR20210071971 A KR 20210071971A KR 20220163608 A KR20220163608 A KR 20220163608A
Authority
KR
South Korea
Prior art keywords
container
security profile
security
system call
updating
Prior art date
Application number
KR1020210071971A
Other languages
Korean (ko)
Other versions
KR102571477B1 (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 KR1020210071971A priority Critical patent/KR102571477B1/en
Publication of KR20220163608A publication Critical patent/KR20220163608A/en
Application granted granted Critical
Publication of KR102571477B1 publication Critical patent/KR102571477B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

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)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Disclosed are a method and system for updating a runtime security profile of a container. The method for updating the security profile performed by a container security system according to one embodiment may comprise: a step of tracking container instance information and system call generated from a container instance; a step of generating a new security profile comprising the tracked container instance information and system call; and a step of updating a security profile referenced by the container instance to the generated security profile at a runtime of the container instance. Therefore, the present invention is capable of improving a container security.

Description

컨테이너의 실행시간 보안 프로파일 갱신을 위한 방법 및 시스템{METHOD AND SYSTEM FOR RUNTIME SECURITY PROFILE UPDATE OF CONTAINERS}Method and system for updating runtime security profile of container {METHOD AND SYSTEM FOR RUNTIME SECURITY PROFILE UPDATE OF CONTAINERS}

아래의 설명은 클라우드 플랫폼에서 사용되는 컨테이너 보안 기술에 관한 것이다. The description below is about container security technologies used in cloud platforms.

최근 들어 CPU, Memory, Storage 와 같은 컴퓨팅 자원을 개인에서 외부 및 클라우드 제공자로 이동시켜 어디서든 원하는 대로 접근하고 사용할 수 있는 클라우드 컴퓨팅 환경을 활용하는 서비스 형태가 많아지고 있다. 컴퓨팅 자원을 구매할 필요 없이 사용한 만큼 비용을 지불하거나 서비스 부하에 따라 실시간 확장성이 용이하기 때문에 클라우드 컴퓨팅 환경을 활용한 기업 또한 늘어나고 있는 추세이다. 대부분의 클라우드 제공자는 이러한 클라우드의 확장성을 제공하기 위해 이식성과 배포성, 효율성이 높은 컨테이너 플랫폼을 채택하여 사용한다. 컨테이너는 호스트로부터 높은 수준으로 가상화된 형태의 가상 머신과는 다르게 호스트와 함께 커널의 많은 부분을 공유한다. 일부 가상화 기술(예를 들면, namespace, cgroup)을 사용함으로써 일부 독립성과 보안성을 제공받지만 가상 머신보다 보안성이 취약할 수 밖에 없다. 컨테이너 플랫폼은 SECCOMP(Secure Computing Mode)을 제공하고 있으며, 이에 대한 보안 프로파일을 작성함으로써 커널에 접근할 수 있는 시스템 콜을 제한하고 보안성을 향상시킬 수 있다.Recently, there are many types of services that utilize cloud computing environments that can access and use computing resources such as CPU, memory, and storage from individuals to external and cloud providers to access and use them from anywhere. Because it is easy to pay for what you use without purchasing computing resources or expand in real time according to service load, companies using cloud computing environments are also increasing. Most cloud providers adopt and use a container platform with high portability, deployability, and efficiency to provide scalability of these clouds. Unlike virtual machines, which are highly virtualized from the host, containers share a large portion of the kernel with the host. Some independence and security are provided by using some virtualization technologies (eg, namespace, cgroup), but security is inevitably weaker than that of virtual machines. The container platform provides SECCOMP (Secure Computing Mode), and by creating a security profile for this, system calls that can access the kernel can be limited and security can be improved.

종래의 기술은 내부 모든 코드와 라이브러리들을 대상으로 정적 분석을 수행함으로써 해당 컨테이너 인스턴스에서 호출 가능한 모든 시스템 콜들을 추출하여 보안 프로파일로 작성한다. 하지만, 라이브러리가 포함되었지만 해당 라이브러리 내의 모든 함수가 호출되지 않을 수 있다. 일부 함수가 필요하여 해당 함수가 포함된 라이브러리를 추가하였지만 호출되지 않는 함수도 존재한다. 내부 코드 또한 실행시간 동안 컨테이너 인스턴스에 의해 호출되지 않는 부분도 존재한다. 따라서, 종래의 기술을 이용해 생성된 보안 프로파일은 컨테이너 인스턴스에게 필요한 시스템 콜 보다 더 많은 시스템 콜을 포함시킨다. 실제로 컨테이너 인스턴스에 의해 사용되지 않지만 보안 프로파일에 추가되어 호출이 허용된 시스템 콜은 악성코드의 역량을 높일 수 있으며 이는 공격 가능성을 증대시킨다. 그리고, 실행시간에 동적으로 실행되는 코드에서 발생하는 시스템 콜들을 처리하지 못하기 때문에 컨테이너 실행에 문제가 발생할 수 있다.The conventional technology extracts all system calls callable from a corresponding container instance by performing static analysis on all internal codes and libraries, and creates a security profile. However, even though a library is included, not all functions within that library may be called. Some functions were needed, so a library containing the functions was added, but there are also functions that are not called. There are also parts of the internal code that are not called by the container instance during runtime. Therefore, the security profile created using the conventional technique includes more system calls than system calls required for a container instance. System calls that are not actually used by the container instance, but are added to the security profile and allowed to be called, can increase the capabilities of malicious code, which increases the possibility of attack. In addition, problems may occur in container execution because system calls occurring in dynamically executed codes are not processed at runtime.

또 다른 종래의 기술은 컨테이너 인스턴스의 실행을 통해 발생된 시스템 콜들을 동적 분석 및 기록하여 보안 프로파일을 작성한다. 상기 기술의 경우 컨테이너 인스턴스가 실행되는 경로 및 경우들에 대한 입력 값 조합들을 생성해야 하는데, 현실적으로 완벽한 입력 값 조합을 생성하는 것은 불가능에 가깝다. 이러한 불완전한 실험을 통해 발생한 보안 프로파일에는 컨테이너 인스턴스의 실행에 필요한 시스템 콜이 부족할 수 있다. 그렇기 때문에 컨테이너 인스턴스의 실행에 문제가 생길 수 있으며 지속적인 운영을 할 수 없다는 한계점을 가진다. Another conventional technique creates a security profile by dynamically analyzing and recording system calls generated through execution of a container instance. In the case of the above technique, it is necessary to generate input value combinations for paths and cases in which container instances are executed, but it is practically impossible to create perfect input value combinations. The security profile generated through such an incomplete experiment may lack the system calls required to run the container instance. Therefore, problems may occur in the execution of container instances, and there is a limitation that continuous operation cannot be performed.

SECCOMP(Secure Computing Mode)은 보안 프로파일이 한번 적용된 이후로 변경이나 제거가 불가능하다. 이러한 한계점 때문에 컨테이너 인스턴스의 실행시간 상황에 따른 보안 프로파일의 탄력적인 조정이 불가능하다.SECCOMP (Secure Computing Mode) cannot be changed or removed after the security profile is applied once. Because of these limitations, it is impossible to flexibly adjust the security profile according to the runtime situation of the container instance.

악성코드의 역량을 줄이기 위해서는 실행시간에 실제로 필요한 시스템 콜들만 기록하여 컨테이너 인스턴스에 맞는 최소화된 보안 프로파일을 작성해야 한다. 또한, 동적으로 실행되는 코드에서 발생하는 시스템 콜들로 인해 컨테이너 인스턴스의 실행에 문제가 발생하지 않도록 가용성을 보장해야 한다. In order to reduce the capabilities of malicious code, it is necessary to create a minimized security profile suitable for container instances by recording only system calls that are actually necessary at runtime. In addition, availability must be guaranteed so that problems do not occur in the execution of container instances due to system calls generated from dynamically executed code.

컨테이너 인스턴스에 적합한 최소화된 보안 프로파일을 제공하되, 컨테이너 인스턴스의 상황에 기초하여 컨테이너 인스턴스의 실행시간에 보안 프로파일을 교정 및 갱신함으로써 컨테이너 인스턴스 실행의 가용성을 보장하는 방법 및 시스템을 제공할 수 있다.It is possible to provide a method and system for guaranteeing the availability of container instance execution by providing a minimized security profile suitable for a container instance, but correcting and updating the security profile at runtime of the container instance based on the situation of the container instance.

컨테이너 보안 시스템에 의해 수행되는 보안 프로파일 갱신을 위한 방법은, 컨테이너 인스턴스에서 발생되는 컨테이너 인스턴스 정보와 시스템 콜을 추적하는 단계; 상기 추적된 컨테이너 인스턴스 정보와 시스템 콜을 포함한 새로운 보안 프로파일을 생성하는 단계; 및 상기 컨테이너 인스턴스의 실행시간에 상기 컨테이너 인스턴스가 참조하는 보안 프로파일을 상기 생성된 보안 프로파일로 갱신하는 단계를 포함할 수 있다. A method for updating a security profile performed by a container security system includes tracking container instance information and system calls generated in a container instance; generating a new security profile including the tracked container instance information and a system call; and updating a security profile referred to by the container instance to the created security profile at runtime of the container instance.

상기 추적하는 단계는, 상기 컨테이너 인스턴스의 생성과 관련된 컨테이너 정보와 상기 시스템 콜과 관련된 시스템 콜 정보를 내부 저장공간에 기록하는 단계를 포함할 수 있다. The tracking may include recording container information related to the creation of the container instance and system call information related to the system call in an internal storage space.

상기 추적하는 단계는, 컨테이너 플랫폼에서 발생되는 컨테이너 인스턴스 생성 이벤트를 통해 호출된 컨테이너의 실행 정보를 내부 저장공간에 기록하는 단계를 포함할 수 있다. The tracking may include recording execution information of a container called through a container instance creation event occurring in a container platform in an internal storage space.

상기 추적하는 단계는, 컨테이너 플랫폼에서 발생되는 커널 내부의 시스템 콜 처리기를 이용하여 호출되는 시스템 콜과 관련된 시스템 콜 정보를 내부 저장공간과 공유 버퍼에 기록하는 단계를 포함할 수 있다. The tracking may include recording system call information related to a system call called by using a system call handler inside a kernel generated in a container platform in an internal storage space and a shared buffer.

상기 추적하는 단계는, 상기 내부 저장공간의 컨테이너에 따라 상기 공유 버퍼에 기록된 시스템 콜과 관련된 시스템 콜 정보를 분류하고, 상기 분류된 시스템 콜과 관련된 시스템 콜 정보를 저장하는 단계를 포함할 수 있다. The tracking may include classifying system call information related to system calls recorded in the shared buffer according to containers of the internal storage space, and storing the system call information related to the classified system calls. .

상기 추적하는 단계는, 상기 공유 버퍼에 기록된 시스템 콜 정보를 호출된 컨테이너의 실행 정보와 매칭함에 따라 생성된 매칭 정보를 내부 저장공간에 기록하는 단계를 포함할 수 있다. The tracking may include recording matching information generated by matching system call information recorded in the shared buffer with execution information of a called container in an internal storage space.

상기 생성하는 단계는 상기 컨테이너 인스턴스에 적용된 보안 프로파일과 내부 저장공간에 기록된 시스템 콜을 비교 분석하여 추가 및 삭제되어야 하는 시스템 콜들을 도출한 결과를 획득하고, 상기 획득된 결과를 기반으로 컨테이너 인스턴스에 적용될 수 있는 형태로 구성된 보안 컴퓨팅 모드(SECCOMP)의 새로운 보안 프로파일을 생성하는 단계를 포함할 수 있다. The creating step compares and analyzes the security profile applied to the container instance and the system calls recorded in the internal storage space to obtain a result of deriving system calls to be added and deleted, and to the container instance based on the obtained result. It may include generating a new security profile of a secure computing mode (SECCOMP) configured in a form that can be applied.

컨테이너 보안 시스템에 의해 수행되는 보안 프로파일 갱신을 위한 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램은, 컨테이너 인스턴스에서 발생되는 컨테이너 인스턴스 정보와 시스템 콜을 추적하는 단계; 상기 추적된 컨테이너 인스턴스 정보와 시스템 콜을 포함한 새로운 보안 프로파일을 생성하는 단계; 및 상기 컨테이너 인스턴스의 실행시간에 상기 컨테이너 인스턴스가 참조하는 보안 프로파일을 상기 생성된 보안 프로파일로 갱신하는 단계를 포함할 수 있다. A computer program stored in a computer readable recording medium to execute a method for updating a security profile performed by a container security system includes: tracing container instance information and system calls generated in container instances; generating a new security profile including the tracked container instance information and a system call; and updating a security profile referred to by the container instance to the created security profile at runtime of the container instance.

컨테이너 보안 시스템은, 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 컨테이너 인스턴스에서 발생되는 컨테이너 인스턴스 정보와 시스템 콜을 추적하고, 상기 추적된 컨테이너 인스턴스 정보와 시스템 콜을 포함한 새로운 보안 프로파일을 생성하고, 상기 컨테이너 인스턴스의 실행시간에 상기 컨테이너 인스턴스가 참조하는 보안 프로파일을 상기 생성된 보안 프로파일로 갱신할 수 있다. The container security system includes at least one processor configured to execute computer readable instructions included in memory, and the at least one processor tracks container instance information and system calls generated in container instances, and the traced A new security profile including container instance information and a system call may be created, and a security profile referred to by the container instance may be updated to the created security profile at runtime of the container instance.

상기 적어도 하나의 프로세서는, 상기 컨테이너 인스턴스의 생성과 관련된 컨테이너 정보와 상기 시스템 콜과 관련된 시스템 콜 정보를 내부 저장공간에 기록할 수 있다. The at least one processor may record container information related to the creation of the container instance and system call information related to the system call in an internal storage space.

상기 적어도 하나의 프로세서는, 컨테이너 플랫폼에서 발생되는 컨테이너 인스턴스 생성 이벤트를 통해 호출된 컨테이너의 실행 정보를 내부 저장공간에 기록할 수 있다. The at least one processor may record execution information of a container called through a container instance creation event occurring in a container platform in an internal storage space.

상기 적어도 하나의 프로세서는, 컨테이너 플랫폼에서 발생되는 커널 내부의 시스템 콜 처리기를 이용하여 호출되는 시스템 콜과 관련된 시스템 콜 정보를 내부 저장공간과 공유 버퍼에 기록할 수 있다. The at least one processor may record system call information related to a system call called by using a system call handler inside a kernel generated in a container platform in an internal storage space and a shared buffer.

상기 적어도 하나의 프로세서는, 상기 내부 저장공간의 컨테이너에 따라 상기 공유 버퍼에 기록된 시스템 콜과 관련된 시스템 콜 정보를 분류하고, 상기 분류된 시스템 콜과 관련된 시스템 콜 정보를 저장할 수 있다. The at least one processor may classify system call information related to system calls recorded in the shared buffer according to containers of the internal storage space, and store the system call information related to the classified system calls.

상기 적어도 하나의 프로세서는, 상기 공유 버퍼에 기록된 시스템 콜 정보를 호출된 컨테이너의 실행 정보와 매칭함에 따라 생성된 매칭 정보를 내부 저장공간에 기록할 수 있다. The at least one processor may record matching information generated by matching system call information recorded in the shared buffer with execution information of a called container in an internal storage space.

상기 적어도 하나의 프로세서는, 상기 컨테이너 인스턴스에 적용된 보안 프로파일과 내부 저장공간에 기록된 시스템 콜을 비교 분석하여 추가 및 삭제되어야 하는 시스템 콜들을 도출한 결과를 획득하고, 상기 획득된 결과를 기반으로 컨테이너 인스턴스에 적용될 수 있는 형태로 구성된 보안 컴퓨팅 모드(SECCOMP)의 새로운 보안 프로파일을 생성할 수 있다. The at least one processor obtains a result of deriving system calls to be added and deleted by comparing and analyzing a security profile applied to the container instance and a system call recorded in an internal storage space, and based on the obtained result, the container instance A new security profile of secure computing mode (SECCOMP) configured in a form that can be applied to an instance can be created.

실행시간의 갱신이 불가능한 보안 컴퓨팅 모드(SECCOMP)의 한계점을 해결함으로써 컨테이너 인스턴스에 적합한 최소화된 보안 프로파일을 제공함과 동시에 컨테이너 인스턴스의 운영에 문제가 발생하지 않도록 가용성을 보장할 수 있다.By resolving the limitation of the secure computing mode (SECCOMP), which cannot update the execution time, it is possible to provide a minimized security profile suitable for container instances and at the same time ensure availability so that problems do not occur in the operation of container instances.

기존 컨테이너 플랫폼과 커널의 변경없이 적용이 가능하고, 운영에 저해되지 않으면서도 최적화된 보안 프로파일을 적용할 수 있어 컨테이너 보안성을 향상시킬 수 있다. It can be applied without changing the existing container platform and kernel, and it can improve container security by applying an optimized security profile without interfering with operation.

도 1은 일 실시예에 따른 컨테이너 보안 시스템의 구성 및 동작을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 컨테이너 보안 시스템의 트래이스 에이전트의 동작을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 컨테이너 보안 시스템의 프로파일 테일러의 동작을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 컨테이너 보안 시스템의 컨테이너 매니저의 동작을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 컨테이너 보안 시스템에서 보안 프로파일 갱신을 위한 방법을 설명하기 위한 흐름도이다.
1 is a diagram for explaining the configuration and operation of a container security system according to an embodiment.
2 is a diagram for explaining the operation of a trace agent of a container security system according to an embodiment.
3 is a diagram for explaining the operation of a profile tailor of a container security system according to an embodiment.
4 is a diagram for explaining an operation of a container manager of a container security system according to an embodiment.
5 is a flowchart illustrating a method for updating a security profile in a container security system according to an embodiment.

이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, an embodiment will be described in detail with reference to the accompanying drawings.

실시예에서는 각 컨테이너 인스턴스에 적합한 최소화된 보안 프로파일을 작성하지 못하고 실행시간에 보안 프로파일을 갱신할 수 없는 한계점을 극복하고, 최소화된 보안 프로파일을 유지하면서도 컨테이너 인스턴스의 운영에 저해가 되지 않도록 보안 프로파일을 교정하여 실행시간에 갱신하는 동작에 대하여 설명하기로 한다. In the embodiment, the limitations of not being able to create a minimized security profile suitable for each container instance and updating the security profile at runtime are overcome, and the security profile is maintained so as not to interfere with the operation of the container instance while maintaining the minimized security profile. An operation of correcting and updating at runtime will be described.

상세하게는, 컨테이너 인스턴스에 보안 프로파일을 생성하기 위하여 컨테이너 인스턴스의 정보와 호출되는 시스템 콜을 추적해야 한다. 시스템 콜을 처리하는 커널 내부에 존재하는 시스템 콜 핸들러 훅(hook)을 이용하여 호출된 시스템 콜 정보를 가져오고, 컨테이너 플랫폼으로부터 생성된 컨테이너 정보를 가져와 기록하며, 기록된 정보를 기반으로 운영에 필요한 시스템 콜을 포함하여 새로운 보안 프로파일을 생성할 수 있다. 해당 컨테이너 인스턴스가 참조하면 보안 프로파일을 새로운 보안 프로파일로 대체한 후, 컨테이너 조직화 플랫폼의 컨테이너 갱신 기능을 이용해 새로운 보안 프로파일이 적용된 컨테이너 인스턴스를 생성하고 기존 인스턴스를 대체함으로써 운영 흐름을 유지할 수 있다. 이에, 기존에 운영되는 컨테이너 플랫폼이나 커널에 대한 변경없이 사용 가능하다. In detail, in order to create a security profile in a container instance, information on the container instance and called system calls must be traced. Called system call information is obtained by using the system call handler hook existing inside the kernel that handles system calls, container information generated from the container platform is imported and recorded, and based on the recorded information, information necessary for operation is obtained. A new security profile can be created including system calls. If the container instance refers to it, after replacing the security profile with a new security profile, the container organization platform's container update function can be used to create a container instance with the new security profile applied and replace the existing instance to maintain the operational flow. Therefore, it can be used without changing the existing container platform or kernel.

도 1은 일 실시예에 따른 컨테이너 보안 시스템의 구성 및 동작을 설명하기 위한 도면이다. 1 is a diagram for explaining the configuration and operation of a container security system according to an embodiment.

컨테이너 보안 시스템(100)은 컨테이너 인스턴스에서 발생되는 시스템 콜과 컨테이너 생성을 추적하는 트래이스 에이전트(Trace Agent(110), SECCOMP(Secure Computing Mode) 보안 프로파일을 교정하는 프로파일 테일러(Profile Tailor)(120) 및 교정된 보안 프로파일로 실행시간에 갱신하는 컨테이너 매니저(Container Manager)(130)를 포함할 수 있다. 트래이스 에이전트(110)는 컨테이너 트래이스 에이전트(Container Trace Agent)(111) 및 시스템 콜 트래이스 에이전트(System call Trace Agent)(112)를 포함할 수 있다.The container security system 100 includes a trace agent (Trace Agent 110) that tracks system calls generated by container instances and container creation, and a Profile Tailor (120) that corrects SECCOMP (Secure Computing Mode) security profiles. and a container manager 130 that updates the corrected security profile at runtime. The trace agent 110 includes a container trace agent 111 and a system call trace A system call trace agent (112) may be included.

컨테이너 보안 시스템(100)은 컨테이너 생성과 시스템 콜을 추적하여 기록하는 추적 과정과, 보안 프로파일을 생성하고 갱신하는 동적 프로파일 생성 및 갱신 과정을 수행할 수 있다. The container security system 100 may perform a tracking process of tracing and recording container creation and system calls, and a dynamic profile creation and update process of creating and updating a security profile.

추적 과정에서, 컨테이너 보안 시스템(100)은 컨테이너 플랫폼에서 발생하는 컨테이너 인스턴스 생성 이벤트에 대한 정보를 기록하고 커널 내부의 시스템 콜 처리기 훅(hook)을 이용하여 호출되는 시스템 콜을 기록할 수 있다.During the tracking process, the container security system 100 may record information about container instance creation events occurring in the container platform and record system calls called using system call handler hooks inside the kernel.

생성 및 갱신 과정에서, 컨테이너 보안 시스템(100)은 기록된 정보를 기반으로 새로운 프로파일을 생성하고 새로운 컨테이너 인스턴스에 적용하여 갱신할 수 있다. In the process of creating and updating, the container security system 100 may create a new profile based on the recorded information and update it by applying it to a new container instance.

트래이스 에이전트(110)는 컨테이너 인스턴스의 생성을 기록하는 컨테이너 트래이스 에이전트(111) 및 시스템 기록하는 시스템 콜 트래이스 에이전트(112)로 구성될 수 있다. The trace agent 110 may include a container trace agent 111 that records the creation of a container instance and a system call trace agent 112 that records the system.

컨테이너 트래이스 에이전트(111)는 컨테이너 플랫폼(150)으로부터 발생되는 컨테이너 인스턴스 생성 이벤트를 수신함에 따라 컨테이너 생성 추적(1)을 통해 어떠한 컨테이너가 실행 중인지 여부와 관련된 컨테이너 실행 정보를 내부 저장공간(예를 들면, 트래이스 맵(Trace Map)(141))에 기록할 수 있다(2). 이때, 시스템 콜은 컨테이너 인스턴스에서 발생하여 커널(140) 내부의 각 시스템 콜 처리기에 의해 처리될 수 있다. 디버깅 용으로 삽입된 각 시스템 콜 처리기 입구의 훅(hook)이 이용되어 시스템 콜 추적(3)을 통해 시스템 콜이 처리되기 전에 어떠한 시스템 콜이 호출되었는지 확인되어 유저 공간 사이의 공유 버퍼에 시스템 콜과 관련된 시스템 콜 정보가 기록될 수 있다(4). As the container trace agent 111 receives a container instance creation event generated from the container platform 150, the container execution information related to which container is running is stored in an internal storage space (eg, For example, it can be recorded in a trace map (141) (2). At this time, the system call may be generated in the container instance and processed by each system call processor inside the kernel 140 . A hook at the entrance of each system call handler inserted for debugging is used to check which system call was called before the system call is processed through system call tracking (3), and system call and system call are stored in a shared buffer between user spaces. Related system call information may be recorded (4).

시스템 콜 트래이스 에이전트(112)는 공유 버퍼에 기록된 시스템 콜 정보를 이용하여 내부 저장공간(트래이스 맵(141))의 컨테이너에 따라 분류할 수 있고, 분류된 시스템 콜 정보를 내부 저장공간(트래이스 맵(141))에 저장할 수 있다(5). 예를 들면, 시스템 콜 트래이스 에이전트(112)는 컨테이너의 상황 또는 컨테이너에 설정된 기준에 기초하여 시스템 콜 정보를 분류할 수 있다. The system call trace agent 112 may classify the system call information according to the container of the internal storage space (trace map 141) using the system call information recorded in the shared buffer, and classify the system call information into the internal storage space ( may be stored in the trace map 141 (5). For example, the system call trace agent 112 may classify system call information based on container conditions or criteria set for the container.

프로파일 테일러(120)는 컨테이너 인스턴스에 적용된 기존의 보안 프로파일을 내부 저장공간에 기록된 시스템 콜들과 비교 분석하여 추가 및 삭제되어야 하는 시스템 콜들을 도출할 수 있다. 이때, 내부 저장공간에 기록된 시스템 콜들을 가져와 기존의 보안 프로파일과 비교 분석될 수 있다. The profile tailor 120 compares and analyzes the existing security profile applied to the container instance with system calls recorded in the internal storage space to derive system calls to be added or deleted. At this time, the system calls recorded in the internal storage space can be imported and compared and analyzed with the existing security profile.

프로파일 테일러(120)는 요청된 컨테이너 시스템 콜 정보를 이용하여 새로운 보안 프로파일을 생성하기 위하여 내부 저장공간에 기록된 정보를 참조할 수 있다(6). 프로파일 테일러(120)는 비교 분석한 결과를 컨테이너 인스턴스에 적용될 수 있는 형태로 보안 프로파일을 인코딩하여 새로운 보안 컴퓨팅 모드(Secure Computing Mode; SECCOMP)의 보안 프로파일을 생성할 수 있다(7). The profile tailor 120 may refer to information recorded in the internal storage space in order to create a new security profile using the requested container system call information (6). The profile tailor 120 may generate a new secure computing mode (SECCOMP) security profile by encoding the security profile in a form that can be applied to the container instance based on the result of the comparative analysis (7).

컨테이너 매니저(130)는 활성화 프로파일 경로에 존재하는 기존의 보안 프로파일을 프로파일 테일러(120)에 의해 생성된 새로운 보안 프로파일로 대체시킬 수 있다. 다시 말해서, 컨테이너 매니저(130)는 기존의 보안 프로파일을 프로파일 테일러(120)에 의해 생성된 새로운 보안 프로파일로 갱신할 수 있다(8). The container manager 130 may replace an existing security profile existing in the activation profile path with a new security profile created by the profile tailor 120 . In other words, the container manager 130 may update the existing security profile to a new security profile created by the profile tailor 120 (8).

컨테이너 매니저(130)는 컨테이너 조직화 플랫폼의 갱신 기능을 수행하여 새로운 보안 프로파일이 적용된 새로운 컨테이너 인스턴스를 생성할 수 있다. 이후, 기존 컨테이너 인스턴스로 발생하였던 요청들은 새로운 컨테이너 인스턴스가 처리하게 되고, 기존 컨테이너 인스턴스는 종료하게 된다.The container manager 130 may create a new container instance to which a new security profile is applied by performing an update function of the container organization platform. After that, requests generated by the existing container instance are handled by the new container instance, and the existing container instance is terminated.

도 2는 일 실시예에 따른 컨테이너 보안 시스템의 트래이스 에이전트의 동작을 설명하기 위한 도면이다. 2 is a diagram for explaining the operation of a trace agent of a container security system according to an embodiment.

도 2를 참고하면, 트래이스 에이전트에서 컨테이너 정보와 시스템 콜 정보를 내부 저장공간에 기록하는 과정을 설명하기로 한다. 이때, 내부 저장공간은 도 2에 트래이스 맵(Trace Map)으로 도시되어 있으며, 데이터를 저장하는 데이터베이스일 수 있다. Referring to FIG. 2, a process of recording container information and system call information in the internal storage space in the trace agent will be described. In this case, the internal storage space is shown as a trace map in FIG. 2 and may be a database for storing data.

컨테이너 트래이스 에이전트(111)는 컨테이너 플랫폼에서 발생되는 컨테이너 생성 정보를 수신할 수 있다. 다시 말해서, 컨테이너 플랫폼에서 컨테이너 생성 이벤트가 호출될 수 있다. 컨테이너 트래이스 에이전트(111)는 컨테이너 플랫폼에서 호출되는 컨테이너 생성 이벤트를 수신할 수 있다. 컨테이너 트래이스 에이전트(111)는 컨테이너 플랫폼으로부터 수신된 컨테이너 생성 정보를 이용하여 컨테이너 정보를 등록할 수 있다. The container trace agent 111 may receive container creation information generated in the container platform. In other words, container creation events can be invoked on the container platform. The container trace agent 111 may receive a container creation event called from the container platform. The container trace agent 111 may register container information using container generation information received from the container platform.

시스템 콜 트래이스 에이전트(112)는 시스템 콜 모니터에서 기록된 시스템 콜 정보를 공유 버퍼에서 추출할 수 있다. 시스템 콜 트래이스 에이전트(112)는 공유 버퍼에서 추출된 시스템 콜 정보를 수신하고, 수신된 시스템 콜 정보와 호출된 컨테이너 정보와 매칭하여 매칭 정보를 내부 저장공간(트래이스 맵)에 기록할 수 있다. The system call trace agent 112 may extract system call information recorded by the system call monitor from a shared buffer. The system call trace agent 112 may receive system call information extracted from a shared buffer, match the received system call information with called container information, and record matching information in an internal storage space (trace map). .

도 3은 일 실시예에 따른 컨테이너 보안 시스템의 프로파일 테일러의 동작을 설명하기 위한 도면이다. 3 is a diagram for explaining the operation of a profile tailor of a container security system according to an embodiment.

프로파일 테일러는 컨테이너 인스턴스에 적용된 보안 프로파일과 내부 저장공간에 기록된 시스템 콜을 비교 분석하여 추가 및 삭제되어야 하는 시스템 콜들을 도출한 결과를 획득할 수 있다. 이때, 시스콜 리스트 제너레이터(Syscall List Generator)에 의해 컨테이너 인스턴스에 적용된 보안 프로파일과 내부 저장공간에 기록된 시스템 콜이 분석될 수 있다. 또한, 관리자 차단 시스템 콜 목록과 컨테이너 시스템 콜 목록이 참조되어 보안 프로파일이 생성될 수 있다. 프로파일 테일러는 획득된 결과를 기반으로 컨테이너 인스턴스에 적용될 수 있는 형태의 컴퓨팅 모드(SECCOMP)의 새로운 보안 프로파일을 생성할 수 있다. The profile tailor can compare and analyze the security profile applied to the container instance and the system calls recorded in the internal storage space to obtain a result of deriving system calls to be added or deleted. At this time, the security profile applied to the container instance and system calls recorded in the internal storage space can be analyzed by the Syscall List Generator. In addition, a security profile may be created by referring to an administrator blocked system call list and a container system call list. The profile tailor may create a new security profile of a computing mode (SECCOMP) that can be applied to a container instance based on the obtained result.

프로파일 테일러는 내부 저장공간에 기록된 컨테이너와 기존의 보안 프로파일, 호출된 시스템 콜 정보를 기반으로 새로운 보안 프로파일을 생성할 수 있다. The profile tailor can create a new security profile based on the container recorded in the internal storage space, the existing security profile, and the called system call information.

도 4는 일 실시예에 따른 컨테이너 보안 시스템의 컨테이너 매니저의 동작을 설명하기 위한 도면이다. 4 is a diagram for explaining an operation of a container manager of a container security system according to an embodiment.

도 4를 참고하면, 새롭게 생성된 보안 프로파일을 적용하여 컨테이너를 갱신하는 구동 과정을 나타낸 것이다. 프로파일 엔포서(Profile Enforcer)는 새로운 보안 프로파일을 활성화된 프로파일 저장소(Active Profile Repository)에 위치시켜 기존 보안 프로파일을 대체시킬 수 있다. 컨테이너 컨트롤러(Container Controller) 는 해당 컨테이너를 실행시간에 갱신함으로써 새로운 보안 프로파일을 참조하는 컨테이너를 구동할 수 있다. 이때, 기존에 컨테이너로 발생하던 요청은 갱신된 컨테이너로 전환되어 처리됨으로써 서비스의 중단없이 지속적으로 운영될 수 있다.Referring to FIG. 4 , a driving process of updating a container by applying a newly created security profile is shown. A Profile Enforcer can replace an existing security profile by placing a new security profile in the Active Profile Repository. A container controller can run a container that refers to a new security profile by updating the container at runtime. At this time, requests that have previously occurred in the container are converted to the updated container and processed, so that the service can be continuously operated without interruption.

도 5는 일 실시예에 따른 컨테이너 보안 시스템에서 보안 프로파일 갱신을 위한 방법을 설명하기 위한 흐름도이다. 5 is a flowchart illustrating a method for updating a security profile in a container security system according to an embodiment.

단계(510)에서 컨테이너 보안 시스템은 컨테이너 인스턴스에서 발생되는 컨테이너 인스턴스 정보와 시스템 콜을 추적할 수 있다. 컨테이너 보안 시스템은 컨테이너 인스턴스의 생성과 관련된 컨테이너 정보와 시스템 콜과 관련된 시스템 콜 정보를 내부 저장공간에 기록할 수 있다. 컨테이너 보안 시스템은 컨테이너 플랫폼에서 발생되는 컨테이너 인스턴스 생성 이벤트를 통해 호출된 컨테이너의 실행 정보를 내부 저장공간에 기록할 수 있다. 컨테이너 보안 시스템은 컨테이너 플랫폼에서 발생되는 커널 내부의 시스템 콜 처리기를 이용하여 호출되는 시스템 콜과 관련된 시스템 콜 정보를 내부 저장공간과 공유 버퍼에 기록할 수 있다. 컨테이너 보안 시스템은 내부 저장공간의 컨테이너에 따라 공유 버퍼에 기록된 시스템 콜과 관련된 시스템 콜 정보를 분류하고, 분류된 시스템 콜과 관련된 시스템 콜 정보를 저장할 수 있다. 컨테이너 보안 시스템은 공유 버퍼에 기록된 시스템 콜 정보를 호출된 컨테이너의 실행 정보와 매칭함에 따라 생성된 매칭 정보를 내부 저장공간에 기록할 수 있다. In step 510, the container security system may track container instance information and system calls generated in the container instance. The container security system may record container information related to the creation of container instances and system call information related to system calls in an internal storage space. The container security system can record the execution information of the container called through the container instance creation event occurring in the container platform in the internal storage space. The container security system can record system call information related to a system call called using a system call handler inside the kernel generated in the container platform in an internal storage space and a shared buffer. The container security system may classify system call information related to system calls recorded in a shared buffer according to containers of an internal storage space, and store system call information related to the classified system calls. The container security system may record matching information generated by matching system call information recorded in the shared buffer with execution information of the called container in an internal storage space.

단계(520)에서 컨테이너 보안 시스템은 추적된 컨테이너 인스턴스 정보와 시스템 콜을 포함한 새로운 보안 프로파일을 생성할 수 있다. 컨테이너 보안 시스템은 컨테이너 인스턴스에 적용된 보안 프로파일과 내부 저장공간에 기록된 시스템 콜을 비교 분석하여 추가 및 삭제되어야 하는 시스템 콜들을 도출한 결과를 획득하고, 획득된 결과를 기반으로 컨테이너 인스턴스에 적용될 수 있는 형태로 구성된 보안 컴퓨팅 모드(SECCOMP)의 새로운 보안 프로파일을 생성할 수 있다. In step 520, the container security system may create a new security profile including tracked container instance information and system calls. The container security system compares and analyzes the system calls recorded in the internal storage with the security profile applied to the container instance, obtains the result of deriving system calls to be added and deleted, and based on the obtained result, it can be applied to the container instance. A new security profile of secure computing mode (SECCOMP) configured in the form can be created.

단계(530)에서 컨테이너 보안 시스템은 컨테이너 인스턴스의 실행시간에 컨테이너 인스턴스가 참조하는 보안 프로파일을 생성된 보안 프로파일로 갱신할 수 있다. 또는, 컨테이너 보안 시스템은 컨테이너의 실행시간에 컨테이너 인스턴스가 참조하는 보안 프로파일을 생성된 보안 프로파일로 갱신할 수 있다.In step 530, the container security system may update the security profile referenced by the container instance to the generated security profile at runtime of the container instance. Alternatively, the container security system may update the security profile referenced by the container instance to the created security profile during container running time.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The devices described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. A processing device may run an operating system (OS) and one or more software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. The device can be commanded. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. can be embodied in Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited examples and drawings, those skilled in the art can make various modifications and variations from the above description. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.

Claims (15)

컨테이너 보안 시스템에 의해 수행되는 보안 프로파일 갱신을 위한 방법에 있어서,
컨테이너 인스턴스에서 발생되는 컨테이너 인스턴스 정보와 시스템 콜을 추적하는 단계;
상기 추적된 컨테이너 인스턴스 정보와 시스템 콜을 포함한 새로운 보안 프로파일을 생성하는 단계; 및
상기 컨테이너 인스턴스의 실행시간에 상기 컨테이너 인스턴스가 참조하는 보안 프로파일을 상기 생성된 보안 프로파일로 갱신하는 단계
를 포함하는 보안 프로파일 갱신을 위한 방법.
A method for updating a security profile performed by a container security system,
Tracing container instance information and system calls generated in container instances;
generating a new security profile including the tracked container instance information and a system call; and
Updating a security profile referred to by the container instance to the generated security profile at runtime of the container instance.
A method for updating a security profile comprising a.
제1항에 있어서,
상기 추적하는 단계는,
상기 컨테이너 인스턴스의 생성과 관련된 컨테이너 정보와 상기 시스템 콜과 관련된 시스템 콜 정보를 내부 저장공간에 기록하는 단계
를 포함하는 보안 프로파일 갱신을 위한 방법.
According to claim 1,
The tracking step is
Recording container information related to the creation of the container instance and system call information related to the system call in an internal storage space
A method for updating a security profile comprising a.
제2항에 있어서,
상기 추적하는 단계는,
컨테이너 플랫폼에서 발생되는 컨테이너 인스턴스 생성 이벤트를 통해 호출된 컨테이너의 실행 정보를 내부 저장공간에 기록하는 단계
를 포함하는 보안 프로파일 갱신을 위한 방법.
According to claim 2,
The tracking step is
Recording the execution information of the container called through the container instance creation event occurring in the container platform to the internal storage space
A method for updating a security profile comprising a.
제3항에 있어서,
상기 추적하는 단계는,
컨테이너 플랫폼에서 발생되는 커널 내부의 시스템 콜 처리기를 이용하여 호출되는 시스템 콜과 관련된 시스템 콜 정보를 내부 저장공간과 공유 버퍼에 기록하는 단계
를 포함하는 보안 프로파일 갱신을 위한 방법.
According to claim 3,
The tracking step is
Recording system call information related to a system call called using a system call handler inside the kernel generated in the container platform in an internal storage space and a shared buffer
A method for updating a security profile comprising a.
제4항에 있어서,
상기 추적하는 단계는,
상기 내부 저장공간의 컨테이너에 따라 상기 공유 버퍼에 기록된 시스템 콜과 관련된 시스템 콜 정보를 분류하고, 상기 분류된 시스템 콜과 관련된 시스템 콜 정보를 저장하는 단계
를 포함하는 보안 프로파일 갱신을 위한 방법.
According to claim 4,
The tracking step is
classifying system call information related to system calls recorded in the shared buffer according to containers of the internal storage space, and storing system call information related to the classified system calls;
A method for updating a security profile comprising a.
제4항에 있어서,
상기 추적하는 단계는,
상기 공유 버퍼에 기록된 시스템 콜 정보를 호출된 컨테이너의 실행 정보와 매칭함에 따라 생성된 매칭 정보를 내부 저장공간에 기록하는 단계
를 포함하는 보안 프로파일 갱신을 위한 방법.
According to claim 4,
The tracking step is
Recording matching information generated by matching system call information recorded in the shared buffer with execution information of the called container in an internal storage space
A method for updating a security profile comprising a.
제2항에 있어서,
상기 생성하는 단계는,
상기 컨테이너 인스턴스에 적용된 보안 프로파일과 내부 저장공간에 기록된 시스템 콜을 비교 분석하여 추가 및 삭제되어야 하는 시스템 콜들을 도출한 결과를 획득하고, 상기 획득된 결과를 기반으로 컨테이너 인스턴스에 적용될 수 있는 형태로 구성된 보안 컴퓨팅 모드(SECCOMP)의 새로운 보안 프로파일을 생성하는 단계
를 포함하는 보안 프로파일 갱신을 위한 방법.
According to claim 2,
The generating step is
The security profile applied to the container instance and the system calls recorded in the internal storage are compared and analyzed to obtain a result of deriving system calls to be added and deleted, and based on the obtained result, in a form that can be applied to the container instance. Steps to create a new security profile for the configured secure computing mode (SECCOMP)
A method for updating a security profile comprising a.
컨테이너 보안 시스템에 의해 수행되는 보안 프로파일 갱신을 위한 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램에 있어서,
컨테이너 인스턴스에서 발생되는 컨테이너 인스턴스 정보와 시스템 콜을 추적하는 단계;
상기 추적된 컨테이너 인스턴스 정보와 시스템 콜을 포함한 새로운 보안 프로파일을 생성하는 단계; 및
상기 컨테이너 인스턴스의 실행시간에 상기 컨테이너 인스턴스가 참조하는 보안 프로파일을 상기 생성된 보안 프로파일로 갱신하는 단계
를 포함하는 보안 프로파일 갱신을 위한 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a computer readable recording medium for executing a method for updating a security profile performed by a container security system,
Tracing container instance information and system calls generated in container instances;
generating a new security profile including the tracked container instance information and a system call; and
Updating a security profile referenced by the container instance with the generated security profile at runtime of the container instance.
A computer program stored on a computer readable recording medium to execute a method for updating a security profile comprising a.
컨테이너 보안 시스템에 있어서,
메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서는,
컨테이너 인스턴스에서 발생되는 컨테이너 인스턴스 정보와 시스템 콜을 추적하고,
상기 추적된 컨테이너 인스턴스 정보와 시스템 콜을 포함한 새로운 보안 프로파일을 생성하고,
상기 컨테이너 인스턴스의 실행시간에 상기 컨테이너 인스턴스가 참조하는 보안 프로파일을 상기 생성된 보안 프로파일로 갱신하는
것을 특징으로 하는 컨테이너 보안 시스템.
In the container security system,
at least one processor configured to execute computer readable instructions contained in memory;
including,
The at least one processor,
Traces container instance information and system calls generated by container instances,
Create a new security profile including the tracked container instance information and system call;
Updating the security profile referenced by the container instance with the generated security profile at runtime of the container instance.
A container security system, characterized in that.
제9항에 있어서,
상기 적어도 하나의 프로세서는,
상기 컨테이너 인스턴스의 생성과 관련된 컨테이너 정보와 상기 시스템 콜과 관련된 시스템 콜 정보를 내부 저장공간에 기록하는
것을 특징으로 하는 컨테이너 보안 시스템.
According to claim 9,
The at least one processor,
Recording container information related to the creation of the container instance and system call information related to the system call in an internal storage space
A container security system, characterized in that.
제10항에 있어서,
상기 적어도 하나의 프로세서는,
컨테이너 플랫폼에서 발생되는 컨테이너 인스턴스 생성 이벤트를 통해 호출된 컨테이너의 실행 정보를 내부 저장공간에 기록하는
것을 특징으로 하는 컨테이너 보안 시스템.
According to claim 10,
The at least one processor,
Records the execution information of the container called through the container instance creation event that occurs in the container platform to the internal storage space.
A container security system, characterized in that.
제11항에 있어서,
상기 적어도 하나의 프로세서는,
컨테이너 플랫폼에서 발생되는 커널 내부의 시스템 콜 처리기를 이용하여 호출되는 시스템 콜과 관련된 시스템 콜 정보를 내부 저장공간과 공유 버퍼에 기록하는
것을 특징으로 하는 컨테이너 보안 시스템.
According to claim 11,
The at least one processor,
System call information related to system calls called using the system call handler inside the kernel generated in the container platform is recorded in the internal storage space and shared buffer.
A container security system, characterized in that.
제12항에 있어서,
상기 적어도 하나의 프로세서는,
상기 내부 저장공간의 컨테이너에 따라 상기 공유 버퍼에 기록된 시스템 콜과 관련된 시스템 콜 정보를 분류하고, 상기 분류된 시스템 콜과 관련된 시스템 콜 정보를 저장하는
것을 특징으로 하는 컨테이너 보안 시스템.
According to claim 12,
The at least one processor,
classifying system call information related to the system calls recorded in the shared buffer according to the container of the internal storage space, and storing the system call information related to the classified system calls;
A container security system, characterized in that.
제12항에 있어서,
상기 적어도 하나의 프로세서는,
상기 공유 버퍼에 기록된 시스템 콜 정보를 호출된 컨테이너의 실행 정보와 매칭함에 따라 생성된 매칭 정보를 내부 저장공간에 기록하는
것을 특징으로 하는 컨테이너 보안 시스템.
According to claim 12,
The at least one processor,
Recording the matching information generated by matching the system call information recorded in the shared buffer with the execution information of the called container in an internal storage space
A container security system, characterized in that.
제9항에 있어서,
상기 적어도 하나의 프로세서는,
상기 컨테이너 인스턴스에 적용된 보안 프로파일과 내부 저장공간에 기록된 시스템 콜을 비교 분석하여 추가 및 삭제되어야 하는 시스템 콜들을 도출한 결과를 획득하고, 상기 획득된 결과를 기반으로 컨테이너 인스턴스에 적용될 수 있는 형태로 구성된 보안 컴퓨팅 모드(SECCOMP)의 새로운 보안 프로파일을 생성하는
것을 특징으로 하는 컨테이너 보안 시스템.
According to claim 9,
The at least one processor,
The security profile applied to the container instance and the system calls recorded in the internal storage are compared and analyzed to obtain a result of deriving system calls to be added and deleted, and based on the obtained result, in a form that can be applied to the container instance. Create a new security profile for the configured secure computing mode (SECCOMP).
A container security system, characterized in that.
KR1020210071971A 2021-06-03 2021-06-03 Method and system for runtime security profile update of containers KR102571477B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210071971A KR102571477B1 (en) 2021-06-03 2021-06-03 Method and system for runtime security profile update of containers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210071971A KR102571477B1 (en) 2021-06-03 2021-06-03 Method and system for runtime security profile update of containers

Publications (2)

Publication Number Publication Date
KR20220163608A true KR20220163608A (en) 2022-12-12
KR102571477B1 KR102571477B1 (en) 2023-08-29

Family

ID=84391484

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210071971A KR102571477B1 (en) 2021-06-03 2021-06-03 Method and system for runtime security profile update of containers

Country Status (1)

Country Link
KR (1) KR102571477B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170116412A1 (en) * 2015-10-01 2017-04-27 Twistlock, Ltd. Profiling of spawned processes in container images and enforcing security policies respective thereof
CN111651752A (en) * 2020-04-17 2020-09-11 北京大学 Method for acquiring system call white list required by container
KR20200107538A (en) * 2019-03-08 2020-09-16 한국전자통신연구원 System and method for generating secure profile of container instance
KR20200137013A (en) * 2018-04-20 2020-12-08 시스딕, 인크. Program container monitoring
KR102209993B1 (en) * 2019-06-28 2021-02-01 한국전자통신연구원 Method and apparatus for interworking cloud platform and securty tools

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170116412A1 (en) * 2015-10-01 2017-04-27 Twistlock, Ltd. Profiling of spawned processes in container images and enforcing security policies respective thereof
KR20200137013A (en) * 2018-04-20 2020-12-08 시스딕, 인크. Program container monitoring
KR20200107538A (en) * 2019-03-08 2020-09-16 한국전자통신연구원 System and method for generating secure profile of container instance
KR102209993B1 (en) * 2019-06-28 2021-02-01 한국전자통신연구원 Method and apparatus for interworking cloud platform and securty tools
CN111651752A (en) * 2020-04-17 2020-09-11 北京大学 Method for acquiring system call white list required by container

Also Published As

Publication number Publication date
KR102571477B1 (en) 2023-08-29

Similar Documents

Publication Publication Date Title
US11216256B2 (en) Determining based on static compiler analysis that execution of compiler code would result in unacceptable program behavior
US10698668B1 (en) Custom code transformations during compilation process
US8434070B2 (en) Generating specifications of client-server applications for static analysis
US20120102474A1 (en) Static analysis of client-server applications using framework independent specifications
KR101740604B1 (en) Generic unpacking of applications for malware detection
US20120239987A1 (en) System and Method of Manipulating Virtual Machine Recordings for High-Level Execution and Replay
US11093642B2 (en) Push down policy enforcement
AU2019219820B2 (en) Identifying an issue associated with data
US8819644B2 (en) Selective data flow analysis of bounded regions of computer software applications
US9256409B2 (en) Building reusable function summaries for frequently visited methods to optimize data-flow analysis
AU2019200945B2 (en) Automated issue detection and resolution framework for enterprise resource planning
CN118012448A (en) Secure deployment and operation of virtual platform systems
Taubmann et al. Cloudphylactor: Harnessing mandatory access control for virtual machine introspection in cloud data centers
US11716354B2 (en) Determination of compliance with security technical implementation guide standards
Peddoju et al. Natural language processing based anomalous system call sequences detection with virtual memory introspection
US11036527B2 (en) Class splitting in object-oriented environments
Kim et al. Prof-gen: Practical study on system call whitelist generation for container attack surface reduction
US11599456B2 (en) Automated validation of a rest application programming interface
KR101428915B1 (en) Feedback based application rewriting framework method and system for android security
CN113176926B (en) API dynamic monitoring method and system based on virtual machine introspection technology
US11635948B2 (en) Systems and methods for mapping software applications interdependencies
KR102571477B1 (en) Method and system for runtime security profile update of containers
KR102323621B1 (en) Apparatus and method for fuzzing firmware
KR20170035507A (en) Apparatus for analysis application using expansion code and method usnig the same
US11206284B2 (en) Automated threat analysis of a system design

Legal Events

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