KR102633812B1 - Container integrated control system using intelligent agent and its control method - Google Patents

Container integrated control system using intelligent agent and its control method Download PDF

Info

Publication number
KR102633812B1
KR102633812B1 KR1020210185288A KR20210185288A KR102633812B1 KR 102633812 B1 KR102633812 B1 KR 102633812B1 KR 1020210185288 A KR1020210185288 A KR 1020210185288A KR 20210185288 A KR20210185288 A KR 20210185288A KR 102633812 B1 KR102633812 B1 KR 102633812B1
Authority
KR
South Korea
Prior art keywords
application
interface unit
agent
command
intelligent agent
Prior art date
Application number
KR1020210185288A
Other languages
Korean (ko)
Other versions
KR20230095628A (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 KR1020210185288A priority Critical patent/KR102633812B1/en
Publication of KR20230095628A publication Critical patent/KR20230095628A/en
Application granted granted Critical
Publication of KR102633812B1 publication Critical patent/KR102633812B1/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/451Execution arrangements for user interfaces
    • 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
    • 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/45591Monitoring or debugging support

Abstract

본 발명은 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법에 관한 것으로, 본 발명에 따른 방법은 사용자 인터페이스부가 사용자로부터 어플리케이션을 등록받는 단계; 사용자 인터페이스부가 등록된 어플리케이션의 환경 설정 파일을 생성하는 단계; 지능형 에이전트부가 등록된 어플리케이션의 환경 설정 파일과 함께 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 전달받으면, 복수의 워커노드에 배포된 POD 중에서 해당하는 POD에 대해 등록된 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하는 단계; 및 생성된 명령어 라인을 해당하는 POD에 전달하여 등록된 어플리케이션을 설치 또는 업데이트하도록 하는 단계; 를 포함한다. 본 발명에 의하면 IT 전문가가 아니더라도 컨테이너 통합 관제 시스템에 대한 관리를 쉽게 할 수 있다. 특히 어플리케이션의 설치 또는 업데이트를 편리하게 할 수 있다. 또한 새로운 어플리케이션의 설치 또는 업데이트에 의한 보안 문제도 사전에 자동으로 점검 가능하다.The present invention relates to an integrated container control system using an intelligent agent and a control method thereof. The method according to the present invention includes the steps of a user interface unit registering an application from a user; Creating a configuration file for the application in which the user interface unit is registered; When the intelligent agent unit receives an installation or update command for a registered application along with the configuration file of the registered application, a command line is sent to install or update the application registered for the corresponding POD among the PODs distributed to multiple worker nodes. generating a; and passing the generated command line to the corresponding POD to install or update the registered application. Includes. According to the present invention, it is possible to easily manage the container integrated control system even if you are not an IT expert. In particular, it is convenient to install or update applications. Additionally, security issues caused by installation or updates of new applications can be automatically checked in advance.

Description

지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법{Container integrated control system using intelligent agent and its control method}Container integrated control system using intelligent agent and its control method {Container integrated control system using intelligent agent and its control method}

본 발명은 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법에 관한 것이다.The present invention relates to an integrated container control system using an intelligent agent and a control method thereof.

특정 어플리케이션을 하나의 물리적 환경(예를 들어 서버 컴퓨터1)에서 다른 물리적 환경(예를 들어 서버 컴퓨터2)로 배포하여 사용하고자 했을 때 2 개의 다른 서버의 환경(서버 OS 제품의 종류, 버전의 차이, 종속되는 어플리케이션의 존재 유무 등)에 의해서 서버 컴퓨터1에서는 문제없이 정상 작동하던 특정 어플리케이션이 서버 컴퓨터2에서는 작동하지 않는 불편함이 현업에서는 비일비재하게 일어나고 있다. 이러한 문제를 해결하고자 어플리케이션을 컨테이너화하여 서버 컴퓨터의 환경과 관계없이 배포/사용할 수 있도록 하고 있다.When you want to deploy and use a specific application from one physical environment (e.g., server computer 1) to another physical environment (e.g., server computer 2), two different server environments (differences in server OS product types and versions) , the presence or absence of dependent applications, etc.), the inconvenience that a specific application that was operating normally on server computer 1 does not work on server computer 2 is a common occurrence in the field. To solve this problem, applications are containerized so that they can be distributed/used regardless of the server computer environment.

도 1은 컨테이너 및 POD의 개념을 설명하는 도면이다.1 is a diagram explaining the concepts of containers and PODs.

도 1을 참고하면, 컨테이너(1)는 어플리케이션(2) 및 해당 어플리케이션과 관련된 바이너리 파일(3), 라이브러리 파일(4) 등을 묶어서 이미지화한 것을 의미한다. 1개의 컨테이너(1)에 여러 개의 어플리케이션이 포함될 수도 있다.Referring to FIG. 1, the container (1) refers to an image that bundles an application (2), a binary file (3), a library file (4), etc. related to the application. One container (1) may contain multiple applications.

POD(포드: Point Of Deployment)(5)는 1개 또는 여러 개의 컨테이너(1)와 컨테이너(1)에 포함된 어플리케이션의 설정 및 동작과 관련된 리소스(환경 설정 파일 및 스토리지 등)를 하나의 관리 단위로 묶은 것을 의미한다. 하나의 POD는 하나 이상의 컨테이너(1), 환경 설정 파일(6) 및 스토리지(7)를 포함할 수 있다.POD (Point Of Deployment) (5) is a management unit that organizes one or several containers (1) and resources (such as configuration files and storage) related to the settings and operation of applications included in the containers (1). It means grouped together. One POD can include one or more containers (1), configuration files (6), and storage (7).

환경 설정 파일(6)은 해당 POD에 포함된 어플리케이션들의 환경 설정을 구성하는데 필요한 정보 및 명령어를 포함하는 파일이다. 그리고 스토리지(7)는 해당 POD에 포함된 어플리케이션의 동작과 관련된 데이터를 저장하는 파일, 테이블, 큐 등일 수 있다.The environment settings file (6) is a file that contains information and commands necessary to configure the environment settings of applications included in the corresponding POD. And the storage 7 may be a file, table, queue, etc. that stores data related to the operation of the application included in the corresponding POD.

서버 컴퓨터 1대(노드:NODE)는 1개 또는 여러 개의 POD(5)로 구성될 수 있다. 노드는 뒤에서 설명하는 마스터 노드 또는 워커 노드일 수 있다.One server computer (NODE) can consist of one or several PODs (5). The node can be a master node or a worker node, which will be explained later.

도 2는 종래 컨테이너 통합 관제 플랫폼의 구성을 예시한 것이다.Figure 2 illustrates the configuration of a conventional container integrated control platform.

도 2를 참고하면, 컨테이너 통합 관제 플랫폼은 쿠버네티스(Kubernetes), 도커 스웜(Docker Swarm), 아파치 메소스(Apache Mesos) 등이 알려져 있으며, 일반적으로 마스터 노드(20)와 다수의 워커노드(30)로 구성될 수 있다.Referring to Figure 2, container integrated control platforms are known such as Kubernetes, Docker Swarm, and Apache Mesos, and generally include a master node (20) and a number of worker nodes ( 30).

마스터 노드(20)는 전체 컨테이너 통합 관제 플랫폼을 제어 관리하는 기능을 수행한다.The master node 20 performs the function of controlling and managing the entire container integrated control platform.

워커노드(30)는 하나 이상의 컨테이너(1)의 집합인 하나 이상의 POD(5)가 실행된다.The worker node 30 runs one or more PODs 5, which are a set of one or more containers 1.

마스터 노드(20)는 API 서버(21), 스케줄러(22), 데이터 저장소(23) 및 컨트롤러 매니저(24)를 포함할 수 있다.The master node 20 may include an API server 21, a scheduler 22, a data storage 23, and a controller manager 24.

API 서버(21)는 최종 사용자, 컨테이너 통합 관제 플랫폼의 다른 부분 그리고 외부 컴포넌트가 서로 통신할 수 있도록 API를 제공하는 역할을 수행한다. 스케줄러(22)는 POD, 서비스 등 각각의 리소스들을 적절한 워커노드에 할당하고 관리하는 역할을 수행한다. 데이터 저장소(23)는 클러스터(10)의 상태나 설정 정보를 저장하는 역할을 수행한다. 컨트롤러 매니저(24)는 API 서버(21)를 통해 클러스터(10)의 공유된 상태를 감지하고, 현재 상태를 원하는 상태로 이행하는 Control loop를 관리하고, 필요한 경우 클라우드 업체와 연동해 로드 밸런서나 디스크 볼륨같은 자원을 관리하는 역할을 수행한다.The API server 21 serves to provide an API so that end users, other parts of the container integrated control platform, and external components can communicate with each other. The scheduler 22 is responsible for allocating and managing each resource, such as POD and service, to appropriate worker nodes. The data storage 23 serves to store the status or setting information of the cluster 10. The controller manager 24 detects the shared state of the cluster 10 through the API server 21, manages the control loop that transitions the current state to the desired state, and, if necessary, connects with a cloud company to load balancer or disk. It is responsible for managing resources such as volumes.

그런데 이러한 컨테이너 통합 관제 플랫폼에서는 수천 개 또는 수만 개의 POD(5)가 동시에 실행될 수 있다. POD(5)는 생성과 소멸을 무수히 반복하면서 실행되는 위치가 매번 변경될 수 있고, POD(5)에 할당된 메모리, 디스크 리소스 용량은 오토스케일링(Auto Scaling) 기능을 통해 수시로 변경될 수 있다.However, in this container integrated control platform, thousands or tens of thousands of PODs (5) can be executed simultaneously. The execution location of POD(5) may change each time as it repeats creation and destruction countless times, and the memory and disk resource capacity allocated to POD(5) may be changed at any time through the Auto Scaling function.

그런데 이러한 컨테이너 통합 관제 플랫폼 안에서 동시에 수행되는 수천에서 수만 개의 POD에 수많은 어플리케이션을 설치하거나 업데이트하는 과정은 전문 엔지니어가 아니면 할 수 없는 전문 업무 영역에 속한다. 또한 컨테이너 통합 관제 플랫폼에서 제공되는 관리 기능 중 어플리케이션의 설치, 업데이트, 복제와 배포와 관련해서 사용자의 편의성을 고려한 직관적인 그래픽 유저 인터페이스 환경을 제공하고 있지 않고, CLI(Command Line Interface) 환경에서 작업을 통해 이루어졌다. 이와 같이 종래의 컨테이너 통합 관제 플랫폼 안에서 어플리케이션 설치 및 업데이터는 매우 복잡한 전문적인 단계를 거쳐야하고 명령어를 일일이 전문가가 입력하는 불편하고 번거로운 과정이 존재하였다. However, the process of installing or updating numerous applications on thousands to tens of thousands of PODs performed simultaneously within this container integrated control platform is a specialized work area that can only be performed by professional engineers. In addition, among the management functions provided by the container integrated control platform, it does not provide an intuitive graphical user interface environment that takes user convenience into account in relation to application installation, update, replication and distribution, and tasks must be performed in a CLI (Command Line Interface) environment. It was done through. As such, in the conventional container integrated control platform, application installation and update had to go through very complicated professional steps, and there was an inconvenient and cumbersome process in which experts entered commands one by one.

한편 컨테이너 통합 관제 플랫폼은 애초에 오픈소스로 만들어진 이유로 인해 독점 상용 소프트웨어와 달리 제조사(오픈소스는 하나의 독점적인 제조사가 존재하지 않음)로부터의 보안정책이 존재하지 않는다. 따라서 이러한 태생적인 문제로 인하여 컨테이너 통합 관제 플랫폼에 맞춤형 보안책을 마련하는 것은 사용자 각자의 몫이 될수 밖에 없었다. 이로 인해 오픈소스, 컨테이너등의 전문 기술자가 아닌 일반 IT 관리자나 시스템 사용자에게는 컨테이너 통합 관제 플랫폼에 대한 사용자 각자의 보안책을 마련하는 것이 어려울 뿐만 아니라, 보안책 실행이나 관리 조차도 하기 힘든 것이 현실이었다.Meanwhile, because the container integrated control platform was originally created as open source, unlike proprietary commercial software, there is no security policy from the manufacturer (open source does not have a single exclusive manufacturer). Therefore, due to these inherent problems, it was up to each user to prepare customized security measures for the container integrated control platform. As a result, it was not only difficult for general IT managers or system users who were not expert engineers in open source or containers, but also to prepare their own security measures for the container integrated control platform, and it was also difficult to implement or manage security measures.

본 발명이 해결하고자 하는 기술적 과제는 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법을 제공하는 것이다.The technical problem to be solved by the present invention is to provide an integrated container control system and control method using an intelligent agent.

상기한 기술적 과제를 해결하기 위한 본 발명에 따른 복수의 워커노드 및 마스터 노드로 구성되는 컨테이너 통합 관제 시스템은, 사용자로부터 어플리케이션을 등록받고, 상기 등록된 어플리케이션의 환경 설정 파일을 생성하는 사용자 인터페이스부; 및 상기 등록된 어플리케이션의 환경 설정 파일과 함께 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 전달받으면, 상기 복수의 워커노드에 배포된 POD 중에서 해당하는 POD에 대해 상기 등록된 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하고, 상기 해당하는 POD에 전달하여 상기 등록된 어플리케이션을 설치 또는 업데이트하도록 하는 지능형 에이전트부; 를 포함하고, 상기 복수의 워커노드는 하나 이상의 POD가 배포되어 실행되고, POD는 하나 이상의 컨테이너 및 환경 설정 파일을 포함하며, 컨테이너는 어플리케이션 및 어플리케이션 실행에 필요한 라이브러리 및 바이너리 파일을 포함하고, 상기 마스터 노드는 상기 복수의 워커노드에 대한 POD 배포 및 상기 복수의 워커노드에 배포된 POD를 관리한다.A container integrated control system consisting of a plurality of worker nodes and a master node according to the present invention for solving the above-described technical problem includes: a user interface unit for registering an application from a user and generating a configuration file for the registered application; And when an installation or update command for the registered application is received along with the configuration file of the registered application, a command for installing or updating the registered application is installed for the corresponding POD among the PODs distributed to the plurality of worker nodes. an intelligent agent unit that generates a command line and delivers it to the corresponding POD to install or update the registered application; Includes, the plurality of worker nodes are deployed and executed by one or more PODs, the POD includes one or more containers and environment configuration files, the container includes an application and libraries and binary files necessary for application execution, and the master The node distributes PODs to the plurality of worker nodes and manages the PODs distributed to the plurality of worker nodes.

상기 지능형 에이전트부는, 상기 등록된 어플리케이션의 이름을 키워드로 미리 정해진 취약점 데이터베이스를 조회하여 수집한 취약점 데이터로부터 추출되는 단어에 기초하여, 모의 공격을 위해 필요한 어플리케이션을 어플리케이션 저장소로부터 다운로드하여 해당하는 POD에 설치하고, 모의 공격을 위한 명령어를 작성한 후 상기 작성된 명령어를 상기 해당하는 POD에 전달하여 실행시킴으로써 상기 클러스터에 대한 모의 공격을 실행되게 할 수 있다.The intelligent agent unit searches a predetermined vulnerability database using the name of the registered application as a keyword, and based on words extracted from vulnerability data collected, downloads the application required for a mock attack from the application repository and installs it in the corresponding POD. Then, a mock attack on the cluster can be executed by writing a command for a mock attack and then passing the written command to the corresponding POD and executing it.

상기 해당하는 POD는 상기 사용자 인터페이스부에서 사용자로부터 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 대상으로 선택된 POD일 수 있다.The corresponding POD may be a POD selected by the user in the user interface unit as an installation or update target for the registered application.

상기 지능형 에이전트부는, 상기 모의 공격의 실행에 따른 상기 해당하는 POD의 상태를 확인하고, 상기 모의 공격에 따른 결과값을 에이전트 데이터베이스에 저장할 수 있다.The intelligent agent unit may check the status of the corresponding POD according to execution of the mock attack and store the result of the mock attack in the agent database.

상기 지능형 에이전트부는 복수 개의 지능형 에이전트를 포함할 수 있다.The intelligent agent unit may include a plurality of intelligent agents.

상기 사용자 인터페이스부와 복수 개의 상기 지능형 에이전트부 사이에서 명령 및 명령 결과값을 중개하는 에이전트 인터페이스부를 더 포함할 수 있다.It may further include an agent interface unit that mediates commands and command results between the user interface unit and the plurality of intelligent agent units.

상기 에이전트 인터페이스부는 상부 에이전트 인터페이스부 및 복수의 하부 에이전트 인터페이스부를 포함할 수 있다. The agent interface unit may include an upper agent interface unit and a plurality of lower agent interface units.

상기 상부 에이전트 인터페이스부는 상기 사용자 인터페이스부에서 전달되는 명령을 분류하여 상기 복수의 하부 에이전트 인터페이스부에 선택적으로 전달할 수 있다.The upper agent interface unit may classify commands transmitted from the user interface unit and selectively transmit them to the plurality of lower agent interface units.

상기 명령을 전달받은 하부 에이전트 인터페이스부는 상기 복수 개의 지능형 에이전트 중 대응하는 지능형 에이전트에 전달할 수 있다.The lower agent interface unit that receives the command may transmit it to a corresponding intelligent agent among the plurality of intelligent agents.

상기한 기술적 과제를 해결하기 위한 본 발명에 따른 복수의 워커노드 및 마스터 노드로 구성되는 컨테이너 통합 관제 시스템의 제어 방법은, 사용자 인터페이스부가 사용자로부터 어플리케이션을 등록받는 단계; 상기 사용자 인터페이스부가 상기 등록된 어플리케이션의 환경 설정 파일을 생성하는 단계; 지능형 에이전트부가 상기 등록된 어플리케이션의 환경 설정 파일과 함께 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 전달받으면, 상기 복수의 워커노드에 배포된 POD 중에서 해당하는 POD에 대해 상기 등록된 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하는 단계; 및 상기 생성된 명령어 라인을 상기 해당하는 POD에 전달하여 상기 등록된 어플리케이션을 설치 또는 업데이트하도록 하는 단계; 를 포함한다.A method of controlling a container integrated control system consisting of a plurality of worker nodes and a master node according to the present invention to solve the above technical problem includes the steps of a user interface unit registering an application from a user; generating a configuration file of the registered application by the user interface unit; When the intelligent agent unit receives an installation or update command for the registered application along with the configuration file of the registered application, it installs or updates the registered application for the corresponding POD among the PODs distributed to the plurality of worker nodes. generating a command line for; and passing the generated command line to the corresponding POD to install or update the registered application. Includes.

본 발명에 일 실시예에 따른 기록매체는 컴퓨터에 상기 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함할 수 있다.A recording medium according to an embodiment of the present invention may include a computer-readable recording medium on which a program for executing the above method is recorded on a computer.

본 발명에 의하면 IT 전문가가 아니더라도 컨테이너 통합 관제 시스템에 대한 관리를 쉽게 할 수 있다. 특히 어플리케이션의 설치 또는 업데이트를 편리하게 할 수 있다. 또한 새로운 어플리케이션의 설치 또는 업데이트에 의한 보안 문제도 사전에 자동으로 점검 가능하다.According to the present invention, it is possible to easily manage the container integrated control system even if you are not an IT expert. In particular, it is convenient to install or update applications. Additionally, security issues caused by installation or updates of new applications can be automatically checked in advance.

도 1은 컨테이너 및 POD의 개념을 설명하는 도면이다.
도 2는 종래 컨테이너 통합 관제 플랫폼의 구성을 예시한 것이다.
도 3은 본 발명의 일 실시예에 따른 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템의 구성도이다.
도 4는 본 발명의 일 실시예에 따른 에이전트 인터페이스부의 구성을 설명하기 위해 제공되는 도면이다.
도 5는 본 발명의 일 실시예에 따른 취약점 데이터베이스에서 수집한 취약점 데이터를 예시한 것이다.
도 6은 본 발명의 일 실시예에 따라 수집된 취약점 데이터에서 지능형 에이전트가 추출한 단어를 예시한 것이다.
도 7은 본 발명에 따른 모의 공격을 위해 지능형 에이전트부에서 자동으로 작성된 명령어를 예시한 것이다.
도 8은 본 발명의 일 실시예에 따른 어플리케이션 설치 또는 업데이터 과정을 나타낸 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 모의 공격 과정을 나타낸 흐름도이다.
1 is a diagram explaining the concepts of containers and PODs.
Figure 2 illustrates the configuration of a conventional container integrated control platform.
Figure 3 is a configuration diagram of a container integrated control system using an intelligent agent according to an embodiment of the present invention.
Figure 4 is a diagram provided to explain the configuration of an agent interface unit according to an embodiment of the present invention.
Figure 5 illustrates vulnerability data collected from a vulnerability database according to an embodiment of the present invention.
Figure 6 illustrates words extracted by an intelligent agent from vulnerability data collected according to an embodiment of the present invention.
Figure 7 illustrates a command automatically written by the intelligent agent unit for a simulated attack according to the present invention.
Figure 8 is a flowchart showing an application installation or update process according to an embodiment of the present invention.
Figure 9 is a flowchart showing a simulated attack process according to an embodiment of the present invention.

그러면 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.Then, with reference to the attached drawings, embodiments of the present invention will be described in detail so that those skilled in the art can easily implement the present invention.

도 3은 본 발명의 일 실시예에 따른 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템의 구성도이다.Figure 3 is a configuration diagram of a container integrated control system using an intelligent agent according to an embodiment of the present invention.

도 3을 참고하면, 본 발명에 따른 시스템은 마스터 노드(100), 복수의 워커노드(210)로 이루어진 클러스터(200), 지능형 에이전트부(300), 사용자 인터페이스부(400), 에이전트 인터페이스부(500), 어플리케이션 저장소(600), 에이전트 데이터베이스(700) 및 취약점 데이터베이스부(800)를 포함할 수 있다.Referring to Figure 3, the system according to the present invention includes a master node 100, a cluster 200 consisting of a plurality of worker nodes 210, an intelligent agent unit 300, a user interface unit 400, and an agent interface unit ( 500), an application storage 600, an agent database 700, and a vulnerability database unit 800.

마스터 노드(100), 복수의 워커노드(210)로 이루어진 클러스터(200)는 쿠버네티스(Kubernetes), 도커 스웜(Docker Swarm), 아파치 메소스(Apache Mesos) 등과 같이 어플리케이션을 이미지화한 컨테이너를 POD 단위로 배포 관리하는 시스템, 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화한 컨테이너 오케스트레이션(Container Orchestration) 시스템일 수 있다.The cluster 200, which consists of a master node 100 and a plurality of worker nodes 210, uses containers that image applications, such as Kubernetes, Docker Swarm, Apache Mesos, etc., as a POD. It may be a system that manages deployment by unit, or a container orchestration system that automates the deployment, management, expansion, and networking of containers.

마스터 노드(100)는 복수의 워커노드(210)로 이루어진 클러스터(200)를 제어 관리하는 기능을 수행한다. 마스터 노드(100)는 종래 컨테이너 오케스트레이션 시스템에서 마스터 노드의 역할을 수행할 수 있다.The master node 100 performs the function of controlling and managing the cluster 200 consisting of a plurality of worker nodes 210. The master node 100 may perform the role of a master node in a conventional container orchestration system.

마스터 노드(100)는 복수의 워커노드(210)에 대해서 POD(220)를 배포하고, 복수의 워커노드(210)에 배포된 POD(220)를 관리하는 기능을 수행한다. 여기서 POD(220)를 관리한다는 것은 POD(220), POD(220)에 포함된 컨테이너, 또는 컨테이너에 포함된 어플리케이션을 관리하는 것도 포함한다.The master node 100 distributes the POD 220 to a plurality of worker nodes 210 and performs the function of managing the POD 220 distributed to the plurality of worker nodes 210. Here, managing the POD 220 also includes managing the POD 220, the container included in the POD 220, or the application included in the container.

복수의 워커노드(210)는 하나 이상의 POD(220)가 배포되어 실행된다. 도 3에서는 도면의 간략화를 위해 3개의 워커노드(210)와 각 워커노드에 1개, 2개 또는 3개의 POD(220)가 포함되어 있는 클러스터(200)를 도시하였으나, 클러스터(200)에 포함되는 워커노드, POD 등의 개수는 상황에 따라 다양하게 달라질 수 있다.A plurality of worker nodes 210 are executed by distributing one or more PODs 220. In FIG. 3, to simplify the drawing, a cluster 200 is shown containing three worker nodes 210 and one, two, or three PODs 220 in each worker node. However, the cluster 200 includes The number of worker nodes, PODs, etc. can vary depending on the situation.

POD(220)는 하나 이상의 컨테이너 및 컨테이너에 포함된 어플리케이션의 설정 및 동작과 관련된 리소스(환경 설정 파일 및 스토리지 등)를 하나의 관리 단위로 묶은 것을 의미한다.POD 220 means that one or more containers and resources (such as configuration files and storage) related to the settings and operation of applications included in the containers are grouped into one management unit.

POD(220)에 포함되는 컨테이너는 어플리케이션 및 해당 어플리케이션과 관련된 바이너리 파일, 라이브러리 파일 등을 묶어서 이미지화한 것을 의미한다. 1개의 컨테이너에 여러 개의 어플리케이션이 포함될 수도 있다.The container included in the POD 220 means an image that bundles an application and binary files and library files related to the application. One container may contain multiple applications.

사용자 인터페이스부(400)는 사용자로부터 어플리케이션을 등록받을 수 있다. 또한 사용자 인터페이스부(400)는 사용자로부터 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 입력받을 수 있다. 또한 사용자 인터페이스부(400)는 사용자로부터 클러스터(200)의 상태, 예컨대 클러스터(200)에 설치된 어플리케이션의 상태(리소스 효율성, 정상 작동 여부 등)에 대한 조회 요청을 받을 수도 있다.The user interface unit 400 can register an application from a user. Additionally, the user interface unit 400 may receive an installation or update command for a registered application from the user. Additionally, the user interface unit 400 may receive a request to inquire about the status of the cluster 200 from the user, for example, the status of applications installed in the cluster 200 (resource efficiency, normal operation, etc.).

이를 위해 사용자 인터페이스부(400)는 그래픽 유저 인터페이스(웹 유저 인터페이스) 기반으로 구현될 수 있다. 가령 사용자 인터페이스부(400)는 등록된 어플리케이션에 대한 목록을 사용자에게 제시하고, 어플리케이션 목록 옆에는 설치 또는 업데이트 명령 버튼을 표시할 수 있다.To this end, the user interface unit 400 may be implemented based on a graphical user interface (web user interface). For example, the user interface unit 400 may present a list of registered applications to the user and display an installation or update command button next to the application list.

그리고 사용자가 설치 또는 업데이트 명령 버튼을 누르면, 해당 어플리케이션이 설치 또는 업데이트될 대상에 해당하는 POD를 선택받기 위한 화면을 표시할 수 있다. 이미 해당 어플리케이션이 설치된 POD에 대해서는 어플리케이션 버전이 다른 경우 업데이트 버튼이 활성화되어 표시될 수 있고, 어플리케이션 버전이 동일한 경우 삭제 후 재설치 버튼이 활성화되어 표시될 수 있다. 반면 해당 어플리케이션이 설치되지 않은 POD에 대해서는 어플리케이션 설치 버튼이 활성화되어 표시될 수 있다. 따라서 사용자는 등록된 어플리케이션에 대해서 설치, 삭제 후 재설치 또는 업데이트 등을 시각적으로 확인 후 선택할 수 있다.And when the user presses the install or update command button, a screen for selecting the POD corresponding to the application to be installed or updated can be displayed. For PODs where the application is already installed, if the application version is different, the update button may be activated and displayed, and if the application version is the same, the delete and reinstall button may be activated and displayed. On the other hand, for PODs where the application is not installed, the application installation button may be activated and displayed. Therefore, the user can visually check and then select whether to install, delete and then reinstall or update the registered application.

한편 사용자 인터페이스부(400)를 통해 등록된 어플리케이션은 어플리케이션 저장소(600)에 저장될 수 있다.Meanwhile, applications registered through the user interface unit 400 may be stored in the application storage 600.

어플리케이션 저장소(600)는 일종의 Git 저장소와 같이 어플리케이션의 소스코드의 버전을 분산하여 저장 관리하며, 소스코드가 등록된 일자 및 시간 등의 정보를 소스코드와 같이 저장할 수 있다. 어플리케이션 저장소(600)에는 클러스터(200)의 동작 운영과 관련된 각종 어플리케이션이 저장될 수 있다. 아울러 뒤에서 설명한 클러스터(200)에 대한 모의 공격에 필요한 어플리케이션도 저장될 수 있다.The application repository 600 distributes and manages versions of the source code of an application like a Git repository, and can store information such as the date and time when the source code was registered together with the source code. Various applications related to the operation and operation of the cluster 200 may be stored in the application storage 600. In addition, applications necessary for a simulated attack on the cluster 200 described later may also be stored.

한편 사용자 인터페이스부(400)는 사용자로부터 등록된 어플리케이션의 환경 설정 파일(config 파일)을 생성할 수 있다. 여기서 환경 설정 파일은 클러스터(200)에서 해당 어플리케이션의 동작 및 설치와 관련된 환경 설정을 구성하는데 필요한 정보 및 명령어를 포함하는 파일이다. 구체적으로 어플리케이션 설치 파일의 위치 정보(어플리케이션 저장소에 저장된 위치 정보), 어플리케이션 설치 옵션, 어플리케이션 사용 권한, 어플리케이션 사용 기한 등이 환경 설정 파일에 포함될 수 있다. 어플리케이션 설치 옵션, 어플리케이션 사용 권한, 어플리케이션 사용 기한 등에 대한 정보는 사용자로부터 설정받거나 미리 정해진 규칙에 따라 자동으로 정해져 환경 설정 파일에 포함될 수도 있다.Meanwhile, the user interface unit 400 may generate an environment setting file (config file) for an application registered by the user. Here, the environment configuration file is a file containing information and commands necessary to configure environment settings related to the operation and installation of the application in the cluster 200. Specifically, the location information of the application installation file (location information stored in the application repository), application installation options, application usage permissions, application usage period, etc. may be included in the environment setting file. Information about application installation options, application usage rights, application usage period, etc. may be set by the user or automatically determined according to predetermined rules and included in the configuration file.

사용자 인터페이스부(400)는 어플리케이션에 대한 설치(이하 설치는 재설치도 포함함) 또는 업데이트 명령을 해당 어플리케이션의 환경 설정 파일 및 POD 선택 정보와 함께 지능형 에이전트부(300)로 전달할 수 있다. 이하에서 어플리케이션에 대한 설치 또는 업데이트 명령을 전달한다고 할 때는 해당 어플리케이션의 환경 설정 파일 및 POD 선택 정보도 함께 전달되는 것을 의미한다. The user interface unit 400 may transmit an installation (hereinafter installation includes reinstallation) or update command for the application to the intelligent agent unit 300 along with the configuration file and POD selection information of the application. Hereinafter, when an installation or update command for an application is delivered, it means that the application's configuration file and POD selection information are also delivered.

실시예에 따라서 어플리케이션에 대한 설치 또는 업데이트 명령은, 에이전트 인터페이스부(500)를 거쳐서, 사용자 인터페이스부(400)로부터 지능형 에이전트부(300)로 전달될 수 있다.Depending on the embodiment, an installation or update command for an application may be transmitted from the user interface unit 400 to the intelligent agent unit 300 via the agent interface unit 500.

일반적으로 하나의 클러스터(200) 내에 수백 ~ 수천 개의 POD(220)가 존재한다. 따라서 도면에서는 하나의 지능형 에이전트부(300)를 도시하였으나, 지능형 에이전트부(300)는 다수의 지능형 에이전트를 포함하는 것으로 이해될 수 있다. 그리고 각 지능형 에이전트마다 담당하는 워커노드 또는 POD가 정해질 수 있다. Generally, hundreds to thousands of PODs 220 exist within one cluster 200. Therefore, although the drawing shows one intelligent agent unit 300, the intelligent agent unit 300 can be understood to include multiple intelligent agents. Additionally, a worker node or POD in charge of each intelligent agent can be determined.

이런 경우 시스템을 보다 효율적으로 운영하기 위해서 사용자 인터페이스부(400)와 지능형 에이전트부(300) 사이에 에이전트 인터페이스부(500)를 위치시키는 것이 바람직하다.In this case, it is desirable to position the agent interface unit 500 between the user interface unit 400 and the intelligent agent unit 300 in order to operate the system more efficiently.

에이전트 인터페이스부(500)는 사용자 인터페이스부(400)와 지능형 에이전트부(300) 사이에서 명령 및 명령 결과값을 중개할 수 있다.The agent interface unit 500 may mediate commands and command results between the user interface unit 400 and the intelligent agent unit 300.

도 4는 본 발명의 일 실시예에 따른 에이전트 인터페이스부의 구성을 설명하기 위해 제공되는 도면이다.Figure 4 is a diagram provided to explain the configuration of an agent interface unit according to an embodiment of the present invention.

도 4를 참고하면, 에이전트 인터페이스부(500)는 상부 에이전트 인터페이스부(510), 및 복수의 하부 에이전트 인터페이스부(520)를 포함할 수 있다. Referring to FIG. 4, the agent interface unit 500 may include an upper agent interface unit 510 and a plurality of lower agent interface units 520.

상부 에이전트 인터페이스부(510)는 사용자 인터페이스부(400)에서 전달되는 명령을 분류하여 복수의 하부 에이전트 인터페이스부(520) 중 하나에 선택적으로 전달할 수 있다.The upper agent interface unit 510 may classify commands transmitted from the user interface unit 400 and selectively transmit them to one of the plurality of lower agent interface units 520.

복수의 하부 에이전트 인터페이스부(520)는 명령 전달 인터페이스부(521)와 상태 조회 인터페이스부(523)를 포함할 수 있다. 그리고 명령 전달 인터페이스부(521)의 경우 복수 개로 구현되고, 각각의 명령 전달 인터페이스부(521)에 하나 이상의 지능형 에이전트가 할당되도록 구현할 수도 있다.The plurality of lower agent interface units 520 may include a command transmission interface unit 521 and a status inquiry interface unit 523. Additionally, in the case of the command transmission interface unit 521, a plurality of command transmission interface units 521 may be implemented, and one or more intelligent agents may be assigned to each command transmission interface unit 521.

상부 에이전트 인터페이스부(510)는 사용자 인터페이스부(400)로부터 전달된 명령이 어플리케이션 설치 또는 업데이트 명령인 경우, 명령 전달 인터페이스부(521)로 전달할 수 있다. 이때 상부 에이전트 인터페이스부(510)는, 해당 어플리케이션의 설치 또는 업데이트 명령을 실행할 지능형 에이전트에 할당된 명령 전달 인터페이스부(521)를 선택하여, 명령을 전달할 수 있다. If the command transmitted from the user interface unit 400 is an application installation or update command, the upper agent interface unit 510 may transmit the command to the command transmission interface unit 521. At this time, the upper agent interface unit 510 may select the command transmission interface unit 521 assigned to the intelligent agent to execute the installation or update command of the application and transmit the command.

한편 상부 에이전트 인터페이스부(510)는, 사용자 인터페이스부(400)로부터 전달된 명령이 어플리케이션 상태 조회 명령인 경우, 해당 조회 명령을 상태 조회 인터페이스부(523)에 전달할 수도 있다. 이 경우 지능형 에이전트부(300)를 거치지 않고 상태 조회 인터페이스부(523)에서 바로 에이전트 데이터베이스(700)를 조회하여 해당 어플리케이션의 상태 조회 결과값을 상부 에이전트 인터페이스부(510)로 전달하도록 구현할 수 있다. 그러면 상부 에이전트 인터페이스부(510)는 상태 조회 결과값을 사용자 인터페이스부(400)에 전달하여 사용자에게 출력하도록 할 수 있다. Meanwhile, if the command transmitted from the user interface unit 400 is an application status inquiry command, the upper agent interface unit 510 may transmit the inquiry command to the status inquiry interface unit 523. In this case, it can be implemented to query the agent database 700 directly from the status inquiry interface unit 523 without going through the intelligent agent unit 300 and transmit the status inquiry result of the application to the upper agent interface unit 510. Then, the upper agent interface unit 510 can transmit the status inquiry result to the user interface unit 400 and output it to the user.

사용자 인터페이스부(400)는 클러스터(200)에 대한 모니터링을 사용자로부터 요청받고 그에 따른 모니터링 결과를 리포팅할 수 있다. 예를 들어 사용자 인터페이스부(400)는 클러스터(200)의 워커노드(210) 별로 배포된 POD(220) 및 어플리케이션 정보를 제공할 수 있다. 그리고 사용자로부터 특정 어플리케이션에 대한 현재 상태 모니터링 요청을 받으면, 사용자 인터페이스부(400)는 앞서 설명한 것과 같이 에이전트 인터페이스부(500)를 통해 에이전트 데이터베이스(700)를 조회하여 해당 어플리케이션의 현재 상태 조회 결과값을 반환받아 사용자에게 제공할 수 있다.The user interface unit 400 may receive a request from a user to monitor the cluster 200 and report the monitoring results accordingly. For example, the user interface unit 400 may provide information on the POD 220 and applications distributed to each worker node 210 of the cluster 200. And when a request is received from a user to monitor the current status of a specific application, the user interface unit 400 searches the agent database 700 through the agent interface unit 500 as described above and provides the current status inquiry result of the application. It can be returned and provided to the user.

물론 실시예에 따라서 사용자 인터페이스부(400)는, 에이전트 인터페이스부(500)를 통해, 지능형 에이전트부(300)에 특정 어플리케이션에 대한 조회 명령을 전달하고, 에이전트 인터페이스부(500)로부터 해당 어플리케이션의 현재 상태 정보를 전달받아 사용자에게 제공할 수도 있다.Of course, depending on the embodiment, the user interface unit 400 transmits an inquiry command for a specific application to the intelligent agent unit 300 through the agent interface unit 500, and retrieves the current status of the application from the agent interface unit 500. Status information can also be received and provided to the user.

지능형 에이전트부(300)는 사용자 인터페이스부(400)로부터 직접 또는 에이전트 인터페이스부(500)를 통해 명령을 전달받으면, 해당 명령을 수행한 후 명령 결과값을 반환할 수 있다.When the intelligent agent unit 300 receives a command directly from the user interface unit 400 or through the agent interface unit 500, it may execute the command and return a command result value.

먼저 어플리케이션 설치 또는 업데이트 명령을 전달받으면, 지능형 에이전트부(300)는 해당 어플리케이션의 환경 설정 파일을 해석하여 자동으로 해당 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하여 해당 POD(220)에 전달한다. 해당 POD는 지능형 에이전트부(300)로부터 전달된 명령어 라인을 실행하여 해당 어플리케이션을 설치 또는 업데이트 할 수 있다.First, when an application installation or update command is received, the intelligent agent unit 300 interprets the configuration file of the application, automatically generates a command line for installing or updating the application, and delivers it to the corresponding POD 220. The POD can install or update the application by executing the command line transmitted from the intelligent agent unit 300.

지능형 에이전트부(300)는 해당 POD(220)에서 어플리케이션의 설치 또는 업데이트 후 성공 또는 실패값을 반환받아 에이전트 데이터베이스(700)에 저장하고 사용자 인터페이스부(400)에 전달할 수 있다.The intelligent agent unit 300 may receive a success or failure value after installing or updating an application in the corresponding POD 220, store it in the agent database 700, and transmit it to the user interface unit 400.

사용자 인터페이스부(400)는 해당 어플리케이션의 설치 또는 업데이트의 성공 실패 여부를 전달받아 사용자에게 표시할 수 있다. 물론 복수의 POD(220)에 동일 어플리케이션의 설치 또는 업데이트를 수행한 경우, 각각의 POD(220)별로 구분하여 어플리케이션의 설치 또는 업데이트의 성공 실패 여부를 표시할 수 있다.The user interface unit 400 may receive the success or failure of installing or updating the application and display it to the user. Of course, if the same application is installed or updated on multiple PODs 220, the success or failure of the application installation or update can be indicated separately for each POD 220.

한편 지능형 에이전트부(300)는 자동으로 미리 설정된 주기마다 클러스터(200)에 설치된 어플리케이션의 상태를 조회하여 에이전트 데이터베이스(700)에 저장하고 사용자 인터페이스부(400)에 전달할 수 있다. 사용자는 사용자 인터페이스부(400)를 통해 지능형 에이전트부(300)가 자동으로 클러스터(200)에 설치된 어플리케이션의 상태를 자동으로 조회하는 주기를 설정할 수 있다.Meanwhile, the intelligent agent unit 300 can automatically inquire the status of applications installed in the cluster 200 at preset intervals, store the status in the agent database 700, and transmit it to the user interface unit 400. The user can set a cycle for the intelligent agent unit 300 to automatically check the status of applications installed in the cluster 200 through the user interface unit 400.

물론 지능형 에이전트부(300)는 사용자 인터페이스부(400)를 통해 어플리케이션 상태 조회 요청을 받을 때마다 수동으로 해당 어플리케이션의 상태를 조회하여 에이전트 데이터베이스(700)에 저장하고 사용자 인터페이스부(400)에 전달할 수도 있다.Of course, whenever the intelligent agent unit 300 receives a request to inquire the status of an application through the user interface unit 400, the intelligent agent unit 300 may manually inquire the status of the application, store it in the agent database 700, and transmit it to the user interface unit 400. there is.

한편 지능형 에이전트부(300)는 어플리케이션의 설치 또는 업데이트 후 자율적으로 취약점 모의 공격을 수행할 수 있다. 구체적으로 지능형 에이전트부(300)는 등록된 어플리케이션의 이름을 키워드로 미리 정해진 취약점 데이터베이스(800)를 조회하여 취약점 데이터를 수집할 수 있다. 그리고 지능형 에이전트부(300)는 수집한 취약점 데이터로부터 추출되는 단어에 기초하여, 모의 공격을 위해 필요한 어플리케이션을 어플리케이션 저장소로부터 다운로드하여 해당하는 POD에 설치할 수 있다. 이후 지능형 에이전트부(300)는 모의 공격을 위해 필요한 어플리케이션을 POD에 설치하여 모의 공격을 위한 환경을 갖춘 후 모의 공격을 위해 작성된 명령어에 따라 클러스터(200)에 대한 모의 공격을 실행할 수 있다. 모의 공격을 위한 명령어도 지능형 에이전트부(300)에서 취약점 데이터로부터 추출되는 단어에 기초하여 자동으로 작성할 수 있다.Meanwhile, the intelligent agent unit 300 can autonomously perform vulnerability simulation attacks after installing or updating an application. Specifically, the intelligent agent unit 300 may collect vulnerability data by querying the predetermined vulnerability database 800 using the name of the registered application as a keyword. And, based on words extracted from the collected vulnerability data, the intelligent agent unit 300 can download the application required for a mock attack from the application storage and install it in the corresponding POD. Afterwards, the intelligent agent unit 300 installs the application required for the mock attack on the POD, prepares an environment for the mock attack, and then executes the mock attack on the cluster 200 according to the command written for the mock attack. Commands for mock attacks can also be automatically created based on words extracted from vulnerability data in the intelligent agent unit 300.

참고로 도 3에서는 미리 정해진 취약점 데이터베이스(800)로 NVD (National Vulnerability Database), CVE (Common Vulnerabilities and Exposures), VNDB (Vulnerability Notes Database), VulnDB(Vulnerability Database) 등이 포함된 것을 예시하였으나 실시예에 따라서 미리 정해진 취약점 데이터베이스(800)는 추가되거나 일부가 제외될 수도 있다. NVD, CVE, VNDB, VulnDB 등의 취약점 데이터베이스는 본 발명에 따른 시스템의 운영주체와는 별개의 운영주체과 운영 관리하는 데이터베이스일 수 있다.For reference, Figure 3 illustrates that the predetermined vulnerability database 800 includes National Vulnerability Database (NVD), Common Vulnerabilities and Exposures (CVE), Vulnerability Notes Database (VNDB), and Vulnerability Database (VulnDB), but in the embodiment Accordingly, the predetermined vulnerability database 800 may be added or partially excluded. Vulnerability databases such as NVD, CVE, VNDB, VulnDB, etc. may be databases operated and managed by an operating entity separate from the operating entity of the system according to the present invention.

도 5는 본 발명의 일 실시예에 따른 취약점 데이터베이스에서 수집한 취약점 데이터를 예시한 것이다.Figure 5 illustrates vulnerability data collected from a vulnerability database according to an embodiment of the present invention.

도 5를 참고하면, 지능형 에이전트부(300)가 어플리케이션 'Microsoft .NET Framework'을 키워드로 CVE에서 수집한 취약점 데이터를 예시한 것이다. CVE에서 수집한 취약점 데이터는 도 5에 예시한 것과 같이 6개 카테고리(파일명, 개요, 관련 소프트웨어 및 버전, 피해 환경, 테스트 결과, 공격 흔적)로 분류된 정보가 자연어로 작성되어 있는 파일일 수 있다.Referring to Figure 5, an example of vulnerability data collected by the intelligent agent unit 300 from a CVE using the application 'Microsoft .NET Framework' as a keyword is shown. Vulnerability data collected from a CVE may be a file in which information classified into six categories (file name, overview, related software and version, damage environment, test results, and attack traces) is written in natural language, as shown in Figure 5. .

지능형 에이전트부(300)는 취약점 데이터에서 타겟 어플리케이션, 타겟 버전, 운영체제, 운영환경, 매개변수, 데이터, 테스트 서버, 테스트 어플리케이션, 테스트 프로세스, 테스트 계정, 테스트 실행파일, 공격흔적 위치, 공격흔적 URL, 공격흔적 프로세스 등에 대응하는 단어를 추출할 수 있다.The intelligent agent unit 300 includes target application, target version, operating system, operating environment, parameters, data, test server, test application, test process, test account, test executable file, attack trace location, attack trace URL, Words corresponding to attack trace processes, etc. can be extracted.

도 6은 본 발명의 일 실시예에 따라 수집된 취약점 데이터에서 지능형 에이전트가 추출한 단어를 예시한 것이다.Figure 6 illustrates words extracted by an intelligent agent from vulnerability data collected according to an embodiment of the present invention.

도 6은 도 5에 예시한 취약점 데이터에서 추출된 단어를 예시한 것이다. 먼저 타겟 어플리케이션으로 추출된 'Microsoft .NET Framework'는 설치된 어플리케이션의 이름으로 도 5의 취약점 데이터에서 관련 소프트웨어 카테고리에서 추출될 수 있다. 그리고 타겟버전은 마찬가지로 도 5의 취약점 데이터에서 관련 소프트웨어 카테고리에서 추출될 수 있다. 운영체제와 운영환경은 도 5의 취약점 데이터에서 관련 소프트웨어 및 버전 카테고리에서 추출될 수 있다. 물론 IIS와 같이 피해 환경 카테고리가 아닌 테스트 결과 카테고리에서 추출되는 경우도 있을 수 있다. 자연어 처리를 통해 미리 데이터 사전에 운영환경에 해당하는 단어로 IIS가 등록되어 있는 경우, 지능형 에이전트부(300)는 운영환경에 해당하는 단어로 IIS를 추출할 수 있다. 또한 도 5에 예시한 취약점 데이터에서 테스트 결과 카테고리에 포함된 ".Net Framework 프로세스 'csc.exe' 및 'cvtres.exe'와 주입된 명령이 실행"을 분석하여 'csc.exe' 및 'cvtres.exe'를 테스트 실행파일로 추출할 수 있다.Figure 6 illustrates words extracted from the vulnerability data illustrated in Figure 5. First, 'Microsoft .NET Framework', extracted as the target application, is the name of the installed application and can be extracted from the related software category in the vulnerability data in Figure 5. And the target version can also be extracted from the related software category in the vulnerability data in Figure 5. The operating system and operating environment can be extracted from the relevant software and version categories in the vulnerability data in Figure 5. Of course, there may be cases where it is extracted from the test result category rather than the victim environment category, such as IIS. If IIS is registered in advance as a word corresponding to the operating environment in the data dictionary through natural language processing, the intelligent agent unit 300 can extract IIS as a word corresponding to the operating environment. In addition, by analyzing the vulnerability data shown in Figure 5, ".Net Framework processes 'csc.exe' and 'cvtres.exe' and injected commands are executed" included in the test result category, 'csc.exe' and 'cvtres'. exe' can be extracted as a test executable file.

지능형 에이전트부(300)가 취약점 데이터에서 모의 공격과 관련된 단어를 추출하는데 필요한 데이터 사전이 미리 준비되어 있고, 데이터 사전은 지속적으로 학습될 수 있다. 그리고 지능형 에이전트부(300)는 자연어 처리(Natural Language Processing) 기술 기반으로 모의 공격과 관련된 단어를 취약점 데이터에서 추출하도록 지속적으로 학습될 수 있다.A data dictionary necessary for the intelligent agent unit 300 to extract words related to mock attacks from vulnerability data is prepared in advance, and the data dictionary can be continuously learned. Additionally, the intelligent agent unit 300 can be continuously trained to extract words related to simulated attacks from vulnerability data based on Natural Language Processing technology.

지능형 에이전트부(300)는 추출된 단어에 기초하여, 모의 공격을 위해 필요한 어플리케이션을 어플리케이션 저장소(600)로부터 다운로드하여 해당하는 POD(220)에 설치할 수 있다. 여기서 해당 POD(220)는 사용자로부터 등록된 어플리케이션이 설치 또는 업데이트된 POD일 수 있다. Based on the extracted words, the intelligent agent unit 300 can download the application required for a mock attack from the application storage 600 and install it on the corresponding POD 220. Here, the corresponding POD 220 may be a POD in which an application registered by the user is installed or updated.

가령 도 6에 예시한 것과 같이 취약점 데이터에서 추출된 운영환경, 테스트 프로세스, 테스트 실행파일 등에 대응하는 어플리케이션이 해당 POD에 설치되어 있지 않은 경우, 해당 어플리케이션을 어플리케이션 저장소(600)로부터 다운로드하여 설치할 수 있다. 가령 테스트 어플리케이션 'Powershell'이나 테스트 프로세스 'w3wp.exe' 또는 테스트 실행파일 'csc.exe' 및 'cvtres.exe' 중 설치되지 않은 어플리케이션이 있는 경우, 지능형 에이전트부(300)는 이를 어플리케이션 저장소(600)로부터 다운로드하여 해당하는 POD(220)에 설치할 수 있다.For example, as shown in Figure 6, if the application corresponding to the operating environment, test process, test execution file, etc. extracted from vulnerability data is not installed in the corresponding POD, the application can be downloaded from the application storage 600 and installed. . For example, if there is an application that is not installed among the test application 'Powershell', the test process 'w3wp.exe', or the test executable files 'csc.exe' and 'cvtres.exe', the intelligent agent unit 300 stores it in the application storage (600). ) and install it on the corresponding POD (220).

지능형 에이전트부(300)는 도 6에 예시한 것과 같은 취약점 데이터에서 추출된 단어를 기초로 모의 공격을 위한 명령어를 도 7에 예시된 것과 같이 자동으로 작성한 후 작성된 명령어에 따라 클러스터(200)에 대한 모의 공격을 실행할 수 있다.The intelligent agent unit 300 automatically creates a command for a mock attack as shown in FIG. 7 based on the words extracted from the vulnerability data shown in FIG. 6 and then executes a command for the cluster 200 according to the written command. Mock attacks can be carried out.

도 7은 본 발명에 따른 모의 공격을 위해 지능형 에이전트부에서 자동으로 작성된 명령어를 예시한 것이다.Figure 7 illustrates a command automatically written by the intelligent agent unit for a simulated attack according to the present invention.

도 7에는 테스트 실행파일 'csc.exe' 및 'cvtres.exe'을 해당 POD(220)에서 실행하기 위한 명령어를 예시하고 있다.Figure 7 illustrates commands for executing the test executable files 'csc.exe' and 'cvtres.exe' in the corresponding POD (220).

지능형 에이전트부(300)는 도 7에 예시한 것과 같은 모의 공격을 위해 작성된 명령어를 POD(220)에 전달하여 모의 공격이 실행되게 할 수 있다.The intelligent agent unit 300 may transmit a command written for a simulated attack as illustrated in FIG. 7 to the POD 220 to execute the simulated attack.

지능형 에이전트부(300)는 모의 공격의 실행에 따른 POD(220)의 상태를 확인하고, POD(220)에서 발생한 장애 종류, 장애 내용, 장애 현상, 정상 작동, 작동 불능 등의 모의 공격 결과값을 에이전트 데이터베이스(700)에 저장할 수 있다.The intelligent agent unit 300 checks the status of the POD 220 according to the execution of the simulated attack, and reports the results of the simulated attack, such as the type of failure occurring in the POD 220, the details of the failure, the phenomenon of the failure, normal operation, and inoperability. It can be stored in the agent database 700.

사용자는 사용자 인터페이스부(400)를 통해 모의공격 결과값을 조회할 수 있다.The user can query the results of the mock attack through the user interface unit 400.

한편 지능형 에이전트부(300)는 실시예에 따라서 모의 공격 전에 취약점 데이터에서 추출된 공격흔적 위치, 공격흔적 URL, 공격흔적 프로세스 정보 등을 참조하여 해당 POD(220)에 해당 취약점에 대한 공격이 있었는지 여부를 확인할 수도 있다.Meanwhile, depending on the embodiment, the intelligent agent unit 300 refers to the attack trace location, attack trace URL, attack trace process information, etc. extracted from the vulnerability data before the simulated attack to determine whether there has been an attack on the corresponding vulnerability in the corresponding POD (220). You can also check whether or not.

도 8은 본 발명의 일 실시예에 따른 어플리케이션 설치 또는 업데이터 과정을 나타낸 흐름도이다.Figure 8 is a flowchart showing an application installation or update process according to an embodiment of the present invention.

도 8을 참고하면, 먼저 사용자 인터페이스부(400)는 사용자로부터 어플리케이션을 등록받을 수 있다(S810). 단계(S810)에서 등록된 어플리케이션은 어플리케이션 저장소(600)에 저장될 수 있다.Referring to FIG. 8, first, the user interface unit 400 can register an application from the user (S810). The application registered in step S810 may be stored in the application storage 600.

이후 사용자 인터페이스부(400)는 사용자로부터 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 입력받을 수 있다(S820). 단계(S820)에서 사용자 인터페이스부(400)는 사용자가 설치 또는 업데이트 명령 버튼을 누르면, 해당 어플리케이션이 설치 또는 업데이트될 POD를 선택받기 위한 화면을 표시할 수 있다.Thereafter, the user interface unit 400 may receive an installation or update command for the registered application from the user (S820). In step S820, when the user presses the installation or update command button, the user interface unit 400 may display a screen for selecting a POD in which the corresponding application will be installed or updated.

다음으로 사용자 인터페이스부(400)는 사용자로부터 설치 또는 업데이트 요청된 어플리케이션의 환경 설정 파일을 생성할 수 있다(S830).Next, the user interface unit 400 may generate a configuration file for the application requested to be installed or updated by the user (S830).

이후 사용자 인터페이스부(400)는 어플리케이션에 대한 설치 또는 업데이트 명령을 지능형 에이전트부(300)로 전달할 수 있다(S840).Thereafter, the user interface unit 400 may transmit an installation or update command for the application to the intelligent agent unit 300 (S840).

다음으로 지능형 에이전트부(300)는 해당 어플리케이션의 환경 설정 파일을 해석하여 자동으로 해당 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하여 해당 POD(220)에 전달할 수 있다(S850). 환경 설정 파일에는 해당 어플리케이션을 어플리케이션 저장소(600)에서 다운로드 받기 위한 설치 파일 경로 정보도 포함될 수 있다.Next, the intelligent agent unit 300 can interpret the configuration file of the application, automatically generate a command line for installing or updating the application, and transmit it to the corresponding POD 220 (S850). The configuration file may also include installation file path information for downloading the application from the application repository 600.

이후 해당 POD(220)는 지능형 에이전트부(300)로부터 전달된 명령어 라인을 실행하여 해당 어플리케이션을 다운로드 받은 후 환경 설정 파일에 따라 설치 또는 업데이트 할 수 있다(S860).Thereafter, the POD 220 executes the command line transmitted from the intelligent agent unit 300, downloads the application, and then installs or updates it according to the configuration file (S860).

마지막으로 지능형 에이전트부(300)는 해당 POD(220)에서 어플리케이션의 설치 또는 업데이트 후 성공 또는 실패값을 반환받아 에이전트 데이터베이스(700)에 저장하고 사용자 인터페이스부(400)에 전달할 수 있다(S870).Finally, the intelligent agent unit 300 may receive a success or failure value after installing or updating the application in the corresponding POD 220, store it in the agent database 700, and transmit it to the user interface unit 400 (S870).

앞서 설명한 것과 같이 어플리케이션의 설치 또는 업데이트 후 지능형 에이전트부(300)는 모의 공격을 자동으로 수행하여 취약점을 사전에 파악할 수 있다.As described above, after installing or updating an application, the intelligent agent unit 300 can automatically perform a simulated attack to identify vulnerabilities in advance.

도 9는 본 발명의 일 실시예에 따른 모의 공격 과정을 나타낸 흐름도이다.Figure 9 is a flowchart showing a simulated attack process according to an embodiment of the present invention.

도 9를 참고하면, 먼저 지능형 에이전트부(300)는 어플리케이션의 설치 또는 업데이트 후, 해당 어플리케이션의 이름을 키워드로 미리 정해진 취약점 데이터베이스(800)를 조회하여 취약점 데이터를 수집할 수 있다(S910). Referring to FIG. 9, first, after installing or updating an application, the intelligent agent unit 300 can collect vulnerability data by querying a predetermined vulnerability database 800 using the name of the application as a keyword (S910).

다음으로 지능형 에이전트부(300)는 수집한 취약점 데이터로부터 모의 공격에 필요한 단어를 추출할 수 있다(S920).Next, the intelligent agent unit 300 can extract words needed for a mock attack from the collected vulnerability data (S920).

이후 지능형 에이전트부(300)는 단계(S920)에서 추출된 단어를 기초로 모의 공격을 위해 필요한 어플리케이션을 어플리케이션 저장소로부터 다운로드하여 해당하는 POD에 설치할 수 있다(S930). 물론 이미 모의 공격을 위해 필요한 어플리케이션이 해당 POD에 설치되어 있으면 단계(S930)를 생략하거나, 필요한 어플리케이션만 다운로드하여 설치할 수 있다. Thereafter, the intelligent agent unit 300 may download the application required for a mock attack from the application storage based on the word extracted in step S920 and install it on the corresponding POD (S930). Of course, if the application required for a mock attack is already installed in the corresponding POD, step (S930) can be omitted, or only the necessary application can be downloaded and installed.

그리고 지능형 에이전트부(300)는 수집한 취약점 데이터로부터 추출되는 단어에 기초하여, 모의 공격을 위한 명령어를 자동으로 작성할 수 있다(S940).And the intelligent agent unit 300 can automatically create commands for a mock attack based on words extracted from the collected vulnerability data (S940).

단계(S930) 및 단계(S940)는 동시에 수행되거나 그 순서가 바뀔 수도 있다.Steps S930 and S940 may be performed simultaneously or their order may be changed.

다음으로 지능형 에이전트부(300)는 모의 공격을 위해 작성된 명령어를 POD(220)에 전달하여 모의 공격이 실행되게 할 수 있다(S950).Next, the intelligent agent unit 300 can transmit the command written for the mock attack to the POD 220 to execute the mock attack (S950).

이후 지능형 에이전트부(300)는 POD(220)로부터 모의 공격에 따른 결과값을 반환받아 에이전트 데이터베이스(700)에 저장할 수 있다(S960).Afterwards, the intelligent agent unit 300 may receive the result of the simulated attack from the POD 220 and store it in the agent database 700 (S960).

한편 지능형 에이전트부(300)는 실시예에 따라서 단계(S950) 이전에 취약점 데이터에서 추출된 공격흔적 위치, 공격흔적 URL, 공격흔적 프로세스 정보 등을 참조하여 해당 POD(220)에 해당 취약점에 대한 공격이 있었는지 여부를 확인할 수도 있다.Meanwhile, depending on the embodiment, the intelligent agent unit 300 refers to the attack trace location, attack trace URL, attack trace process information, etc. extracted from the vulnerability data before step S950 and attacks the corresponding vulnerability in the corresponding POD 220. You can also check whether this existed or not.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 embodiments described above may be implemented with hardware components, software components, and/or a combination of hardware components and software components. For example, the devices, methods, 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, and a field programmable gate (FPGA). It may be implemented using one or more general-purpose or special-purpose computers, such as an array, programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. A processing device may execute an operating system (OS) and one or more software applications that run on the operating system. Additionally, a processing device may access, store, manipulate, process, and generate data in response to the execution of software. For ease of understanding, a single processing device may be described as being used; however, those skilled in the art will understand that a processing device includes multiple processing elements and/or multiple types of processing elements. It can be seen that it may include. For example, a processing device may include a plurality of processors or one processor and one controller. Additionally, other processing configurations, such as parallel processors, are possible.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device. Software and/or data may be used on any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed over networked computer systems and thus stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording 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., singly or in combination. Program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and available to those skilled in the art of 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 optical media (magneto-optical media) and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

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

Claims (11)

복수의 워커노드 및 마스터 노드로 구성되는 컨테이너 통합 관제 시스템에서,
사용자로부터 어플리케이션을 등록받고, 상기 등록된 어플리케이션의 환경 설정 파일을 생성하는 사용자 인터페이스부; 및
상기 등록된 어플리케이션의 환경 설정 파일과 함께 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 전달받으면, 상기 복수의 워커노드에 배포된 POD 중에서 해당하는 POD에 대해 상기 등록된 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하고, 상기 해당하는 POD에 전달하여 상기 등록된 어플리케이션을 설치 또는 업데이트하도록 하는 지능형 에이전트부;
를 포함하고,
상기 복수의 워커노드는 하나 이상의 POD가 배포되어 실행되고, POD는 하나 이상의 컨테이너 및 환경 설정 파일을 포함하며, 컨테이너는 어플리케이션 및 어플리케이션 실행에 필요한 라이브러리 및 바이너리 파일을 포함하고, 상기 마스터 노드는 상기 복수의 워커노드에 대한 POD 배포 및 상기 복수의 워커노드에 배포된 POD를 관리하며,
상기 지능형 에이전트부는 복수 개의 지능형 에이전트를 포함하고,
상기 사용자 인터페이스부와 복수 개의 상기 지능형 에이전트부 사이에서 명령 및 명령 결과값을 중개하는 에이전트 인터페이스부를 더 포함하며,
상기 에이전트 인터페이스부는 상부 에이전트 인터페이스부 및 복수의 하부 에이전트 인터페이스부를 포함하고,
상기 상부 에이전트 인터페이스부는 상기 사용자 인터페이스부에서 전달되는 명령을 분류하여 상기 복수의 하부 에이전트 인터페이스부에 선택적으로 전달하고,
상기 명령을 전달받은 하부 에이전트 인터페이스부는 상기 복수 개의 지능형 에이전트 중 대응하는 지능형 에이전트에 전달하는 컨테이너 통합 관제 시스템.
In a container integrated control system consisting of multiple worker nodes and master nodes,
a user interface unit that receives an application from a user and creates a configuration file for the registered application; and
When an installation or update command for the registered application is received along with the configuration file of the registered application, a command for installing or updating the registered application for the corresponding POD among the PODs distributed to the plurality of worker nodes an intelligent agent unit that creates a line and delivers it to the corresponding POD to install or update the registered application;
Including,
The plurality of worker nodes are deployed and executed by one or more PODs, the POD includes one or more containers and environment configuration files, the container includes an application and libraries and binary files necessary for application execution, and the master node is the plurality of worker nodes. Distribution of PODs to worker nodes and management of PODs distributed to the plurality of worker nodes,
The intelligent agent unit includes a plurality of intelligent agents,
It further includes an agent interface unit that mediates commands and command results between the user interface unit and the plurality of intelligent agent units,
The agent interface unit includes an upper agent interface unit and a plurality of lower agent interface units,
The upper agent interface unit classifies commands transmitted from the user interface unit and selectively transmits them to the plurality of lower agent interface units,
A container integrated control system where the lower agent interface unit receives the command and transmits it to a corresponding intelligent agent among the plurality of intelligent agents.
제 1 항에서,
상기 지능형 에이전트부는,
상기 등록된 어플리케이션의 이름을 키워드로 미리 정해진 취약점 데이터베이스를 조회하여 수집한 취약점 데이터로부터 추출되는 단어에 기초하여, 모의 공격을 위해 필요한 어플리케이션을 어플리케이션 저장소로부터 다운로드하여 해당하는 POD에 설치하고, 모의 공격을 위한 명령어를 작성한 후 상기 작성된 명령어를 상기 해당하는 POD에 전달하여 실행시킴으로써 상기 클러스터에 대한 모의 공격을 실행되게 하는 컨테이너 통합 관제 시스템.
In paragraph 1,
The intelligent agent unit,
Based on the words extracted from the vulnerability data collected by searching the predetermined vulnerability database using the name of the registered application as a keyword, the application required for the mock attack is downloaded from the application repository, installed in the corresponding POD, and the mock attack is performed. A container integrated control system that executes a simulated attack on the cluster by writing a command for the cluster and then passing the written command to the corresponding POD and executing it.
제 2 항에서,
상기 해당하는 POD는 상기 사용자 인터페이스부에서 사용자로부터 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 대상으로 선택된 POD인 컨테이너 통합 관제 시스템.
In paragraph 2,
The corresponding POD is a container integrated control system that is selected by the user in the user interface unit as an installation or update target for the registered application.
제 2 항에서,
상기 지능형 에이전트부는,
상기 모의 공격의 실행에 따른 상기 해당하는 POD의 상태를 확인하고, 상기 모의 공격에 따른 결과값을 에이전트 데이터베이스에 저장하는 컨테이너 통합 관제 시스템.
In paragraph 2,
The intelligent agent unit,
A container integrated control system that checks the status of the corresponding POD according to the execution of the mock attack and stores the result of the mock attack in an agent database.
삭제delete 복수의 워커노드 및 마스터 노드로 구성되는 컨테이너 통합 관제 시스템의 제어 방법에서,
사용자 인터페이스부가 사용자로부터 어플리케이션을 등록받는 단계;
상기 사용자 인터페이스부가 상기 등록된 어플리케이션의 환경 설정 파일을 생성하는 단계;
지능형 에이전트부가 상기 등록된 어플리케이션의 환경 설정 파일과 함께 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 전달받으면, 상기 복수의 워커노드에 배포된 POD 중에서 해당하는 POD에 대해 상기 등록된 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하는 단계; 및
상기 생성된 명령어 라인을 상기 해당하는 POD에 전달하여 상기 등록된 어플리케이션을 설치 또는 업데이트하도록 하는 단계;
를 포함하고,
상기 복수의 워커노드는 하나 이상의 POD가 배포되어 실행되고, POD는 하나 이상의 컨테이너 및 환경 설정 파일을 포함하며, 컨테이너는 어플리케이션 및 어플리케이션 실행에 필요한 라이브러리 및 바이너리 파일을 포함하고, 상기 마스터 노드는 상기 복수의 워커노드에 대한 POD 배포 및 상기 복수의 워커노드에 배포된 POD를 관리하며,
상기 지능형 에이전트부는 복수 개의 지능형 에이전트를 포함하고,
상기 사용자 인터페이스부와 복수 개의 상기 지능형 에이전트부 사이에서 명령 및 명령 결과값을 중개하는 에이전트 인터페이스부를 더 포함하며,
상기 에이전트 인터페이스부는 상부 에이전트 인터페이스부 및 복수의 하부 에이전트 인터페이스부를 포함하고,
상기 상부 에이전트 인터페이스부는 상기 사용자 인터페이스부에서 전달되는 명령을 분류하여 상기 복수의 하부 에이전트 인터페이스부에 선택적으로 전달하고,
상기 명령을 전달받은 하부 에이전트 인터페이스부는 상기 복수 개의 지능형 에이전트 중 대응하는 지능형 에이전트에 전달하는 컨테이너 통합 관제 시스템의 제어 방법.
In the control method of a container integrated control system consisting of a plurality of worker nodes and master nodes,
A user interface unit registering an application from a user;
generating a configuration file of the registered application by the user interface unit;
When the intelligent agent unit receives an installation or update command for the registered application along with the configuration file of the registered application, it installs or updates the registered application for the corresponding POD among the PODs distributed to the plurality of worker nodes. generating a command line for; and
passing the generated command line to the corresponding POD to install or update the registered application;
Including,
The plurality of worker nodes are executed by distributing one or more PODs, the POD includes one or more containers and environment configuration files, the container includes an application and libraries and binary files necessary for application execution, and the master node is the plurality of worker nodes. Distribution of PODs to worker nodes and management of PODs distributed to the plurality of worker nodes,
The intelligent agent unit includes a plurality of intelligent agents,
It further includes an agent interface unit that mediates commands and command results between the user interface unit and the plurality of intelligent agent units,
The agent interface unit includes an upper agent interface unit and a plurality of lower agent interface units,
The upper agent interface unit classifies commands transmitted from the user interface unit and selectively transmits them to the plurality of lower agent interface units,
A control method of a container integrated control system in which the lower agent interface unit receives the command and transmits it to a corresponding intelligent agent among the plurality of intelligent agents.
제 6 항에서,
상기 지능형 에이전트부가 상기 등록된 어플리케이션의 이름을 키워드로 미리 정해진 취약점 데이터베이스를 조회하여 취약점 데이터를 수집하는 단계;
상기 지능형 에이전트부가 상기 수집한 취약점 데이터로부터 추출되는 단어에 기초하여, 모의 공격을 위해 필요한 어플리케이션을 어플리케이션 저장소로부터 다운로드하여 해당하는 POD에 설치하는 단계; 및
상기 지능형 에이전트부가 모의 공격을 위한 명령어를 작성한 후 상기 작성된 명령어를 상기 해당하는 POD에 전달하여 실행시킴으로써 상기 클러스터에 대한 모의 공격을 실행되게 하는 단계;
를 더 포함하는 컨테이너 통합 관제 시스템의 제어 방법.
In paragraph 6:
collecting vulnerability data by the intelligent agent unit searching a predetermined vulnerability database using the name of the registered application as a keyword;
The intelligent agent unit downloading an application required for a mock attack from an application storage and installing it on a corresponding POD, based on words extracted from the collected vulnerability data; and
Executing a mock attack on the cluster by the intelligent agent unit writing a command for a mock attack and then passing the written command to the corresponding POD and executing it;
A control method of a container integrated control system further comprising:
제 7 항에서,
상기 해당하는 POD는 상기 사용자 인터페이스부에서 사용자로부터 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 대상으로 선택된 POD인 컨테이너 통합 관제 시스템의 제어 방법.
In paragraph 7:
The corresponding POD is a POD selected by the user in the user interface unit as an installation or update target for the registered application. A control method of a container integrated control system.
제 7 항에서,
상기 지능형 에이전트부는,
상기 모의 공격의 실행에 따른 상기 해당하는 POD의 상태를 확인하고, 상기 모의 공격에 따른 결과값을 에이전트 데이터베이스에 저장하는 컨테이너 통합 관제 시스템의 제어 방법.
In paragraph 7:
The intelligent agent unit,
A control method of a container integrated control system that checks the status of the corresponding POD according to the execution of the mock attack and stores the result of the mock attack in an agent database.
삭제delete 청구항 제 6 항 내지 제 9 항 중 어느 한 항에 기재된 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium recording a program for executing the method according to any one of claims 6 to 9.
KR1020210185288A 2021-12-22 2021-12-22 Container integrated control system using intelligent agent and its control method KR102633812B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210185288A KR102633812B1 (en) 2021-12-22 2021-12-22 Container integrated control system using intelligent agent and its control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210185288A KR102633812B1 (en) 2021-12-22 2021-12-22 Container integrated control system using intelligent agent and its control method

Publications (2)

Publication Number Publication Date
KR20230095628A KR20230095628A (en) 2023-06-29
KR102633812B1 true KR102633812B1 (en) 2024-02-05

Family

ID=86946591

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210185288A KR102633812B1 (en) 2021-12-22 2021-12-22 Container integrated control system using intelligent agent and its control method

Country Status (1)

Country Link
KR (1) KR102633812B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101857009B1 (en) * 2017-01-19 2018-05-11 숭실대학교산학협력단 Container-based platform for android malware analysis and security method using the same in a mobile device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102152989B1 (en) * 2018-08-13 2020-09-07 한국과학기술원 Git based attack defense type hacking platform providing system and method for providing hacking contest using the same
KR102125260B1 (en) * 2018-09-05 2020-06-23 주식회사 나눔기술 Integrated management system of distributed intelligence module

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101857009B1 (en) * 2017-01-19 2018-05-11 숭실대학교산학협력단 Container-based platform for android malware analysis and security method using the same in a mobile device

Also Published As

Publication number Publication date
KR20230095628A (en) 2023-06-29

Similar Documents

Publication Publication Date Title
US11157255B2 (en) Software asset management
US9235402B2 (en) Dynamic release control of software application version changes
AU2017370567B2 (en) Differencing of executable dataflow graphs
US9535684B2 (en) Management of software updates in a virtualized environment of a datacenter using dependency relationships
US9852196B2 (en) ETL tool interface for remote mainframes
US9967318B2 (en) Apparatus, systems, and methods for cloud agnostic multi-tier application modeling and deployment
US9223767B1 (en) Unified graphical user interface for displaying a plan of operations in a datacenter
US9389847B2 (en) Selection of relevant software bundles
US9274811B1 (en) System and method for cloud provisioning and application deployment
US20160359911A1 (en) Trusted public infrastructure grid cloud
US9442714B2 (en) Unified visualization of a plan of operations in a datacenter
US20120066670A1 (en) Systems and Methods for Private Cloud Computing
US20030084436A1 (en) System and method for installing applications in a trusted environment
Brogi et al. Orchestrating incomplete TOSCA applications with Docker
US9389848B2 (en) Scheduling a plan of operations in a datacenter
KR102633812B1 (en) Container integrated control system using intelligent agent and its control method
US20060225047A1 (en) Generic software requirements analyzer
US11301217B1 (en) Systems and methods for automated building, managing, and distributing of operating systems with different customizations for different users
US20150379245A1 (en) Deduplication of end user license agreements
KR102622170B1 (en) Ai model serving system and method thereof
AU2019205972B2 (en) Software asset management
US9984142B2 (en) Single unit of work
Berton Ansible for K8s Data Plane
AU2013203291A1 (en) Systems and methods for private cloud computing

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