KR20230095628A - 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법 - Google Patents

지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법 Download PDF

Info

Publication number
KR20230095628A
KR20230095628A KR1020210185288A KR20210185288A KR20230095628A KR 20230095628 A KR20230095628 A KR 20230095628A KR 1020210185288 A KR1020210185288 A KR 1020210185288A KR 20210185288 A KR20210185288 A KR 20210185288A KR 20230095628 A KR20230095628 A KR 20230095628A
Authority
KR
South Korea
Prior art keywords
application
interface unit
agent
command
intelligent agent
Prior art date
Application number
KR1020210185288A
Other languages
English (en)
Other versions
KR102633812B1 (ko
Inventor
정인구
유지용
Original Assignee
주식회사 오에스씨코리아
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 오에스씨코리아 filed Critical 주식회사 오에스씨코리아
Priority to KR1020210185288A priority Critical patent/KR102633812B1/ko
Publication of KR20230095628A publication Critical patent/KR20230095628A/ko
Application granted granted Critical
Publication of KR102633812B1 publication Critical patent/KR102633812B1/ko

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법에 관한 것으로, 본 발명에 따른 방법은 사용자 인터페이스부가 사용자로부터 어플리케이션을 등록받는 단계; 사용자 인터페이스부가 등록된 어플리케이션의 환경 설정 파일을 생성하는 단계; 지능형 에이전트부가 등록된 어플리케이션의 환경 설정 파일과 함께 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 전달받으면, 복수의 워커노드에 배포된 POD 중에서 해당하는 POD에 대해 등록된 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하는 단계; 및 생성된 명령어 라인을 해당하는 POD에 전달하여 등록된 어플리케이션을 설치 또는 업데이트하도록 하는 단계; 를 포함한다. 본 발명에 의하면 IT 전문가가 아니더라도 컨테이너 통합 관제 시스템에 대한 관리를 쉽게 할 수 있다. 특히 어플리케이션의 설치 또는 업데이트를 편리하게 할 수 있다. 또한 새로운 어플리케이션의 설치 또는 업데이트에 의한 보안 문제도 사전에 자동으로 점검 가능하다.

Description

지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법{Container integrated control system using intelligent agent and its control method}
본 발명은 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법에 관한 것이다.
특정 어플리케이션을 하나의 물리적 환경(예를 들어 서버 컴퓨터1)에서 다른 물리적 환경(예를 들어 서버 컴퓨터2)로 배포하여 사용하고자 했을 때 2 개의 다른 서버의 환경(서버 OS 제품의 종류, 버전의 차이, 종속되는 어플리케이션의 존재 유무 등)에 의해서 서버 컴퓨터1에서는 문제없이 정상 작동하던 특정 어플리케이션이 서버 컴퓨터2에서는 작동하지 않는 불편함이 현업에서는 비일비재하게 일어나고 있다. 이러한 문제를 해결하고자 어플리케이션을 컨테이너화하여 서버 컴퓨터의 환경과 관계없이 배포/사용할 수 있도록 하고 있다.
도 1은 컨테이너 및 POD의 개념을 설명하는 도면이다.
도 1을 참고하면, 컨테이너(1)는 어플리케이션(2) 및 해당 어플리케이션과 관련된 바이너리 파일(3), 라이브러리 파일(4) 등을 묶어서 이미지화한 것을 의미한다. 1개의 컨테이너(1)에 여러 개의 어플리케이션이 포함될 수도 있다.
POD(포드: Point Of Deployment)(5)는 1개 또는 여러 개의 컨테이너(1)와 컨테이너(1)에 포함된 어플리케이션의 설정 및 동작과 관련된 리소스(환경 설정 파일 및 스토리지 등)를 하나의 관리 단위로 묶은 것을 의미한다. 하나의 POD는 하나 이상의 컨테이너(1), 환경 설정 파일(6) 및 스토리지(7)를 포함할 수 있다.
환경 설정 파일(6)은 해당 POD에 포함된 어플리케이션들의 환경 설정을 구성하는데 필요한 정보 및 명령어를 포함하는 파일이다. 그리고 스토리지(7)는 해당 POD에 포함된 어플리케이션의 동작과 관련된 데이터를 저장하는 파일, 테이블, 큐 등일 수 있다.
서버 컴퓨터 1대(노드:NODE)는 1개 또는 여러 개의 POD(5)로 구성될 수 있다. 노드는 뒤에서 설명하는 마스터 노드 또는 워커 노드일 수 있다.
도 2는 종래 컨테이너 통합 관제 플랫폼의 구성을 예시한 것이다.
도 2를 참고하면, 컨테이너 통합 관제 플랫폼은 쿠버네티스(Kubernetes), 도커 스웜(Docker Swarm), 아파치 메소스(Apache Mesos) 등이 알려져 있으며, 일반적으로 마스터 노드(20)와 다수의 워커노드(30)로 구성될 수 있다.
마스터 노드(20)는 전체 컨테이너 통합 관제 플랫폼을 제어 관리하는 기능을 수행한다.
워커노드(30)는 하나 이상의 컨테이너(1)의 집합인 하나 이상의 POD(5)가 실행된다.
마스터 노드(20)는 API 서버(21), 스케줄러(22), 데이터 저장소(23) 및 컨트롤러 매니저(24)를 포함할 수 있다.
API 서버(21)는 최종 사용자, 컨테이너 통합 관제 플랫폼의 다른 부분 그리고 외부 컴포넌트가 서로 통신할 수 있도록 API를 제공하는 역할을 수행한다. 스케줄러(22)는 POD, 서비스 등 각각의 리소스들을 적절한 워커노드에 할당하고 관리하는 역할을 수행한다. 데이터 저장소(23)는 클러스터(10)의 상태나 설정 정보를 저장하는 역할을 수행한다. 컨트롤러 매니저(24)는 API 서버(21)를 통해 클러스터(10)의 공유된 상태를 감지하고, 현재 상태를 원하는 상태로 이행하는 Control loop를 관리하고, 필요한 경우 클라우드 업체와 연동해 로드 밸런서나 디스크 볼륨같은 자원을 관리하는 역할을 수행한다.
그런데 이러한 컨테이너 통합 관제 플랫폼에서는 수천 개 또는 수만 개의 POD(5)가 동시에 실행될 수 있다. POD(5)는 생성과 소멸을 무수히 반복하면서 실행되는 위치가 매번 변경될 수 있고, POD(5)에 할당된 메모리, 디스크 리소스 용량은 오토스케일링(Auto Scaling) 기능을 통해 수시로 변경될 수 있다.
그런데 이러한 컨테이너 통합 관제 플랫폼 안에서 동시에 수행되는 수천에서 수만 개의 POD에 수많은 어플리케이션을 설치하거나 업데이트하는 과정은 전문 엔지니어가 아니면 할 수 없는 전문 업무 영역에 속한다. 또한 컨테이너 통합 관제 플랫폼에서 제공되는 관리 기능 중 어플리케이션의 설치, 업데이트, 복제와 배포와 관련해서 사용자의 편의성을 고려한 직관적인 그래픽 유저 인터페이스 환경을 제공하고 있지 않고, CLI(Command Line Interface) 환경에서 작업을 통해 이루어졌다. 이와 같이 종래의 컨테이너 통합 관제 플랫폼 안에서 어플리케이션 설치 및 업데이터는 매우 복잡한 전문적인 단계를 거쳐야하고 명령어를 일일이 전문가가 입력하는 불편하고 번거로운 과정이 존재하였다.
한편 컨테이너 통합 관제 플랫폼은 애초에 오픈소스로 만들어진 이유로 인해 독점 상용 소프트웨어와 달리 제조사(오픈소스는 하나의 독점적인 제조사가 존재하지 않음)로부터의 보안정책이 존재하지 않는다. 따라서 이러한 태생적인 문제로 인하여 컨테이너 통합 관제 플랫폼에 맞춤형 보안책을 마련하는 것은 사용자 각자의 몫이 될수 밖에 없었다. 이로 인해 오픈소스, 컨테이너등의 전문 기술자가 아닌 일반 IT 관리자나 시스템 사용자에게는 컨테이너 통합 관제 플랫폼에 대한 사용자 각자의 보안책을 마련하는 것이 어려울 뿐만 아니라, 보안책 실행이나 관리 조차도 하기 힘든 것이 현실이었다.
본 발명이 해결하고자 하는 기술적 과제는 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법을 제공하는 것이다.
상기한 기술적 과제를 해결하기 위한 본 발명에 따른 복수의 워커노드 및 마스터 노드로 구성되는 컨테이너 통합 관제 시스템은, 사용자로부터 어플리케이션을 등록받고, 상기 등록된 어플리케이션의 환경 설정 파일을 생성하는 사용자 인터페이스부; 및 상기 등록된 어플리케이션의 환경 설정 파일과 함께 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 전달받으면, 상기 복수의 워커노드에 배포된 POD 중에서 해당하는 POD에 대해 상기 등록된 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하고, 상기 해당하는 POD에 전달하여 상기 등록된 어플리케이션을 설치 또는 업데이트하도록 하는 지능형 에이전트부; 를 포함하고, 상기 복수의 워커노드는 하나 이상의 POD가 배포되어 실행되고, POD는 하나 이상의 컨테이너 및 환경 설정 파일을 포함하며, 컨테이너는 어플리케이션 및 어플리케이션 실행에 필요한 라이브러리 및 바이너리 파일을 포함하고, 상기 마스터 노드는 상기 복수의 워커노드에 대한 POD 배포 및 상기 복수의 워커노드에 배포된 POD를 관리한다.
상기 지능형 에이전트부는, 상기 등록된 어플리케이션의 이름을 키워드로 미리 정해진 취약점 데이터베이스를 조회하여 수집한 취약점 데이터로부터 추출되는 단어에 기초하여, 모의 공격을 위해 필요한 어플리케이션을 어플리케이션 저장소로부터 다운로드하여 해당하는 POD에 설치하고, 모의 공격을 위한 명령어를 작성한 후 상기 작성된 명령어를 상기 해당하는 POD에 전달하여 실행시킴으로써 상기 클러스터에 대한 모의 공격을 실행되게 할 수 있다.
상기 해당하는 POD는 상기 사용자 인터페이스부에서 사용자로부터 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 대상으로 선택된 POD일 수 있다.
상기 지능형 에이전트부는, 상기 모의 공격의 실행에 따른 상기 해당하는 POD의 상태를 확인하고, 상기 모의 공격에 따른 결과값을 에이전트 데이터베이스에 저장할 수 있다.
상기 지능형 에이전트부는 복수 개의 지능형 에이전트를 포함할 수 있다.
상기 사용자 인터페이스부와 복수 개의 상기 지능형 에이전트부 사이에서 명령 및 명령 결과값을 중개하는 에이전트 인터페이스부를 더 포함할 수 있다.
상기 에이전트 인터페이스부는 상부 에이전트 인터페이스부 및 복수의 하부 에이전트 인터페이스부를 포함할 수 있다.
상기 상부 에이전트 인터페이스부는 상기 사용자 인터페이스부에서 전달되는 명령을 분류하여 상기 복수의 하부 에이전트 인터페이스부에 선택적으로 전달할 수 있다.
상기 명령을 전달받은 하부 에이전트 인터페이스부는 상기 복수 개의 지능형 에이전트 중 대응하는 지능형 에이전트에 전달할 수 있다.
상기한 기술적 과제를 해결하기 위한 본 발명에 따른 복수의 워커노드 및 마스터 노드로 구성되는 컨테이너 통합 관제 시스템의 제어 방법은, 사용자 인터페이스부가 사용자로부터 어플리케이션을 등록받는 단계; 상기 사용자 인터페이스부가 상기 등록된 어플리케이션의 환경 설정 파일을 생성하는 단계; 지능형 에이전트부가 상기 등록된 어플리케이션의 환경 설정 파일과 함께 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 전달받으면, 상기 복수의 워커노드에 배포된 POD 중에서 해당하는 POD에 대해 상기 등록된 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하는 단계; 및 상기 생성된 명령어 라인을 상기 해당하는 POD에 전달하여 상기 등록된 어플리케이션을 설치 또는 업데이트하도록 하는 단계; 를 포함한다.
본 발명에 일 실시예에 따른 기록매체는 컴퓨터에 상기 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함할 수 있다.
본 발명에 의하면 IT 전문가가 아니더라도 컨테이너 통합 관제 시스템에 대한 관리를 쉽게 할 수 있다. 특히 어플리케이션의 설치 또는 업데이트를 편리하게 할 수 있다. 또한 새로운 어플리케이션의 설치 또는 업데이트에 의한 보안 문제도 사전에 자동으로 점검 가능하다.
도 1은 컨테이너 및 POD의 개념을 설명하는 도면이다.
도 2는 종래 컨테이너 통합 관제 플랫폼의 구성을 예시한 것이다.
도 3은 본 발명의 일 실시예에 따른 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템의 구성도이다.
도 4는 본 발명의 일 실시예에 따른 에이전트 인터페이스부의 구성을 설명하기 위해 제공되는 도면이다.
도 5는 본 발명의 일 실시예에 따른 취약점 데이터베이스에서 수집한 취약점 데이터를 예시한 것이다.
도 6은 본 발명의 일 실시예에 따라 수집된 취약점 데이터에서 지능형 에이전트가 추출한 단어를 예시한 것이다.
도 7은 본 발명에 따른 모의 공격을 위해 지능형 에이전트부에서 자동으로 작성된 명령어를 예시한 것이다.
도 8은 본 발명의 일 실시예에 따른 어플리케이션 설치 또는 업데이터 과정을 나타낸 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 모의 공격 과정을 나타낸 흐름도이다.
그러면 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
도 3은 본 발명의 일 실시예에 따른 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템의 구성도이다.
도 3을 참고하면, 본 발명에 따른 시스템은 마스터 노드(100), 복수의 워커노드(210)로 이루어진 클러스터(200), 지능형 에이전트부(300), 사용자 인터페이스부(400), 에이전트 인터페이스부(500), 어플리케이션 저장소(600), 에이전트 데이터베이스(700) 및 취약점 데이터베이스부(800)를 포함할 수 있다.
마스터 노드(100), 복수의 워커노드(210)로 이루어진 클러스터(200)는 쿠버네티스(Kubernetes), 도커 스웜(Docker Swarm), 아파치 메소스(Apache Mesos) 등과 같이 어플리케이션을 이미지화한 컨테이너를 POD 단위로 배포 관리하는 시스템, 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화한 컨테이너 오케스트레이션(Container Orchestration) 시스템일 수 있다.
마스터 노드(100)는 복수의 워커노드(210)로 이루어진 클러스터(200)를 제어 관리하는 기능을 수행한다. 마스터 노드(100)는 종래 컨테이너 오케스트레이션 시스템에서 마스터 노드의 역할을 수행할 수 있다.
마스터 노드(100)는 복수의 워커노드(210)에 대해서 POD(220)를 배포하고, 복수의 워커노드(210)에 배포된 POD(220)를 관리하는 기능을 수행한다. 여기서 POD(220)를 관리한다는 것은 POD(220), POD(220)에 포함된 컨테이너, 또는 컨테이너에 포함된 어플리케이션을 관리하는 것도 포함한다.
복수의 워커노드(210)는 하나 이상의 POD(220)가 배포되어 실행된다. 도 3에서는 도면의 간략화를 위해 3개의 워커노드(210)와 각 워커노드에 1개, 2개 또는 3개의 POD(220)가 포함되어 있는 클러스터(200)를 도시하였으나, 클러스터(200)에 포함되는 워커노드, POD 등의 개수는 상황에 따라 다양하게 달라질 수 있다.
POD(220)는 하나 이상의 컨테이너 및 컨테이너에 포함된 어플리케이션의 설정 및 동작과 관련된 리소스(환경 설정 파일 및 스토리지 등)를 하나의 관리 단위로 묶은 것을 의미한다.
POD(220)에 포함되는 컨테이너는 어플리케이션 및 해당 어플리케이션과 관련된 바이너리 파일, 라이브러리 파일 등을 묶어서 이미지화한 것을 의미한다. 1개의 컨테이너에 여러 개의 어플리케이션이 포함될 수도 있다.
사용자 인터페이스부(400)는 사용자로부터 어플리케이션을 등록받을 수 있다. 또한 사용자 인터페이스부(400)는 사용자로부터 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 입력받을 수 있다. 또한 사용자 인터페이스부(400)는 사용자로부터 클러스터(200)의 상태, 예컨대 클러스터(200)에 설치된 어플리케이션의 상태(리소스 효율성, 정상 작동 여부 등)에 대한 조회 요청을 받을 수도 있다.
이를 위해 사용자 인터페이스부(400)는 그래픽 유저 인터페이스(웹 유저 인터페이스) 기반으로 구현될 수 있다. 가령 사용자 인터페이스부(400)는 등록된 어플리케이션에 대한 목록을 사용자에게 제시하고, 어플리케이션 목록 옆에는 설치 또는 업데이트 명령 버튼을 표시할 수 있다.
그리고 사용자가 설치 또는 업데이트 명령 버튼을 누르면, 해당 어플리케이션이 설치 또는 업데이트될 대상에 해당하는 POD를 선택받기 위한 화면을 표시할 수 있다. 이미 해당 어플리케이션이 설치된 POD에 대해서는 어플리케이션 버전이 다른 경우 업데이트 버튼이 활성화되어 표시될 수 있고, 어플리케이션 버전이 동일한 경우 삭제 후 재설치 버튼이 활성화되어 표시될 수 있다. 반면 해당 어플리케이션이 설치되지 않은 POD에 대해서는 어플리케이션 설치 버튼이 활성화되어 표시될 수 있다. 따라서 사용자는 등록된 어플리케이션에 대해서 설치, 삭제 후 재설치 또는 업데이트 등을 시각적으로 확인 후 선택할 수 있다.
한편 사용자 인터페이스부(400)를 통해 등록된 어플리케이션은 어플리케이션 저장소(600)에 저장될 수 있다.
어플리케이션 저장소(600)는 일종의 Git 저장소와 같이 어플리케이션의 소스코드의 버전을 분산하여 저장 관리하며, 소스코드가 등록된 일자 및 시간 등의 정보를 소스코드와 같이 저장할 수 있다. 어플리케이션 저장소(600)에는 클러스터(200)의 동작 운영과 관련된 각종 어플리케이션이 저장될 수 있다. 아울러 뒤에서 설명한 클러스터(200)에 대한 모의 공격에 필요한 어플리케이션도 저장될 수 있다.
한편 사용자 인터페이스부(400)는 사용자로부터 등록된 어플리케이션의 환경 설정 파일(config 파일)을 생성할 수 있다. 여기서 환경 설정 파일은 클러스터(200)에서 해당 어플리케이션의 동작 및 설치와 관련된 환경 설정을 구성하는데 필요한 정보 및 명령어를 포함하는 파일이다. 구체적으로 어플리케이션 설치 파일의 위치 정보(어플리케이션 저장소에 저장된 위치 정보), 어플리케이션 설치 옵션, 어플리케이션 사용 권한, 어플리케이션 사용 기한 등이 환경 설정 파일에 포함될 수 있다. 어플리케이션 설치 옵션, 어플리케이션 사용 권한, 어플리케이션 사용 기한 등에 대한 정보는 사용자로부터 설정받거나 미리 정해진 규칙에 따라 자동으로 정해져 환경 설정 파일에 포함될 수도 있다.
사용자 인터페이스부(400)는 어플리케이션에 대한 설치(이하 설치는 재설치도 포함함) 또는 업데이트 명령을 해당 어플리케이션의 환경 설정 파일 및 POD 선택 정보와 함께 지능형 에이전트부(300)로 전달할 수 있다. 이하에서 어플리케이션에 대한 설치 또는 업데이트 명령을 전달한다고 할 때는 해당 어플리케이션의 환경 설정 파일 및 POD 선택 정보도 함께 전달되는 것을 의미한다.
실시예에 따라서 어플리케이션에 대한 설치 또는 업데이트 명령은, 에이전트 인터페이스부(500)를 거쳐서, 사용자 인터페이스부(400)로부터 지능형 에이전트부(300)로 전달될 수 있다.
일반적으로 하나의 클러스터(200) 내에 수백 ~ 수천 개의 POD(220)가 존재한다. 따라서 도면에서는 하나의 지능형 에이전트부(300)를 도시하였으나, 지능형 에이전트부(300)는 다수의 지능형 에이전트를 포함하는 것으로 이해될 수 있다. 그리고 각 지능형 에이전트마다 담당하는 워커노드 또는 POD가 정해질 수 있다.
이런 경우 시스템을 보다 효율적으로 운영하기 위해서 사용자 인터페이스부(400)와 지능형 에이전트부(300) 사이에 에이전트 인터페이스부(500)를 위치시키는 것이 바람직하다.
에이전트 인터페이스부(500)는 사용자 인터페이스부(400)와 지능형 에이전트부(300) 사이에서 명령 및 명령 결과값을 중개할 수 있다.
도 4는 본 발명의 일 실시예에 따른 에이전트 인터페이스부의 구성을 설명하기 위해 제공되는 도면이다.
도 4를 참고하면, 에이전트 인터페이스부(500)는 상부 에이전트 인터페이스부(510), 및 복수의 하부 에이전트 인터페이스부(520)를 포함할 수 있다.
상부 에이전트 인터페이스부(510)는 사용자 인터페이스부(400)에서 전달되는 명령을 분류하여 복수의 하부 에이전트 인터페이스부(520) 중 하나에 선택적으로 전달할 수 있다.
복수의 하부 에이전트 인터페이스부(520)는 명령 전달 인터페이스부(521)와 상태 조회 인터페이스부(523)를 포함할 수 있다. 그리고 명령 전달 인터페이스부(521)의 경우 복수 개로 구현되고, 각각의 명령 전달 인터페이스부(521)에 하나 이상의 지능형 에이전트가 할당되도록 구현할 수도 있다.
상부 에이전트 인터페이스부(510)는 사용자 인터페이스부(400)로부터 전달된 명령이 어플리케이션 설치 또는 업데이트 명령인 경우, 명령 전달 인터페이스부(521)로 전달할 수 있다. 이때 상부 에이전트 인터페이스부(510)는, 해당 어플리케이션의 설치 또는 업데이트 명령을 실행할 지능형 에이전트에 할당된 명령 전달 인터페이스부(521)를 선택하여, 명령을 전달할 수 있다.
한편 상부 에이전트 인터페이스부(510)는, 사용자 인터페이스부(400)로부터 전달된 명령이 어플리케이션 상태 조회 명령인 경우, 해당 조회 명령을 상태 조회 인터페이스부(523)에 전달할 수도 있다. 이 경우 지능형 에이전트부(300)를 거치지 않고 상태 조회 인터페이스부(523)에서 바로 에이전트 데이터베이스(700)를 조회하여 해당 어플리케이션의 상태 조회 결과값을 상부 에이전트 인터페이스부(510)로 전달하도록 구현할 수 있다. 그러면 상부 에이전트 인터페이스부(510)는 상태 조회 결과값을 사용자 인터페이스부(400)에 전달하여 사용자에게 출력하도록 할 수 있다.
사용자 인터페이스부(400)는 클러스터(200)에 대한 모니터링을 사용자로부터 요청받고 그에 따른 모니터링 결과를 리포팅할 수 있다. 예를 들어 사용자 인터페이스부(400)는 클러스터(200)의 워커노드(210) 별로 배포된 POD(220) 및 어플리케이션 정보를 제공할 수 있다. 그리고 사용자로부터 특정 어플리케이션에 대한 현재 상태 모니터링 요청을 받으면, 사용자 인터페이스부(400)는 앞서 설명한 것과 같이 에이전트 인터페이스부(500)를 통해 에이전트 데이터베이스(700)를 조회하여 해당 어플리케이션의 현재 상태 조회 결과값을 반환받아 사용자에게 제공할 수 있다.
물론 실시예에 따라서 사용자 인터페이스부(400)는, 에이전트 인터페이스부(500)를 통해, 지능형 에이전트부(300)에 특정 어플리케이션에 대한 조회 명령을 전달하고, 에이전트 인터페이스부(500)로부터 해당 어플리케이션의 현재 상태 정보를 전달받아 사용자에게 제공할 수도 있다.
지능형 에이전트부(300)는 사용자 인터페이스부(400)로부터 직접 또는 에이전트 인터페이스부(500)를 통해 명령을 전달받으면, 해당 명령을 수행한 후 명령 결과값을 반환할 수 있다.
먼저 어플리케이션 설치 또는 업데이트 명령을 전달받으면, 지능형 에이전트부(300)는 해당 어플리케이션의 환경 설정 파일을 해석하여 자동으로 해당 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하여 해당 POD(220)에 전달한다. 해당 POD는 지능형 에이전트부(300)로부터 전달된 명령어 라인을 실행하여 해당 어플리케이션을 설치 또는 업데이트 할 수 있다.
지능형 에이전트부(300)는 해당 POD(220)에서 어플리케이션의 설치 또는 업데이트 후 성공 또는 실패값을 반환받아 에이전트 데이터베이스(700)에 저장하고 사용자 인터페이스부(400)에 전달할 수 있다.
사용자 인터페이스부(400)는 해당 어플리케이션의 설치 또는 업데이트의 성공 실패 여부를 전달받아 사용자에게 표시할 수 있다. 물론 복수의 POD(220)에 동일 어플리케이션의 설치 또는 업데이트를 수행한 경우, 각각의 POD(220)별로 구분하여 어플리케이션의 설치 또는 업데이트의 성공 실패 여부를 표시할 수 있다.
한편 지능형 에이전트부(300)는 자동으로 미리 설정된 주기마다 클러스터(200)에 설치된 어플리케이션의 상태를 조회하여 에이전트 데이터베이스(700)에 저장하고 사용자 인터페이스부(400)에 전달할 수 있다. 사용자는 사용자 인터페이스부(400)를 통해 지능형 에이전트부(300)가 자동으로 클러스터(200)에 설치된 어플리케이션의 상태를 자동으로 조회하는 주기를 설정할 수 있다.
물론 지능형 에이전트부(300)는 사용자 인터페이스부(400)를 통해 어플리케이션 상태 조회 요청을 받을 때마다 수동으로 해당 어플리케이션의 상태를 조회하여 에이전트 데이터베이스(700)에 저장하고 사용자 인터페이스부(400)에 전달할 수도 있다.
한편 지능형 에이전트부(300)는 어플리케이션의 설치 또는 업데이트 후 자율적으로 취약점 모의 공격을 수행할 수 있다. 구체적으로 지능형 에이전트부(300)는 등록된 어플리케이션의 이름을 키워드로 미리 정해진 취약점 데이터베이스(800)를 조회하여 취약점 데이터를 수집할 수 있다. 그리고 지능형 에이전트부(300)는 수집한 취약점 데이터로부터 추출되는 단어에 기초하여, 모의 공격을 위해 필요한 어플리케이션을 어플리케이션 저장소로부터 다운로드하여 해당하는 POD에 설치할 수 있다. 이후 지능형 에이전트부(300)는 모의 공격을 위해 필요한 어플리케이션을 POD에 설치하여 모의 공격을 위한 환경을 갖춘 후 모의 공격을 위해 작성된 명령어에 따라 클러스터(200)에 대한 모의 공격을 실행할 수 있다. 모의 공격을 위한 명령어도 지능형 에이전트부(300)에서 취약점 데이터로부터 추출되는 단어에 기초하여 자동으로 작성할 수 있다.
참고로 도 3에서는 미리 정해진 취약점 데이터베이스(800)로 NVD (National Vulnerability Database), CVE (Common Vulnerabilities and Exposures), VNDB (Vulnerability Notes Database), VulnDB(Vulnerability Database) 등이 포함된 것을 예시하였으나 실시예에 따라서 미리 정해진 취약점 데이터베이스(800)는 추가되거나 일부가 제외될 수도 있다. NVD, CVE, VNDB, VulnDB 등의 취약점 데이터베이스는 본 발명에 따른 시스템의 운영주체와는 별개의 운영주체과 운영 관리하는 데이터베이스일 수 있다.
도 5는 본 발명의 일 실시예에 따른 취약점 데이터베이스에서 수집한 취약점 데이터를 예시한 것이다.
도 5를 참고하면, 지능형 에이전트부(300)가 어플리케이션 'Microsoft .NET Framework'을 키워드로 CVE에서 수집한 취약점 데이터를 예시한 것이다. CVE에서 수집한 취약점 데이터는 도 5에 예시한 것과 같이 6개 카테고리(파일명, 개요, 관련 소프트웨어 및 버전, 피해 환경, 테스트 결과, 공격 흔적)로 분류된 정보가 자연어로 작성되어 있는 파일일 수 있다.
지능형 에이전트부(300)는 취약점 데이터에서 타겟 어플리케이션, 타겟 버전, 운영체제, 운영환경, 매개변수, 데이터, 테스트 서버, 테스트 어플리케이션, 테스트 프로세스, 테스트 계정, 테스트 실행파일, 공격흔적 위치, 공격흔적 URL, 공격흔적 프로세스 등에 대응하는 단어를 추출할 수 있다.
도 6은 본 발명의 일 실시예에 따라 수집된 취약점 데이터에서 지능형 에이전트가 추출한 단어를 예시한 것이다.
도 6은 도 5에 예시한 취약점 데이터에서 추출된 단어를 예시한 것이다. 먼저 타겟 어플리케이션으로 추출된 'Microsoft .NET Framework'는 설치된 어플리케이션의 이름으로 도 5의 취약점 데이터에서 관련 소프트웨어 카테고리에서 추출될 수 있다. 그리고 타겟버전은 마찬가지로 도 5의 취약점 데이터에서 관련 소프트웨어 카테고리에서 추출될 수 있다. 운영체제와 운영환경은 도 5의 취약점 데이터에서 관련 소프트웨어 및 버전 카테고리에서 추출될 수 있다. 물론 IIS와 같이 피해 환경 카테고리가 아닌 테스트 결과 카테고리에서 추출되는 경우도 있을 수 있다. 자연어 처리를 통해 미리 데이터 사전에 운영환경에 해당하는 단어로 IIS가 등록되어 있는 경우, 지능형 에이전트부(300)는 운영환경에 해당하는 단어로 IIS를 추출할 수 있다. 또한 도 5에 예시한 취약점 데이터에서 테스트 결과 카테고리에 포함된 ".Net Framework 프로세스 'csc.exe' 및 'cvtres.exe'와 주입된 명령이 실행"을 분석하여 'csc.exe' 및 'cvtres.exe'를 테스트 실행파일로 추출할 수 있다.
지능형 에이전트부(300)가 취약점 데이터에서 모의 공격과 관련된 단어를 추출하는데 필요한 데이터 사전이 미리 준비되어 있고, 데이터 사전은 지속적으로 학습될 수 있다. 그리고 지능형 에이전트부(300)는 자연어 처리(Natural Language Processing) 기술 기반으로 모의 공격과 관련된 단어를 취약점 데이터에서 추출하도록 지속적으로 학습될 수 있다.
지능형 에이전트부(300)는 추출된 단어에 기초하여, 모의 공격을 위해 필요한 어플리케이션을 어플리케이션 저장소(600)로부터 다운로드하여 해당하는 POD(220)에 설치할 수 있다. 여기서 해당 POD(220)는 사용자로부터 등록된 어플리케이션이 설치 또는 업데이트된 POD일 수 있다.
가령 도 6에 예시한 것과 같이 취약점 데이터에서 추출된 운영환경, 테스트 프로세스, 테스트 실행파일 등에 대응하는 어플리케이션이 해당 POD에 설치되어 있지 않은 경우, 해당 어플리케이션을 어플리케이션 저장소(600)로부터 다운로드하여 설치할 수 있다. 가령 테스트 어플리케이션 'Powershell'이나 테스트 프로세스 'w3wp.exe' 또는 테스트 실행파일 'csc.exe' 및 'cvtres.exe' 중 설치되지 않은 어플리케이션이 있는 경우, 지능형 에이전트부(300)는 이를 어플리케이션 저장소(600)로부터 다운로드하여 해당하는 POD(220)에 설치할 수 있다.
지능형 에이전트부(300)는 도 6에 예시한 것과 같은 취약점 데이터에서 추출된 단어를 기초로 모의 공격을 위한 명령어를 도 7에 예시된 것과 같이 자동으로 작성한 후 작성된 명령어에 따라 클러스터(200)에 대한 모의 공격을 실행할 수 있다.
도 7은 본 발명에 따른 모의 공격을 위해 지능형 에이전트부에서 자동으로 작성된 명령어를 예시한 것이다.
도 7에는 테스트 실행파일 'csc.exe' 및 'cvtres.exe'을 해당 POD(220)에서 실행하기 위한 명령어를 예시하고 있다.
지능형 에이전트부(300)는 도 7에 예시한 것과 같은 모의 공격을 위해 작성된 명령어를 POD(220)에 전달하여 모의 공격이 실행되게 할 수 있다.
지능형 에이전트부(300)는 모의 공격의 실행에 따른 POD(220)의 상태를 확인하고, POD(220)에서 발생한 장애 종류, 장애 내용, 장애 현상, 정상 작동, 작동 불능 등의 모의 공격 결과값을 에이전트 데이터베이스(700)에 저장할 수 있다.
사용자는 사용자 인터페이스부(400)를 통해 모의공격 결과값을 조회할 수 있다.
한편 지능형 에이전트부(300)는 실시예에 따라서 모의 공격 전에 취약점 데이터에서 추출된 공격흔적 위치, 공격흔적 URL, 공격흔적 프로세스 정보 등을 참조하여 해당 POD(220)에 해당 취약점에 대한 공격이 있었는지 여부를 확인할 수도 있다.
도 8은 본 발명의 일 실시예에 따른 어플리케이션 설치 또는 업데이터 과정을 나타낸 흐름도이다.
도 8을 참고하면, 먼저 사용자 인터페이스부(400)는 사용자로부터 어플리케이션을 등록받을 수 있다(S810). 단계(S810)에서 등록된 어플리케이션은 어플리케이션 저장소(600)에 저장될 수 있다.
이후 사용자 인터페이스부(400)는 사용자로부터 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 입력받을 수 있다(S820). 단계(S820)에서 사용자 인터페이스부(400)는 사용자가 설치 또는 업데이트 명령 버튼을 누르면, 해당 어플리케이션이 설치 또는 업데이트될 POD를 선택받기 위한 화면을 표시할 수 있다.
다음으로 사용자 인터페이스부(400)는 사용자로부터 설치 또는 업데이트 요청된 어플리케이션의 환경 설정 파일을 생성할 수 있다(S830).
이후 사용자 인터페이스부(400)는 어플리케이션에 대한 설치 또는 업데이트 명령을 지능형 에이전트부(300)로 전달할 수 있다(S840).
다음으로 지능형 에이전트부(300)는 해당 어플리케이션의 환경 설정 파일을 해석하여 자동으로 해당 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하여 해당 POD(220)에 전달할 수 있다(S850). 환경 설정 파일에는 해당 어플리케이션을 어플리케이션 저장소(600)에서 다운로드 받기 위한 설치 파일 경로 정보도 포함될 수 있다.
이후 해당 POD(220)는 지능형 에이전트부(300)로부터 전달된 명령어 라인을 실행하여 해당 어플리케이션을 다운로드 받은 후 환경 설정 파일에 따라 설치 또는 업데이트 할 수 있다(S860).
마지막으로 지능형 에이전트부(300)는 해당 POD(220)에서 어플리케이션의 설치 또는 업데이트 후 성공 또는 실패값을 반환받아 에이전트 데이터베이스(700)에 저장하고 사용자 인터페이스부(400)에 전달할 수 있다(S870).
앞서 설명한 것과 같이 어플리케이션의 설치 또는 업데이트 후 지능형 에이전트부(300)는 모의 공격을 자동으로 수행하여 취약점을 사전에 파악할 수 있다.
도 9는 본 발명의 일 실시예에 따른 모의 공격 과정을 나타낸 흐름도이다.
도 9를 참고하면, 먼저 지능형 에이전트부(300)는 어플리케이션의 설치 또는 업데이트 후, 해당 어플리케이션의 이름을 키워드로 미리 정해진 취약점 데이터베이스(800)를 조회하여 취약점 데이터를 수집할 수 있다(S910).
다음으로 지능형 에이전트부(300)는 수집한 취약점 데이터로부터 모의 공격에 필요한 단어를 추출할 수 있다(S920).
이후 지능형 에이전트부(300)는 단계(S920)에서 추출된 단어를 기초로 모의 공격을 위해 필요한 어플리케이션을 어플리케이션 저장소로부터 다운로드하여 해당하는 POD에 설치할 수 있다(S930). 물론 이미 모의 공격을 위해 필요한 어플리케이션이 해당 POD에 설치되어 있으면 단계(S930)를 생략하거나, 필요한 어플리케이션만 다운로드하여 설치할 수 있다.
그리고 지능형 에이전트부(300)는 수집한 취약점 데이터로부터 추출되는 단어에 기초하여, 모의 공격을 위한 명령어를 자동으로 작성할 수 있다(S940).
단계(S930) 및 단계(S940)는 동시에 수행되거나 그 순서가 바뀔 수도 있다.
다음으로 지능형 에이전트부(300)는 모의 공격을 위해 작성된 명령어를 POD(220)에 전달하여 모의 공격이 실행되게 할 수 있다(S950).
이후 지능형 에이전트부(300)는 POD(220)로부터 모의 공격에 따른 결과값을 반환받아 에이전트 데이터베이스(700)에 저장할 수 있다(S960).
한편 지능형 에이전트부(300)는 실시예에 따라서 단계(S950) 이전에 취약점 데이터에서 추출된 공격흔적 위치, 공격흔적 URL, 공격흔적 프로세스 정보 등을 참조하여 해당 POD(220)에 해당 취약점에 대한 공격이 있었는지 여부를 확인할 수도 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (11)

  1. 복수의 워커노드 및 마스터 노드로 구성되는 컨테이너 통합 관제 시스템에서,
    사용자로부터 어플리케이션을 등록받고, 상기 등록된 어플리케이션의 환경 설정 파일을 생성하는 사용자 인터페이스부; 및
    상기 등록된 어플리케이션의 환경 설정 파일과 함께 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 전달받으면, 상기 복수의 워커노드에 배포된 POD 중에서 해당하는 POD에 대해 상기 등록된 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하고, 상기 해당하는 POD에 전달하여 상기 등록된 어플리케이션을 설치 또는 업데이트하도록 하는 지능형 에이전트부;
    를 포함하고,
    상기 복수의 워커노드는 하나 이상의 POD가 배포되어 실행되고, POD는 하나 이상의 컨테이너 및 환경 설정 파일을 포함하며, 컨테이너는 어플리케이션 및 어플리케이션 실행에 필요한 라이브러리 및 바이너리 파일을 포함하고, 상기 마스터 노드는 상기 복수의 워커노드에 대한 POD 배포 및 상기 복수의 워커노드에 배포된 POD를 관리하는 컨테이너 통합 관제 시스템.
  2. 제 1 항에서,
    상기 지능형 에이전트부는,
    상기 등록된 어플리케이션의 이름을 키워드로 미리 정해진 취약점 데이터베이스를 조회하여 수집한 취약점 데이터로부터 추출되는 단어에 기초하여, 모의 공격을 위해 필요한 어플리케이션을 어플리케이션 저장소로부터 다운로드하여 해당하는 POD에 설치하고, 모의 공격을 위한 명령어를 작성한 후 상기 작성된 명령어를 상기 해당하는 POD에 전달하여 실행시킴으로써 상기 클러스터에 대한 모의 공격을 실행되게 하는 컨테이너 통합 관제 시스템.
  3. 제 2 항에서,
    상기 해당하는 POD는 상기 사용자 인터페이스부에서 사용자로부터 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 대상으로 선택된 POD인 컨테이너 통합 관제 시스템.
  4. 제 2 항에서,
    상기 지능형 에이전트부는,
    상기 모의 공격의 실행에 따른 상기 해당하는 POD의 상태를 확인하고, 상기 모의 공격에 따른 결과값을 에이전트 데이터베이스에 저장하는 컨테이너 통합 관제 시스템.
  5. 제 2 항에서,
    상기 지능형 에이전트부는 복수 개의 지능형 에이전트를 포함하고,
    상기 사용자 인터페이스부와 복수 개의 상기 지능형 에이전트부 사이에서 명령 및 명령 결과값을 중개하는 에이전트 인터페이스부를 더 포함하며,
    상기 에이전트 인터페이스부는 상부 에이전트 인터페이스부 및 복수의 하부 에이전트 인터페이스부를 포함하고,
    상기 상부 에이전트 인터페이스부는 상기 사용자 인터페이스부에서 전달되는 명령을 분류하여 상기 복수의 하부 에이전트 인터페이스부에 선택적으로 전달하고,
    상기 명령을 전달받은 하부 에이전트 인터페이스부는 상기 복수 개의 지능형 에이전트 중 대응하는 지능형 에이전트에 전달하는 컨테이너 통합 관제 시스템.
  6. 복수의 워커노드 및 마스터 노드로 구성되는 컨테이너 통합 관제 시스템의 제어 방법에서,
    사용자 인터페이스부가 사용자로부터 어플리케이션을 등록받는 단계;
    상기 사용자 인터페이스부가 상기 등록된 어플리케이션의 환경 설정 파일을 생성하는 단계;
    지능형 에이전트부가 상기 등록된 어플리케이션의 환경 설정 파일과 함께 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 명령을 전달받으면, 상기 복수의 워커노드에 배포된 POD 중에서 해당하는 POD에 대해 상기 등록된 어플리케이션의 설치 또는 업데이트를 위한 명령어 라인을 생성하는 단계; 및
    상기 생성된 명령어 라인을 상기 해당하는 POD에 전달하여 상기 등록된 어플리케이션을 설치 또는 업데이트하도록 하는 단계;
    를 포함하고,
    상기 복수의 워커노드는 하나 이상의 POD가 배포되어 실행되고, POD는 하나 이상의 컨테이너 및 환경 설정 파일을 포함하며, 컨테이너는 어플리케이션 및 어플리케이션 실행에 필요한 라이브러리 및 바이너리 파일을 포함하고, 상기 마스터 노드는 상기 복수의 워커노드에 대한 POD 배포 및 상기 복수의 워커노드에 배포된 POD를 관리하는 컨테이너 통합 관제 시스템의 제어 방법.
  7. 제 6 항에서,
    상기 지능형 에이전트부가 상기 등록된 어플리케이션의 이름을 키워드로 미리 정해진 취약점 데이터베이스를 조회하여 취약점 데이터를 수집하는 단계;
    상기 지능형 에이전트부가 상기 수집한 취약점 데이터로부터 추출되는 단어에 기초하여, 모의 공격을 위해 필요한 어플리케이션을 어플리케이션 저장소로부터 다운로드하여 해당하는 POD에 설치하는 단계; 및
    상기 지능형 에이전트부가 모의 공격을 위한 명령어를 작성한 후 상기 작성된 명령어를 상기 해당하는 POD에 전달하여 실행시킴으로써 상기 클러스터에 대한 모의 공격을 실행되게 하는 단계;
    를 더 포함하는 컨테이너 통합 관제 시스템의 제어 방법.
  8. 제 7 항에서,
    상기 해당하는 POD는 상기 사용자 인터페이스부에서 사용자로부터 상기 등록된 어플리케이션에 대한 설치 또는 업데이트 대상으로 선택된 POD인 컨테이너 통합 관제 시스템의 제어 방법.
  9. 제 7 항에서,
    상기 지능형 에이전트부는,
    상기 모의 공격의 실행에 따른 상기 해당하는 POD의 상태를 확인하고, 상기 모의 공격에 따른 결과값을 에이전트 데이터베이스에 저장하는 컨테이너 통합 관제 시스템의 제어 방법.
  10. 제 7 항에서,
    상기 지능형 에이전트부는 복수 개의 지능형 에이전트를 포함하고,
    상기 사용자 인터페이스부와 복수 개의 상기 지능형 에이전트부 사이에서 명령 및 명령 결과값을 중개하는 에이전트 인터페이스부를 더 포함하며,
    상기 에이전트 인터페이스부는 상부 에이전트 인터페이스부 및 복수의 하부 에이전트 인터페이스부를 포함하고,
    상기 상부 에이전트 인터페이스부는 상기 사용자 인터페이스부에서 전달되는 명령을 분류하여 상기 복수의 하부 에이전트 인터페이스부에 선택적으로 전달하고,
    상기 명령을 전달받은 하부 에이전트 인터페이스부는 상기 복수 개의 지능형 에이전트 중 대응하는 지능형 에이전트에 전달하는 컨테이너 통합 관제 시스템의 제어 방법.
  11. 청구항 제 6 항 내지 제 10 항 중 어느 한 항에 기재된 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.

KR1020210185288A 2021-12-22 2021-12-22 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법 KR102633812B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210185288A KR102633812B1 (ko) 2021-12-22 2021-12-22 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210185288A KR102633812B1 (ko) 2021-12-22 2021-12-22 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법

Publications (2)

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

Family

ID=86946591

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210185288A KR102633812B1 (ko) 2021-12-22 2021-12-22 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법

Country Status (1)

Country Link
KR (1) KR102633812B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101857009B1 (ko) * 2017-01-19 2018-05-11 숭실대학교산학협력단 안드로이드 악성코드 분석을 위한 컨테이너 플랫폼 및 이를 이용한 모바일 장치의 보안 방법
KR20200018947A (ko) * 2018-08-13 2020-02-21 한국과학기술원 분산 버전 관리 시스템 기반 공격방어 형식의 해킹 플랫폼 제공 시스템 및 이를 이용한 해킹 대회 제공 방법
KR20200027783A (ko) * 2018-09-05 2020-03-13 주식회사 나눔기술 분산 지능모듈의 통합관리 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101857009B1 (ko) * 2017-01-19 2018-05-11 숭실대학교산학협력단 안드로이드 악성코드 분석을 위한 컨테이너 플랫폼 및 이를 이용한 모바일 장치의 보안 방법
KR20200018947A (ko) * 2018-08-13 2020-02-21 한국과학기술원 분산 버전 관리 시스템 기반 공격방어 형식의 해킹 플랫폼 제공 시스템 및 이를 이용한 해킹 대회 제공 방법
KR20200027783A (ko) * 2018-09-05 2020-03-13 주식회사 나눔기술 분산 지능모듈의 통합관리 시스템

Also Published As

Publication number Publication date
KR102633812B1 (ko) 2024-02-05

Similar Documents

Publication Publication Date Title
US11157255B2 (en) Software asset management
US20220043693A1 (en) Methods, systems and apparatus for client extensibility during provisioning of a composite blueprint
US9535684B2 (en) Management of software updates in a virtualized environment of a datacenter using dependency relationships
US9645805B2 (en) Application blueprints based on service templates to deploy applications in different cloud environments
US8117641B2 (en) Control device and control method for information system
US8434077B2 (en) Upgrading virtual resources
US9274811B1 (en) System and method for cloud provisioning and application deployment
US20160359911A1 (en) Trusted public infrastructure grid cloud
US20140181816A1 (en) Methods and apparatus to manage virtual machines
US20090199178A1 (en) Virtual Application Management
US20150089473A1 (en) Software discovery by an installer controller
US8027817B2 (en) Simulation management within a grid infrastructure
US7996500B2 (en) Systems and methods for extensible distributed configuration management
US11755301B2 (en) Deployment of cloud infrastructures using a cloud management platform
KR102633812B1 (ko) 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법
US20130262845A1 (en) Method and system for generating a standardized system build file
US11301217B1 (en) Systems and methods for automated building, managing, and distributing of operating systems with different customizations for different users
US7379984B1 (en) Apparatus, system, and method for autonomy controlled management of a distributed computer system
AU2019261775B2 (en) Software asset management
US11095501B2 (en) Provisioning and activating hardware resources
US20130159973A1 (en) Activation logic generation for a software appliance
US10146804B2 (en) Computer implemented systems and methods to augment data from data sources by simultaneously adding enhancements generated by different technologies
US20240019824A1 (en) A Building Automation Network
US20230393876A1 (en) Landing zones for pattern-based cloud computing
US20230401045A1 (en) Bases for pattern-based 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