KR102606713B1 - Apparatus, method, system and program for integrated security control for monitoring Kubernetes cluster - Google Patents

Apparatus, method, system and program for integrated security control for monitoring Kubernetes cluster Download PDF

Info

Publication number
KR102606713B1
KR102606713B1 KR1020230091329A KR20230091329A KR102606713B1 KR 102606713 B1 KR102606713 B1 KR 102606713B1 KR 1020230091329 A KR1020230091329 A KR 1020230091329A KR 20230091329 A KR20230091329 A KR 20230091329A KR 102606713 B1 KR102606713 B1 KR 102606713B1
Authority
KR
South Korea
Prior art keywords
connection path
monitoring
kubernetes
pod
processor
Prior art date
Application number
KR1020230091329A
Other languages
Korean (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 KR1020230091329A priority Critical patent/KR102606713B1/en
Application granted granted Critical
Publication of KR102606713B1 publication Critical patent/KR102606713B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 개시는 쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치에 관한 것으로, 상기 쿠버네티스 클러스터에서 발생하는 이벤트를 상기 통신부를 통해 수집하고, 상기 수집된 이벤트를 보안 규칙을 기반으로 모니터링 하고, 상기 모니터링 결과 이상 징후가 판단되면, 상기 저장부에 저장된 접속 경로를 기반으로 상기 이상 징후에 대한 공격 출발지로부터 공격 목적지의 접속 경로를 추적할 수 있다.The present disclosure relates to an integrated security control device for monitoring a Kubernetes cluster, collecting events occurring in the Kubernetes cluster through the communication unit, monitoring the collected events based on security rules, and If an abnormality is determined as a result of monitoring, the connection path of the attack destination from the attack source for the abnormality can be traced based on the connection path stored in the storage unit.

Description

쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 시스템, 장치, 방법 및 프로그램 {Apparatus, method, system and program for integrated security control for monitoring Kubernetes cluster}Integrated security control system, device, method and program for monitoring Kubernetes cluster {Apparatus, method, system and program for integrated security control for monitoring Kubernetes cluster}

본 개시는 통합 보안 관제 시스템에 관한 것으로, 보다 상세하게는 쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 시스템에 관한 것이다.This disclosure relates to an integrated security control system, and more specifically, to an integrated security control system for monitoring a Kubernetes cluster.

4차 산업혁명 이후 커넥티드카, 가전제품 등 수많은 사물인터넷(IoT) 기기가 사용되면서 많은 양의 정보를 처리하게 되었다.Since the Fourth Industrial Revolution, numerous Internet of Things (IoT) devices, such as connected cars and home appliances, have been used to process large amounts of information.

그러나, 수집된 정보를 처리하는데 물리적 서버의 리소스 제한이 있으며, 서버에서 실행되는 각 애플리케이션에 대해 격리된 리소스를 할당해야 한다.However, there are resource limitations of physical servers in processing the collected information, and isolated resources must be allocated for each application running on the server.

이러한 요구 사항을 충족하기 위해 가상화된 애플리케이션이 있는 여러 서버에 대한 서비스 오케스트레이션이 현실적인 솔루션으로 간주되었으며, 구체적으로 서버의 각 애플리케이션은 VM(Virtual Machine) 및 컨테이너와 같은 가상화 기술로 추상화할 수 있다.To meet these requirements, service orchestration over multiple servers with virtualized applications was considered a realistic solution, specifically, each application on a server can be abstracted into virtualization technologies such as virtual machines (VMs) and containers.

서비스 오케스트레이션은 여러 서버의 요구에 따라 더 많은 리소스를 동적으로 할당하여 각 서비스의 확장성을 제공할 수 있으며, 다양한 오케스트레이션 플랫폼 중에서 쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션의 자동 배포, 확장 및 관리를 허용하는 새로운 오픈 소스 기반 컨테이너 오케스트레이션 플랫폼 중 하나이다.Service orchestration can provide scalability for each service by dynamically allocating more resources according to the needs of multiple servers, and among various orchestration platforms, Kubernetes provides automatic deployment, scaling, and management of containerized applications. It is one of the new open source-based container orchestration platforms that allows

쿠버네티스는 컨테이너에서 애플리케이션을 쉽게 패키징하고 실행하며 분산 시스템을 탄력적으로 실행하기 위한 프레임워크를 제공한다.Kubernetes provides a framework for easily packaging and running applications in containers and running distributed systems elastically.

또한, 쿠버네티스는 애플리케이션 실행에 필요한 소프트웨어를 구성하는 컨테이너를 관리하는 일상적인 운영 작업을 자동화해주며, 애플리케이션을 배포하기 위해 내장된 명령을 사용하여 애플리케이션에 변경 사항을 롤아웃하고, 변화하는 요구에 맞게 애플리케이션을 확장하는 등 다양한 작업을 수행할 수 있다.Additionally, Kubernetes automates the routine operational tasks of managing the containers that make up the software needed to run an application, using built-in commands to deploy the application, rolling out changes to the application, and adapting to changing needs. You can perform a variety of tasks, including scaling the application to fit your needs.

기존의 네트워크와 다르게 쿠버네티스 클러스터가 오버레이된 네트워크는 애플리케이션의 인스턴스가 쿠버네티스라는 추상화된 플랫폼 위에 배치되며, 노드 장애나 스케일링이 발생하면 다른 노드에 스케쥴링되며, 워커 노드 자체가 추상화되고 애플리케이션이 어디에 배치될지 명확하지 않다는 점 때문에 모니터링이 제대로 이뤄지지 않고 있다.Unlike existing networks, in a network overlaid with a Kubernetes cluster, instances of applications are placed on an abstracted platform called Kubernetes, and when node failure or scaling occurs, they are scheduled on other nodes, and the worker nodes themselves are abstracted and the application Monitoring is not taking place properly because it is not clear where it will be deployed.

이에, 종래의 네트워크 모니터링 방식과 다른 방식을 쿠버네티스 환경에 적용하여 보안 관제 시스템을 운영해야 하는 하지만, 현재로서는 이러한 기술이 공개되어 있지 않은 실정이다.Accordingly, it is necessary to operate a security control system by applying a method different from the conventional network monitoring method to the Kubernetes environment, but this technology is not currently available to the public.

대한민국 등록특허 제10-2114339호Republic of Korea Patent No. 10-2114339

본 개시에 개시된 실시예는 쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 시스템을 제공하는데 그 목적이 있다.The purpose of the embodiment disclosed in this disclosure is to provide an integrated security control system for monitoring a Kubernetes cluster.

본 개시가 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present disclosure are not limited to the problems mentioned above, and other problems not mentioned can be clearly understood by those skilled in the art from the description below.

상술한 과제를 해결하기 위한 본 개시의 일 실시예에 따른 쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치는, 통신부; 하나 이상의 인스트럭션, 오버레이 네트워크가 적용된 쿠버네티스(Kubernetes) 클러스터 내 계층적 구조를 갖는 구성들 각각에 대한 정보와 계층적 구조 및 상기 계층적 구조에 따른 상기 구성들 간의 접속 경로가 저장된 저장부; 및 상기 저장부에 저장된 상기 인스트럭션을 실행하는 하나 이상의 프로세서를 포함하며, 상기 프로세서는, 상기 쿠버네티스 클러스터에서 발생하는 이벤트를 상기 통신부를 통해 수집하고, 상기 수집된 이벤트를 보안 규칙을 기반으로 모니터링 하고, 상기 모니터링 결과 이상 징후가 판단되면, 상기 저장부에 저장된 접속 경로를 기반으로 상기 이상 징후에 대한 공격 출발지로부터 공격 목적지의 접속 경로를 추적할 수 있다.An integrated security control device for monitoring a Kubernetes cluster according to an embodiment of the present disclosure to solve the above-described problem includes: a communication unit; A storage unit storing information on each of the components having a hierarchical structure in a Kubernetes cluster to which one or more instructions and an overlay network are applied, the hierarchical structure, and a connection path between the components according to the hierarchical structure; and one or more processors that execute the instructions stored in the storage unit, wherein the processor collects events occurring in the Kubernetes cluster through the communication unit and monitors the collected events based on security rules. And, if an abnormality is determined as a result of the monitoring, the connection path of the attack destination from the attack source for the abnormality can be traced based on the connection path stored in the storage unit.

또한, 상기 프로세서는, 상기 이상 징후가 감지된 제1 pod 내 제1 구성에 대한 포트를 상기 공격 출발지로 식별하고, 상기 이상 징후가 감지된 제2 pod 내 제2 구성에 대한 포트를 상기 공격 목적지로 식별하고, 상기 저장부에 저장된 상기 쿠버네티스 클러스터 내 구성들의 계층적 구조에 따른 접속 경로를 기반으로, 상기 제1 pod로부터 Router의 제1 경로에 포함된 구성들을 식별하고, 상기 식별된 구성들 간의 접속 경로를 식별하고, 상기 Router로부터 상기 제2 pod의 제2 경로에 포함된 구성들을 식별하고, 상기 식별된 구성들 간의 접속 경로를 식별할 수 있다.In addition, the processor identifies the port for the first configuration in the first pod in which the anomaly symptom was detected as the attack source, and the port for the second configuration in the second pod in which the anomaly symptom was detected as the attack destination. Identify the configurations included in the first path of the router from the first pod based on the connection path according to the hierarchical structure of the configurations in the Kubernetes cluster stored in the storage unit, and identify the configurations included in the first path of the router. It is possible to identify connection paths between devices, identify components included in the second path of the second pod from the router, and identify connection paths between the identified components.

또한, 상기 제1 경로에 포함된 구성들은 제1 pod가 속한 제1 veth(Virtual Ethernet Devices), 제1 CNI, 제1 NAT(Network Address Translation) 및 제1 eth0를 포함하고, 상기 제2 경로에 포함된 구성들은 제2 pod가 속한 제2 veth(Virtual Ethernet Devices), 제2 CNI, 제2 NAT(Network Address Translation) 및 제2 eth0를 포함할 수 있다.In addition, the configurations included in the first path include the first veth (Virtual Ethernet Devices), the first CNI, the first NAT (Network Address Translation), and the first eth0 to which the first pod belongs, and in the second path Included configurations may include a second veth (Virtual Ethernet Devices), a second CNI, a second NAT (Network Address Translation), and a second eth0 to which the second pod belongs.

또한, 상기 프로세서는, 상기 저장부에 저장된 접속 경로를 기반으로, 상기 제1 pod가 속한 제1 veth(Virtual Ethernet Devices)로부터 제1 CNI의 접속 경로, 상기 제1 CNI로부터 제1 NAT(Network Address Translation)의 접속 경로, 상기 제1 NAT로부터 제1 eth0의 접속 경로, 상기 제1 eth0로부터 Router의 접속 경로, 상기 Router로부터 제2 eth0의 접속 경로, 상기 제2 eth0로부터 제2 NAT의 접속 경로, 상기 제2 NAT로부터 제2 CNI의 접속 경로, 상기 제2 CNI로부터 제2 pod이 속한 제2 veth의 접속 경로를 식별할 수 있다.In addition, based on the connection path stored in the storage unit, the processor determines the connection path of the first CNI from the first veth (Virtual Ethernet Devices) to which the first pod belongs, and the first Network Address (NAT) from the first CNI. Translation)'s connection path, the connection path of the first eth0 from the first NAT, the connection path of the router from the first eth0, the connection path of the second eth0 from the router, the connection path of the second NAT from the second eth0, The connection path of the second CNI can be identified from the second NAT, and the connection path of the second veth to which the second pod belongs can be identified from the second CNI.

또한, 상기 저장부는, 상기 쿠버네티스 클러스터 내 파드, 컨테이너 및 네임스페이스에 관한 정보와 상기 쿠버네티스 클러스터 내 구성들의 정보를 확인하기 위해 미리 결정된 명령어가 저장되어 있으며, 상기 프로세서는, 기 설정된 시간마다 상기 미리 결정된 명령어를 이용하여 상기 쿠버네티스 클러스터 내 구성들의 정보를 확인하고, 상기 저장부에 저장된 정보를 업데이트할 수 있다.In addition, the storage unit stores predetermined instructions to check information on pods, containers, and namespaces within the Kubernetes cluster and information on configurations within the Kubernetes cluster, and the processor stores a predetermined command at a preset time. Each time, information on components within the Kubernetes cluster can be checked using the predetermined command, and information stored in the storage unit can be updated.

또한, 상기 프로세서는, 상기 미리 결정된 명령어를 이용하여 상기 쿠버네티스 클러스터 내 eth0, flannel 및 cni의 정보(예: 주소)를 확인할 수 있다.Additionally, the processor may check information (e.g., addresses) of eth0, flannel, and cni in the Kubernetes cluster using the predetermined command.

또한, 상기 프로세서는, 상기 수집된 이벤트를 기반으로 상기 쿠버네티스 클러스터 내 기존 pod의 삭제 또는 신규 pod의 생성을 감지하고, 상기 감지된 결과를 기반으로 상기 저장부 내 데이터를 업데이트할 수 있다.Additionally, the processor may detect deletion of an existing pod or creation of a new pod in the Kubernetes cluster based on the collected event, and update data in the storage unit based on the detected result.

또한, 상기 프로세서는, 상기 쿠버네티스 클러스터 내 기존 pod가 삭제되거나 신규 pod가 생성되는 경우, 상기 저장부에 저장되어 있는 계층적 구조 및 상기 계층적 구조에 따른 구성들 간의 접속 경로에 관한 정보를 기반으로 상기 저장부 내 데이터를 업데이트할 수 있다.In addition, when an existing pod in the Kubernetes cluster is deleted or a new pod is created, the processor provides information about the hierarchical structure stored in the storage unit and the connection path between components according to the hierarchical structure. Based on this, data in the storage unit can be updated.

또한, 상기 프로세서는, 상기 쿠버네티스 클러스터 내 접속 경로 또는 구성에 대한 기 설정된 제1 횟수를 초과하는 접속 시도가 감지되는 경우, 상기 접속 시도를 이상 징후로 판단할 수 있다.Additionally, when a connection attempt exceeding a preset first number for a connection path or configuration within the Kubernetes cluster is detected, the processor may determine the connection attempt as an abnormality symptom.

또한, 상기 제1 횟수는 상기 쿠버네티스 클러스터 내 계층적 구조를 갖는 상기 구성들 간의 접속 경로마다 설정되어 있으며, 상기 프로세서는, 상기 접속 경로마다 설정되어 있는 제1 횟수를 기반으로 상기 접속 시도를 이상 징후로 판단할 수 있다.In addition, the first number of times is set for each connection path between the components having a hierarchical structure within the Kubernetes cluster, and the processor performs the connection attempt based on the first number of times set for each connection path. It can be judged as an abnormality sign.

또한, 상기 프로세서는, 상기 이상 징후에 대하여 식별된 공격 출발지, 공격 목적지 및 상기 공격 출발지로부터 상기 공격 목적지에 포함된 접속 경로 상의 구성들과 상기 접속 시도의 횟수를 기반으로 보안 위험도를 산출할 수 있다.In addition, the processor may calculate a security risk based on the identified attack source, attack destination, and configurations on the connection path included in the attack destination from the attack source and the number of connection attempts for the abnormality symptom. .

또한, 기 설정된 제1 크기 이상의 데이터 접속 시도가 상기 쿠버네티스 클러스터 내 접속 경로 또는 구성에 대한 기 설정된 제2 횟수를 초과하여 감지되는 경우, 상기 접속 시도를 이상 징후로 판단할 수 있다.Additionally, when an attempt to access data larger than a preset first size is detected in excess of a second preset number of times for the connection path or configuration within the Kubernetes cluster, the access attempt may be determined to be an abnormality sign.

또한, 상기 프로세서는, 이상 징후가 감지된 특정 pod에 관하여, 상기 특정 pod와 관련된 접속 경로를 갖는 접속 경로에 관하여 모니터링 가중치를 부여하고, 상기 부여된 모니터링 가중치를 기반으로 모니터링 주기를 변경, 상기 제1 횟수를 변경 또는 상기 제1 크기를 변경 중 적어도 하나의 동작을 실행할 수 있다.In addition, the processor assigns a monitoring weight to an access path having an access path related to the specific pod with respect to a specific pod in which an abnormality symptom is detected, and changes the monitoring period based on the assigned monitoring weight. At least one operation of changing the number of times or changing the first size can be performed.

또한, 상술한 과제를 해결하기 위한 본 개시의 일 실시예에 따른 쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 방법은, 통합 보안 관제 장치에 의해 수행되는 방법으로, 쿠버네티스(Kubernetes) 클러스터에서 발생하는 이벤트를 수집하는 단계; 상기 수집된 이벤트를 보안 규칙을 기반으로 모니터링하는 단계; 상기 모니터링 결과 이상 징후가 판단되면, 저장부에 저장된 접속 경로를 기반으로 상기 이상 징후에 대한 공격 출발지로부터 공격 목적지의 접속 경로를 추적하는 단계를 포함하며, 상기 저장부는 오버레이 네트워크가 적용된 쿠버네티스 클러스터 내 계층적 구조를 갖는 구성들 각각에 대한 정보와 계층적 구조 및 상기 계층적 구조에 따른 상기 구성들 간의 접속 경로가 저장되어 있다.In addition, the integrated security control method for monitoring a Kubernetes cluster according to an embodiment of the present disclosure to solve the above-described problem is a method performed by an integrated security control device in a Kubernetes cluster. collecting events that occur; Monitoring the collected events based on security rules; If an abnormality is determined as a result of the monitoring, tracking the connection path from the attack source to the attack destination for the abnormality based on the connection path stored in a storage unit, wherein the storage unit is a Kubernetes cluster to which an overlay network is applied. Information on each of the components having the hierarchical structure, the hierarchical structure, and the connection path between the components according to the hierarchical structure are stored.

이 외에도, 본 개시를 구현하기 위한 실행하기 위한 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램이 더 제공될 수 있다.In addition to this, a computer program stored in a computer-readable recording medium for execution to implement the present disclosure may be further provided.

이 외에도, 본 개시를 구현하기 위한 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공될 수 있다.In addition, a computer-readable recording medium recording a computer program for executing a method for implementing the present disclosure may be further provided.

본 개시의 전술한 과제 해결 수단에 의하면, 쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 시스템을 제공하는 효과를 제공한다.According to the means for solving the above-described problem of the present disclosure, the effect of providing an integrated security control system for monitoring a Kubernetes cluster is provided.

본 개시의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned may be clearly understood by those skilled in the art from the description below.

도 1은 본 개시의 실시예에 따른 쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치의 블록도이다.
도 2는 쿠버네티스 클러스터의 예시도이다.
도 3은 오버레이 네트워크가 적용된 쿠버네티스 클러스터를 예시한 도면이다.
도 4는 개시의 실시예에 따른 쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 방법의 흐름도이다.
도 5는 감지된 이상 징후에 대한 공격 출발지와 공격 목적지의 위치를 식별한 것을 예시한 도면이다.
도 6은 도 5과 같이 식별된 위치와 저장부에 저장된 접속 경로를 기반으로 공격 출발지로부터 공격 목적지의 접속 경로를 식별하는 것을 예시한 도면이다.
도 7은 기존 관제 시스템과 본 개시의 실시예에 따른 쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치의 관제 시스템의 관제 범위를 비교한 예시 도면이다.
Figure 1 is a block diagram of an integrated security control device for monitoring a Kubernetes cluster according to an embodiment of the present disclosure.
Figure 2 is an example diagram of a Kubernetes cluster.
Figure 3 is a diagram illustrating a Kubernetes cluster to which an overlay network is applied.
Figure 4 is a flowchart of an integrated security control method for monitoring a Kubernetes cluster according to an embodiment of the disclosure.
Figure 5 is a diagram illustrating the identification of the locations of the attack source and attack destination for detected abnormalities.
FIG. 6 is a diagram illustrating identifying the access path from the attack source to the attack destination based on the location identified and the access path stored in the storage as shown in FIG. 5.
Figure 7 is an example diagram comparing the control range of the existing control system and the control system of the integrated security control device for monitoring a Kubernetes cluster according to an embodiment of the present disclosure.

본 개시 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 개시가 실시예들의 모든 요소들을 설명하는 것은 아니며, 본 개시가 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 ‘부, 모듈, 부재, 블록’이라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '부, 모듈, 부재, 블록'이 하나의 구성요소로 구현되거나, 하나의 '부, 모듈, 부재, 블록'이 복수의 구성요소들을 포함하는 것도 가능하다.명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 간접적으로 연결되어 있는 경우를 포함하고, 간접적인 연결은 무선 통신망을 통해 연결되는 것을 포함한다.Like reference numerals refer to like elements throughout this disclosure. The present disclosure does not describe all elements of the embodiments, and general content or overlapping content between the embodiments in the technical field to which the present disclosure pertains is omitted. The term 'unit, module, member, block' used in the specification may be implemented as software or hardware, and depending on the embodiment, a plurality of 'unit, module, member, block' may be implemented as a single component, or It is also possible for a single 'part, module, member, or block' to contain multiple components. Throughout the specification, when a part is said to be "connected" to another part, this refers not only to cases where it is directly connected, but also to other parts. , includes cases of indirect connection, and indirect connection includes connection through a wireless communication network.

또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Additionally, when a part "includes" a certain component, this means that it may further include other components, rather than excluding other components, unless specifically stated to the contrary.

명세서 전체에서, 어떤 부재가 다른 부재 "상에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.Throughout the specification, when a member is said to be located “on” another member, this includes not only cases where a member is in contact with another member, but also cases where another member exists between the two members.

제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 전술된 용어들에 의해 제한되는 것은 아니다.Terms such as first and second are used to distinguish one component from another component, and the components are not limited by the above-mentioned terms.

단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함한다.Singular expressions include plural expressions unless the context clearly makes an exception.

각 단계들에 있어 식별부호는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.The identification code for each step is used for convenience of explanation. The identification code does not explain the order of each step, and each step may be performed differently from the specified order unless a specific order is clearly stated in the context. there is.

이하 첨부된 도면들을 참고하여 본 개시의 작용 원리 및 실시예들에 대해 설명한다.Hereinafter, the operating principle and embodiments of the present disclosure will be described with reference to the attached drawings.

본 명세서에서 '본 개시에 따른 통합 보안 관제 장치'는 연산처리를 수행하여 사용자에게 결과를 제공할 수 있는 다양한 장치들이 모두 포함된다. 예를 들어, 본 개시에 따른 통합 보안 관제 장치는, 컴퓨터, 서버 장치 및 휴대용 단말기를 모두 포함하거나, 또는 어느 하나의 형태가 될 수 있다.In this specification, the 'integrated security control device according to the present disclosure' includes all various devices that can perform computational processing and provide results to the user. For example, the integrated security control device according to the present disclosure may include all of a computer, a server device, and a portable terminal, or may take the form of any one.

여기에서, 상기 컴퓨터는 예를 들어, 웹 브라우저가 탑재된 노트북, 데스크톱, 랩톱, 태블릿 PC, 슬레이트 PC 등을 포함할 수 있다.Here, the computer may include, for example, a laptop, desktop, laptop, tablet PC, slate PC, etc. equipped with a web browser.

상기 서버 장치는 외부 장치와 통신을 수행하여 정보를 처리하는 서버로써, 애플리케이션 서버, 컴퓨팅 서버, 데이터베이스 서버, 파일 서버, 게임 서버, 메일 서버, 프록시 서버 및 웹 서버 등을 포함할 수 있다.The server device is a server that processes information by communicating with external devices, and may include an application server, computing server, database server, file server, game server, mail server, proxy server, and web server.

상기 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS, GSM, PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), WiBro(Wireless Broadband Internet) 단말, 스마트폰(Smart Phone) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치와 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD) 등과 같은 웨어러블 장치를 포함할 수 있다.The portable terminal is, for example, a wireless communication device that guarantees portability and mobility, such as PCS, GSM, PDC (Personal Digital Cellular), PHS (Personal Handyphone System), PDA (Personal Digital Assistant), IMT (International Mobile Telecommunication) -2000, CDMA (Code Division Multiple Access)-2000, W-CDMA (W-Code Division Multiple Access), WiBro (Wireless Broadband Internet) terminal, Smart Phone, etc. All types of handheld bases It may include wireless communication devices and wearable devices such as watches, rings, bracelets, anklets, necklaces, glasses, contact lenses, or head-mounted-device (HMD).

본 개시에 따른 인공지능과 관련된 기능은 프로세서와 저장부를 통해 동작된다. 프로세서는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서일 수 있다. 하나 또는 복수의 프로세서는, 저장부에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다.Functions related to artificial intelligence according to the present disclosure are operated through a processor and a storage unit. The processor may consist of one or multiple processors. At this time, one or more processors may be a general-purpose processor such as a CPU, AP, or DSP (Digital Signal Processor), a graphics-specific processor such as a GPU or VPU (Vision Processing Unit), or an artificial intelligence-specific processor such as an NPU. One or more processors control input data to be processed according to predefined operation rules or artificial intelligence models stored in the storage unit. Alternatively, when one or more processors are dedicated artificial intelligence processors, the artificial intelligence dedicated processors may be designed with a hardware structure specialized for processing a specific artificial intelligence model.

기 정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습, 비지도 형 학습, 준지도형 학습 또는 강화 학습이 있으나, 전술한 예에 한정되지 않는다.Predefined operation rules or artificial intelligence models are characterized by being created through learning. Here, being created through learning means that the basic artificial intelligence model is learned using a large number of learning data by a learning algorithm, thereby creating a predefined operation rule or artificial intelligence model set to perform the desired characteristics (or purpose). It means burden. This learning may be accomplished in the device itself that performs the artificial intelligence according to the present disclosure, or may be accomplished through a separate server and/or system. Examples of learning algorithms include supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but are not limited to the examples described above.

인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들을 갖고 있으며, 이전 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경 망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 로스 값 또는 코스트 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다. 인공 신경망은 심층 신경망(DNN: Deep Neural Network)를 포함할 수 있으며, 예를 들어, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크 등이 있으나, 전술한 예에 한정되지 않는다.An artificial intelligence model may be composed of multiple neural network layers. Each of the plurality of neural network layers has a plurality of weights, and neural network calculation is performed through calculation between the calculation result of the previous layer and the plurality of weights. Multiple weights of multiple neural network layers can be optimized by the learning results of the artificial intelligence model. For example, during the learning process, a plurality of weights may be updated so that the loss or cost value obtained from the artificial intelligence model is reduced or minimized. Artificial neural networks may include deep neural networks (DNN), such as Convolutional Neural Network (CNN), Deep Neural Network (DNN), Recurrent Neural Network (RNN), Restricted Boltzmann Machine (RBM), Deep Belief Network (DBN), Bidirectional Recurrent Deep Neural Network (BRDNN), or deep Q-network, etc., but are not limited to the examples described above.

본 개시의 예시적인 실시예에 따르면, 프로세서는 인공지능을 구현할 수 있다. 인공지능이란 사람의 신경세포(biological neuron)를 모사하여 기계가 학습하도록 하는 인공신경망 기반의 기계 학습법을 의미한다. 인공지능의 방법론에는 학습 방식에 따라 훈련데이터로서 입력데이터와 출력데이터가 같이 제공됨으로써 문제(입력 데이터)의 해답(출력 데이터)이 정해져 있는 지도학습(supervised learning), 및 출력데이터 없이 입력데이터만 제공되어 문제(입력 데이터)의 해답(출력 데이터)이 정해지지 않는 비지도학습(unsupervised learning), 및 현재의 상태에서 어떤 행동을 취할 때마다 외부 환경에서 보상이 주어지는데, 이러한 보상을 최대화하는 방향으로 학습을 진행하는 강화학습(reinforcement learning)으로 구분될 수 있다. 또한, 인공지능의 방법론은 학습 모델의 구조인 아키텍처에 따라 구분될 수도 있는데, 널리 이용되는 딥러닝 기술의 아키텍처는, 합성곱신경망, 순환신경망, 트랜스포머, 생성적 대립 신경망 등으로 구분될 수 있다.According to an exemplary embodiment of the present disclosure, a processor may implement artificial intelligence. Artificial intelligence refers to a machine learning method based on artificial neural networks that allows machines to learn by imitating human biological neurons. Methodology of artificial intelligence includes supervised learning, in which the answer (output data) to the problem (input data) is determined by providing input data and output data together as training data according to the learning method, and only input data is provided without output data. Unsupervised learning, in which the solution (output data) to the problem (input data) is not determined, and rewards are given from the external environment whenever an action is taken in the current state, learning is directed to maximizing these rewards. It can be divided into reinforcement learning. In addition, artificial intelligence methodologies can be divided according to the architecture, which is the structure of the learning model. The architecture of widely used deep learning technology can be divided into convolutional neural networks, recurrent neural networks, transformers, and generative adversarial neural networks.

본 장치는 인공지능 모델을 포함할 수 있다. 인공지능 모델은 하나의 인공지능 모델일 수 있고, 복수의 인공지능 모델로 구현될 수도 있다. 인공지능 모델은 뉴럴 네트워크(또는 인공 신경망)로 구성될 수 있으며, 기계학습과 인지과학에서 생물학의 신경을 모방한 통계학적 학습 알고리즘을 포함할 수 있다. 뉴럴 네트워크는 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다. 뉴럴 네트워크의 뉴런은 가중치 또는 바이어스의 조합을 포함할 수 있다. 뉴럴 네트워크는 하나 이상의 뉴런 또는 노드로 구성된 하나 이상의 레이어를 포함할 수 있다. 예시적으로, 장치는 input layer, hidden layer, output layer를 포함할 수 있다. 장치를 구성하는 뉴럴 네트워크는 뉴런의 가중치를 학습을 통해 변화시킴으로써 임의의 입력으로부터 예측하고자 하는 결과를 추론할 수 있다.The device may include an artificial intelligence model. An artificial intelligence model may be a single artificial intelligence model or may be implemented as multiple artificial intelligence models. Artificial intelligence models may be composed of neural networks (or artificial neural networks) and may include statistical learning algorithms that mimic biological neurons in machine learning and cognitive science. A neural network can refer to an overall model in which artificial neurons (nodes), which form a network through the combination of synapses, change the strength of the synapse connection through learning and have problem-solving capabilities. Neurons in a neural network can contain combinations of weights or biases. A neural network may include one or more layers consisting of one or more neurons or nodes. By way of example, a device may include an input layer, a hidden layer, and an output layer. The neural network that makes up the device can infer the result to be predicted from arbitrary input by changing the weights of neurons through learning.

프로세서는 뉴럴 네트워크를 생성하거나, 뉴럴 네트워크를 훈련(train, 또는 학습(learn)하거나, 수신되는 입력 데이터를 기초로 연산을 수행하고, 수행 결과를 기초로 정보 신호를 생성하거나, 뉴럴 네트워크를 재훈련할 수 있다. 뉴럴 네트워크의 모델들은 GoogleNet, AlexNet, VGG Network 등과 같은 CNN, R-CNN, RPN, RNN, S-DNN, S-SDNN, Deconvolution Network, DBN, RBM, Fully Convolutional Network, LSTM Network, Classification Network 등 다양한 종류의 모델들을 포함할 수 있으나 이에 제한되지는 않는다. 프로세서는 뉴럴 네트워크의 모델들에 따른 연산을 수행하기 위한 하나 이상의 프로세서를 포함할 수 있다. 예를 들어 뉴럴 네트워크는 심층 뉴럴 네트워크를 포함할 수 있다.The processor creates a neural network, trains or learns a neural network, performs operations based on received input data, generates information signals based on the results, or retrains the neural network. Neural network models include CNN, R-CNN, RPN, RNN, S-DNN, S-SDNN, Deconvolution Network, DBN, RBM, Fully Convolutional Network, LSTM Network, Classification such as GoogleNet, AlexNet, VGG Network, etc. It may include, but is not limited to, various types of models such as Network. The processor may include one or more processors to perform operations according to the models of the neural network. For example, a neural network is a deep neural network. It can be included.

뉴럴 네트워크는 CNN, RNN, 퍼셉트, 다층 퍼셉트론, FF(Feed Forward), RBF(Radial Basis Network), DFF(Deep Feed Forward), LSTM(Long Short Term Memory), GRU(Gated Recurrent Unit), AE(Auto Encoder), VAE(Variational Auto Encoder), DAE(Denoising Auto Encoder), SAE(Sparse Auto Encoder), MC(Markov Chain), HN(Hopfield Network), BM(Boltzmann Machine), RBM(Restricted Boltzmann Machine), DBN(Depp Belief Network), DCN(Deep Convolutional Network), DN(Deconvolutional Network), DCIGN(Deep Convolutional Inverse Graphics Network), GAN(Generative Adversarial Network), LSM(Liquid State Machine), ELM(Extreme Learning Machine), ESN(Echo State Network), DRN(Deep Residual Network), DNC(Differentiable Neural Computer), NTM(Neural Turning Machine), CN(Capsule Network), KN(Kohonen Network) 및 AN(Attention Network)를 포함할 수 있으나 이에 한정되는 것이 아닌 임의의 뉴럴 네트워크를 포함할 수 있음은 통상의 기술자가 이해할 것이다.Neural networks include CNN, RNN, perceptron, multi-layer perceptron, FF (Feed Forward), RBF (Radial Basis Network), DFF (Deep Feed Forward), LSTM (Long Short Term Memory), GRU (Gated Recurrent Unit), AE ( Auto Encoder), VAE (Variational Auto Encoder), DAE (Denoising Auto Encoder), SAE (Sparse Auto Encoder), MC (Markov Chain), HN (Hopfield Network), BM (Boltzmann Machine), RBM (Restricted Boltzmann Machine), Depp Belief Network (DBN), Deep Convolutional Network (DCN), Deconvolutional Network (DN), Deep Convolutional Inverse Graphics Network (DCIGN), Generative Adversarial Network (GAN), Liquid State Machine (LSM), Extreme Learning Machine (ELM), It may include Echo State Network (ESN), Deep Residual Network (DRN), Differential Neural Computer (DNC), Neural Turning Machine (NTM), Capsule Network (CN), Kohonen Network (KN), and Attention Network (AN). Those skilled in the art will understand that it is not limited to this and may include any neural network.

본 개시의 예시적인 실시예에 따르면, 프로세서는 GoogleNet, AlexNet, VGG Network 등과 같은 CNN(Convolution Neural Network), R-CNN(Region with Convolution Neural Network), RPN(Region Proposal Network), RNN(Recurrent Neural Network), S-DNN(Stacking-based deep Neural Network), S-SDNN(State-Space Dynamic Neural Network), Deconvolution Network, DBN(Deep Belief Network), RBM(Restrcted Boltzman Machine), Fully Convolutional Network, LSTM(Long Short-Term Memory) Network, Classification Network, Generative Modeling, eXplainable AI, Continual AI, Representation Learning, AI for Material Design, 자연어 처리를 위한 BERT, SP-BERT, MRC/QA, Text Analysis, Dialog System, GPT-3, GPT-4, 비전 처리를 위한 Visual Analytics, Visual Understanding, Video Synthesis, ResNet 데이터 지능을 위한 Anomaly Detection, Prediction, Time-Series Forecasting, Optimization, Recommendation, Data Creation 등 다양한 인공지능 구조 및 알고리즘을 이용할 수 있으며, 이에 제한되지 않는다. 이하, 첨부된 도면을 참조하여 본 개시의 실시예를 상세하게 설명한다.According to an exemplary embodiment of the present disclosure, the processor may support a Convolution Neural Network (CNN), a Region with Convolution Neural Network (R-CNN), a Region Proposal Network (RPN), a Recurrent Neural Network (RNN), such as GoogleNet, AlexNet, VGG Network, etc. ), S-DNN (Stacking-based deep Neural Network), S-SDNN (State-Space Dynamic Neural Network), Deconvolution Network, DBN (Deep Belief Network), RBM (Restrcted Boltzman Machine), Fully Convolutional Network, LSTM (Long Short-Term Memory) Network, Classification Network, Generative Modeling, eXplainable AI, Continual AI, Representation Learning, AI for Material Design, BERT for natural language processing, SP-BERT, MRC/QA, Text Analysis, Dialog System, GPT-3 , GPT-4, Visual Analytics for vision processing, Visual Understanding, Video Synthesis, and Anomaly Detection, Prediction, Time-Series Forecasting, Optimization, Recommendation, and Data Creation for ResNet data intelligence. , but is not limited to this. Hereinafter, embodiments of the present disclosure will be described in detail with reference to the attached drawings.

도 1은 본 개시의 실시예에 따른 쿠버네티스 클러스터(200)의 모니터링을 위한 통합 보안 관제 장치(100)의 블록도이다.Figure 1 is a block diagram of an integrated security control device 100 for monitoring a Kubernetes cluster 200 according to an embodiment of the present disclosure.

다만, 몇몇 실시예에서 통합 보안 관제 장치(100)는 도 1에 도시된 구성요소보다 더 적은 수의 구성요소나 더 많은 구성요소를 포함할 수도 있다.However, in some embodiments, the integrated security control device 100 may include fewer or more components than those shown in FIG. 1 .

아래 실시예에서는, 쿠버네티스 클러스터(200)의 모니터링을 위한 통합 보안 관제 장치(100)를 통합 보안 관제 장치(100)로 명칭하돌고 한다.In the embodiment below, the integrated security control device 100 for monitoring the Kubernetes cluster 200 is referred to as the integrated security control device 100.

도 1을 참조하면, 본 개시의 실시예에 따른 쿠버네티스 클러스터(200)의 모니터링을 위한 통합 보안 관제 장치(100)는 프로세서(110), 통신부(120) 및 저장부(130)를 포함한다.Referring to FIG. 1, the integrated security control device 100 for monitoring the Kubernetes cluster 200 according to an embodiment of the present disclosure includes a processor 110, a communication unit 120, and a storage unit 130. .

본 개시의 실시예에 따른 통합 보안 관제 장치(100)는 서버 장치(100)를 포함하도록 구성될 수 있으며, 쿠버네티스 클러스터(200)의 모니터링을 위한 통합 보안 관제 서버일 수 있다.The integrated security control device 100 according to an embodiment of the present disclosure may be configured to include a server device 100 and may be an integrated security control server for monitoring the Kubernetes cluster 200.

다만, 몇몇 실시예에서 통합 보안 관제 장치(100)는 도 1에 도시된 구성요소보다 더 적은 수의 구성요소나 더 많은 구성요소를 포함할 수도 있다.However, in some embodiments, the integrated security control device 100 may include fewer or more components than those shown in FIG. 1 .

통합 보안 관제 장치(100)는 저장부(130)에 저장된 인스트럭션을 실행하는 하나 이상의 프로세서(110)를 포함한다.The integrated security control device 100 includes one or more processors 110 that execute instructions stored in the storage unit 130.

프로세서(110)는 본 장치(100) 내의 구성요소들의 동작을 제어하기 위한 알고리즘 또는 알고리즘을 재현한 프로그램에 대한 데이터를 저장하는 저장부(130), 및 저장부(130)에 저장된 데이터를 이용하여 전술한 동작을 수행하는 적어도 하나의 프로세서(110)로 구현될 수 있다. 이때, 저장부(130)와 프로세서(110)는 각각 별개의 칩으로 구현될 수 있다. 또는, 저장부(130)와 프로세서(110)는 단일 칩으로 구현될 수도 있다.The processor 110 uses a storage unit 130 to store data about an algorithm for controlling the operation of components within the device 100 or a program that reproduces the algorithm, and the data stored in the storage unit 130. It may be implemented with at least one processor 110 that performs the above-described operations. At this time, the storage unit 130 and the processor 110 may each be implemented as separate chips. Alternatively, the storage unit 130 and the processor 110 may be implemented as a single chip.

또한, 프로세서(110)는 이하의 도면에서 설명되는 본 개시에 따른 다양한 실시 예들을 본 장치(100) 상에서 구현하기 위하여, 위에서 살펴본 구성요소들을 중 어느 하나 또는 복수를 조합하여 제어할 수 있다.In addition, the processor 110 may control any one or a combination of the components described above in order to implement various embodiments according to the present disclosure described in the drawings below on the device 100.

프로세서(110)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 본 장치(100)의 전반적인 동작을 제어할 수 있다. 프로세서(110)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 저장부(130)에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.In addition to operations related to the application program, the processor 110 may generally control the overall operation of the device 100. The processor 110 can provide or process appropriate information or functions to the user by processing signals, data, information, etc. input or output through the components discussed above, or by running an application program stored in the storage unit 130. .

또한, 프로세서(110)는 저장부(130)에 저장된 응용 프로그램을 구동하기 위하여, 본 장치(100)의 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 프로세서(110)는 상기 응용 프로그램의 구동을 위하여, 본 장치(100)에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작 시킬 수 있다.Additionally, the processor 110 may control at least some of the components of the device 100 to run an application program stored in the storage unit 130. Furthermore, the processor 110 may operate in combination with at least two or more of the components included in the device 100 in order to run the application program.

통신부(120)는 통합 보안 관제 장치(100)를 하나 이상의 네트워크에 연결하는 하나 이상의 모듈을 포함할 수 있다.The communication unit 120 may include one or more modules that connect the integrated security control device 100 to one or more networks.

통신부(120)는 외부 장치와 통신을 가능하게 하는 하나 이상의 구성 요소를 포함할 수 있으며, 예를 들어, 방송 수신 모듈, 유선통신 모듈, 무선통신 모듈, 근거리 통신 모듈, 위치정보 모듈 중 적어도 하나를 포함할 수 있다.The communication unit 120 may include one or more components that enable communication with an external device, for example, at least one of a broadcast reception module, a wired communication module, a wireless communication module, a short-range communication module, and a location information module. It can be included.

유선 통신 모듈은, 지역 통신(Local Area Network; LAN) 모듈, 광역 통신(Wide Area Network; WAN) 모듈 또는 부가가치 통신(Value Added Network; VAN) 모듈 등 다양한 유선 통신 모듈뿐만 아니라, USB(Universal Serial Bus), HDMI(High Definition Multimedia Interface), DVI(Digital Visual Interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 다양한 케이블 통신 모듈을 포함할 수 있다.Wired communication modules include various wired communication modules such as Local Area Network (LAN) modules, Wide Area Network (WAN) modules, or Value Added Network (VAN) modules, as well as USB (Universal Serial Bus) modules. ), HDMI (High Definition Multimedia Interface), DVI (Digital Visual Interface), RS-232 (recommended standard 232), power line communication, or POTS (plain old telephone service).

무선 통신 모듈은 와이파이(Wifi) 모듈, 와이브로(Wireless broadband) 모듈 외에도, GSM(global System for Mobile Communication), CDMA(Code Division Multiple Access), WCDMA(Wideband Code Division Multiple Access), UMTS(universal mobile telecommunications system), TDMA(Time Division Multiple Access), LTE(Long Term Evolution), 4G, 5G, 6G 등 다양한 무선 통신 방식을 지원하는 무선 통신 모듈을 포함할 수 있다.In addition to Wi-Fi modules and WiBro (Wireless broadband) modules, wireless communication modules include GSM (global System for Mobile Communication), CDMA (Code Division Multiple Access), WCDMA (Wideband Code Division Multiple Access), and UMTS (universal mobile telecommunications system). ), TDMA (Time Division Multiple Access), LTE (Long Term Evolution), 4G, 5G, 6G, etc. may include a wireless communication module that supports various wireless communication methods.

무선 통신 모듈은 통신 신호를 송신하는 안테나 및 송신기(Transmitter)를 포함하는 무선 통신 인터페이스를 포함할 수 있다. 또한, 무선 통신 모듈은 프로세서(110)의 제어에 따라 무선 통신 인터페이스를 통해 프로세서(110)로부터 출력된 디지털 제어 신호를 아날로그 형태의 무선 신호로 변조하는 신호 변환 모듈을 더 포함할 수 있다.The wireless communication module may include a wireless communication interface including an antenna and a transmitter that transmits communication signals. In addition, the wireless communication module may further include a signal conversion module that modulates a digital control signal output from the processor 110 through a wireless communication interface into an analog wireless signal under the control of the processor 110.

근거리 통신 모듈은 근거리 통신(Short range communication)을 위한 것으로서, 블루투스(Bluetooth??), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra-Wideband), ZigBee, NFC(Near Field Communication), Wi-Fi(Wireless-Fidelity), Wi-Fi Direct, Wireless USB(Wireless Universal Serial Bus) 기술 중 적어도 하나를 이용하여, 근거리 통신을 지원할 수 있다.The short-range communication module is for short-range communication and includes Bluetooth®, RFID (Radio Frequency Identification), Infrared Data Association (IrDA), UWB (Ultra-Wideband), ZigBee, and NFC ( Near Field Communication), Wi-Fi (Wireless-Fidelity), Wi-Fi Direct, and Wireless USB (Wireless Universal Serial Bus) technology can be used to support short-distance communication.

저장부(130)는 본 장치(100)의 다양한 기능을 지원하는 데이터를 저장할 수 있다. 저장부(130)는 본 장치(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 본 장치(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 본 장치(100)의 기본적인 기능을 위하여 존재할 수 있다. 한편, 응용 프로그램은, 저장부(130)에 저장되고, 장치(100)에 설치되어, 프로세서(110)에 의하여 동작(또는 기능)을 수행하도록 구동될 수 있다.The storage unit 130 can store data supporting various functions of the device 100. The storage unit 130 may store a number of application programs (application programs or applications) running on the device 100, data for operating the device 100, and commands. At least some of these application programs may exist for the basic functions of the device 100. Meanwhile, the application program may be stored in the storage unit 130, installed in the device 100, and driven to perform an operation (or function) by the processor 110.

저장부(130)는 본 장치(100)의 다양한 기능을 지원하는 데이터와, 프로세서(110)의 동작을 위한 프로그램을 저장할 수 있고, 입/출력되는 데이터들(예를 들어, 음악 파일, 정지영상, 동영상 등)이 저장될 수 있고, 본 장치(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 본 장치(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다.The storage unit 130 can store data supporting various functions of the device 100 and a program for the operation of the processor 110, and can store input/output data (e.g., music files, still images, etc.). , videos, etc.) can be stored, and a plurality of application programs (application programs or applications) running on the device 100, data for operation of the device 100, and commands can be stored. At least some of these applications may be downloaded from an external server via wireless communication.

이러한, 저장부(130)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), SSD 타입(Solid State Disk type), SDD 타입(Silicon Disk Drive type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(random access memory; RAM), SRAM(static random access memory), 롬(read-only memory; ROM), EEPROM(electrically erasable programmable read-only memory), PROM(programmable read-only memory), 자기 메모리, 자기 디스크 및 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 또한, 저장부(130)는 본 장치(100)와는 분리되어 있으나, 유선 또는 무선으로 연결된 데이터베이스가 될 수도 있다.The storage unit 130 is of a flash memory type, hard disk type, solid state disk type, SDD type (Silicon Disk Drive type), and multimedia card micro type. card micro type), card type memory (e.g. SD or XD memory, etc.), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), EEPROM (electrically It may include at least one type of storage medium among erasable programmable read-only memory (PROM), programmable read-only memory (PROM), magnetic memory, magnetic disk, and optical disk. Additionally, the storage unit 130 is separate from the device 100, but may be a database connected by wire or wirelessly.

또한, 저장부(130)는 통합 보안 관제 장치(100)를 위한 복수의 프로세스를 구비할 수 있다.Additionally, the storage unit 130 may include a plurality of processes for the integrated security control device 100.

도 2는 쿠버네티스 클러스터(200)의 예시도이다.Figure 2 is an example diagram of a Kubernetes cluster 200.

도 3은 오버레이 네트워크가 적용된 쿠버네티스 클러스터(200)를 예시한 도면이다.Figure 3 is a diagram illustrating a Kubernetes cluster 200 to which an overlay network is applied.

먼저, 도 2를 참조하여 먼저, 쿠버네티스 클러스터(200)에 대하여 간략하게 설명하도록 한다.First, with reference to FIG. 2, the Kubernetes cluster 200 will be briefly described.

마스터 노드(Master Node)는 쿠버네티스 클러스터(200) 전체를 컨트롤하는 시스템으로, 마스터 노드는 API SERVER를 통해 쿠버네티스를 관리하고, 모든 구성들은 API SERVER를 통해서 통신한다.The Master Node is a system that controls the entire Kubernetes cluster 200. The Master Node manages Kubernetes through the API SERVER, and all configurations communicate through the API SERVER.

마스터 노드는 API SERVER, etcd, Kube-Scheduler, Kube-Controller를 포함한다.Master node includes API SERVER, etcd, Kube-Scheduler, and Kube-Controller.

API SERVER는 kubectl과 같은 클라이언트로부터 오는 요청을 받고, API 오브젝트를 구성한다.API SERVER receives requests from clients such as kubectl and constructs API objects.

API SERVER는 쿠버네티스 내부의 모든 구성들이 서로 호출하기 위해 사용하는 구성으로, kubectl의 요청뿐만 아니라 내부 모듈의 요청을 처리하고 권한을 체크하고 요청을 거부할 수 있다. API SERVER는 노드에서 실행중인 컨테이너의 로그를 확인하는 디버거 역할도 가능하다.API SERVER is a configuration that all configurations within Kubernetes use to call each other. It can process requests from internal modules as well as requests from kubectl, check permissions, and reject requests. API SERVER can also serve as a debugger to check the logs of containers running on a node.

etcd는 쿠버네티스 클러스터(200)의 데이터베이스 역할을 하는 서버로, 클러스터의 모든 설정, 상태에 관한 데이터를 저장할 수 있다.etcd is a server that acts as a database for the Kubernetes cluster 200 and can store data about all settings and status of the cluster.

etcd는 클러스터 안의 각 구성요소들에 대한 정보가 키-값 형태로 저장되는 데이터베이스이다.etcd is a database where information about each component in the cluster is stored in key-value format.

Kube-Scheduler는 쿠버네티스의 스케쥴러이며, 새로 생성된 pod가 실행될 노드를 선택한다. 스케쥴링이란 pod를 실행할 노드를 정하는 것을 의미한다.Kube-Scheduler is the scheduler in Kubernetes and selects the node on which the newly created pod will run. Scheduling means determining the node on which to run a pod.

Kube-Scheduler는 pod(pod), 서비스 등 각 리소스들을 적절한 노드에 할당하는 역할을 담당하며, pod을 어떤 노드에서 실행할지 결정하고, 노드에 배치된 pod은 각 노드의 kubelet에 의해 컨테이너로 생성된다.The Kube-Scheduler is responsible for allocating each resource, such as pods and services, to the appropriate node. It determines which node to run the pod on, and the pod placed on the node is created as a container by the kubelet of each node. .

Kube-Controller는 쿠버네티스의 ReplicaSet, Deployment 등 컨트롤러를 관리하고 적절한 노드에 할당하는 역할을 담당하며, 각 컨트롤러에게 pod의 복제, 배포 등의 명령을 수행한다.Kube-Controller is responsible for managing controllers such as ReplicaSet and Deployment in Kubernetes and assigning them to appropriate nodes, and executes commands such as pod replication and deployment to each controller.

워커 노드(Worker Node)는 마스터 노드로부터 명령을 받고 실제 워크 로드를 생성하여 서비스하는 구성이다.Worker Node is a configuration that receives commands from the master node and creates and services actual workload.

워커 노드는 실제 컨테이너들이 생성되는 가상 머신 또는 물리적인 서버로, 각각 서버에 라벨을 붙여서 사용 목적을 정의할 수도 있으며, API SERVER의 요청을 kubelet을 통해 수행할 수 있다.Worker nodes are virtual machines or physical servers where actual containers are created. Each server can be labeled to define its purpose, and API SERVER requests can be made through kubelet.

워커 노드는 kubelet, kube-proxy, Container Runtime, Addons, cAdvisor를 포함할 수 있다.Worker nodes can include kubelet, kube-proxy, Container Runtime, Addons, and cAdvisor.

Kubelet은 노드에 배포되는 agent로 마스터 노드의 API SERVER와 통신하는 역할을 담당한다.Kubelet is an agent deployed on a node and is responsible for communicating with the API SERVER of the master node.

Kubelet은 마스터 노드의 API SERVER로부터 수행할 명령을 받아서 워커 노드를 수행시키며, 워커 노드의 상태를 마스터 노드로 전달한다.Kubelet receives commands to be executed from the API SERVER of the master node, executes the worker node, and transmits the status of the worker node to the master node.

Kubelet은 해당 컨테이너가 정상적으로 동작하는지 지속적으로 모니터링하며, 주기적으로 API SERVER와 통신하며 마스터와 노드 간에 필요한 정보를 주고받는다. (예: 노드의 상태 정보, 리소스 사용량 등)Kubelet continuously monitors whether the container operates normally and periodically communicates with the API SERVER to exchange necessary information between the master and the node. (e.g. node status information, resource usage, etc.)

Kube-proxy는 노드에 할당된 pod로 연결되는 네트워크를 관리하며, 노드로 오는 트래픽을 적절한 컨테이너로 프록시하고 노드와 마스터 노드 간의 네트워크 통신을 관리한다.Kube-proxy manages the network connected to the pods assigned to the node, proxying traffic coming to the node to the appropriate container, and managing network communication between the node and the master node.

Kube-proxy는 클러스터 내부에 별도의 가상 네트워크가 동작할 수 있도록 하며, TCP, UDP, SCTP 스트림을 포워딩하고, 여러 개의 pod를 라운드 로빈 형태로 묶어서 서비스를 제공할 수 있다.Kube-proxy allows a separate virtual network to operate within the cluster, forwards TCP, UDP, and SCTP streams, and can provide services by grouping multiple pods in a round-robin format.

Kube-proxy는 노드로 들어오는 트래픽을 적절한 컨테이너로 라우팅, 로드밸런싱, 프록시하며 통신을 관리할 수 있다.Kube-proxy can manage communications by routing, load balancing, and proxying traffic coming into a node to appropriate containers.

Container Runtime은 pod를 통해서 배포된 컨테이너를 실제로 실행시키며, 컨테이너 런타임 중에서 대표적인 예로 도커(Docker)가 있고, 그 외에 갓, runc 같은 런타임도 지원한다.Container Runtime actually runs containers deployed through pods. A representative example of container runtimes is Docker, and other runtimes such as God and runc are also supported.

Addons는 클러스터 내부에서 필요한 기능을 실행시키기 위한 pod이다.Addons are pods that run necessary functions within the cluster.

cAdvisor는 노드의 모니터링 agent로 노드에서 가동되는 컨테이너들의 상태정보를 수집하여 마스터 노드의 API SERVER로 전달한다.cAdvisor is a node's monitoring agent that collects status information of containers running on the node and delivers it to the master node's API SERVER.

쿠버네티스에서 kubectl은 쿠버네티스 클러스터(200)를 조작하기 위한 커맨드 라인 인터페이스(CLI)이다.In Kubernetes, kubectl is a command line interface (CLI) for manipulating the Kubernetes cluster 200.

pod는 쿠버네티스 클러스터(200)에서 컨테이너를 실행하는 최소 단위이며, pod는 하나 혹은 여러 개의 컨테이너를 포함한다.A pod is the minimum unit that runs a container in the Kubernetes cluster 200, and a pod includes one or multiple containers.

그리고, 특정 pod에 속하는 컨테이너들은 같은 노드에서 작동한다. 즉, pod는 서로 다른 노드에 설쳐서 존재하지는 않고 하나의 노드에 존재한다.And, containers belonging to a specific pod run on the same node. In other words, pods do not exist on different nodes, but on one node.

이와 같은 쿠버네티스 클러스터(200)는 컨테이너 오케스트레이션 플랫폼으로, 컨테이너화되어 있는 어플리케이션을 배포, 스케일링, 관리하는데 사용되며, 쿠버네티스는 대규모 분산 시스템에서 확장성, 신뢰성 및 유연성을 제공하므로 보안관제 시스템 등에서도 매우 유용하게 사용될수 있다.This Kubernetes cluster 200 is a container orchestration platform that is used to deploy, scale, and manage containerized applications. Since Kubernetes provides scalability, reliability, and flexibility in a large-scale distributed system, it is used in security control systems, etc. It can also be very useful.

도 3을 참조하면, 오버레이 네트워크가 적용된 쿠버네티스 클러스터(200)가 예시되어 있다.Referring to FIG. 3, a Kubernetes cluster 200 to which an overlay network is applied is illustrated.

Pod은 적어도 하나의 컨테이너를 포함하며, 파드 내부에 컨테이너끼리는 포트 정보만으로 네트워크를 공유할 수 있다.A Pod contains at least one container, and containers within a Pod can share a network with only port information.

Pod 내의 컨테이너는 veth(Virtual Ethernet Devices) 네트워크를 같이 공유한다.Containers within a Pod share the veth (Virtual Ethernet Devices) network.

컨테이너 내부에는 웹 서버 같은 것들이 동작을 하는데, 이것들은 동작 결과에 대한 로그를 남긴다.Inside the container, things like web servers operate, and they leave logs of the results of their operations.

네트워크 네임 스페이스는 서로 연결되기 전까지는 독립적으로 동작한다. 이 때 서로의 네트워크 네임스페이스를 연결시켜주는 역할을 하는 것이 veth(Virtual Ethernet)라는 가상장치이다.Network namespaces operate independently until they are connected to each other. At this time, the role of connecting network namespaces is a virtual device called veth (Virtual Ethernet).

이렇게 베스로 양쪽 끝을 서로 다른 네트워크 네임스페이스 또는 장치에 연결할 수 있으므로 베스쌍(veth pair)이라고도 한다.Because both ends of a veth can be connected to different network namespaces or devices, it is also called a veth pair.

쿠버네티스는 kubenet이라는 아주 기본적이고 간단한 네트워크 플러그인을 제공해준다. 하지만 이 네트워크 플러그인은 크로스 노드 네트워킹이나 네트워크 정책설정과 같은 고급 기능은 구현이 되어있지 않다. 따라서 CNI(Container Network Interface)의 스펙을 준수하는 네트워크 플러그인을 따로 사용해야한다.Kubernetes provides a very basic and simple network plugin called kubenet. However, this network plugin does not implement advanced features such as cross-node networking or network policy settings. Therefore, a separate network plug-in that complies with the CNI (Container Network Interface) specifications must be used.

Pod의 특징 중 하나로 각 Pod는 고유한 IP 주소를 가진다. (이것이 위에서 설명한 가상 네트워크 인터페이스 veth이다.)One of the characteristics of Pods is that each Pod has a unique IP address. (This is the virtual network interface veth described above.)

따라서 각 Pod는 kubenet 혹은 CNI 로 구성된 네트워크 인터페이스를 통하여 고유한 IP 주소로 서로 통신할 수 있다.Therefore, each Pod can communicate with each other using a unique IP address through a network interface configured with kubenet or CNI.

여러 개의 워커 노드 사이에 각각 다른 노드에 존재하는 Pod가 서로 통신하려면 라우터를 거쳐서 통신하게 된다.In order for pods on different nodes among multiple worker nodes to communicate with each other, they communicate through a router.

Pod는 기본적으로 쉽게 대체될 수 있는 존재이기 때문에 Pod to Pod Network만으로는 Kubernetes 시스템을 내구성있게 구축할 수 없다.Because Pods are basically something that can be easily replaced, a Kubernetes system cannot be built durably using a Pod to Pod Network alone.

CNI(Container Network Interface)는 리눅스 컨테이너를 위한 네트워킹으로, 컨테이너 간의 네트워킹을 제어할 수 있는 플러그인을 만들기 위한 표준이다. 컨테이너의 발전이 가속화됨에 따라 다양한 형태로 컨테이너 런타임과 오케스트레이터 사이의 네트워크 계층을 구현하는 방식이 다양하게 분리되어 각자만의 방식으로 발전하게 되는 것을 피하기 위해 공통된 인터페이스를 제공하기 위해 만들어졌다고 하며, 네트워크 인터페이스의 사실상 표준으로 사용되고 있다.CNI (Container Network Interface) is networking for Linux containers and is a standard for creating plug-ins that can control networking between containers. As the development of containers accelerates, it is said that it was created to provide a common interface to avoid the various ways of implementing the network layer between the container runtime and orchestrator being separated and developing in their own way. It is used as a de facto standard for interfaces.

Kubernetes Cluster 내부는 Master Node에 의해 여러 컨테이너가 생성 삭제 복구를 반복하고 있으며, 그에 따라 각 컨테이너의 고정적이지 않고 재할당이 빈번하게 일어난다.Inside the Kubernetes Cluster, multiple containers are repeatedly created, deleted, and restored by the Master Node, and as a result, each container is not fixed and reallocation occurs frequently.

이러한 특징을 해결하기 위해 Kubernetes Cluster는 가상 네트워크가 구성되어 있는데 기본적으로는 Worker Node의 kube-proxy 가 네트워크를 관리하지만 보다 효율적인 네트워크 환경을 구성하기 위해 다양한 네트워크 관련 Addon 이 제공되며, Ingress, Flannel, ACI, Calico, Canal, Cilium, CNI-Genie, Contiv, Multus, NSX-T, Nuage, Romana, Weave Net와 같은 것들이 있다.To solve these characteristics, Kubernetes Cluster consists of a virtual network. Basically, the kube-proxy of the Worker Node manages the network, but various network-related addons are provided to create a more efficient network environment, including Ingress, Flannel, and ACI. , Calico, Canal, Cilium, CNI-Genie, Contiv, Multus, NSX-T, Nuage, Romana, and Weave Net.

서로 다른 노드에 있는 pod 간 통신을 완성하기 위해서는 관련 기능을 제공하는 CNI가 필요하며, Flannel 은 대표적인 CNI 종류 중 하나이다.In order to complete communication between pods on different nodes, a CNI that provides related functions is required, and Flannel is one of the representative types of CNI.

Flannel은 Kubernetes 용으로 설계된 오버레이 네트워크(overlay network)로 L3 네트워크를 구성하는 가장 간단하고 쉬운 방법을 제공한다.Flannel is an overlay network designed for Kubernetes and provides the simplest and easiest way to configure an L3 network.

Flannel 네트워크 모델은 데몬셋으로 실행되며, 노드 개수만큼 Flannel pod가 실행되 수 있다.The Flannel network model runs as a daemon set, and Flannel pods can run as many nodes as there are nodes.

언더레이 네트워크는 실제 장비를 이용하여 물리적인 인프라를 의미하는 것으로, 물리적인 인프라를 구성하는 요소는 네트워크 장비, 보안 장비 그리고 서비스를 제공하는 서버까지 포함되는 포괄적인 의미로 사용된다.An underlay network refers to a physical infrastructure using actual equipment, and the elements that make up the physical infrastructure are used in a comprehensive sense that includes network equipment, security equipment, and servers that provide services.

오버레이 네트워크는 기존 네트워크를 바탕으로 그 위에 구성된 또 다른 네트워크, 기존의 네트워크 위에 별도의 노드들(nodes)과 논리적 링크들(logical links)을 구성하여 이루어진 가상 네트워크이며, 노드들의 네트워크 망을 한개의 네트워크 망처럼 인식하는 것을 오버레이라고 할 수 있다.An overlay network is another network built on top of an existing network, a virtual network made up of separate nodes and logical links on top of the existing network, and the network of nodes is combined into one network. Recognizing it as a network can be called an overlay.

또한, 오버레이 네트워크는 물리적인 인프라를 기반으로 네트워크 가상화 기술을 사용하여 End-to-End 통신을 수행하는 것으로, Tunnel 구성을 한다고 표현할 수 있다.Additionally, an overlay network performs end-to-end communication using network virtualization technology based on physical infrastructure, and can be expressed as a tunnel configuration.

CNI는 물리적으로 떨어져 있는 노드 네트워크 망을 마치 하나의 네트워크 망처럼 인식하여 통신할 수 있으며, 노드의 컨테이너 네트워크 구성은 결국 가상 네트워크이고, 물리적으로 떨어져 있는 가상 네트워크가 한 개의 가상 네트워크처럼 동작해야한다.CNI can recognize and communicate with physically separated node networks as if they were one network, and the node's container network configuration is ultimately a virtual network, and physically separated virtual networks must operate like one virtual network.

NAT는 Network Address Translation으로, Private IP를 Public IP로 변환한 것이다.NAT is Network Address Translation, which converts a private IP into a public IP.

eth0는 physical network interface로 리눅스 시스템에 설치되어 있는 첫 번째 이더넷 카드이며, 컨테이너는 veth, eth0를 통해서 외부와 통신할 수 있다.eth0 is the physical network interface, the first Ethernet card installed in the Linux system, and the container can communicate with the outside through veth and eth0.

네임스페이스(Namespace)는 리소스를 논리적으로 나누기 위한 방법을 제공하는 것이라 할 수 있다.A namespace can be said to provide a way to logically divide resources.

쿠버네티스 환경에서는 노드를 기반으로 논리적으로 구성되어 있는데, NameSpace는 쿠버네티스 오브젝트를 묶는 하나의 그룹이다.In the Kubernetes environment, it is logically organized based on nodes, and NameSpace is a group that binds Kubernetes objects.

Pod는 쿠버네티스에서 관리 가능한 가장 작은 배포 단위이며, pod는 컨테이너를 포함하고 있다. 컨테이너는 pod 안에 있는 앱이라고 볼 수 있다.A pod is the smallest manageable deployment unit in Kubernetes, and a pod contains containers. A container can be thought of as an app inside a pod.

예를 들어, A 회사의 홈페이지가 쿠버네티스 환경에서 동작하고 있다면, A 회사는 NameSpace가 되고, 그 안에 pod가 존재하고, pod에 web server가 컨테이너로 동작하게 된다.For example, if Company A's homepage is running in a Kubernetes environment, Company A becomes a NameSpace, a pod exists within it, and the web server in the pod operates as a container.

본 개시의 실시예에 따른 장치(100)는 쿠버네티스라는 인프라를 모니터링하기 위한 것으로, 네트워크 인터페이스(veth), 포트 등의 네트워크 정보가 필수적으로 필요할 수 있다.The device 100 according to an embodiment of the present disclosure is for monitoring an infrastructure called Kubernetes, and network information such as network interface (veth) and port may be essential.

쿠버네티스 클러스터(200) 내 구성(오브젝트)는 pod만 있는 것이 아니며, label, deployment, statefulset, veth, eth0 등 다양한 구성들이 존재한다.The configuration (object) in the Kubernetes cluster 200 is not limited to pods, and there are various configurations such as label, deployment, statefulset, veth, and eth0.

이러한 구성들을 구분하기 위해 쿠버네티스에서는 네임스페이스(Namespace)를 제공하여 사용한다. 즉, 쿠버네티스에서 네임스페이스는 쿠버네티스 클러스터(200) 내 논리적인 분리 단위이며, 클러스터 내의 오브젝트들을 네임스페이스를 통해 논리적인 분리를 시키게 된다.To distinguish these configurations, Kubernetes provides and uses a namespace. That is, in Kubernetes, a namespace is a logical separation unit within the Kubernetes cluster 200, and objects within the cluster are logically separated through the namespace.

Namespace는 쿠버네티스 상의 API 오브젝트를 논리적으로 구분하여 그룹핑한다.Namespace logically separates and groups API objects on Kubernetes.

Namespace는 논리적인 그룹에 대하여 권한 관리, CPU & Memory 등 리소스 제한 등을 할 수 있다.Namespace can manage rights for logical groups and limit resources such as CPU and memory.

Namespace의 단위는 사용자 목적에 맞추어 결정한다. 딱 이렇다할 정답이 있는 게 아니다. 가령 다음의 예시처럼 어떤 논리적 단위로 구분할지를 결정할 수 있는 것이다.The unit of namespace is determined according to the user's purpose. There is no exact right answer. For example, you can decide which logical unit to classify into, as shown in the following example.

본 개시의 실시예에서 통합 보안 관제 장치(100)는 보안 관제를 위해 컨테이너 정보, 파드 정보 및 쿠버네티스 클러스터(200) 내 네임스페이 정보가 필수적으로 필요하며, 이에 관한 상세한 내용들은 후술하도록 한다.In an embodiment of the present disclosure, the integrated security control device 100 essentially requires container information, pod information, and namespace information within the Kubernetes cluster 200 for security control, and details regarding this will be described later.

도 4는 개시의 실시예에 따른 쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 방법의 흐름도이다.Figure 4 is a flowchart of an integrated security control method for monitoring a Kubernetes cluster according to an embodiment of the disclosure.

도 5는 감지된 이상 징후에 대한 공격 출발지와 공격 목적지의 위치를 식별한 것을 예시한 도면이다.Figure 5 is a diagram illustrating the identification of the locations of the attack source and attack destination for detected abnormalities.

도 6은 도 5과 같이 식별된 위치와 저장부에 저장된 접속 경로를 기반으로 공격 출발지로부터 공격 목적지의 접속 경로를 식별하는 것을 예시한 도면이다.FIG. 6 is a diagram illustrating identifying the access path from the attack source to the attack destination based on the location identified and the access path stored in the storage as shown in FIG. 5.

본 개시의 실시예에서 통합 보안 관제 장치(100)는 쿠버네티스 클러스터(200)에서 발생하는 이벤트를 통신부(120)를 통해 수집하며, 수집된 이벤트를 기 설정된 보안 규칙을 기반으로 모니터링한다.In an embodiment of the present disclosure, the integrated security control device 100 collects events occurring in the Kubernetes cluster 200 through the communication unit 120, and monitors the collected events based on preset security rules.

그리고, 통합 보안 관제 장치(100)는 모니터링 결과 감시 대상 자산에 이상 징후가 판단되면, 저장부(130)에 저장되어 있는 접속 경로를 기반으로 이상 징후에 대한 공격 출발지로부터 공격 목적지의 접속 경로를 추적한다.And, if the integrated security control device 100 determines that there is an abnormality in the monitored asset as a result of monitoring, it tracks the access path from the attack source to the attack destination for the abnormality based on the access path stored in the storage unit 130. do.

프로세서(110)는 로그 및 이벤트의 상관 분석 및 검색을 이용하여 공격 출발지 및 공격 목적지를 식별할 수 있다.The processor 110 can identify the attack source and attack destination using correlation analysis and search of logs and events.

보다 상세하게는, 프로세서(110)는 네트워크 트래픽(bps)이 특정 시점에 임계값 이상일 경우, 해당 시점의 로그 및 이벤트를 확인하여 공격 출발지와 공격 목적지를 식별할 수 있다.More specifically, when network traffic (bps) is greater than a threshold at a specific point in time, the processor 110 can identify the attack source and attack destination by checking logs and events at that point in time.

통합 보안 관제 장치(100)의 저장부(130)는 오버레이 네트워크가 적용된 쿠버네티스 클러스터(200) 내 계층적 구조를 갖는 구성들 각각에 대한 정보와 계층적 구조 및 상기 계층적 구조에 따른 구성들 간의 접속 경로들이 저장되어 있다.The storage unit 130 of the integrated security control device 100 contains information about each component having a hierarchical structure in the Kubernetes cluster 200 to which the overlay network is applied, the hierarchical structure, and components according to the hierarchical structure. The connection paths between them are stored.

본 개시의 실시예에서, 쿠버네티스 클러스터(200) 내 구성(오브젝트)는 Router, eth0, NAT, Flannel, CNI, veth, POD, Container 등을 포함할 수 있으며, 각 구성(오브젝트)들은 다른 구성과 계층적 구조를 갖고 있다. 즉, 저장부(130)는 쿠버네티스 클러스터(200) 내 구성들에 대한 정보는 물론 각 구성과 다른 구성간의 계층적 구조가 저장되어 있다.In an embodiment of the present disclosure, configurations (objects) within the Kubernetes cluster 200 may include Router, eth0, NAT, Flannel, CNI, veth, POD, Container, etc., and each configuration (object) is a different configuration. and has a hierarchical structure. That is, the storage unit 130 stores information about the configurations within the Kubernetes cluster 200 as well as the hierarchical structure between each configuration and other configurations.

예를 들어, 제1 veth는 제1 CNI와 계층적 구조를 갖고 있으며, 제1 CNI는 제1 NAT와 계층적 구조를 갖고 있으며, 제1 NAT는 제1 eth0와 계층적 구조를 갖고 있는 경우, 프로세서(110)는 각 구성들에 관하여 상기 계층적 구조를 인식(식별)할 수 있으며, 제1 veth와 제2 CNI는 계층적 구조가 없음을 식별할 수 있다.For example, if the first veth has a hierarchical structure with the first CNI, the first CNI has a hierarchical structure with the first NAT, and the first NAT has a hierarchical structure with the first eth0, The processor 110 may recognize (identify) the hierarchical structure for each configuration, and may identify that the first veth and the second CNI do not have a hierarchical structure.

도 4를 참조하여, 본 개시의 실시예에 따른 쿠버네티스 클러스터(200)의 모니터링을 위한 통합 보안 관제 방법을 설명하도록 한다.With reference to FIG. 4, an integrated security control method for monitoring the Kubernetes cluster 200 according to an embodiment of the present disclosure will be described.

프로세서(110)가 쿠버네티스 클러스터(200)에서 발생하는 이벤트를 수집한다. (S100)The processor 110 collects events occurring in the Kubernetes cluster 200. (S100)

프로세서(110)는 컨테이너(Container)를 pod 내에 배치하고 노드에서 실행함으로써 워크로드를 구동하는 쿠버네티스(Kubernetes) 클러스터(200)에서 발생하는 이벤트를 통신부(120)를 통해 수집한다.The processor 110 collects events occurring in the Kubernetes cluster 200 that runs the workload by placing containers in pods and running them on nodes through the communication unit 120.

보다 상세하게는, 쿠버네티스 클러스터(200)는 마스터 노드와 마스터 노드에 할당된 적어도 하나의 워커 노드를 포함하며, 각각의 워커 노드는 Kubelet을 포함한다.More specifically, the Kubernetes cluster 200 includes a master node and at least one worker node assigned to the master node, and each worker node includes a Kubelet.

보다 상세하게는, 프로세서(110)는 워커 노드의 Kubelet을 통해 쿠버네티스 클러스터(200)에서 발생하는 이벤트를 수집한다.More specifically, the processor 110 collects events occurring in the Kubernetes cluster 200 through the Kubelet of the worker node.

일 실시예로, 저장부(130)는 이벤트 분류 알고리즘이 저장될 수 있으며, 프로세서(110)는 이벤트 분류 알고리즘을 이용하여 쿠버네티스 클러스터(200)로부터 수집되는 이벤트를 자동으로 분류할 수 있다.In one embodiment, the storage unit 130 may store an event classification algorithm, and the processor 110 may automatically classify events collected from the Kubernetes cluster 200 using the event classification algorithm.

프로세서(110)가 쿠버네티스 클러스터(200)에서 수집된 이벤트를 보안 규칙을 기반으로 모니터링한다. (S200)The processor 110 monitors events collected from the Kubernetes cluster 200 based on security rules. (S200)

프로세서(110)가 S200의 모니터링 결과 이상 징후를 감지한다. (S300)The processor 110 detects abnormalities as a result of monitoring the S200. (S300)

이??, 보안 규칙(보안 정책)은 클라이언트의 보안 자산에 따라 설정된 것일 수 있으며, 보안 규칙에 따라서 모니터링의 주기, 엄격도가 상이할 수도 있고, 이상 징후를 판단하는 기준이 상이할 수 있다.This??, security rules (security policies) may be set according to the client's security assets, and depending on the security rules, the monitoring cycle and severity may be different, and the criteria for determining abnormalities may be different.

또한, 본 개시의 실시예에서 통합 보안 관제 장치(100)는 미리 학습된 인공지능 모델을 보안 관제에 사용할 수 있으며, 인공지능 모델은 보안 규칙을 학습하고 상황에 따라서 보안 규칙을 유동적으로 적용함으로써 자동으로 보안 관제, 모니터링을 실시할 수 있다.In addition, in the embodiment of the present disclosure, the integrated security control device 100 can use a pre-trained artificial intelligence model for security control, and the artificial intelligence model learns security rules and flexibly applies the security rules depending on the situation to automatically This allows security control and monitoring to be carried out.

프로세서(110)가 이상 징후와 관련된 이벤트를 기반으로 공격 출발지와 공격 목적지를 식별한다. (S400)The processor 110 identifies the attack source and attack destination based on events related to abnormalities. (S400)

프로세서(110)가 저장부(130)에 저장되어 있는 접속 경로를 기반으로 감지된 이상 징후에 대한 공격 출발지로부터 공격 목적지까지의 접속 경로를 추적한다. (S500)The processor 110 tracks the connection path from the attack source to the attack destination for detected abnormalities based on the connection path stored in the storage unit 130. (S500)

프로세서(110)는 이상 징후가 감지되어 보안 공격이라고 판단되면, 수집된 이벤트를 기반으로 공격의 출발지와 목적지를 식별할 수 있으며, 저장부에 저장되어 있는 정보를 기반으로 도 5과 같이 쿠버네티스 클러스터 내 공격 출발지와 공격 목적지의 주소를 식별할 수 있게 된다. 이때, 사용되는 정보는 쿠버네티스 클러스터 내 구성(오브젝트)들의 주소에 관한 정보이다.If an abnormality is detected and it is determined that it is a security attack, the processor 110 can identify the source and destination of the attack based on the collected events, and Kubernetes as shown in FIG. 5 based on the information stored in the storage. It is possible to identify the addresses of the attack source and attack destination within the cluster. At this time, the information used is information about the addresses of components (objects) within the Kubernetes cluster.

그리고, 저장부에 쿠버네티스 클러스터 내 구성(오브젝트)들의 주소가 저장되어 있고, 구성들 간의 계층적 구조에 따른 접속 경로에 대한 정보가 저장되어 있으므로, 프로세서(110)는 도 6과 같이 공격 출발지로부터 공격 목적지까지의 모든 경로를 식별할 수 있게 된다.In addition, since the addresses of components (objects) within the Kubernetes cluster are stored in the storage unit and information about the connection path according to the hierarchical structure between the components is stored, the processor 110 is an attack source as shown in FIG. 6. All paths from the attack destination can be identified.

도 6를 참조하여 S500에 관하여 상세하게 설명하도록 한다.S500 will be described in detail with reference to FIG. 6.

도 7은 기존 관제 시스템과 본 개시의 실시예에 따른 쿠버네티스 클러스터(200)의 모니터링을 위한 통합 보안 관제 장치(100)의 관제 시스템(10)의 관제 범위를 비교한 예시 도면이다.FIG. 7 is an example diagram comparing the control range of the control system 10 of the integrated security control device 100 for monitoring the Kubernetes cluster 200 according to the embodiment of the present disclosure with that of the existing control system.

도 6에 도시된 공격 출발지의 pod을 제1 pod로 지칭하고, 제1 pod 내 공격 출발지에 해당하는 구성(오브젝트)를 제1 구성으로 지칭하고, 제1 pod가 속한 veth를 제1 veth, 제1 veth와 접속 경로를 갖는 Flannel, CNI를 제1 Flannel, 제1 CNI로 지칭하고, 제1 Flannel, 제1 CNI와 접속 경로를 갖는 NAT를 제1 NAT, 제1 NAT와 접속 경로를 갖는 eth0를 제1 eth0로 지칭하도록 한다.The pod of the attack starting point shown in FIG. 6 is referred to as the first pod, the configuration (object) corresponding to the attack starting point within the first pod is referred to as the first configuration, and the veth to which the first pod belongs is referred to as the first veth and the first pod. The Flannel and CNI that have a connection path with 1 veth are referred to as the 1st Flannel and the 1st CNI, the NAT that has a connection path with the 1st Flannel and the 1st CNI is referred to as 1st NAT, and the eth0 that has a connection path with the 1st NAT is referred to as 1st Flannel and 1st CNI. Let it be referred to as 1st eth0.

도 6에 도시된 공격 목적지의 pod를 제2 pod로 지칭하고, 제2 pod 내 공격 목적지에 해당하는 구성(오브젝트)를 제2 구성으로 지칭하고, 제2 pod가 속한 veth를 제2 veth, 제2 veth와 접속 경로를 갖는 Flannel, CNI를 제2 Flannel, 제2 CNI로 지칭하고, 제2 Flannel, 제2 CNI와 접속 경로를 갖는 NAT를 제2 NAT, 제2 NAT와 접속 경로를 갖는 eth0를 제2 eth0로 지칭하도록 한다.The pod of the attack destination shown in FIG. 6 is referred to as the second pod, the configuration (object) corresponding to the attack destination within the second pod is referred to as the second configuration, and the veth to which the second pod belongs is referred to as the second veth and the second pod. 2 Flannel and CNI with a connection path with veth are referred to as the 2nd Flannel and 2nd CNI, NAT with a connection path with the 2nd Flannel and 2nd CNI is referred to as 2nd NAT, and eth0 with a connection path with the 2nd NAT is referred to as 2nd Flannel and 2nd CNI. Let it be referred to as 2nd eth0.

프로세서(110)는 이상 징후가 감지된 제1 pod 내 제1 구성에 대한 포트를 공격 출발지로 인식하고, 이상 징후가 감지된 제2 pod 내 제2 구성에 대한 포트를 공격 목적지로 식별한다.The processor 110 recognizes the port for the first configuration in the first pod in which an abnormality symptom was detected as the attack source, and identifies the port for the second configuration in the second pod in which the abnormality symptom was detected as the attack destination.

본 개시의 실시예에서, 도 6를 통해 공격 출발지를 제1 pod 내 제1 컨테이너, 공격 목적지를 제2 pod 내 제2 컨테이너로 예시하였으나, 이는 설명을 위한 예시이며 공격 출발지와 공격 목적지가 반드시 컨테이너로 한정되는 것은 아니다.In an embodiment of the present disclosure, the attack origin is illustrated as the first container in the first pod and the attack destination is illustrated as the second container in the second pod through FIG. 6. However, this is an example for explanation only and the attack origin and attack destination must be containers. It is not limited to.

프로세서(110)는 저장부(130)에 저장되어 있는 쿠버네티스 클러스터(200) 내 구성들의 계층적 구조에 따른 접속 경로를 기반으로, 제1 pod로부터 Router의 제1 경로에 포함된 구성들을 식별하고, 상기 식별된 구성들 간의 접속 경로를 식별할 수 있다.The processor 110 identifies the configurations included in the first path of the router from the first pod based on the connection path according to the hierarchical structure of the configurations in the Kubernetes cluster 200 stored in the storage unit 130. And, the connection path between the identified components can be identified.

프로세서(110)는 저장부(130)에 저장되어 있는 쿠버네티스 클러스터(200) 내 구성들의 계층적 구조에 따른 접속 경로를 기반으로, 제2 pod로부터 Router의 제2 경로에 포함된 구성들을 식별하고, 상기 식별된 구성들 간의 접속 경로를 식별할 수 있다.The processor 110 identifies the configurations included in the second path of the router from the second pod based on the connection path according to the hierarchical structure of the configurations in the Kubernetes cluster 200 stored in the storage unit 130. And, the connection path between the identified components can be identified.

제1 경로에 포함된 구성들은 제1 pod가 속한 제1 veth(Virtual Ethernet Devices), 제1 CNI, 제1 NAT(Network Address Translation) 및 제1 eth0를 포함한다.Configurations included in the first path include the first veth (Virtual Ethernet Devices) to which the first pod belongs, the first CNI, the first NAT (Network Address Translation), and the first eth0.

제2 경로에 포함된 구성들은 제2 pod가 속한 제2 veth(Virtual Ethernet Devices), 제2 CNI, 제2 NAT(Network Address Translation) 및 제2 eth0를 포함한다.Configurations included in the second path include the second veth (Virtual Ethernet Devices) to which the second pod belongs, the second CNI, the second NAT (Network Address Translation), and the second eth0.

프로세서(110)는 상기 저장부(130)에 저장된 접속 경로를 기반으로, 상기 제1 pod가 속한 제1 veth(Virtual Ethernet Devices)로부터 제1 CNI의 접속 경로, 상기 제1 CNI로부터 제1 NAT(Network Address Translation)의 접속 경로, 상기 제1 NAT로부터 제1 eth0의 접속 경로, 상기 제1 eth0로부터 Router의 접속 경로, 상기 Router로부터 제2 eth0의 접속 경로, 상기 제2 eth0로부터 제2 NAT의 접속 경로, 상기 제2 NAT로부터 제2 CNI의 접속 경로, 상기 제2 CNI로부터 제2 pod이 속한 제2 veth의 접속 경로를 식별할 수 있다.Based on the connection path stored in the storage unit 130, the processor 110 determines the connection path of the first CNI from the first veth (Virtual Ethernet Devices) to which the first pod belongs, and the first NAT from the first CNI ( Network Address Translation) connection path, the connection path of the first eth0 from the first NAT, the connection path of the router from the first eth0, the connection path of the second eth0 from the router, the connection of the second NAT from the second eth0 The path, the connection path of the second CNI from the second NAT, and the connection path of the second veth to which the second pod belongs from the second CNI can be identified.

또한, 저장부(130)는 쿠버네티스 클러스터(200) 내 파드, 컨테이너 및 네임스페이스에 관한 정보와 상기 쿠버네티스 클러스터(200) 내 구성들의 정보를 확인하기 위해 미리 결정된 명령어가 저장되어 있다.Additionally, the storage unit 130 stores predetermined commands to check information about pods, containers, and namespaces within the Kubernetes cluster 200 and information about components within the Kubernetes cluster 200.

일 실시예로, 장치(100)는 컨테이너 노드에서 "ifconfig -1"를 입력하여 네트워크 인터페이스 정보를 획득할 수 있으며, 상세하게는 eth0, Flannel, cni0의 주소, veth, Iface의 정보를 획득할 수 있고, 파드에 접속하기 위한 네임스페이스명, 파드명을 확인할 수 있다. 또한, 장치(100)는 "kubectl exec -it pod명 -n 네임스페이스명 -bash"를 입력함으로써 파드로 접속할 수 있고, 파드에서 "ifconfig -a"를 입력함으로써 파드의 IP 정보를 확인할 수 있다.In one embodiment, the device 100 can obtain network interface information by entering “ifconfig -1” on the container node, and in detail, can obtain information on the addresses of eth0, Flannel, cni0, veth, and Iface. You can check the namespace name and pod name to connect to the pod. Additionally, the device 100 can connect to the Pod by entering “kubectl exec -it pod name -n namespace name -bash” and check the IP information of the Pod by entering “ifconfig -a” in the Pod.

프로세서(110)는 기 설정된 시간마다 미리 결정된 명령어를 이용하여 쿠버네티스 클러스터(200) 내 구성(오브젝트)들의 정보를 확인하고, 저장부(130)에 저장되어 있는 정보를 업데이트 한다.The processor 110 uses predetermined instructions at preset times to check information on components (objects) within the Kubernetes cluster 200 and updates information stored in the storage unit 130.

보다 상세하게는, 프로세서(110)는 기 설정된 시간마다 미리 결정된 명령어를 이용하여 쿠버네티스 클러스터(200) 내 구성(오브젝트)들의 정보를 확인한다. 그리고, 프로세서(110)는 확인된 정보가 저장부(130)에 저장되어 있는 정보와 다른 경우, 삭제된 정보를 반영하거나, 변경된 정보를 반영하거나, 신규로 생성된 정보를 반영하도록 한다.More specifically, the processor 110 verifies information on components (objects) within the Kubernetes cluster 200 using predetermined instructions at preset times. And, if the confirmed information is different from the information stored in the storage unit 130, the processor 110 reflects deleted information, changed information, or newly created information.

본 개시의 실시예에서 통합 보안 관제 장치(100)는 쿠버네티스 클러스터(200) 내 구성(오브젝트)들에 대한 정보(예: 위치, 주소)와 각 구성(오브젝트)들 간의 계층적 구조에 따른 접속 경로가 저장되어 있으며, 위와 같은 동작(프로세스)를 통해서 기 설정된 시간(주기)마다 저장되어 있는 정보들을 업데이트할 수 있게 된다.In an embodiment of the present disclosure, the integrated security control device 100 provides information (e.g., location, address) about the configurations (objects) within the Kubernetes cluster 200 and the hierarchical structure between each configuration (object). The access path is stored, and the stored information can be updated at preset times (cycles) through the above operation (process).

이때, 명령어는 쿠버네티스 클러스터(200) 내 파드, 컨테이너 및 네임스페이스에 관한 정보와 쿠버네티스 클러스터(200) 내 구성(오브젝트)들의 정보를 확인하기 위해 미리 결정된 명령어일 수 있다.At this time, the command may be a predetermined command to check information about pods, containers, and namespaces within the Kubernetes cluster 200 and information about components (objects) within the Kubernetes cluster 200.

프로세서(110)는 상기 미리 결정된 명령어를 이용하여 쿠버네티스 클러스터(200) 내 eth0, flannel 및 cni의 정보(예: 주소)를 확인할 수 있다.The processor 110 can check information (e.g., addresses) of eth0, flannel, and cni in the Kubernetes cluster 200 using the predetermined command.

또한, 프로세서(110)는 쿠버네티스 클러스터(200)로부터 수집된 이벤트를 기반으로 쿠버네티스 클러스터(200) 내 기존 pod의 삭제 또는 신규 pod의 생성을 감지할 수 있으며, 감지된 결과를 기반으로 저장부(130) 내 저장되어 있는 데이터를 업데이트 할 수 있다. 이때, 업데이트 대상 데이터는 pod와 관련된 데이터를 의미한다.In addition, the processor 110 can detect the deletion of an existing pod or the creation of a new pod within the Kubernetes cluster 200 based on events collected from the Kubernetes cluster 200, and based on the detected results, Data stored in the storage unit 130 can be updated. At this time, the data to be updated refers to data related to the pod.

일 실시예로, 프로세서(110)는 쿠버네티스 클러스터(200) 내 기존 pod가 삭제되거나 신규 pod가 생성되는 경우, 저장부(130)에 저장되어 있는 계층적 구조 및 계층적 구조에 따른 구성(오브젝트)들 간의 접속 경로에 대한 정보를 기반으로 저장부(130)에 저장되어 있는 데이터를 업데이트할 수 있다.In one embodiment, when an existing pod in the Kubernetes cluster 200 is deleted or a new pod is created, the processor 110 deletes the hierarchical structure stored in the storage unit 130 and the configuration according to the hierarchical structure ( Data stored in the storage unit 130 can be updated based on information about the connection path between objects.

프로세서(110)는 쿠버네티스 클러스터(200) 내 접속 경로 또는 구성(오브젝트)에 대하여 기 설정된 제1 횟수를 초과하는 접속 시도가 감지되는 경우, 해당 접속 시도를 이상 징후로 판단할 수 있다.When a connection attempt exceeding a preset first number is detected for a connection path or configuration (object) within the Kubernetes cluster 200, the processor 110 may determine the connection attempt to be an abnormality symptom.

일 실시예로, 제1 횟수는 쿠버네티스 클러스터(200) 내 계층적 구조를 갖는 상기 구성(오브젝트)들 간의 접속 경로마다 설정되어 있을 수 있다. 구체적으로는, 접속 경로에 따라 제1 횟수가 상이할 수도 있다는 것을 의미한다.In one embodiment, the first number of times may be set for each connection path between the components (objects) having a hierarchical structure within the Kubernetes cluster 200. Specifically, this means that the first number of times may be different depending on the connection path.

프로세서(110)는 접속 경로마다 설정되어 있는 제1 횟수를 기반으로, 상기 접속 시도를 이상 징후로 판단할 수 있다.The processor 110 may determine the connection attempt as an abnormality symptom based on the first number of times set for each connection path.

일 실시예로, 쿠버네티스 클러스터(200) 내 구성(오브젝트)마다 보안 중요도가 설정되어 있을 수 있으며, 접속 경로마다 보안 중요도가 설정되어 있을 수 있다.In one embodiment, a security priority may be set for each configuration (object) within the Kubernetes cluster 200, and a security priority may be set for each connection path.

일 실시예로, 프로세서(110)는 인공지능 모델을 이용하여 쿠버네티스 클러스터(200) 내 구성(오브젝트)에 대하여 설정되어 있는 보안 중요도를 기반으로 접속 경로마다 보안 중요도를 산출할 수 있다.In one embodiment, the processor 110 may use an artificial intelligence model to calculate the security importance of each connection path based on the security importance set for the configuration (object) within the Kubernetes cluster 200.

프로세서(110)는 이상 징후에 대하여 식별된 공격 출발지, 공격 목적지 및 공격 출발지로부터 공격 목적지에 포함된 접속 경로 상의 구성(오브젝트)들과 접속 시도의 횟수를 기반으로 보안 위험도를 산출할 수 있다.The processor 110 may calculate the security risk based on the identified attack source, attack destination, and configuration (objects) on the connection path included in the attack destination from the attack source and the number of connection attempts for abnormal signs.

이때, 프로세서(110)는 공격 목적지, 공격 출발지와 공격 출발지로부터 공격 목적지에 포함된 접속 경로 상의 구성들에 대하여 설정되어 있는 보안 중요도를 고려하여 보안 위험도를 산출할 수 있다. 즉, 똑같은 접속 시도 횟수의 공격이라도 자산의 보안 중요도에 따라서 상이한 보안 위험도가 산출될 수 있다.At this time, the processor 110 may calculate the security risk by considering the security importance set for the attack destination, the attack source, and the configurations on the connection path included in the attack destination from the attack source. In other words, even attacks with the same number of access attempts may result in different security risks depending on the security importance of the asset.

일 실시예로, 프로세서(110)는 기 설정된 크기 이상의 데이터 접속 시도가 쿠버네티스 클러스터(200) 내 접속 경로 또는 구성(오브젝트)에 대하여 기 설정된 제2 횟수를 초과하여 감지되는 경우, 해당 접속 시도를 이상 징후로 판단할 수 있다.In one embodiment, the processor 110 detects a data access attempt of a preset size or larger than the preset second number for the connection path or configuration (object) within the Kubernetes cluster 200, and performs the corresponding connection attempt. can be judged as an abnormality symptom.

일 실시예로, 프로세서(110)는 이상 징후가 감지된 특정 pod에 관하여 상기 특정 pod와 관련된 접속 경로를 갖는 구성 및 접속 경로에 관하여 모니터링 가중치를 부여할 수 있다. 그리고, 프로세서(110)는 상기 부여된 모니터링 가중치를 기반으로 모니터링 주기를 변경하거나, 이상 징후를 판단하는 기준인 상기 제1 횟수를 변경하거나 또는 이상 징후를 판단하는 기준인 상기 제1 크기(데이터 용량 크기)를 변경하는 동작 중 적어도 하나의 동작을 실행할 수 있다.In one embodiment, the processor 110 may assign monitoring weights to a configuration and access path with respect to a specific pod in which an anomaly symptom is detected, and a connection path related to the specific pod. And, the processor 110 changes the monitoring cycle based on the assigned monitoring weight, changes the first number of times, which is a standard for determining an abnormality, or changes the first size (data capacity), which is a standard for determining an abnormality. At least one operation to change the size can be performed.

일 실시예로, 프로세서(110)는 보안 관제 트랜드에 따라 보안 관제 관리자로부터 적어도 하나의 보안 키워드를 입력받을 수 있으며, 미리 학습된 인공지능 모델은 상기 보안 키워드가 입력되면 쿠버네티스 클러스터(200) 내 각 구성(오브젝트)들에 대한 보안 중요도를 산출할 수 있으며, 산출된 결과를 기반으로 각 접속 경로에 대해서도 보안 중요도를 산출할 수 있다. 그 결과로 인공지능 모델은 쿠버네티스 클러스터(200) 내 구성(오브젝트)과 접속 경로들에 대한 보안 규칙을 수정할 수 있으며, 이는 위에서 언급한 제1 횟수, 제2 횟수 또는 제1 크기(데이터 용량 크기) 중 적어도 하나에 대한 변경이 적용될 수 있다.In one embodiment, the processor 110 may receive at least one security keyword from a security control manager according to a security control trend, and the pre-trained artificial intelligence model may input the security keyword into the Kubernetes cluster 200. The security importance of each component (object) can be calculated, and the security importance of each connection path can be calculated based on the calculated results. As a result, the artificial intelligence model can modify the security rules for the configuration (object) and connection paths within the Kubernetes cluster 200, which is the first number, second number, or first size (data capacity) mentioned above. A change to at least one of the sizes may be applied.

즉, 보안 관리자는 보안 관제에 관한 트랜드, 이슈와 관련된 키워드를 통합 보안 장치(100)로 입력할 수 있으며, 프로세서(110)는 키워드를 인공지능 모델에 입력하고, 인공지능 모델은 입력된 키워드에 따라 쿠버네티스 클러스터(200) 내 구성과 구성들 간의 접속 경로에 대하여 보안 중요도를 산출하고, 산출된 보안 중요도를 기반으로 쿠버네티스 클러스터(200) 내 구성(오브젝트)과 접속 경로들에 대한 보안 규칙을 수정할 수 있다.That is, the security manager can input keywords related to trends and issues related to security control into the integrated security device 100, the processor 110 inputs the keywords into the artificial intelligence model, and the artificial intelligence model responds to the input keywords. Accordingly, the security importance is calculated for the configuration within the Kubernetes cluster 200 and the connection paths between the configurations, and the security for the configuration (object) and connection paths within the Kubernetes cluster 200 is based on the calculated security importance. Rules can be modified.

일 실시예로, 프로세서(110)는 수학식 1을 기반으로 이상 징후를 판단할 수 있다. 이때, 단위 시간은 1초, 1분, 1시간 등과 같이 정의될 수 있다.In one embodiment, the processor 110 may determine an abnormality symptom based on Equation 1. At this time, unit time may be defined as 1 second, 1 minute, 1 hour, etc.

일 실시예로, 프로세서(110)는 수학식 2를 기반으로 이상 징후를 판단할 수 있다. 이때, 단위 시간은 1초, 1분, 1시간 등과 같이 정의될 수 있다.In one embodiment, the processor 110 may determine an abnormality symptom based on Equation 2. At this time, unit time may be defined as 1 second, 1 minute, 1 hour, etc.

이때, k1은 기 설정된 수치가 적용될 수 있다.At this time, a preset value may be applied to k1.

이때, i, k2은 기 설정된 수치가 적용될 수 있다.At this time, preset values may be applied to i and k2.

따라서, 보안 관리자는 보안 관제에 관한 트랜드, 이슈와 관련된 키워드를 입력하는 것만으로 통합 보안 관제 장치(100)의 인공지능 모델이 보안 규칙 변경하는 효과를 얻을 수 있다.Therefore, the security manager can achieve the effect of having the artificial intelligence model of the integrated security control device 100 change security rules simply by entering keywords related to trends and issues related to security control.

도 7을 참조하면, 본 개시의 실시예에 따른 쿠버네티스 클러스터(200)의 모니터링을 위한 통합 보안 관제 장치(100)의 관제 시스템(10)이 기존 관제 시스템과 어떻게 다른지 비교할 수 있다.Referring to FIG. 7, it is possible to compare how the control system 10 of the integrated security control device 100 for monitoring the Kubernetes cluster 200 according to an embodiment of the present disclosure differs from the existing control system.

추가적인 실시예로, 프로세서(110)는 수집된 이벤트를 통해서 컨테이너 이미지에 데이터 변경이 발생한 이벤트를 감지할 수 있다.In an additional embodiment, the processor 110 may detect an event in which a data change occurs in the container image through collected events.

프로세서(110)는 변경 사항에 포함된 정의를 확인하고, 확인된 정의가 미리 합의되어 있는 정의인지 여부를 확인할 수 있다.The processor 110 can check the definition included in the change and check whether the confirmed definition is a previously agreed upon definition.

보다 상세하게는, 프로세서(110)는 API SERVER에서 컨테이너 이미지의 기존 상태에 대한 제1 정의를 수집하도록 Kubelet에 요청하고, Kubelet으로부터 수집된 상기 제1 정의를 수신할 수 있다.More specifically, the processor 110 may request the Kubelet to collect a first definition of the existing state of the container image from the API SERVER and receive the first definition collected from the Kubelet.

다음으로, 프로세서(110)는 컨테이너 이미지에 대한 상기 변경 사항이 포함된 제2 정의와 상기 제1 정의를 기반으로 컨테이너 이미지에 대한 변경 사항을 확인할 수 있다.Next, the processor 110 may check changes to the container image based on the first definition and a second definition including the changes to the container image.

제2 정의는 컨테이너 이미지가 변경된 후 컨테이너 이미지의 변경된 내용에 관한 정의이고, 제1 정의는 컨테이너 이미지가 변경되기 전의 정의이다.The second definition is a definition regarding the changed contents of the container image after the container image is changed, and the first definition is a definition before the container image is changed.

보다 상세하게는, 프로세서(110)는 Kubelet으로 쿠버네티스 클러스터(200)의 클러스터 정보가 저장되는 etcd에 저장되어 있는 컨테이너 이미지에 대한 yaml 파일을 요청한다.More specifically, the processor 110 requests a yaml file for the container image stored in etcd, where cluster information of the Kubernetes cluster 200 is stored, through Kubelet.

그리고, 프로세서(110)는 컨테이너 이미지의 yaml 파일을 통해 제2 정의를 확인할 수 있다.And, the processor 110 can check the second definition through the yaml file of the container image.

프로세서(110)는 컨테이너 이미지에 대한 yaml을 저장할 때, revision을 저장 또는 업데이트 한다.When the processor 110 saves the yaml for the container image, it stores or updates the revision.

보다 상세하게는, 프로세서(110)는 컨테이너 이미지에 대한 yaml을 최초 저장할 때 Revision을 저장하고 그 후 해당 컨테이너 이미지에 대한 데이터 변경이 발생할 때마다 Revision을 업데이트 한다.More specifically, the processor 110 stores the revision when first storing the yaml for the container image and then updates the revision whenever data changes to the container image.

즉, 서버는 위와 같은 프로세스를 통해서 컨테이너 이미지의 모든 데이터 변경을 감지할 수 있고, 변경 내역/사항을 체크할 수 있게 된다.In other words, the server can detect all data changes in the container image through the above process and check the change history/items.

서버가 쿠버네티스에 제어 신호를 전달하고 상태 정보를 수신하기 위하여 쿠버네티스의 워커 노드 내부에 클라이언트를 설치하여 운용할 수 있다.In order for the server to transmit control signals to Kubernetes and receive status information, a client can be installed and operated inside the worker node of Kubernetes.

프로세서(110)는 클라이언트를 통해서 kubelet과 통신하고, kubelet은 API SERVER와 통신하여 쿠버네티스 클러스터(200)를 동작시키거나 동작 상태를 감시할 수 있다.The processor 110 communicates with the kubelet through a client, and the kubelet can communicate with the API SERVER to operate the Kubernetes cluster 200 or monitor its operating status.

이상에서 전술한 본 개시의 일 실시예에 따른 방법은, 하드웨어인 서버와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.The method according to an embodiment of the present disclosure described above may be implemented as a program (or application) and stored in a medium in order to be executed in combination with a server, which is hardware.

상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 저장부의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 저장부 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.The above-mentioned program is C, C++, JAVA, machine language, etc. that can be read by the processor (CPU) of the computer through the device interface of the computer in order for the computer to read the program and execute the methods implemented in the program. It may include code coded in a computer language. These codes may include functional codes related to functions that define the necessary functions for executing the methods, and include control codes related to execution procedures necessary for the computer's processor to execute the functions according to predetermined procedures. can do. In addition, this code may further include a storage reference related code indicating which location (address address) of the computer's internal or external storage the additional information or media required for the computer's processor to execute the functions should be referenced. You can. In addition, if the computer's processor needs to communicate with any other remote computer or server in order to execute the above functions, the code uses the computer's communication module to determine how to communicate with any other remote computer or server. It may further include communication-related codes regarding whether communication should be performed and what information or media should be transmitted and received during communication.

상기 저장되는 매체는, 레지스터, 캐쉬, 저장부 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The storage medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short period of time, such as a register, cache, or storage unit. Specifically, examples of the storage medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc., but are not limited thereto. That is, the program may be stored in various recording media on various servers that the computer can access or on various recording media on the user's computer. Additionally, the medium may be distributed to computer systems connected to a network, and computer-readable code may be stored in a distributed manner.

본 개시의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 저장부(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of the method or algorithm described in connection with the embodiments of the present disclosure may be implemented directly in hardware, implemented as a software module executed by hardware, or a combination thereof. Software modules include RAM (Random Access Memory), ROM (Read Only Memory), EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), Flash Memory, hard disk, removable disk, CD-ROM, Alternatively, it may reside on any type of computer-readable recording medium well known in the art to which this disclosure pertains.

이상, 첨부된 도면을 참조로 하여 본 개시의 실시예를 설명하였지만, 본 개시가 속하는 기술분야의 통상의 기술자는 본 개시가 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.Above, embodiments of the present disclosure have been described with reference to the attached drawings, but those skilled in the art will understand that the present disclosure can be implemented in other specific forms without changing its technical idea or essential features. You will be able to understand it. Therefore, the embodiments described above should be understood in all respects as illustrative and not restrictive.

10: 통합 보안 관제 시스템
100: 통합 보안 관제 장치
110: 프로세서
120: 통신부
130: 저장부
200: 쿠버네티스 클러스터
10: Integrated security control system
100: Integrated security control device
110: processor
120: Department of Communications
130: storage unit
200: Kubernetes cluster

Claims (15)

통신부;
하나 이상의 인스트럭션, 오버레이 네트워크가 적용된 쿠버네티스(Kubernetes) 클러스터 내 계층적 구조를 갖는 구성들 각각에 대한 정보와 상기 계층적 구조 및 상기 계층적 구조에 따른 상기 구성들 간의 접속 경로가 저장된 저장부; 및
상기 저장부에 저장된 상기 인스트럭션을 실행하는 하나 이상의 프로세서를 포함하며,
상기 프로세서는,
상기 쿠버네티스 클러스터에서 발생하는 이벤트를 상기 통신부를 통해 수집하고,
상기 수집된 이벤트를 기 설정된 보안 규칙을 기반으로 모니터링 하고,
상기 모니터링된 결과로서 이상 징후가 발생된 것으로 판단되면, 상기 저장부에 저장된 접속 경로를 기반으로 상기 이상 징후에 대한 공격 출발지로부터 공격 목적지의 접속 경로를 추적하고,
상기 프로세서는,
기 설정된 시간마다 기 결정된 명령어를 이용하여 상기 쿠버네티스 클러스터 내 구성들의 정보를 확인하고,
상기 쿠버네티스 클러스터 내 기존 pod가 삭제되거나 또는 신규 pod가 생성되는 경우, 상기 저장부에 저장된 계층적 구조 및 상기 접속 경로에 관한 정보를 기반으로 상기 저장부 내 데이터를 업데이트하고,
상기 쿠버네티스 클러스터 내 구성들 중에서 상기 이상 징후가 감지된 특정 pod와 관련된 접속 경로 및 상기 특정 pod와 관련된 접속 경로를 갖는 구성에 대하여 모니터링 가중치를 부여하고,
상기 부여된 모니터링 가중치를 기반으로 모니터링 주기를 변경하거나, 또는 이상 징후를 판단하는 기준을 변경하는 것을 특징으로 하는,
쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치.
Ministry of Communications;
A storage unit storing information on each of the components having a hierarchical structure in a Kubernetes cluster to which one or more instructions and an overlay network are applied, the hierarchical structure, and a connection path between the components according to the hierarchical structure; and
It includes one or more processors that execute the instructions stored in the storage unit,
The processor,
Collect events occurring in the Kubernetes cluster through the communication unit,
Monitor the collected events based on preset security rules,
If it is determined that an abnormality has occurred as a result of the monitoring, the connection path of the attack destination from the attack source for the abnormality is traced based on the connection path stored in the storage unit,
The processor,
Check information on the components in the Kubernetes cluster using a predetermined command at preset times,
When an existing pod in the Kubernetes cluster is deleted or a new pod is created, data in the storage unit is updated based on information about the hierarchical structure and the access path stored in the storage unit,
Among the configurations in the Kubernetes cluster, monitoring weights are assigned to a connection path related to a specific pod in which the anomaly symptom is detected and a configuration having a connection path related to the specific pod,
Characterized by changing the monitoring cycle or changing the criteria for determining abnormalities based on the assigned monitoring weight,
An integrated security control device for monitoring Kubernetes clusters.
제1항에 있어서,
상기 프로세서는,
상기 이상 징후가 감지된 제1 pod 내 제1 구성에 대한 포트를 상기 공격 출발지로 식별하고,
상기 이상 징후가 감지된 제2 pod 내 제2 구성에 대한 포트를 상기 공격 목적지로 식별하고,
상기 저장부에 저장된 상기 쿠버네티스 클러스터 내 구성들의 계층적 구조에 따른 접속 경로를 기반으로,
상기 제1 pod로부터 Router의 제1 경로에 포함된 구성들을 식별하고, 상기 식별된 구성들 간의 접속 경로를 식별하고,
상기 Router로부터 상기 제2 pod의 제2 경로에 포함된 구성들을 식별하고, 상기 식별된 구성들 간의 접속 경로를 식별하는 것을 특징으로 하는,
쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치.
According to paragraph 1,
The processor,
Identifying the port for the first configuration in the first pod where the abnormality was detected as the attack source,
Identifying the port for the second configuration in the second pod where the abnormality was detected as the attack destination,
Based on the connection path according to the hierarchical structure of the configurations in the Kubernetes cluster stored in the storage unit,
Identifying components included in the first path of the router from the first pod, and identifying connection paths between the identified components,
Characterized in identifying the components included in the second path of the second pod from the router and identifying the connection path between the identified components,
An integrated security control device for monitoring Kubernetes clusters.
제2항에 있어서,
상기 제1 경로에 포함된 구성들은 제1 pod가 속한 제1 veth(Virtual Ethernet Devices), 제1 CNI, 제1 NAT(Network Address Translation) 및 제1 eth0를 포함하고,
상기 제2 경로에 포함된 구성들은 제2 pod가 속한 제2 veth(Virtual Ethernet Devices), 제2 CNI, 제2 NAT(Network Address Translation) 및 제2 eth0를 포함하는,
쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치.
According to paragraph 2,
Configurations included in the first path include the first veth (Virtual Ethernet Devices) to which the first pod belongs, the first CNI, the first NAT (Network Address Translation), and the first eth0,
Configurations included in the second path include a second veth (Virtual Ethernet Devices) to which the second pod belongs, a second CNI, a second NAT (Network Address Translation), and a second eth0.
An integrated security control device for monitoring Kubernetes clusters.
제3항에 있어서,
상기 프로세서는,
상기 저장부에 저장된 접속 경로를 기반으로, 상기 제1 pod가 속한 제1 veth(Virtual Ethernet Devices)로부터 제1 CNI의 접속 경로, 상기 제1 CNI로부터 제1 NAT(Network Address Translation)의 접속 경로, 상기 제1 NAT로부터 제1 eth0의 접속 경로, 상기 제1 eth0로부터 Router의 접속 경로, 상기 Router로부터 제2 eth0의 접속 경로, 상기 제2 eth0로부터 제2 NAT의 접속 경로, 상기 제2 NAT로부터 제2 CNI의 접속 경로, 상기 제2 CNI로부터 제2 pod이 속한 제2 veth의 접속 경로를 식별하는 것을 특징으로 하는,
쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치.
According to paragraph 3,
The processor,
Based on the connection path stored in the storage unit, the connection path of the first CNI from the first veth (Virtual Ethernet Devices) to which the first pod belongs, the connection path of the first NAT (Network Address Translation) from the first CNI, The connection path of the first eth0 from the first NAT, the connection path of the router from the first eth0, the connection path of the second eth0 from the router, the connection path of the second NAT from the second eth0, the connection path of the second NAT from the second NAT Characterized in identifying the connection path of 2 CNI, the connection path of the second veth to which the second pod belongs from the second CNI,
An integrated security control device for monitoring Kubernetes clusters.
제1항에 있어서,
상기 저장부는, 상기 쿠버네티스 클러스터 내 pod, 컨테이너 및 네임스페이스에 관한 정보와 상기 쿠버네티스 클러스터 내 구성들의 정보를 확인하기 위해 기 결정된 명령어가 저장되어 있으며,
상기 프로세서는,
기 설정된 시간마다 상기 기 결정된 명령어를 이용하여 상기 쿠버네티스 클러스터 내 구성들의 정보를 확인하고, 상기 저장부에 저장된 정보를 업데이트하는 것을 특징으로 하는,
쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치.
According to paragraph 1,
The storage unit stores predetermined commands to check information about pods, containers, and namespaces within the Kubernetes cluster and information about components within the Kubernetes cluster,
The processor,
Characterized in checking information on the components in the Kubernetes cluster using the predetermined command at each preset time and updating the information stored in the storage unit,
An integrated security control device for monitoring Kubernetes clusters.
제5항에 있어서,
상기 프로세서는,
상기 기 결정된 명령어를 이용하여 상기 쿠버네티스 클러스터 내 eth0, flannel 및 cni의 정보를 확인하는 것을 특징으로 하는,
쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치.
According to clause 5,
The processor,
Characterized in checking the information of eth0, flannel and cni in the Kubernetes cluster using the predetermined command,
An integrated security control device for monitoring Kubernetes clusters.
삭제delete 제1항에 있어서,
상기 프로세서는,
상기 쿠버네티스 클러스터 내 기존 pod가 삭제되거나 신규 pod가 생성되는 경우, 상기 저장부에 저장되어 있는 계층적 구조 및 상기 계층적 구조에 따른 구성들 간의 접속 경로에 관한 정보를 기반으로 상기 저장부 내 데이터를 업데이트 하는 것을 특징으로 하는,
쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치.
According to paragraph 1,
The processor,
When an existing pod in the Kubernetes cluster is deleted or a new pod is created, information is stored in the storage unit based on the hierarchical structure stored in the storage unit and information about the connection path between components according to the hierarchical structure. Characterized by updating data,
An integrated security control device for monitoring Kubernetes clusters.
제5항에 있어서,
상기 프로세서는,
상기 쿠버네티스 클러스터 내 접속 경로 또는 구성에 대한 기 설정된 제1 횟수를 초과하는 접속 시도가 감지되는 경우, 상기 접속 시도를 이상 징후로 판단하는 것을 특징으로 하는,
쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치.
According to clause 5,
The processor,
Characterized in that, when a connection attempt exceeding a preset first number for the connection path or configuration within the Kubernetes cluster is detected, the connection attempt is determined to be an abnormality.
An integrated security control device for monitoring Kubernetes clusters.
제9항에 있어서,
상기 제1 횟수는 상기 쿠버네티스 클러스터 내 계층적 구조를 갖는 상기 구성들 간의 접속 경로마다 설정되어 있으며,
상기 프로세서는,
상기 접속 경로마다 설정되어 있는 제1 횟수를 기반으로 상기 접속 시도를 이상 징후로 판단하는 것을 특징으로 하는,
쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치.
According to clause 9,
The first number of times is set for each connection path between the components having a hierarchical structure within the Kubernetes cluster,
The processor,
Characterized in that the connection attempt is judged as an abnormality symptom based on the first number of times set for each connection path,
An integrated security control device for monitoring Kubernetes clusters.
제9항에 있어서,
상기 프로세서는,
상기 이상 징후에 대하여 식별된 공격 출발지, 공격 목적지 및 상기 공격 출발지로부터 상기 공격 목적지에 포함된 접속 경로 상의 구성들과 상기 접속 시도의 횟수를 기반으로 보안 위험도를 산출하는,
쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치.
According to clause 9,
The processor,
Calculating a security risk based on the identified attack source, attack destination, and configurations on the access path included in the attack destination from the attack source and the number of access attempts for the abnormality,
An integrated security control device for monitoring Kubernetes clusters.
제9항에 있어서,
상기 프로세서는,
기 설정된 제1 크기 이상의 데이터 접속 시도가 상기 쿠버네티스 클러스터 내 접속 경로 또는 구성에 대한 기 설정된 제2 횟수를 초과하여 감지되는 경우, 상기 접속 시도를 이상 징후로 판단하는 것을 특징으로 하는,
쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 장치.
According to clause 9,
The processor,
When an attempt to access data larger than a preset first size is detected in excess of a preset second number for the connection path or configuration within the Kubernetes cluster, the connection attempt is determined to be an abnormality symptom,
An integrated security control device for monitoring Kubernetes clusters.
삭제delete 통합 보안 관제 장치에 의해 수행되는 방법으로,
쿠버네티스(Kubernetes) 클러스터에서 발생하는 이벤트를 수집하는 단계;
상기 수집된 이벤트를 기 설정된 보안 규칙을 기반으로 모니터링하는 단계;
상기 모니터링된 결과로서 이상 징후가 발생된 것으로 판단되면, 저장부에 저장된 접속 경로를 기반으로 상기 이상 징후에 대한 공격 출발지로부터 공격 목적지의 접속 경로를 추적하는 단계를 포함하며,
상기 저장부는 오버레이 네트워크가 적용된 쿠버네티스 클러스터 내 계층적 구조를 갖는 구성들 각각에 대한 정보와 상기 계층적 구조 및 상기 계층적 구조에 따른 상기 구성들 간의 접속 경로가 저장되어 있고,
상기 통합 보안 관제 장치는,
기 설정된 시간마다 기 결정된 명령어를 이용하여 상기 쿠버네티스 클러스터 내 구성들의 정보를 확인하고,
상기 쿠버네티스 클러스터 내 기존 pod가 삭제되거나 또는 신규 pod가 생성되는 경우, 상기 저장부에 저장된 계층적 구조 및 상기 접속 경로에 관한 정보를 기반으로 상기 저장부 내 데이터를 업데이트하고,
상기 쿠버네티스 클러스터 내 구성들 중에서 상기 이상 징후가 감지된 특정 pod와 관련된 접속 경로 및 상기 특정 pod와 관련된 접속 경로를 갖는 구성에 대하여 모니터링 가중치를 부여하고,
상기 부여된 모니터링 가중치를 기반으로 모니터링 주기를 변경하거나, 또는 이상 징후를 판단하는 기준을 변경하는 것을 특징으로 하는,
쿠버네티스 클러스터의 모니터링을 위한 통합 보안 관제 방법.
In a method performed by an integrated security control device,
Collecting events occurring in a Kubernetes cluster;
Monitoring the collected events based on preset security rules;
If it is determined that an abnormality has occurred as a result of the monitoring, tracking the connection path of the attack destination from the attack source for the abnormality based on the connection path stored in the storage unit,
The storage unit stores information about each component having a hierarchical structure in a Kubernetes cluster to which an overlay network is applied, the hierarchical structure, and a connection path between the components according to the hierarchical structure,
The integrated security control device,
Check information on the components in the Kubernetes cluster using a predetermined command at preset times,
When an existing pod in the Kubernetes cluster is deleted or a new pod is created, data in the storage unit is updated based on information about the hierarchical structure and the access path stored in the storage unit,
Among the configurations in the Kubernetes cluster, monitoring weights are assigned to a connection path related to a specific pod in which the anomaly symptom is detected and a configuration having a connection path related to the specific pod,
Characterized by changing the monitoring cycle or changing the criteria for determining abnormalities based on the assigned monitoring weight,
Integrated security control method for monitoring Kubernetes clusters.
하드웨어인 컴퓨터와 결합되어, 제14항의 방법을 실행시키기 위한 프로그램이 저장된 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium coupled to a hardware computer and storing a program for executing the method of claim 14.
KR1020230091329A 2023-07-13 2023-07-13 Apparatus, method, system and program for integrated security control for monitoring Kubernetes cluster KR102606713B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230091329A KR102606713B1 (en) 2023-07-13 2023-07-13 Apparatus, method, system and program for integrated security control for monitoring Kubernetes cluster

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230091329A KR102606713B1 (en) 2023-07-13 2023-07-13 Apparatus, method, system and program for integrated security control for monitoring Kubernetes cluster

Publications (1)

Publication Number Publication Date
KR102606713B1 true KR102606713B1 (en) 2023-11-30

Family

ID=88968299

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230091329A KR102606713B1 (en) 2023-07-13 2023-07-13 Apparatus, method, system and program for integrated security control for monitoring Kubernetes cluster

Country Status (1)

Country Link
KR (1) KR102606713B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102088310B1 (en) * 2018-11-15 2020-03-16 주식회사 이글루시큐리티 Risk Index Correction System Based on Attack Frequency, Asset Importance, and Severity
KR102114339B1 (en) 2018-11-26 2020-05-22 주식회사 알티스트 Method for operating kubernetes system supporting active/standby model
KR20230031889A (en) * 2020-07-14 2023-03-07 인터내셔널 비지네스 머신즈 코포레이션 Anomaly detection in network topology
US20230208862A1 (en) * 2021-12-27 2023-06-29 Wiz, Inc. Detecting malware infection path in a cloud computing environment utilizing a security graph
KR20230097834A (en) * 2021-12-24 2023-07-03 주식회사 딥이티 Apparatus and method for preventing abnormal data access based on artificial intelligence

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102088310B1 (en) * 2018-11-15 2020-03-16 주식회사 이글루시큐리티 Risk Index Correction System Based on Attack Frequency, Asset Importance, and Severity
KR102114339B1 (en) 2018-11-26 2020-05-22 주식회사 알티스트 Method for operating kubernetes system supporting active/standby model
KR20230031889A (en) * 2020-07-14 2023-03-07 인터내셔널 비지네스 머신즈 코포레이션 Anomaly detection in network topology
KR20230097834A (en) * 2021-12-24 2023-07-03 주식회사 딥이티 Apparatus and method for preventing abnormal data access based on artificial intelligence
US20230208862A1 (en) * 2021-12-27 2023-06-29 Wiz, Inc. Detecting malware infection path in a cloud computing environment utilizing a security graph

Similar Documents

Publication Publication Date Title
Dai et al. Big data analytics for manufacturing internet of things: opportunities, challenges and enabling technologies
Arsénio et al. Internet of intelligent things: Bringing artificial intelligence into things and communication networks
Muralidhara IoT applications in cloud computing for smart devices
Rajagopal et al. FedSDM: Federated learning based smart decision making module for ECG data in IoT integrated Edge-Fog-Cloud computing environments
Donta et al. Governance and sustainability of distributed continuum systems: A big data approach
Faraji Mehmandar et al. A dynamic fog service provisioning approach for IoT applications
Chaterji et al. Resilient cyberphysical systems and their application drivers: A technology roadmap
Walia et al. AI-empowered fog/edge resource management for IoT applications: A comprehensive review, research challenges and future perspectives
Tuli et al. AI augmented Edge and Fog computing: Trends and challenges
US11392821B2 (en) Detecting behavior patterns utilizing machine learning model trained with multi-modal time series analysis of diagnostic data
Huang et al. Supporting edge intelligence in service-oriented smart iot applications
US11720846B2 (en) Artificial intelligence-based use case model recommendation methods and systems
Dogani et al. Auto-scaling techniques in container-based cloud and edge/fog computing: Taxonomy and survey
Raj et al. Edge/Fog Computing Paradigm: The Concept, Platforms and Applications.
Marozzo et al. Edge computing solutions for distributed machine learning
Tripathy et al. Sustainable fog-assisted intelligent monitoring framework for consumer electronics in Industry 5.0 applications
Parihar et al. From Smart Devices to Smarter Systems: The Evolution of Artificial Intelligence of Things (AIoT) with Characteristics, Architecture, Use Cases and Challenges
Abro et al. Artificial intelligence enabled effective fault prediction techniques in cloud computing environment for improving resource optimization
da Silva et al. Online machine learning for auto-scaling in the edge computing
KR102606713B1 (en) Apparatus, method, system and program for integrated security control for monitoring Kubernetes cluster
Gauttam et al. An efficient DNN splitting scheme for edge-AI enabled smart manufacturing
US10218722B2 (en) Method and system for developing an anomaly detector for detecting an anomaly parameter on network terminals in a distributed network
Sountharrajan et al. On-the-go network establishment of iot devices to meet the need of processing big data using machine learning algorithms
KR102591865B1 (en) Method for validating and managing cloud data for container orchestration
US11775403B2 (en) Method and system for developing an anomaly detector for detecting an anomaly parameter on network terminals in a distributed network

Legal Events

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