KR102451237B1 - 컨테이너 네트워크를 위한 보안 - Google Patents
컨테이너 네트워크를 위한 보안 Download PDFInfo
- Publication number
- KR102451237B1 KR102451237B1 KR1020200189426A KR20200189426A KR102451237B1 KR 102451237 B1 KR102451237 B1 KR 102451237B1 KR 1020200189426 A KR1020200189426 A KR 1020200189426A KR 20200189426 A KR20200189426 A KR 20200189426A KR 102451237 B1 KR102451237 B1 KR 102451237B1
- Authority
- KR
- South Korea
- Prior art keywords
- container
- containers
- network
- inter
- traffic
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0712—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/029—Firewall traversal, e.g. tunnelling or, creating pinholes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
복수의 컨테이너들을 가지는 컨테이너 네트워크를 위한 보안을 제공하는 방법, 장치 및 시스템은 컨테이너 네트워크의 복수의 컨테이너들 각각에 대한 네트워크 스택을 설정하는 단계, 액티브 컨테이너들로부터 네트워크 및 정책 정보를 결정하는 단계, 결정된 네트워크 및 정책 정보로부터 학습된 복수의 컨테이너에 대한 미리 결정된 컨테이너 간 종속성들의 세트에 기초하여, 각각의 통신에 관련된 복수의 컨테이너들의 컨테이너들에게만 제한되도록 컨테이너 네트워크에서의 컨테이너 액세스를 구성하는 단계 및 피어 컨테이너들에 대한 컨테이너 간 트래픽의 노출이 방지되도록 점대점 방식으로 오직 소스 컨테이너로부터 목적지 컨테이너까지만 지향되도록 컨테이너 네트워크에서 컨테이너 간 트래픽을 구성하는 단계를 포함한다.
Description
실시예들은 일반적으로 컨테이너 네트워크 출원들, 및 특히 컨테이너 네트워크를 위한 보안을 제공하는 것에 관한 것이다.
컨테이너들은 복잡한 프로덕션 인터넷 서비스들을 관리 가능한(구성요소화 된) 마이크로서비스들로 분해하기 위해 널리 사용된다. 가상 애플리케이션 배포, 특히 프로덕션 마이크로서비스들의 확장 가능한 인스턴스화를 위한 컨테이너화 기술의 사용은 놀라운 속도로 증가했다. 그러나 컨테이너 간 네트워킹은 마이크로서비스들에 필수적이지만 컨테이너 네트워킹의 견고성에 대한 질문은 보안 관점에서 잘 조사되지 않았다. 발생하는 한 가지 중요한 문제는 컨테이너화 된 환경들이 공격을 받고 전복되는 네트워크에 노출된 마이크로서비스들을 호스팅할 때 컨테이너화 된 환경들이 보안 분리를 시행할 수 있다는 것이다.
실질적으로, 모든 애플리케이션은 거의 하이재킹된 다음 다른 컨테이너들 또는 호스트 운영 체제(OS)를 공격하도록 전복될 수 있다. 컨테이너들은 가상 머신들(VMs)보다 적은 애플리케이션 분리를 제공한다. 한 가지 보안 접근 방식은 IP-테이블들 기반 방화벽을 사용하는 것이었지만, 이는 수동적이고 오류가 발생하기 쉬운 접근 방식이며 오버 헤드가 높다.
실질적으로, 모든 애플리케이션은 거의 하이재킹된 다음 다른 컨테이너들 또는 호스트 운영 체제(OS)를 공격하도록 전복될 수 있다. 컨테이너들은 가상 머신들(VMs)보다 적은 애플리케이션 분리를 제공한다. 한 가지 보안 접근 방식은 IP-테이블들 기반 방화벽을 사용하는 것이었지만, 이는 수동적이고 오류가 발생하기 쉬운 접근 방식이며 오버 헤드가 높다.
컨테이너 네트워크들에 보안을 제공하기 위한 방법, 장치 및 시스템의 실시예가 여기에 개시된다.
본 발명의 원리들에 따른 일부 실시예들에서, 복수의 컨테이너들을 가지는 컨테이너 네트워크를 위한 보안을 제공하는 방법은 상기 컨테이너 네트워크의 상기 복수의 컨테이너들 각각에 대한 네트워크 스택(network stack)을 설정하는 단계, 액티브 컨테이너들(active containers)로부터 네트워크 및 정책 정보를 결정하는 단계, 상기 결정된 네트워크 및 정책 정보로부터 학습된 상기 복수의 컨테이너에 대한 미리 결정된 컨테이너 간 종속성들의 세트(set of pre-determined inter-container dependencies)에 기초하여, 각각의 통신에 관련된 상기 복수의 컨테이너들의 컨테이너들에게만 제한되도록 상기 컨테이너 네트워크에서의 컨테이너 액세스(container access)를 구성하는 단계 및 피어 컨테이너들(peer containers)에 대한 컨테이너 간 트래픽의 노출이 방지되도록 점대점 방식(point-to-point manner)으로 오직(only) 소스 컨테이너(source container)로부터 목적지 컨테이너(destination container)까지만 지향되도록(to be directed) 상기 컨테이너 네트워크에서 컨테이너 간 트래픽(inter-container traffic)을 구성하는 단계를 포함한다.
일부 실시예들에서, 방법은 상기 복수의 컨테이너들 각각에 대한 컨테이너 간 종속성들을 결정하는 단계를 포함할 수 있다. 일부 실시예들에서, 상기 컨테이너 간 종속성들을 학습하는 것은 각각의 컨테이너와 관련된 네트워크 정보를 식별하는 ARP(Address Resolution Protocol) 요청들을 사용하는 단계를 포함할 수 있다. 일부 실시예들에서, 방법은, 각각의 ARP 요청을 수행(fulfill)하기 전에, 소스 컨테이너(source container)가 상기 컨테이너 네트워크에서 목적지 컨테이너(destination container)에 대한 종속성(dependency)을 가지는지를 검증(verify)하는 단계를 포함할 수 있다.
본 발명의 원리들의 일부 실시예들에서, 복수의 컨테이너들을 가지는 컨테이너 네트워크를 위한 보안을 제공하는 시스템은 상기 컨테이너 네트워크의 상기 복수의 컨테이너들 각각에 대한 네트워크 스택을 설정하고 액티브 컨테이너들(active containers)로부터 네트워크 및 정책 정보를 결정하도록 구성된 글로벌 매니저(global manager), 상기 결정된 네트워크 및 정책 정보로부터 학습된 상기 복수의 컨테이너들에 대한 미리 결정된 컨테이너 간 종속성들의 세트에 기초하여, 상기 컨테이너 네트워크에서 컨테이너 액세스(container access)를 각각의 통신에 관련된 상기 복수의 컨테이너들의 컨테이너들로만 제한하도록 구성된 적어도 하나의 네트워크 가시성 서비스(network visibility service) 및 피어 컨테이너들에 대한 컨테이너 간 트래픽의 노출이 방지되도록 점대점 방식으로 컨테이너로부터 목적지 컨테이너로 상기 컨테이너 네트워크에서 컨테이너 간 트래픽을 지향하는 적어도 하나의 트래픽 가시성 서비스(traffic visibility service)를 포함한다.
본 발명의 원리들에 따른 일부 실시예들에 있어서, 복수의 컨테이너들을 가지는 컨테이너 네트워크를 위한 보안을 제공하는 방법은 상기 컨테이너 네트워크들에서 트래픽을 모니터링하고 컨테이너 트래픽의 네트워크 로그들을 생성하는 단계, 상기 네트워크 로그들로부터 상기 컨테이너 네트워크들의 네트워크 및 정책 정보를 결정하는 단계, 상기 결정된 네트워크 및 정책 정보로부터 상기 복수의 컨테이너들에 대한 최소 특권 통신 정책(least privileged communication policy)을 결정하는 단계, 상기 결정된 최소 특권 통신 정책에 기초하여 각각의 통신에 관련된 상기 복수의 컨테이너들의 컨테이너들에게만 제한되도록 상기 컨테이너 네트워크들에서의 컨테이너 액세스를 구성하는 단계 및 피어 컨테이너들에 대한 상기 컨테이너 간 트래픽의 노출이 방지되도록 점대점 방식으로 오직 소스 컨테이너로부터 적어도 하나의 목적지 컨테이너까지만 지향되도록 상기 컨테이너 네트워크에서 컨테이너 간 트래픽을 구성하는 단계를 포함한다.
본 발명의 원리들에 따른 다른 및 추가 실시예들이 아래에 설명된다.
본 발명의 원리들에 따른 일부 실시예들에서, 복수의 컨테이너들을 가지는 컨테이너 네트워크를 위한 보안을 제공하는 방법은 상기 컨테이너 네트워크의 상기 복수의 컨테이너들 각각에 대한 네트워크 스택(network stack)을 설정하는 단계, 액티브 컨테이너들(active containers)로부터 네트워크 및 정책 정보를 결정하는 단계, 상기 결정된 네트워크 및 정책 정보로부터 학습된 상기 복수의 컨테이너에 대한 미리 결정된 컨테이너 간 종속성들의 세트(set of pre-determined inter-container dependencies)에 기초하여, 각각의 통신에 관련된 상기 복수의 컨테이너들의 컨테이너들에게만 제한되도록 상기 컨테이너 네트워크에서의 컨테이너 액세스(container access)를 구성하는 단계 및 피어 컨테이너들(peer containers)에 대한 컨테이너 간 트래픽의 노출이 방지되도록 점대점 방식(point-to-point manner)으로 오직(only) 소스 컨테이너(source container)로부터 목적지 컨테이너(destination container)까지만 지향되도록(to be directed) 상기 컨테이너 네트워크에서 컨테이너 간 트래픽(inter-container traffic)을 구성하는 단계를 포함한다.
일부 실시예들에서, 방법은 상기 복수의 컨테이너들 각각에 대한 컨테이너 간 종속성들을 결정하는 단계를 포함할 수 있다. 일부 실시예들에서, 상기 컨테이너 간 종속성들을 학습하는 것은 각각의 컨테이너와 관련된 네트워크 정보를 식별하는 ARP(Address Resolution Protocol) 요청들을 사용하는 단계를 포함할 수 있다. 일부 실시예들에서, 방법은, 각각의 ARP 요청을 수행(fulfill)하기 전에, 소스 컨테이너(source container)가 상기 컨테이너 네트워크에서 목적지 컨테이너(destination container)에 대한 종속성(dependency)을 가지는지를 검증(verify)하는 단계를 포함할 수 있다.
본 발명의 원리들의 일부 실시예들에서, 복수의 컨테이너들을 가지는 컨테이너 네트워크를 위한 보안을 제공하는 시스템은 상기 컨테이너 네트워크의 상기 복수의 컨테이너들 각각에 대한 네트워크 스택을 설정하고 액티브 컨테이너들(active containers)로부터 네트워크 및 정책 정보를 결정하도록 구성된 글로벌 매니저(global manager), 상기 결정된 네트워크 및 정책 정보로부터 학습된 상기 복수의 컨테이너들에 대한 미리 결정된 컨테이너 간 종속성들의 세트에 기초하여, 상기 컨테이너 네트워크에서 컨테이너 액세스(container access)를 각각의 통신에 관련된 상기 복수의 컨테이너들의 컨테이너들로만 제한하도록 구성된 적어도 하나의 네트워크 가시성 서비스(network visibility service) 및 피어 컨테이너들에 대한 컨테이너 간 트래픽의 노출이 방지되도록 점대점 방식으로 컨테이너로부터 목적지 컨테이너로 상기 컨테이너 네트워크에서 컨테이너 간 트래픽을 지향하는 적어도 하나의 트래픽 가시성 서비스(traffic visibility service)를 포함한다.
본 발명의 원리들에 따른 일부 실시예들에 있어서, 복수의 컨테이너들을 가지는 컨테이너 네트워크를 위한 보안을 제공하는 방법은 상기 컨테이너 네트워크들에서 트래픽을 모니터링하고 컨테이너 트래픽의 네트워크 로그들을 생성하는 단계, 상기 네트워크 로그들로부터 상기 컨테이너 네트워크들의 네트워크 및 정책 정보를 결정하는 단계, 상기 결정된 네트워크 및 정책 정보로부터 상기 복수의 컨테이너들에 대한 최소 특권 통신 정책(least privileged communication policy)을 결정하는 단계, 상기 결정된 최소 특권 통신 정책에 기초하여 각각의 통신에 관련된 상기 복수의 컨테이너들의 컨테이너들에게만 제한되도록 상기 컨테이너 네트워크들에서의 컨테이너 액세스를 구성하는 단계 및 피어 컨테이너들에 대한 상기 컨테이너 간 트래픽의 노출이 방지되도록 점대점 방식으로 오직 소스 컨테이너로부터 적어도 하나의 목적지 컨테이너까지만 지향되도록 상기 컨테이너 네트워크에서 컨테이너 간 트래픽을 구성하는 단계를 포함한다.
본 발명의 원리들에 따른 다른 및 추가 실시예들이 아래에 설명된다.
상기 언급된 본 발명의 원리들의 특징을 상세히 이해할 수 있도록, 위에서 간략히 요약된 원리들의 보다 특정한 설명은 일부가 첨부된 도면에 예시된 실시예를 참조할 수 있다. 그러나, 본 발명의 원리들은 다른 동등한 효과적인 실시예들을 허용할 수 있기 때문에, 첨부된 도면은 본 발명의 원리들에 따른 전형적인 실시예만을 도시하고 따라서 그 범위를 제한하는 것으로 간주되지 않는다는 점에 유의해야 한다.
도 1은 본 발명의 원리들의 실시예에 따른 컨테이너 보안 시스템의 고-레벨 블록도를 도시한다.
도 2는 본 발명의 원리들의 실시예에 따른 컨테이너 보안 시스템의 기능 아키텍처의 고-레벨 다이어그램을 도시한다.
도 3은 본 발명의 원리들의 실시예에 따른 컨테이너 간 종속성들을 추출하기 위한 알고리즘을 도시한다.
도 4a는 본 발명의 원리들의 실시예에 따른 컨테이너-인식 네트워크 분리를 구현하기 위한 고-레벨 예시적인 흐름도(400)를 도시한다.
도 4b는 본 발명의 원리들의 실시예에 따른 각각의 호스팅된 컨테이너에 대한 네트워크 인터페이스 속성들을 캡처하는 컨테이너 네트워크 맵, 및 컨테이너 간의 링크들 및 종속성들을 나타내는 컨테이너 간 종속성 맵을 도시한다.
도 5a는 리눅스 커널 내에서 수행되는 종래 기술의 패킷 처리 시퀀스의 개요를 도시한다.
도 5b는 본 발명의 원리들의 실시예에 따른 종단 간 다이렉트 패킷 포워딩 프로세스의 고-레벨 기능 블록도를 도시한다.
도 6은 보안 공격이 발생하는 종래 기술의 쿠버네티스 환경의 고-레벨 기능 블록도를 도시한다.
도 7a는 이웃 컨테이너들을 조사하는 도 6의 쿠버네티스 환경의 공격자에 의해 수집된 컨테이너 네트워크의 컨테이너들로부터의 패킷 데이터를 도시한다.
도 7b는 공격자에 의해 도 6의 네트워크에 입력된 거짓 ARP 응답들의 예를 도시한다.
도 7c는 도 6의 네트워크에서 공격자에 의해 모니터링되는 엔진엑스-사용자와 레디스-사용자 간의 트래픽의 예를 도시한다.
도 7d는 공격자에 의해 도 6의 엔진엑스-사용자에 삽입된, 위조된 패킷의 예를 도시한다.
도 8은 본 발명의 원리들의 실시예에 따른 네트워크 분리로 인한 패킷 데이터의 도면을 도시한다.
도 9a는 본 발명의 원리들의 종단 간 포워딩 없이 공격자가 도 6의 스푸핑된 타겟 컨테이너를 볼 수 있는 트래픽의 예를 보여주는 패킷 데이터를 도시한다.
도 9b는 공격자가 본 발명의 원리들의 종단 간 포워딩으로 어떻게 응답 트래픽을 볼 수 없는지를 예시하는 패킷 데이터를 도시한다.
도 10a는 공격자에 의한 RST 패킷들의 종래의 보안 아키텍처를 가지는 컨테이너 네트워크의 컨테이너로의 삽입을 보여주는 패킷 데이터를 도시한다.
도 10b는 공격자가 컨테이너에 RST 패킷을 삽입하여 엔진엑스-사용자의 관점에서 세션 종료를 유발하는 방법을 보여주는 패킷 데이터를 도시한다.
도 10c는 본 발명의 원리들의 실시예에 따른 소스 검증을 구현하는 컨테이너 보안 시스템에 RST 패킷을 삽입하려는 공격자의 시도와 관련된 패킷 데이터를 도시한다.
도 11은 본 발명의 원리들의 실시예에 따른 iptables-기반 액세스 제어 네트워크 및 컨테이너 보안 시스템을 사용하여 제어되는 네트워크 모두에 대해 호스트 내에서 증가하는 보안 정책들에 따른 컨테이너 간 처리량 변동들의 그래픽 표현을 도시한다.
도 12a는 본 발명의 원리들의 실시예에 따른 컨테이너 네트워크의 호스트 내의 서비스들의 상이한 조합들에 대한 컨테이너 간 지연 시간 측정들의 그래픽 표현을 도시한다.
도 12b는 본 발명의 원리들의 실시예에 따른 호스트들에 걸친 본 발명의 원리들의 컨테이너 보안 시스템의 서비스들의 상이한 조합들에 대한 컨테이너 간 지연 시간 측정들의 그래픽 표현을 도시한다.
도 13은 본 발명의 원리들에 따른 컨테이너 네트워크들에 보안을 제공하기 위한 방법의 흐름도를 도시한다.
도 14는 본 발명의 원리들에 따른 컨테이너 보안 시스템의 실시예들과 함께 사용하기에 적합한 컴퓨팅 장치의 고-레벨 블록도를 도시한다.
도 15는 도 1의 컨테이너 보안 시스템과 같은 본 발명의 원리들에 따른 컨테이너 보안 시스템의 실시예들이 적용될 수 있는 네트워크의 고-레벨 블록도를 도시한다.
도 16은 본 발명의 원리들의 실시예에 따른 복수의 컨테이너들을 가지는 컨테이너 네트워크들에 대해 최소 특권 보안을 제공하기 위한 방법의 흐름도를 도시한다.
이해를 용이하게 하기 위해, 가능한 경우 동일한 참조 번호를 사용하여 도면에 공통인 동일한 요소를 지정하였다. 도면은 축척에 따라 그려지지 않았으며 명확성을 위해 단순화될 수 있다. 일 실시예의 요소 및 특징은 추가 언급없이 다른 실시예에 유리하게 통합될 수 있음이 고려된다.
도 1은 본 발명의 원리들의 실시예에 따른 컨테이너 보안 시스템의 고-레벨 블록도를 도시한다.
도 2는 본 발명의 원리들의 실시예에 따른 컨테이너 보안 시스템의 기능 아키텍처의 고-레벨 다이어그램을 도시한다.
도 3은 본 발명의 원리들의 실시예에 따른 컨테이너 간 종속성들을 추출하기 위한 알고리즘을 도시한다.
도 4a는 본 발명의 원리들의 실시예에 따른 컨테이너-인식 네트워크 분리를 구현하기 위한 고-레벨 예시적인 흐름도(400)를 도시한다.
도 4b는 본 발명의 원리들의 실시예에 따른 각각의 호스팅된 컨테이너에 대한 네트워크 인터페이스 속성들을 캡처하는 컨테이너 네트워크 맵, 및 컨테이너 간의 링크들 및 종속성들을 나타내는 컨테이너 간 종속성 맵을 도시한다.
도 5a는 리눅스 커널 내에서 수행되는 종래 기술의 패킷 처리 시퀀스의 개요를 도시한다.
도 5b는 본 발명의 원리들의 실시예에 따른 종단 간 다이렉트 패킷 포워딩 프로세스의 고-레벨 기능 블록도를 도시한다.
도 6은 보안 공격이 발생하는 종래 기술의 쿠버네티스 환경의 고-레벨 기능 블록도를 도시한다.
도 7a는 이웃 컨테이너들을 조사하는 도 6의 쿠버네티스 환경의 공격자에 의해 수집된 컨테이너 네트워크의 컨테이너들로부터의 패킷 데이터를 도시한다.
도 7b는 공격자에 의해 도 6의 네트워크에 입력된 거짓 ARP 응답들의 예를 도시한다.
도 7c는 도 6의 네트워크에서 공격자에 의해 모니터링되는 엔진엑스-사용자와 레디스-사용자 간의 트래픽의 예를 도시한다.
도 7d는 공격자에 의해 도 6의 엔진엑스-사용자에 삽입된, 위조된 패킷의 예를 도시한다.
도 8은 본 발명의 원리들의 실시예에 따른 네트워크 분리로 인한 패킷 데이터의 도면을 도시한다.
도 9a는 본 발명의 원리들의 종단 간 포워딩 없이 공격자가 도 6의 스푸핑된 타겟 컨테이너를 볼 수 있는 트래픽의 예를 보여주는 패킷 데이터를 도시한다.
도 9b는 공격자가 본 발명의 원리들의 종단 간 포워딩으로 어떻게 응답 트래픽을 볼 수 없는지를 예시하는 패킷 데이터를 도시한다.
도 10a는 공격자에 의한 RST 패킷들의 종래의 보안 아키텍처를 가지는 컨테이너 네트워크의 컨테이너로의 삽입을 보여주는 패킷 데이터를 도시한다.
도 10b는 공격자가 컨테이너에 RST 패킷을 삽입하여 엔진엑스-사용자의 관점에서 세션 종료를 유발하는 방법을 보여주는 패킷 데이터를 도시한다.
도 10c는 본 발명의 원리들의 실시예에 따른 소스 검증을 구현하는 컨테이너 보안 시스템에 RST 패킷을 삽입하려는 공격자의 시도와 관련된 패킷 데이터를 도시한다.
도 11은 본 발명의 원리들의 실시예에 따른 iptables-기반 액세스 제어 네트워크 및 컨테이너 보안 시스템을 사용하여 제어되는 네트워크 모두에 대해 호스트 내에서 증가하는 보안 정책들에 따른 컨테이너 간 처리량 변동들의 그래픽 표현을 도시한다.
도 12a는 본 발명의 원리들의 실시예에 따른 컨테이너 네트워크의 호스트 내의 서비스들의 상이한 조합들에 대한 컨테이너 간 지연 시간 측정들의 그래픽 표현을 도시한다.
도 12b는 본 발명의 원리들의 실시예에 따른 호스트들에 걸친 본 발명의 원리들의 컨테이너 보안 시스템의 서비스들의 상이한 조합들에 대한 컨테이너 간 지연 시간 측정들의 그래픽 표현을 도시한다.
도 13은 본 발명의 원리들에 따른 컨테이너 네트워크들에 보안을 제공하기 위한 방법의 흐름도를 도시한다.
도 14는 본 발명의 원리들에 따른 컨테이너 보안 시스템의 실시예들과 함께 사용하기에 적합한 컴퓨팅 장치의 고-레벨 블록도를 도시한다.
도 15는 도 1의 컨테이너 보안 시스템과 같은 본 발명의 원리들에 따른 컨테이너 보안 시스템의 실시예들이 적용될 수 있는 네트워크의 고-레벨 블록도를 도시한다.
도 16은 본 발명의 원리들의 실시예에 따른 복수의 컨테이너들을 가지는 컨테이너 네트워크들에 대해 최소 특권 보안을 제공하기 위한 방법의 흐름도를 도시한다.
이해를 용이하게 하기 위해, 가능한 경우 동일한 참조 번호를 사용하여 도면에 공통인 동일한 요소를 지정하였다. 도면은 축척에 따라 그려지지 않았으며 명확성을 위해 단순화될 수 있다. 일 실시예의 요소 및 특징은 추가 언급없이 다른 실시예에 유리하게 통합될 수 있음이 고려된다.
본 발명의 원리들의 실시예들은 일반적으로 컨테이너 네트워크에 보안을 제공하기 위한 방법들, 장치들 및 시스템들에 관한 것이다. 본 발명의 원리들의 개념들은 다양한 수정들 및 대안적인 형태들이 가능하지만, 그 특정 실시예들은 도면들에서 예로서 도시되고 아래에서 상세히 설명된다. 본 발명의 원리들의 개념들을 개시된 특정 형태들로 제한하려는 의도가 없음이 이해되어야 한다. 반대로, 그 의도는 본 발명의 원리들 및 첨부된 청구 범위들과 일치하는 모든 수정들, 등가물들 및 대안들을 포함한다. 예를 들어, 본 발명의 원리들의 실시예들이 주로 특정 컨테이너 애플리케이션들 및 컨테이너 네트워크들과 관련하여 설명될 것이지만, 그러한 교시는 제한하는 것으로 간주되어서는 안된다. 본 발명의 원리들에 따른 실시예들은 실질적으로 임의의 컨테이너 애플리케이션들 및 컨테이너 네트워크들과 함께 기능할 수 있다.
본 발명의 원리들의 실시예들은 새로운 컨테이너 네트워크 스택을 제공한다. 일부 실시예들에서, 본 발명의 원리들의 아키텍처는 각 컨테이너에 대한 최소-특권 네트워크 액세스를 구현하는 분리, 성능 효율성 및 정밀화된 네트워크 보안 정책 사양을 제공하는 컨테이너 당 컨테이너 네트워크 스택을 인스턴스화한다. 본 발명의 원리들의 실시예들은 호스팅된 컨테이너들의 수가 증가함에 따라 네트워크 정책 규칙 관리에서 더 나은 네트워크 정책 확장성(scalability)을 제공할 뿐만 아니라 컨테이너들이 동적으로 인스턴스화되고 제거됨에 따라 컨테이너 생태계의 더 큰 동적 제어를 제공한다.
본 발명의 원리들의 실시예들은 매니저 및 컨테이너 당 네트워크 스택들을 포함한다. 매니저는 액티브 컨테이너들로부터 네트워크 및 정책 정보를 결정/요청하고, 일부 실시예들에서 보안 시행 네트워크 스택을 각 컨테이너에 배포한다. 그런 다음 네트워크 스택에서 모든 보안 시행은 네트워크 가시성 서비스와 트래픽 가시성 서비스의 두 가지 주요 보안 서비스들을 통해 수행된다. 컨테이너 간 종속성들의 세트를 기반으로 네트워크 가시성 서비스는 컨테이너 탐색 프로세스를 조정하여, 종속성 맵에서 관련이 없다고 간주되는 컨테이너들 및 호스트들에 대한 액세스를 필터링한다. 즉, 적어도 일부 실시예들에서, 네트워크 가시성 서비스는 컨테이너 애플리케이션 당 가시적 네트워크 토폴로지(network topology)에 대한 정밀한 제어를 제공한다. 트래픽 가시성 서비스는 컨테이너와 다른 피어 컨테이너들 사이의 네트워크 트래픽을 제어하는 동시에 트래픽 소스들도 검증한다. 즉, 적어도 일부 실시예들에서, 트래픽 가시성 서비스는 점대점 방식으로 컨테이너 간 트래픽을 안전하게 분리하고 전달하여 이 트래픽이 다른 피어 컨테이너들에 노출되는 것을 방지한다. 본 발명의 원리들의 이러한 실시예들은 전송자들과 수신자들 사이의 네트워크 통신들을 분리하는 효율적인 포워딩 메커니즘을 통해 컨테이너들 간에 트래픽이 흐르도록 한다. 컨테이너 환경들이 변경되면 매니저는 서비스 중단없이 각 컨테이너의 네트워크 스택을 동적으로 업데이트한다.
본 발명의 원리들의 실시예들은 다음 중 적어도 하나 또는 임의의 조합을 포함하지만 이에 제한되지 않는 설계 고려사항들을 정의함으로써 종래 기술의 결함들을 극복한다:
R1: 컨테이너-인식 최소 특권 통신들을 시행. 컨테이너의 연결성은 시스템 또는 서비스를 구성하기 위해 통신들이 필요한 컨테이너들과 컨테이너 간의 상호-종속성들의 기능이 될 수 있다.
R2: 확장 가능하고 정밀화된 네트워크 정책 표현. 컨테이너 네트워크 내의 네트워크 정책 표현 및 시행 성능은 모던 호스트 컨테이너 토폴로지들의 역동성과 크기에 맞게 확장될 수 있다.
R3: 컨테이너 내 통신들에 대한 정책 제어. 게이트웨이 인터페이스가 외부 네트워크들과의 통신들에서 핵심 역할을 하는 동안, 네트워크 스택은 호스트 네임스페이스의 남용을 방지하기 위해 게이트웨이 인터페이스의 다이렉트 액세스를 필터링 할 수 있다.
R4: 네트워크 특권 컨테이너들에 대한 정책 시행. 네트워크 정책 시행은 호스트 인터페이스들에 대한 다이렉트 액세스를 위해 호스트 네트워크 네임스페이스를 공유하는 네트워크-특권이 액티브화된 컨테이너들에 대한 정밀한 액세스 제어가 가능하다.
R5: 무단 도청 및 스푸핑 방지. 통신 조정은 제3자(third-party)-패킷들에 대한 액세스(예: 도청) 및 잘못된 패킷 헤더 생성(ARP(Address Resolution Protocol) 스푸핑 및 로컬 컨테이너들 간의 트래픽 삽입을 방지)을 방지할 수 있다.
R6: 어떤 컨테이너 토폴로지와도 잘 확장되는 경쟁력 있는 성능. 네트워크 스택은 컨테이너 네트워크들을 보호하면서 짧은 지연 시간과 높은 처리량의 통신들을 제공할 수 있다.
도 1은 본 발명의 원리들의 실시예에 따른 컨테이너 보안 시스템(container security system; CSS)(100)의 고-레벨 블록도를 도시한다. 도 1의 컨테이너 보안 시스템(CSS)(100)은 예시적으로 복수의 네트워크 스택들(1101-110N)(집합 적으로 네트워크 스택들(110)), 컨테이너 네트워크(미도시)의 각 컨테이너에 대한 적어도 하나의 네트워크 스택 및 글로벌 매니저(120)를 포함한다. 도 1의 컨테이너 보안 시스템(100)의 실시예에서, 각각의 네트워크 스택(110)은 아래에서 더 상세히 설명되는 네트워크 가시성 서비스/모듈(NVS)(130) 및 트래픽 가시성 서비스/모듈(TVS)(140)을 포함한다./이 제공된다. 도 1의 컨테이너 보안 시스템(100)의 실시예에서, 각각의 네트워크 스택(110)이 NVS(130) 및 TVS(140)를 포함하는 것으로 도시되어 있지만, 대안적으로 또는 추가로, 본 발명의 원리들의 컨테이너 보안 시스템의 일부 실시예들에서, NVS(130) 및/또는 TVS(140)는 각각의 네트워크 스택(110)에 외부 적으로 제공되는 서비스들/모듈들일 수 있고 도 1에 도시된 바와 같이 각각의 네트워크 스택(110) 내에 존재할 필요가 없다. 예를 들어, 도 2는 NVS(130) 및/또는 TVS(140)가 각각의 네트워크 스택(110)에 외부적으로 제공되는 본 발명의 원리들의 컨테이너 보안 시스템의 아키텍처를 도시한다(아래에서 더 상세히 설명됨). 도 1에 도시된 바와 같이, 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 컨테이너 보안 시스템의 실시예는 본 발명의 원리들에 따라 컴퓨팅 장치(1400)에서 구현될 수 있다(아래에서 도 14를 참조하여 더 자세히 설명됨).
일부 실시예들에서, 글로벌 매니저(120)는 컨테이너 수집부(122) 및 네트워크 스택 관리부(124)의 2개의 논리부들을 포함한다. 컨테이너 수집을 위해, 글로벌 매니저(120)는 예를 들어 도커(docker) 엔진 및 쿠버네티스(Kubernetes) 매니저(도 2와 관련하여 더 자세히 설명됨)로부터 액티브 컨테이너들의 속성들(예를 들어, 네트워크세팅들)을 주기적으로 캡처한다. 명시적인 컨테이너 간 종속성들의 관점에서, 일부 실시예들에서 글로벌 매니저(120)는 특정 키워드들(예를 들어, 도커 플랫폼이 제공하는 "링크(link)"및 "종속(depends on)")를 사용한다. 쿠버네티스의 경우, 글로벌 매니저(120)는 컨테이너 간 종속성들을 명시적으로 정의할 방법이 없으므로, 글로벌 매니저(120)는 명시적인 컨테이너 간 종속성들(예를 들어, 컨테이너들)을 정의하기 위해, 쿠버네티스의 요소들(예를 들어, "라벨들(labels): 종속성(dependency): 서비스(service)")의 아이덴티티를 지정하는 데에 사용되는 라벨들을 사용한다. 보안 정책들 측면에서 글로벌 매니저(120)는 호스트의 iptables에서뿐만 아니라 각 컨테이너의 라벨들을 기반으로 "수신(ingress)"및 "송신(egrees)" 키워드들을 사용하여 그러한 정책들을 추출한다. 그 다음에, 새로운 컨테이너가 생성되면, 글로벌 매니저(120)는 각 컨테이너에 특화된 새로운 관리 스레드를 시작하고, 관리 스레드는 컨테이너에 대해 필터링 된 맵들과 함께 컨테이너를 위한 보안 시행 네트워크 스택을 별도로 설치하여 관리한다. 일부 실시예들에서, 설치 중에 관리 스레드는 버클리 패킷 필터(Berkley Packet Filter; BPF) 컴파일러 컬렉션의 툴킷을 사용한다.
일부 실시예에서, 도 1의 컨테이너 보안 시스템(100)의 각 컨테이너에 대한 네트워크 스택(110)은 리눅스 커널에서 확장된 버클리 패킷 필터(eBPF) 및 익스프레스 데이터 경로(XDP)를 사용하여 구현될 수 있고, 네트워크 스택의 보안 서비스들은 XDP에서 제공하는 xdp md 구조의 원시 수신 패킷들(raw incoming packets)을 조사한다. 일부 실시예들에서, 조사 동안, 2개의 해시 맵들이 탐색되고(즉, 컨테이너 네트워크 및 컨테이너 간 종속성 맵들), 이러한 맵들은 BPF 시스템 콜들을 사용하여 글로벌 매니저(120)의 대응하는 관리 스레드의 맵들과 동기화된다. 그런 다음 일부 실시예들에서 세 가지 유형의 XDP 동작들이 사용될 수 있다: 'XDP TX'는 수신 컨테이너(다이렉트 ARP 핸들러)로 패킷을 다시 전송하고, 'XDP REDIRECT'는 대상의 전송 큐에 패킷을 삽입하고(종단 간 다이렉트 포워딩), 및 'XDP DROP'은 패킷들을 삭제한다.
전술한 바와 같이, 본 발명의 원리들의 실시예들은 컨테이너의 패킷들이 컨테이너 네트워크로 전달되기 전에 보안 시행이 발생하는 분산된 컨테이너 당 네트워크 스택을 구현한다. 이러한 실시예들은 각 컨테이너로부터 오는 네트워크 트래픽에 대한 개별화된 제어를 제공한다. 예를 들어, 도 2는 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 컨테이너 보안 시스템의 기능 아키텍처의 고-레벨 다이어그램을 도시한다. 도 2의 컨테이너 보안 시스템의 아키텍처의 실시예는 컨테이너 네트워크(미도시)의 컨테이너(110) 사이 및 컨테이너(110)와 호스트 컨테이너들(290) 사이의 통신을 보안하기 위해 제공된 본 발명의 원리들의 컨테이너 보안 시스템에 의해 제공되는 보안 서비스(200)로서 예시적으로 도시된다. 도 2의 컨테이너 보안 시스템의 아키텍처는 컨테이너들과 가시성 맵들(250)에서 관련없는 트래픽을 숨기면서, 예시적으로 각 컨테이너(210)에 대한 네트워크 스택(110), 컨테이너 네트워크들의 글로벌 뷰를 유지하는 글로벌 매니저(120), 컨테이너 도달 성을 제어하는 네트워크 가시성 서비스(230)를 제공하는 보안 서비스(200), 컨테이너 간 트래픽을 제어하는 트래픽 가시성 서비스(240)를 포함한다. 도 2는 또한 예시적으로 2개의 호스트 컨테이너들(290)을 포함하고, 각각은 iptables(292) 및 각각의 가상 이더넷들(Virtual Ethernets; veth)(294)을 포함한다. 브릿지(296)는 호스트들(290) 사이의 상호 통신을 제공한다.
도 2의 실시예에서, 네트워크 스택(110)은 보안 서비스(200)를 통한 일부 실시예에서 대응하는 컨테이너에 대한 컨테이너 네트워크 맵(252)을 유지하며, 이는 피어 종속성들(예를 들어, 마이크로서비스 구성 맵)을 가지는 모든 도달 가능한 컨테이너들의 네트워크 정보 및 종속 컨테이너를 위한 보안 정책을 포함하는 컨테이너 간 종속성 맵(254)을 포함한다. 패킷들이 네트워크 스택(110)에 도착하면, 컨테이너 보안 서비스(200)를 통한 네트워크 가시성 서비스(230)는 일부 실시예들에서 컨테이너 네트워크 맵(252)(R1, R5)에 기초하여 ARP(Address Resolution Protocol) 요청들을 처리함으로써 관련 없는 컨테이너의 임의의 탐색 프로세스들을 사전에 필터링하고, 컨테이너 간 종속성 맵(254(R1))에 명시된 보안 정책에 따라 컨테이너들 사이의 통신들을 사전에 제한한다. 도 2의 실시예에서, 다이렉트 ARP 핸들러(232)는 현재 컨테이너의 종속성 맵에 속하지 않는 임의의 불필요한 컨테이너 탐색을 필터링한다(아래에서 더 자세히 설명함). 그러나 다이렉트 ARP 핸들러(232)는 종속 컨테이너들 간의 악의적인 액세스들을 처리하지 않는다. 이와 같이, 컨테이너들의 도달 가능성을 더 제한하기 위해, 제2 네트워크 가시성 구성요소(234)는 컨테이너 인식 네트워크 분리를 구현한다(아래에서 더 자세히 설명됨). 또한, 도 2의 실시예에서 컨테이너 보안 서비스(200)를 통한 네트워크 가시성 서비스(230)의 특수한 IP-핸들러(231)는 특수한 IP 주소들(예를 들어, 게이트웨이 IP 주소들)(R3)에 대한 무단 액세스들을 제한한다.
도 2의 실시예에서, 트래픽 가시성 서비스(240)는 컨테이너 보안 서비스(200)를 통해 컨테이너들 사이에서 보안 패킷 포워딩을 수행한다. 트래픽 가시성 서비스(240)는 먼저 소스 검증(242)(R4-5)을 통해 컨테이너의 아이덴티티로 패킷들을 검증한다. 트래픽 가시성 서비스(240)는 다이렉트 포워딩(244)을 통해 인터페이스 주소를 사용하여 소스 컨테이너로부터 목적지 컨테이너들로 패킷을 다이렉트로 포워딩한다(아래에서 더 자세히 설명함). 다이렉트 패킷 포워딩이 네트워크 인터페이스 수준에서 발생하므로 패킷들이 더 이상 컨테이너 네트워크(R5-6)를 통과하지 않으므로 무단 네트워크 트래픽 노출 가능성이 없다(네트워크 권한이 있는 컨테이너들에도 해당).
다시 도 2를 참조하면, 일부 실시예에서, 크로스-호스트 컨테이너 간 통신들을 위해, 특화된 네트워크 스택(255)이 각 노드의 외부 인터페이스에서 사용된다. 컨테이너들(210)에 대한 네트워크 스택(110)과 달리, 특수 네트워크 스택(255)은 각 노드에 배포된 모든 컨테이너들에 대한 컨테이너 네트워크 맵을 유지한다. 패킷들이 각 컨테이너의 네트워크 스택에 들어갈 때 모든 보안 결정들이 이미 이루어지기 때문에 외부 인터페이스에서 목적지 컨테이너들로 간단한 보안 포워딩이 수행된다. 호스트들(노드들) 간의 물리적 링크들은 컨테이너 보안 시스템의 범위를 벗어나므로 기존 오버레이 네트워크들(예: IPSec을 통한 위브 네트워크)를 활용한다. 또한, 일부 실시예들에서 본 발명의 원리들의 컨테이너 보안 시스템들은 컨테이너 플랫폼들의 기존 메커니즘들을 유지하여 외부 네트워크들로부터의 인바운드 트래픽을 유지한다.
도 2의 실시예에서, 글로벌 매니저(120)는 두 가지 주요 역할들을 수행한다: 글로벌 매니저(120)는 컨테이너 플랫폼들로부터 모든 액티브 컨테이너들의 네트워크 정보를 수집하고 액티브 컨테이너들에 배포된 네트워크들 스택을 관리한다. 일부 실시예에서, 컨테이너 수집을 위해, 글로벌 매니저(120)는 먼저 각 컨테이너의 보안 평가를 위해 2 개의 해시 맵들(즉, 글로벌 컨테이너 네트워크 맵(252) 및 모든 컨테이너들의 컨테이너 간 종속성 맵(254))을 유지한다. 일부 실시예들 및 도 2에 도시된 바와 같이, 본 발명의 원리들의 컨테이너 보안 시스템은 도 1 및 2의 컨테이너 보안 시스템(100)과 같은 도커 또는 쿠버네티스와 같은 컨테이너 플랫폼(260)을 사용하여 네트워크 정보(예: 컨테이너 ID, 컨테이너 네트워크-마이크로서비스의 ID, 컨테이너 세트-컨테이너 세트의 ID)를 탐색한다. 모든 컨테이너들에 대한 특정 기능, 호스트-측 네트워크 인터페이스, IP 및 MAC 주소들), 탐색된 정보 및 해당 수신/송신 보안 정책들(ingress/egress security policies)을 기반으로 컨테이너 간의 종속성들을 추출하여 컨테이너 간 종속성 맵을 구축한다. 또한 컨테이너들이 동적으로 위아래로 회전할 수 있기 때문에 글로벌 매니저(120)는 주기적으로 네트워크 정보를 탐색하여 맵들을 업데이트한다. 일부 실시예들에서, 임의의 요청된 수정들 없이 이미-배포된 컨테이너 환경들과 통합될 수 있는 투명하고 호환 가능한 솔루션을 제공하기 위해 폴링-기반 메커니즘이 선택된다.
일부 실시예들에서, 본 발명의 원리들의 컨테이너 보안 시스템은 컨테이너들 간의 종속성들을 자동으로 추출한다. 이를 위해 마이크로서비스 그룹(microservice group)이 하나 이상의 컨테이너 세트들로 구성되고 각 컨테이너 세트에 동일한 역할을 수행하는 하나 이상의 컨테이너들이 있는 컨테이너 네트워크 모델이 정의된다(확장 및 로드-밸런싱으로 인해). 각 컨테이너 세트는 다른 컨테이너 세트들과 통신하기 위해 내부 서비스 포트들을 노출하는 반면, 마이크로서비스는 외부 세계에서 일부 내부 서비스 포트들로 액세스들을 리디렉션하기 위해 글로벌 서비스 포트들을 노출한다. 이러한 실시예들에서, 암시적 컨테이너 간 종속성에 대한 컨테이너 간 통신들에는 네 가지 제약들이 존재할 수 있다: (1) 동일한 컨테이너 세트를 가진 컨테이너들에 상호 연결성이 부여되고, (2) 서로 다른 컨테이너 세트들의 컨테이너들은 내부 서비스 포트들(구성들에 의해 명시적으로 노출됨)을 통해 통신하고, (3) 관련되지 않은 컨테이너들은 글로벌 서비스 포트들을 통해 서로 통신할 수 있고, (4) 다른 모든 통신들은 기본적으로 삭제된다.
본 발명의 원리들의 컨테이너 보안 시스템의 일부 실시예에서, 컨테이너 간 종속성들은 도 3의 알고리즘(300)을 사용하여 추출될 수 있다. 도 3의 알고리즘(300)에서, 먼저, 최소 특권 연결 정책(least-privilege connectivity policy)을 나타내는 컨테이너 네트워크에서 각 컨테이너의 수신 및 송신 정책(ingress and egress policy)을 교차(intersect)하여 초기 종속성 맵(initial dependency map)을 구축하기 위해 오퍼레이터 지정 정책(operator-specified policies)이 사용된다. 다음으로, 알고리즘(300)은 제약에 기초하여 암시적으로 종속적인 컨테이너들을 찾는다. 동일한 컨테이너 세트(즉, 제약 1)의 컨테이너들에 대해, 글로벌 매니저(120)는 알고리즘(300)에 따라 명시적으로 종속된 컨테이너들로서 종속성 맵에 컨테이너들을 추가한다. 동일한 마이크로서비스 그룹(제약 2)의 상이한 컨테이너 세트들에 속하는 컨테이너들은 각 컨테이너의 송신 정책들을 다른 컨테이너 세트들의 내부 서비스 포트들과 교차시켜 맵에 추가된다. 마지막으로, 마이크로서비스 그룹 간 통신들(제약 3)의 경우, 글로벌 매니저(120)는 알고리즘(300)에 따르면, 각 컨테이너의 송신 정책을 글로벌 서비스 포트들과 교차시킴으로써 다른 마이크로서비스들에 대한 대표 IP 주소들(마이크로서비스들에 액세스하기 위한 가상 IP 주소들)를 맵에 추가한다. 마지막으로, 알고리즘(300)은 모든 컨테이너들에 대한 컨테이너 간 종속성 맵들을 집계(aggregate)한다.
일부 실시예들에서, 본 발명의 원리들에 따른 컨테이너 보안 시스템은 컨테이너 간 종속성 및 네트워크 정책들을 탐색할 수 있다. 예를 들어, 통신들을 최소한의 필수 액세스로 제한하는 적절한 네트워크 정책들 없이는 컨테이너 네트워크가 보안 될 수 없기 때문에, 일부 실시예들에서, 도 1 및 2의 글로벌 매니저(120)와 같은 본 발명의 원리들의 글로벌 매니저는 컨테이너 연산자에 의해 명시적으로 정의되지 않은 컨테이너 간 종속성들을 탐색한다. 예를 들어, 컨테이너 간 트래픽의 흐름 제어 중에 본 발명의 원리들의 글로벌 매니저는 트래픽을 모니터링하고 컨테이너들에서/로의 네트워크 액세스들을 캡처하는 네트워크 로그를 생성할 수 있다. 동시에 글로벌 매니저는 생성된 로그들을 컨테이너 간 종속성 맵과 비교하여 컨테이너의 로깅된 정보를 합법적인 액세스들, 누락된 정책들 및 과도한 정책들의 세 가지 경우들로 분류할 수 있다. 주제 통신의 경우 관찰된 컨테이너들의 쌍이 미리 계산된 컨테이너 간 종속성 맵에 없으면 현재 원리들의 글로벌 매니저는 누락된 네트워크 정책 또는 유효하지 않은 액세스가 있다고 간주할 수 있다. 일부 실시예들에서, 본 발명의 원리들의 글로벌 매니저는 예를 들어 네트워크 오퍼레이터에게 통신이 전송되어 식별된 현재 네트워크 정책들에는 아직 존재하지 않는 흐름들/액세스들을 승인하기 위해 새로운 네트워크 정책들이 생성되어야 하는지 여부를 결정하도록 특정 네트워크 정책들의 검토를 유발할 수 있다. 대안 적으로 또는 추가적으로, 일부 실시예들에서, 본 발명의 원리들의 글로벌 매니저는 예를 들어 일부 실시예들에서 동일한 시도의 빈도에 기초하여 추가 반복 액세스 시도들을 수용하기 위해 추가 네트워크 정책들이 추가되어야 하는지 여부를 자동으로 결정하도록 구성될 수 있다.
유사하게, 일부 실시예들에서, 글로벌 매니저는 어떠한 흐름들도 만나지 않은 네트워크 정책들을 식별할 수 있다. 이러한 인스턴스는 컨테이너 네트워크의 운영들에 불필요한 흐름들을 가능하게 하는 정책들의 과도한 사양을 나타낼 수 있다. 이러한 경우, 본 발명의 원리들의 글로벌 매니저는 예를 들어, 통신이 네트워크 오퍼레이터에게 전송되어 특정 네트워크 정책들을 검토하여 이미 존재하지만 사용되지 않는 네트워크 정책들을 제거해야 하는지 여부를 결정할 수 있다. 대안적으로 또는 추가적으로, 일부 실시예들에서, 본 발명의 원리들의 글로벌 매니저는 예를 들어, 일부 실시예들에서, 정책이 사용된 이후 얼마나 오래되었는지에 기초하여 네트워크 정책이 제거되어야 하는지 여부를 자동으로 결정하도록 구성될 수 있다.
전술한 바와 같이, 일부 실시예들에서, 본 발명의 원리들의 글로벌 매니저는 컨테이너 네트워크에서 컨테이너들의 트래픽들을 모니터링하고 컨테이너들로부터/로의 네트워크 액세스들을 캡처하는 네트워크 로그들을 생성할 수 있다. 이러한 실시예들에서, 글로벌 매니저는 네트워크 로그들로부터 컨테이너 네트워크들의 네트워크 및 정책 정보를 결정할 수 있고, 결정된 네트워크 및 정책 정보로부터 복수의 컨테이너에 대한 최소 특권 통신 정책을 결정할 수 있다. 즉, 일부 실시예들에서 본 발명의 원리들의 글로벌 매니저는 컨테이너 네트워크의 컨테이너들에 각각의 작업 기능을 수행하는 데 필요한 최소 수준들의 액세스/허가들이 제공되는 보안 개념을 결정할 수 있다. 글로벌 매니저는 결정된 최소 특권 통신 정책에 기초하여 각각의 통신에 관련된 복수의 컨테이너들의 컨테이너들로만 제한되도록 컨테이너 네트워크들에서 컨테이너 액세스를 구성할 수 있다. 글로벌 매니저는 컨테이너 네트워크들의 컨테이너 간 트래픽이 피어 컨테이너들에 대한 컨테이너 간 트래픽 노출이 방지되도록 점대점 방식으로 소스 컨테이너에서 하나 이상의 목적지 컨테이너로만 전달되도록 구성할 수 있다.
도 16은 복수의 컨테이너들을 가지는 컨테이너 네트워크들에 대해 최소 특권 보안을 제공하기 위한 방법(1600)의 흐름도를 도시한다. 방법(1600)은 컨테이너 네트워크들에서의 트래픽이 모니터링되고 컨테이너 트래픽의 네트워크 로그들이 생성되는(1602)에서 시작할 수 있다. 방법(1600)은(1604)로 진행할 수 있다.
(1604)에서 컨테이너 네트워크의 네트워크 및 정책 정보는 네트워크 로그들에서 결정된다. 방법(1600)은 (1606)으로 진행할 수 있다.
(1606)에서, 결정된 네트워크 및 정책 정보로부터 복수의 컨테이너들에 대해 최소 특권 통신 정책이 결정된다. 방법(1600)은 (1608)로 진행할 수 있다.
(1608)에서, 컨테이너 네트워크들에서의 컨테이너 액세스는 결정된 최소 특권 통신 정책에 기초하여 각각의 통신에 관련된 복수의 컨테이너들의 컨테이너들로만 제한되도록 구성된다. 방법(1600)은 (1610)으로 진행할 수 있다.
(1610)에서, 컨테이너 네트워크들의 컨테이너 간 트래픽은 피어 컨테이너들에 대한 컨테이너 간 트래픽의 노출이 방지되도록 점대점 방식으로 소스 컨테이너에서 적어도 하나의 목적지 컨테이너로만 전달되도록 구성된다. 방법(1600)은 종료될 수 있다.
본 발명의 원리들에 따른 그리고 적어도 도 2의 실시예를 참조하는 실시예에서, 전술한 바와 같이 글로벌 매니저(120)는 각 컨테이너에 대한 네트워크 스택(110)을 유지한다. 새로 생성된 컨테이너들의 경우, 글로벌 매니저(120)는 컨테이너 네트워크(252) 및 컨테이너 간 종속성 맵들(254)을 사용하여 인터페이스에 네트워크 스택들(110)을 설치한다. 맵 크기와 관련하여, 각 컨테이너는 종속 이웃들과 통신하기 위해 네트워크 정보의 일부만 필요로 하는 반면, 글로벌 매니저(120)는 배포된 모든 컨테이너들의 전체 네트워크 정보를 유지한다. 따라서, 보안 서비스들의 크기를 최적화하기 위해, 일부 실시예들에서 본 발명의 원리들의 컨테이너 보안 시스템은 컨테이너 당 관련 없는 정보를 필터링한다. 글로벌 매니저(120)는 또한 컨테이너 간 종속성들의 변경 감지를 수행하여 해당 컨테이너들의 네트워크 스택 맵들을 자동으로 업데이트한다.
위에서 언급한 바와 같이, 네트워크 가시성 서비스(230)는 컨테이너 사이 및 컨테이너들과 외부 호스트들 사이의 불필요한 연결을 제한한다. 일부 실시예들에서, 컨테이너 간 네트워킹의 경우, 탐색은 다른 컨테이너 통신 타겟들을 식별하는 첫 번째 단계이다. 일부 실시예들에서, 컨테이너들은 ARP 요청들을 사용하여 타겟 컨테이너들의 필요한 네트워크 정보(즉, MAC 주소들)를 식별할 수 있다. 네트워크 가시성 서비스(230)의 다이렉트 ARP 핸들러(232)는 현재 컨테이너의 종속성 맵에 속하지 않는 불필요한 컨테이너 탐색을 필터링한다. 컨테이너가 ARP 요청을 보낼 때, 다이렉트 ARP 핸들러(232)는 요청이 브로드 캐스트되기 전에 요청을 가로채서 소스 컨테이너가 목적지 컨테이너에 대한 종속성을 가지고 있는지 확인한다. 일부 실시예들에서, 분석은 컨테이너 간 종속성 맵(254)을 사용하여 수행된다. 액세스가 가능하다면, 다이렉트 ARP 핸들러(232)는 컨테이너 네트워크 맵에서 목적지 컨테이너의 주어진 MAC 주소들을 사용하여 ARP 응답을 생성하고 응답을 소스 컨테이너로 다시 전송한다. 그렇지 않으면, 다이렉트 ARP 핸들러(232)는 단순히 요청을 삭제한다.
다이렉트 ARP 핸들러(232)가 컨테이너들 제한되지 않은 토폴로지 탐색을 수행하는 것을 방지하지만 커버리지는 컨테이너-레벨 분리로 제한된다. 다이렉트 ARP 핸들러(232)는 종속 컨테이너들 간의 악의적인 액세스들을 처리하지 않는다. 이와 같이, 컨테이너들의 도달 가능성을 더 제한하기 위해, 제2 네트워크 가시성 구성요소(234)는 컨테이너-인식 네트워크 분리를 구현한다. 도 4a는 본 발명의 원리들의 실시예에 따라 컨테이너-인식 네트워크 분리를 구현하기 위한 고-레벨의 예시적인 흐름도(400)를 도시한다. 도 4a의 흐름도(400)는 웹 애플리케이션 컨테이너들과 데이터베이스 컨테이너들 간의 상호 의존성을 도시한다. 즉, 도 4a의 실시예에서, 웹 애플리케이션 컨테이너는 도 4b에 도시된 컨테이너 네트워크의 데이터베이스 컨테이너의 서비스에 액세스한다.
즉, 도 4b에 도시 된 바와 같이, 본 발명의 원리들의 컨테이너 보안 시스템은 각각의 호스팅 된 컨테이너에 대한 네트워크 인터페이스 속성들을 캡처하는 컨테이너 네트워크 맵(402) 및 컨테이너 간의 링크들 및 종속성들을 나타내는 컨테이너들 사이의 종속성 맵(404)을 계산한다. 예를 들어 도 4b의 실시예에서 도시된 바와 같이, 컨테이너 네트워크(408)의 오퍼레이터(406)는 예를 들어 글로벌 매니저(420)가 컨테이너 네트워크 맵(402) 및 컨테이너 간 종속성 맵(404) 중 적어도 하나를 계산/업데이트하도록 명령을 글로벌 매니저(420)에 전달할 수 있다. 또한 도 4b에 도시된 바와 같이, 일부 실시예에서 글로벌 매니저(420)는 주기적으로 컨테이너 네트워크 맵(402) 및 컨테이너 간 종속성 맵(404) 중 적어도 하나를 계산/업데이트하도록 구성될 수 있다.
도 4a로 돌아가면, 웹 애플리케이션의 네트워크 스택은 웹 애플리케이션 자체에 대한 컨테이너 네트워크 맵(402) 및 컨테이너 간 종속성 맵(404)만을 포함한다. 웹 애플리케이션의 패킷들을 조정할 때 본 발명의 원리들의 컨테이너 보안 시스템은 먼저 1 단계에서 웹 애플리케이션에서 들어오는 패킷을 가로 챌 수 있다. 본 발명의 원리들의 컨테이너 보안 시스템은 대상 IP 주소를 키로 사용하는 컨테이너 간 종속성 맵을 검사하여 WebApp과 대상 간의 종속성을 확인할 수 있다. 즉, 단계 2에서, 일부 실시예들에서, 본 발명의 원리들의 컨테이너 보안 시스템은 해시 맵 룩업을 수행할 수 있다. 맵에 정책들이 있는 경우 웹 애플리케이션이 대상(이 경우 데이터베이스)에 대한 종속성이 있다는 결론을 내릴 수 있다. 데이터베이스 컨테이너에 대한 정책과 일치하면 연결이 허용되고 그렇지 않으면 연결이 끊어진다. 즉, 3단계에서 본 발명의 원리들의 컨테이너 보안 시스템은 정책 매칭들을 수행할 수 있다.
본 발명의 원리들의 일부 실시예들은 순차 매칭을 사용하지만, 대안적으로 또는 추가로 다른 매칭 알고리즘들(예: 블룸 필터)이 본 발명의 원리들에 따라 구현될 수 있다. 위에서 설명된 실시예들은 iptables에서 발생하는 것과 같이 매치 세트가 호스트-글로벌 특정이 아니라 컨테이너 특정이기 때문에 간소화된 컨테이너 별 정책 사양과 최소화된 정책 시행 성능 영향을 모두 제공한다. 또한 iptables은 정적 정책들에 의존하는 반면, 서비스 중단 없이 동적으로 변화하는 컨테이너 네트워크 환경에 대한 최신 정보를 유지하는 종속성 맵을 기반으로 하는 동적 정책들을 통해 현재 원리들의 컨테이너 인식 네트워크 분리가 구현된다.
도 2와 관련하여 위에서 언급한 바와 같이, 네트워크 가시성 서비스(230)의 특수한 IP 핸들러(231)는 직접 호스트 액세스들을 필터링한다. 네트워크 연결이 로컬이 아닌 컨테이너 주소들을 타겟으로 하는 경우 네트워크의 게이트웨이 MAC 주소와 실제 대상의 IP 주소가 포함된다. 본 발명의 원리들의 컨테이너 보안 시스템의 네트워크 가시성 서비스(230)의 IP-핸들러(231)는 도 1의 컨테이너 보안 시스템(100)과 같은 일부 실시예들에서 IP 및 MAC 주소들이 게이트웨이에 속하는지 확인함으로써 임의의 다이렉트 호스트 액세스들을 차단한다. 이러한 게이트웨이는 호스트 네트워크에 연결되기 때문에 네트워크 흐름이 다른 컨테이너 네트워크들의 게이트웨이들에 대안적으로 액세스 할 수 있다는 점에 유의해야 한다. 그 결과, 본 발명의 원리들의 일부 실시예들에서, IP-핸들러(231)는 또한 들어오는 패킷들의 IP 및 MAC 주소들을 모든 게이트웨이 정보와 비교함으로써 허가되지 않은 호스트 액세스들을 필터링한다.
쿠버네티스 환경들에는 추가적인 특수 서비스 IP 주소가 있다. 서비스 IP 주소들은 실제 컨테이너들로 리디렉션하는 데 사용되는 가상 IP 주소들이다. 그러나 이러한 IP 주소들은 컨테이너 네트워크들에 속하지 않으므로 외부 IP 주소들로 간주할 수 있다. 따라서, 본 발명의 원리들의 일부 실시예들에서, {서비스 IP 주소, 포트} 및 {해당 컨테이너 IP 주소, 포트} 쌍은 쿠버네티스가 관리하는 ip 테이블들의 NAT 테이블에서 추가로 추출되며, 서비스 맵은 현재 원리들의 각 네트워크 스택에서 유지된다. 그런 다음 컨테이너가 서비스 IP 주소와 서비스 포트가 있는 패킷을 보내면, 네트워크 가시성 서비스(230)의 특수한 IP-핸들러(231)는 서비스 맵에 따라 서비스 IP 주소 및 포트를 실제 컨테이너 IP 주소 및 포트로 덮어쓴다. 단일 서비스에 매핑된 여러 컨테이너들이 있는 경우 소스 IP 주소 및 포트의 해시를 기반으로 컨테이너가 선택된다. 결과적으로 모든 컨테이너 간 통신들은 컨테이너 네트워크들에 있는 기존 IP 주소들로 수행될 수 있다.
도 5a는 리눅스 커널 내에서 수행되는 종래 기술의 패킷 처리 시퀀스의 개요를 도시한다. 도 5a의 실시예에서, 패킷이 인터페이스에 도착할 때, 패킷은 먼저 수신 트래픽 제어(ingress traffic control)로 전달된다. 결과적으로 패킷은 실제 네트워크 스택을 통과하고 필터 검사들을 통해 처리된 후 궁극적으로 응용 프로그램에 전달된다. 애플리케이션이 패킷을 보낼 때 패킷은 인터페이스에 반대로 전달된다. 트래픽 가시성을 제어하려면 패킷들을 필터링하고 캡처 할 위치를 모두 고려해야 한다. 첫 번째 질문(즉, 패킷들을 필터링 할 위치)에 대한 답은 네트워크 스택에 있다. 예를 들어 네트워크 스택에있는 Netfilter를 사용하여 네트워크 트래픽을 필터링할 수 있다. Netfilter는 네트워킹 레이어들(예: L2 트래픽의 경우 ebtables 및 L3/L4 트래픽의 경우 iptables)에서 여러 데이터 이동 색인으로 구성된다. 따라서 보안 정책들(예: DROP)을 각 레이어들의 해당 매치 테이블들에 추가하여 네트워크 트래픽에 적용할 수 있다. 보안 정책을 위반하는 패킷들은 이미 네트워크 스택에서 처리되었기 때문에 애플리케이션들은 이를 수신하지 않는다.
두 번째 질문(즉, 패킷들 캡처 위치)에 대한 대답은 수신 및 송신 트래픽 제어들(ingress and egress traffic controls)에 있다. 네트워크 트래픽이 캡처되면 패킷 캡처 도구들(예: tcpdump)가 사용된다. 이러한 도구는 내부적으로 BPF(Berkeley Packet Filter) 필터들을 만들어 트래픽 제어들에 삽입한다. BPF 필터들을 사용하여 네트워크 트래픽을 복제하고 선택적으로 탐색한다. 따라서 netfilter에 의해 삭제된 패킷들도 모니터링 할 수 있다. 도 5a에 도시 된 바와 같이 Linux 커널 및 다른 네트워크 스택 기능 내에서 수행되는 종래 기술 패킷 처리 시퀀스의 결함은 모든 보안 시행 및 패킷 포워딩이 패킷 헤더 정보에 의존한다는 것을 암시한다. 따라서 악성 컨테이너는 타겟 컨테이너들의 ID와 일치하는 패킷들을 제출할 수 있다. 이렇게 하면 목적지 컨테이너의 트래픽을 자신에게 리디렉션 할 수 있다(예: ARP 스푸핑 공격). 또한 악성 컨테이너는 통과하는 트래픽(예: 중간자 공격)을 수정하거나 위조 된 패킷들을 삽입하여 다른 컨테이너의 기존 세션들을 방해할 수 있다(예: TCP RST 공격).
위에서 설명된 결함들을 방지하기 위해, 본 발명의 원리들의 실시예들은 컨테이너 간 트래픽의 소스 검증을 수행한다. 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 일부 실시예들에서, 본 발명의 원리들의 각 컨테이너의 네트워크 스택은 대응하는 컨테이너의 컨테이너 정보(즉, IP 및 MAC 주소들)를 정적으로 포함한다. 일부 실시예들에서, 트래픽 가시성 서비스(240)와 같은 본 발명의 원리들의 트래픽 가시성 서비스는 패킷 헤더 정보를 네트워크 스택에 내장된 컨테이너 정보와 비교함으로써 들어오는 트래픽을 검증한다. 패킷 정보가 컨테이너 정보와 일치하지 않으면 들어오는 트래픽이 스푸핑된 것으로 간주되고 트래픽이 즉시 삭제된다. 대안적으로 또는 추가적으로, 본 발명의 원리들의 일부 실시예들에서, 들어오는 패킷들의 커널 메타데이터(예를 들어, 수신 네트워크 인터페이스 인덱스(ingress network interface index))는 컨테이너 간 트래픽의 소스 검증을 수행하기 위해 활용된다. 본 발명의 원리들의 이러한 실시예들에서, 트래픽 가시성 서비스(240)와 같은 본 발명의 원리들의 트래픽 가시성 서비스는 패킷 헤더 정보뿐만 아니라 메타데이터도 컨테이너의 정보와 비교함으로써 들어오는 트래픽을 검증한다. 패킷 정보 및/또는 메타데이터가 컨테이너 정보와 일치하지 않으면 들어오는 트래픽이 스푸핑된 것으로 간주되고 트래픽이 즉시 삭제된다.
소스 검증의 효과는 수신 패킷들의 출처를 확인하는 충실함에서 비롯된다. 그 결과, 본 발명의 원리들의 실시예들은 컨테이너 환경들에서 파괴 및 스푸핑 위협들의 스펙트럼을 효과적으로 제거한다. 도 5a의 종래 기술의 패킷 처리 시퀀스와 같은 기존 솔루션은 패킷 헤더 정보를 통해 들어오는 패킷들이 어디에서 오는지 관찰하도록 제한된다. 도 5a에 도시 된 바와 같이, 종래 기술의 네트워크 스택들은 필터 위치가 캡처 포인트 뒤에 있기 때문에 다른 컨테이너들로부터의 컨테이너 간 트래픽의 노출을 방지할 수 없다. 따라서 악성 컨테이너가 목적지 컨테이너의 트래픽을 자신에게 리디렉션할 수 있는 기능이 있는 경우 악성 컨테이너는 제한없이 트래픽을 모니터링 할 수 있다. 또한 네트워크 특권 컨테이너들은 모든 컨테이너들 네트워크에 대한 완전한 가시성을 가진다. 전술한 바와 같이, 이러한 결함들을 해결하기 위해, 본 발명의 원리들의 실시예들은 종단 간 다이렉트 포워딩 구성요소를 제공함으로써 최소 특권 트래픽 노출을 구현한다.
도 5b는 본 발명의 원리들의 실시예에 따른 종단 간 다이렉트 패킷 포워딩 프로세스의 고-레벨 기능 블록도를 도시한다. 일부 실시예들에서, 본 발명의 원리들의 도 5b의 프로세스는 원본 네트워크 스택들뿐만 아니라 브릿지 인터페이스들을 우회하여 피어 컨테이너들에 의한 도청을 방지함으로써 다른 컨테이너들에 대한 컨테이너 내 트래픽의 노출을 우회하도록 구현된다. 도 5B의 실시예에서, 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 컨테이너 보안 시스템이 컨테이너로부터 들어오는 네트워크 연결을 수신할 때, 컨테이너 보안 시스템은 컨테이너 네트워크 맵에서 대상의 인터페이스 정보를 탐색한다. 대상이 동일한 노드의 컨테이너 인 경우 컨테이너 보안 시스템은 패킷 스트림을 목적지 컨테이너에 삽입한다. 예를 들어, 도 5b의 실시예에서 본 발명의 원리들의 컨테이너 보안 서비스(500)는 컨테이너 A(502) 및 컨테이너 B(504) 각각에서 구현된다. 도 5a의 통신 프로토콜과 달리, 도 5b의 실시예에서, 컨테이너 A(502)에서 컨테이너 B(504) 로의 통신은 컨테이너 A의 호스트 측 인터페이스(512)를 사용하여 컨테이너 B의 호스트 측 인터페이스(514)로 완료되지 않는다. 컨테이너 A(502)로부터 컨테이너 B(504) 로의 통신은 대신에 본 발명의 원리들의 컨테이너 보안 서비스(500)에 의해 컨테이너 A(502)의 내부 인터페이스(516)로부터 컨테이너 B(504)의 내부 인터페이스(518)로 직접 전달된다. 본 발명의 원리들에 따라 일부 실시예들에서, 컨테이너 A(502) 및 컨테이너 B(504) 중 적어도 하나로부터의 통신 대상이 다른 노드의 컨테이너인 경우, 패킷은 본 발명의 원리들의 서비스(500)에 의해 호스트(미도시)의 외부 인터페이스에 삽입된다. 타겟 노드에 있는 외부 인터페이스의 네트워크 스택이 패킷을 수신하면 네트워크 스택은 패킷 스트림을 목적지 컨테이너에 직접 삽입한다. 본 발명의 원리들에 따른 이러한 트래픽 흐름 격리는 다른 컨테이너들에 의한 트래픽 공개 및 삽입을 모두 방지하여 네트워크-특권이 있는 컨테이너들조차도 제3자의 트래픽 흐름들을 보는 것을 방지한다.
도 6은 보안 공격이 발생하는 종래 기술의 쿠버네티스 환경의 고-레벨 기능 블록도를 도시한다. 도 6의 쿠버네티스 환경에서는 두 개의 독립 서비스들이 공통 마이크로서비스들과 함께 배포된다. 도 6에서 하나는 합법적인 사용자들을 위한 서비스로 구현되고 다른 하나는 게스트 사용자들을 위한 서비스로 구현되고 있다. 도 6의 쿠버네티스 환경에서는 도커 허브(Docker Hub)에서 탐색된 엔진엑스 및 레디스 컨테이너 이미지들이 사용된다. 도 6의 쿠버네티스 환경에서, 한 서비스의 손상된 컨테이너는 피어 서비스의 다른 컨테이너들 사이의 통신을 가로 채기 위해 일련의 네트워크 공격들을 수행한다. 이 시나리오에서 공격자는 웹 애플리케이션 취약성들을 악용하여 공용 엔진엑스 서버에 침투한 후 합법적인 사용자 요청들을 위조한다. 그런 다음 공격자는 정적으로 컴파일된 공격 바이너리들을 모든 프로세스들에 대한 글로벌 읽기 및 쓰기 권한들이 있는 /tmp 디렉토리에 다운로드할 수 있다.
그림 6의 쿠버네티스 환경에서 공격자는 3개의 네트워크 기반 공격들을 활용하여 엔진엑스-게스트 컨테이너를 손상시키고 중간자 공격을 성공적으로 실행한다. 첫 번째 단계에서 공격자는 ARP 기반 스캐닝을 통해 네트워크 주변의 액티브 컨테이너들을 탐색한다. 도 6의 쿠버네티스 환경에서는 모든 컨테이너들이 오버레이 네트워크에 연결되고 ARP 패킷들이 iptables에 의해 필터링 되지 않기 때문에 공격자가 컨테이너들의 네트워크 정보를 쉽게 수집할 수 있다.
예를 들어, 도 7a는 이웃 컨테이너들을 조사하는 도 6의 쿠버네티스 환경의 공격자에 의해 수집된 컨테이너 네트워크의 컨테이너들로부터의 패킷 데이터를 도시한다(즉, 엔진엑스-게스트의 관점). 그림 6의 쿠버네티스 환경에서 공격자는 엔진엑스-사용자와 레디스-사용자 컨테이너들 사이의 모든 트래픽이 엔진엑스-게스트를 통과하도록 거짓 ARP 응답들을 네트워크에 삽입할 수 있다. 예를 들어, 도 7b는 공격자에 의해 도 6의 네트워크에 입력된 거짓 ARP 응답들의 예를 도시한다. 즉, 도 7b에서 엔진엑스-사용자의 ARP 테이블에 있는 레디스-사용자의 MAC 주소가 엔진엑스-게스트의 MAC 주소로 대체되었음을 알 수 있다. 그러면 공격자는 엔진엑스-사용자와 레디스-사용자 간의 모든 트래픽을 모니터링 할 수 있다. 예를 들어, 도 7c는 도 6의 네트워크에서 공격자에 의해 모니터링되는 엔진엑스-사용자와 레디스-사용자 간의 트래픽의 예를 도시한다.
그림 6의 쿠버네티스 환경에서 공격자는 합법적인 사용자에 대한 응답들을 위조된 콘텐츠로 대체할 수 있다. 예를 들어, 공격자는 내부적으로 레디스-사용자로부터 전달된 패킷들을 삭제하고 위조된 콘텐츠로 새 패킷들을 삽입할 수 있다. 그런 다음 엔진엑스-사용자는 원본 대신 위조된 콘텐츠를 처리하고 결과들을 다시 사용자에게 반환한다. 예를 들어, 도 7d는 공격자에 의해도 6의 Nginx-User에 삽입된 위조된 패킷들의 예를 도시한다. 결국 사용자는 공격자가 의도한 대로 위조된 콘텐츠들을 수신한다.
도 7a에 도시된 바와 같이, 손상된 컨테이너가 피어 탐색을 수행하여 다른 컨테이너들을 찾는 데 사용될 때, 현재 컨테이너 네트워크 스택은 공격자가 제한들이 없이 모든 이웃 컨테이너들을 탐색할 수 있도록 한다. 또한 쿠버네티스 환경의 위브(Weave) 오버레이 네트워크를 통해 컨테이너들은 단일 스위치에 논리적으로 위치하므로 다른 노드들의 모든 컨테이너들을 탐색할 수 있다.
도 6 및 도 6의 종래 기술의 쿠버네티스 환경과 대조적으로, 도 7a-7d, 도 8은 본 발명의 원리들의 일 실시예에 따른 네트워크 분리로 인한 패킷 데이터의 예시를 도시한다. 본 발명의 원리들의 다이렉트 ARP 핸들러 및 컨테이너 인식 네트워크 분리 아키텍처는 각 컨테이너의 종속성들(R1)을 기반으로 각 컨테이너의 도달 가능성을 줄인다. 도 8의 네트워크 정보에 도시된 바와 같이, 본 발명의 원리들의 아키텍처의 결과로서, 감염된 컨테이너(즉, 도 6의 엔진엑스-게스트)는 하나의 종속 컨테이너만 가지며 컨테이너는 게이트웨이와 해당 종속 컨테이너만 관찰한다.
예를 들어, 도 9a는 공격자가 본 발명의 원리들의 종단 간 포워딩 없이 도 6의 스푸핑된 타겟 컨테이너에 대해 볼 수 있는 트래픽의 예를 도시한다. 즉, 도 9a에 도시된 바와 같이, 손상된 컨테이너는 타겟 컨테이너의 네트워크 트래픽을 스니핑할 수 있다. 또한 공격자가 “네트워크-권한이 있는" 컨테이너를 손상시킬 때 공격자는 제한없이 모든 네트워크 트래픽에 액세스 할 수 있다.
대조적으로, 도 9b는 공격자가 본 발명의 원리들의 종단 간 전달로 응답 트래픽을 볼 수 없는 방법을 예시하는 패킷 데이터를 도시한다. 도 9b에 도시된 바와 같이, 본 발명의 원리들에 따라 다이렉트 포워딩이 적용될 때, 주어진 인터페이스로부터의 유일한 가시적 트래픽은 컨테이너 자체를 포함하는 트래픽의 트래픽(R4-5)이다. 차이점들을 강조하기 위해, 도 9b에서 소스에서 대상으로의 트래픽 흐름은 의도적으로 표시된다. 결과적으로 공격자는 소스에서 대상으로의 흐름을 관찰할 수 있지만 공격자는 더 이상 반대 방향으로 트래픽을 관찰할 수 없다. 본 발명의 원리들에 따른 종단 간 포워딩이 모든 트래픽에 완전히 적용되면 공격자는 이들 간의 트래픽을 볼 수 없다.
네트워크 기반 공격들은 종종 스푸핑된 패킷 삽입 기술에 의존하여 악성 패킷들을 타겟 컨테이너들로 전송한다. 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 컨테이너 보안 시스템은 명시적 소스 검증을 수행함으로써 이러한 공격들을 방지한다. 미리 설정된 원리들의 실시예들의 이점을 추가로 설명하기 위해, 도 10a-10d는 다른 공격 시나리오로부터 발생하는 패킷 데이터, 특히 공격자와 피해자의 관점들에서 케이스들 전후의 패킷 데이터를 도시한다. 도 10a는 공격자에 의한 RST 패킷들의 종래의 보안 아키텍처를 가지는 컨테이너 네트워크의 컨테이너로의 삽입을 보여주는 패킷 데이터를 도시한다. 도 10a의 컨테이너 네트워크에서, 소스 검증은 IP-레벨에서만 가능하고 공격자는 본 발명의 원리들의 소스 검증없이 ARP 스푸핑 공격들을 수행할 수 있다. 도 10a에 도시 된 바와 같이, 공격자는 엔진엑스-사용자를 스푸핑하고 엔진엑스-사용자의 트래픽을 수신한다. 또한 공격자는 엔진엑스-사용자의 세션을 종료하기 위해 RST 패킷들을 삽입한다. 도 10b는 공격자가 컨테이너에 RST 패킷을 삽입하는 것이 엔진엑스-사용자의 관점에서 세션 종료를 유발하는 방법을 도시한다. 즉, 도 10b에 도시된 바와 같이, 공격자가 RST 패킷들을 삽입하자마자 엔진엑스-사용자는 삽입된 RST 패킷들을 수신하여(RST 패킷들의 수신 시간 참조) 엔진엑스-사용자의 세션이 즉시 종료된다.
종래의 컨테이너 네트워크 아키텍처의 이러한 결함들은 본 발명의 원리들의 명시적인 소스 검증으로 해결할 수 있다. 예를 들어, 도 10c는 본 발명의 원리들의 일 실시예에 따라 소스 검증을 구현하는 컨테이너 보안 시스템에 RST 패킷들을 삽입하려는 공격자의 시도와 관련된 패킷 데이터를 도시한다. 공격자가 도 10c에 도시된 바와 같이 RST 패킷들을 삽입하려고 시도하지만, RST 패킷들은 본 발명의 원리들의 소스 검증 구현에 의해 거부되고(도 10d에 도시 된 바와 같이) RST 패킷들은 엔진엑스-사용자(R5)에 도달하지 못한다.
발명자들은 본 발명의 원리들의 컨테이너 보안 시스템의 구현이 쿠버네티스 환경에 어떤 영향을 미치는지 평가하기 위해 위브 오버레이 네트워크가 있는 쿠버네티스 환경을 구축했다. 구축된 쿠버네티스 환경에서 한 시스템은 쿠버네티스 마스터 노드 역할을 하고 다른 두 시스템들은 컨테이너-호스팅-노드들의 역할을 했다. 각 시스템은 Intel Xeon E5-2630v4 CPU, 64GB RAM 및 Intel 10Gbps NIC로 구성되었다. netperf와 iperf는 각각 왕복 지연 시간과 TCP 스트림 처리량들을 측정하는 데 사용되었다.
이전에 언급된 바와 같이, 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 컨테이너 보안 시스템의 실시예들은 컨테이너 플랫폼들로부터 컨테이너 정보를 주기적으로 검색하고 새로운 컨테이너들을 쿼리한다. 새 컨테이너가 감지되면 컨테이너 보안 시스템은 각 새 컨테이너에 대한 네트워크 스택을 설정/배포한다. 본 발명자들은 본 발명의 원리들에 따라 새로운 네트워크 스택을 설정/배포하는 데 걸리는 시간을 조사하기 위해 100개의 컨테이너들을 생성하는 데 필요한 배포 시간을 측정했다. 실험에서 발명자들은 각 컨테이너에 대한 네트워크 스택 컴파일을 실행하는 데 평균 2.67초가 걸린다는 것을 확인했다. 발명자들은 컨테이너들이 자체 서비스들을 초기화하는 데 몇 초가 걸리기 때문에(즉, 저장소에서 컨테이너 이미지들을 가져오고, 컨테이너 분리를 구성하고, 서비스를 시작하는 데) 몇 초가 걸리기 때문에 이러한 배포 시간은 무시할 수 있다고 판단했다.
도 11은 도 1의 컨테이너 보안 시스템(CSS)(100)과 같은 본 발명의 원리들의 실시예에 따른 iptables-기반 액세스 제어 네트워크 및 컨테이너 보안 시스템을 사용하여 제어되는 네트워크 모두에 대해 호스트 내에서 증가하는 보안 정책들에 따른 컨테이너 간 처리량 변동들의 그래픽 표현을 도시한다. iptables 경우와의 공정한 비교를 위해 본 발명의 원리들의 컨테이너 보안 시스템을 사용하여 제어되는 네트워크의 오버 헤드를 결정할 때 각 컨테이너에 대해 동일한 수의 정책들을 정의한다. iptables의 경우 모든 컨테이너들를 위한 보안 정책들은 호스트 커널에서 집합적으로 유지된다. 따라서 컨테이너들에서 패킷들이 도착하면 iptables는 먼저 해당 컨테이너들에 대한 정책들을 조회하고 들어오는 패킷들로 개별적으로 검사한다. 또한 iptables는 일반적인 액세스 제어를 위해 설계되었으므로 iptables는 많은 수의 필드 일치(최소한 각 정책에 대한 소스 및 대상 IP 주소들 및 포트들)가 필요하다. 그 결과, 도 11에 나타난 바와 같이, 처리량은 100개의 정책들에서 23.3%, 500개의 정책들에서 64.0% 감소했다. 이러한 추세는 컨테이너 네트워크들에 대한 현재 정책 시행 접근 방식의 근본적인 확장 문제를 지적한다.
대조적으로, 도 11에 도시된 바와 같이, 본 발명의 원리들의 컨테이너 보안 시스템(CSS)에 의한 처리량 저하는 정책들의 수가 증가함에 따라 거의 눈에 띄지 않았다(500개의 정책들에 대해 3.2 %)(R2). 이러한 성능 향상들은 특정 대상들에 대한 해시 기반 정책 조회 및 단일 필드 일치(즉, 대상 포트 일치)로 구성된 컨테이너 환경들에 최적화된 본 발명의 원리들의 매칭 프로세스에서 비롯된다. 본 발명의 원리들의 컨테이너 보안 시스템의 네트워크 스택은 각 컨테이너에 특정한 보안 정책만을 유지하기 때문에 종래 기술의 경우와 같이 소스 IP 주소들 및 포트들을 일치시킬 필요가 없다.
도 12a는 본 발명의 원리들의 실시예에 따른 컨테이너 네트워크의 호스트 내의 서비스들의 상이한 조합들에 대한 컨테이너 간 지연 시간 측정들의 그래픽 표현을 도시한다. 즉, 도 12a는 단일 노드 내에서 4 개의 테스트 케이스들의 왕복 대기 시간 비교를 제공한다. 도 12a에서, 기본 케이스는 보안 서비스들과 상호 작용하지 않은 두 컨테이너들의 기본 구성에 대한 지연 시간 측정들을 제공하며, 이는 TCP 및 UDP 패킷들에 대해 각각 21.6s 및 18.2s이다. 본 발명의 원리들의 컨테이너 보안 시스템의 네트워크 가시성 서비스를 적용한 경우, 컨테이너들 사이의 도달성 검사를 도출하기 위해 추가 패킷 처리가 필요한 보안 기능들이 새로 적용되어 지연 시간들이 5.7%, 9.3% 증가했다. 본 발명의 원리들의 컨테이너 보안 시스템의 트래픽 가시성 서비스를 적용했을 때 보안 포워딩이 기존 컨테이너 네트워크들을 우회하면서 컨테이너 간 트래픽을 목적지 컨테이너들로 직접 공급했기 때문에 전체 지연 시간이 26.3% 향상되었다. 마지막으로, 본 발명의 원리들의 컨테이너 보안 시스템의 모든 보안 기능들을 완전히 적용했을 때 TCP 및 UDP 패킷들에 대한 기본 케이스 23.0% 및 25.4%에 대해 전반적인 성능 향상이 관찰되었다(R6). 이러한 지연 시간 개선들로 호스트 간 처리량이 12.9% 향상되었다.
도 12b는 본 발명의 원리들의 실시예에 따른 호스트들에 걸친 본 발명의 원리들의 컨테이너 보안 시스템의 서비스들의 상이한 조합들에 대한 컨테이너 간 지연 시간 측정들의 그래픽 표현을 도시한다. 도 12b에 도시된 바와 같이, 도 12a의 호스트 내 측정과 비교하여, 물리적 링크 통과 및 호스트들 간의 터널링 오버 헤드들로 인해 전체 지연 시간들이 크게 증가했다; 따라서 기본 케이스의 지연 시간은 TCP 및 UDP 패킷들에 대해 각각 100.1μs 및 91.5μs가 되었다. 또한 네트워크 영향을 고려할 때 본 발명의 원리들의 네트워크 가시성 서비스로 인한 오버 헤드가 감소했다(1% 미만). 본 발명의 원리들의 트래픽 가시성 서비스들의 경우, 본 발명의 원리들의 보안 전달이 외부 인터페이스들을 통해 소스 컨테이너에서 목적지 컨테이너로 네트워크 패킷들을 직접 전달하기 때문에 지연 시간이 평균 21.3% 감소했다. 마지막으로, 본 발명의 원리들의 모든 보안 서비스를 적용했을 때 지연 시간들이 17.7% 감소하여 기본 사례(R6)에 비해 크게 향상되었다. 이러한 지연 시간 개선들로 인해 호스트 간 처리량이 12.9% 향상되었다.
도 13은 본 발명의 원리들에 따라 컨테이너 네트워크에 보안을 제공하기 위한 방법(1300)의 흐름도를 도시한다. 방법(1300)은 컨테이너 네트워크의 복수의 컨테이너 각각에 대해 네트워크 스택이 설정되는(1302)에서 시작된다. 방법(1300)은(1303)으로 진행할 수 있다.
(1303)에서 네트워크 및 정책 정보는 액티브 컨테이너에서 결정된다. 방법(1300)은(1304)로 진행할 수 있다. (1304)에서, 결정된 네트워크 정보로부터 학습된 복수의 컨테이너에 대한 사전 결정된 컨테이너 간 종속성 세트에 기초하여, 각각의 통신과 관련이 없는 복수의 컨테이너의 컨테이너에 대한 액세스는 거부되지 않으면 적어도 제한된다. 방법(1300)은(1306)으로 진행할 수 있다.
(1306)에서, 컨테이너 간 트래픽은 피어 컨테이너에 대한 컨테이너 간 트래픽의 노출이 방지되도록 지점 간 방식으로 소스 컨테이너에서 목적지 컨테이너로 직접 공급되도록 구성된다. 방법(1300)은 종료될 수 있다.
도 1에 도시 된 바와 같이, 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 컨테이너 보안 시스템의 실시예는 본 발명의 원리들에 따라 컴퓨팅 장치(1400)에서 구현될 수 있다. 즉, 일부 실시예에서 네트워크 패킷, 통신, 데이터 등은 예를 들어 컴퓨팅 장치(1400)와 관련된 임의의 입력/출력 수단을 통해 컴퓨팅 장치(1400)를 사용하여 컨테이너 보안 시스템(100)의 컨테이너 및 구성요소와 통신될 수 있다. 본 발명의 원리들에 따른 컨테이너 보안 시스템과 관련된 데이터는 디스플레이, 프린터 또는 임의의 다른 형태의 출력 장치와 같은 컴퓨팅 장치(1400)의 출력 장치를 사용하여 사용자에게 제시될 수 있다.
예를 들어, 도 14는 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들에 따른 컨테이너 보안 시스템의 실시예와 함께 사용하기에 적합한 컴퓨팅 장치(1400)의 고-레벨의 블록도를 도시한다. 일부 실시예에서, 컴퓨팅 장치(1400)는 다양한 실시예에서 프로세서 실행 가능한 실행 가능한 프로그램 명령(1422)(예를 들어, 프로세서(들)(910)에 의해 실행 가능한 프로그램 명령)으로서 본 발명의 원리들의 방법을 구현하도록 구성될 수 있다.
도 14의 실시예에서, 컴퓨팅 장치(1400)는 입력/출력(I/O) 인터페이스(1430)를 통해 시스템 메모리(1420)에 연결된 하나 이상의 프로세서(1410a-1410n)를 포함한다. 컴퓨팅 장치(1400)는 I/O 인터페이스(1430) 및 커서 제어 장치(1460), 키보드(1470) 및 디스플레이(들)(1480)와 같은 하나 이상의 입력/출력 장치(1450)에 연결된 네트워크 인터페이스(1440)를 더 포함한다. 다양한 실시예에서, 사용자 인터페이스가 생성되고 디스플레이(1480) 상에 디스플레이될 수 있다. 일부 경우에, 실시예는 컴퓨팅 장치(1400)의 단일 인스턴스를 사용하여 구현될 수 있은 반면, 다른 실시예에서는 이러한 다중 시스템 또는 컴퓨팅 장치(1400)를 구성하는 다중 노드가 다양한 실시예의 다른 부분 또는 인스턴스를 호스팅하도록 구성될 수 있다는 것이 고려된다. 예를 들어, 일 실시예에서 일부 요소는 다른 요소를 구현하는 노드와 구별되는 컴퓨팅 장치(1400)의 하나 이상의 노드를 통해 구현될 수 있다. 다른 예에서, 다수의 노드는 분산 방식으로 컴퓨팅 장치(900)를 구현할 수 있다.
다른 실시예에서, 컴퓨팅 장치(1400)는 개인용 컴퓨터 시스템, 데스크톱 컴퓨터, 랩톱, 노트북, 태블릿 또는 넷북 컴퓨터, 메인 프레임 컴퓨터 시스템, 핸드 헬드 컴퓨터, 워크 스테이션, 네트워크 컴퓨터, 카메라, 셋톱 박스, 모바일 장치, 소비자를 포함하지만 이에 국한되지는 않는다. 장치, 비디오 게임 콘솔, 휴대용 비디오 게임 장치, 응용 프로그램 서버, 저장 장치, 스위치, 모뎀, 라우터와 같은 주변 장치 또는 일반적으로 모든 유형의 컴퓨팅 또는 전자 장치를 포함하는 임의의 다양한 유형의 장치 일 수 있다.
다양한 실시예에서, 컴퓨팅 장치(1400)는 하나의 프로세서(1410)를 포함하는 단일 프로세서 시스템, 또는 여러 프로세서(1410)(예를 들어, 2 개, 4 개, 8 개 또는 다른 적절한 수)를 포함하는 멀티 프로세서 시스템일 수 있다. 프로세서(1410)는 명령을 실행할 수 있는 임의의 적절한 프로세서 일 수 있다. 예를 들어, 다양한 실시예에서 프로세서(1410)는 다양한 명령 세트 아키텍처(ISA) 중 임의의 것을 구현하는 범용 또는 임베디드 프로세서일 수 있다. 다중 프로세서 시스템에서, 프로세서(1410) 각각은 공통적으로 동일한 ISA를 구현할 수 있지만 반드시 그런 것은 아니다.
시스템 메모리(1420)는 프로세서(1410)에 의해 액세스 가능한 프로그램 명령어(1422) 및/또는 데이터(1432)를 저장하도록 구성될 수 있다. 다양한 실시예에서, 시스템 메모리(1420)는 정적 랜덤 액세스 메모리(SRAM), 동기식 동적 RAM(SDRAM), 비 휘발성/플래시형 메모리, 또는 임의의 다른 유형의 메모리와 같은 임의의 적절한 메모리 기술을 사용하여 구현될 수 있다. 예시된 실시예에서, 전술한 실시예의 임의의 요소를 구현하는 프로그램 명령 및 데이터는 시스템 메모리(1420) 내에 저장될 수 있다. 다른 실시예에서, 프로그램 명령 및/또는 데이터는 상이한 유형의 컴퓨터 액세스 가능 매체 또는 시스템 메모리(1420) 또는 컴퓨팅 장치(1400)와 분리된 유사한 매체에 수신, 전송 또는 저장될 수 있다.
일 실시예에서, I/O 인터페이스(1430)는 프로세서(1410), 시스템 메모리(1420) 및 네트워크 인터페이스(1440) 또는 입력/출력 장치(1450)와 같은 다른 주변 인터페이스를 포함하는 장치의 임의의 주변 장치 사이의 I/O 트래픽을 조정하도록 구성될 수 있다. 일부 실시예에서, I/O 인터페이스(1430)는 하나의 구성요소(예를 들어, 시스템 메모리(1420))로부터의 데이터 신호를 다른 구성요소(예를 들어, 프로세서(1410))에 의해 사용하기에 적합한 포맷으로 변환하기 위해 임의의 필요한 프로토콜, 타이밍 또는 다른 데이터 변환을 수행할 수 있다. 일부 실시예에서, I/O 인터페이스(1430)는 예를 들어 PCI(Peripheral Component Interconnect) 버스 표준의 변형 또는 USB(Universal Serial Bus) 표준과 같은 다양한 유형의 주변 버스를 통해 부착된 장치에 대한 지원을 포함할 수 있다. 일부 실시예에서, I/O 인터페이스(1430)의 기능은 예를 들어 노스 브릿지 및 사우스 브릿지와 같은 둘 이상의 개별 구성요소로 분할될 수 있다. 또한, 일부 실시예에서 시스템 메모리(1420)에 대한 인터페이스와 같은 I/O 인터페이스(1430)의 기능의 일부 또는 전부가 프로세서(1410)에 직접 통합될 수 있다.
네트워크 인터페이스(1440)는 컴퓨팅 장치(1400)와 하나 이상의 외부 시스템과 같은 네트워크(예를 들어, 네트워크(1490))에 부착된 다른 장치 사이에서 또는 컴퓨팅 장치(1400)의 노드 사이에서 데이터가 교환되도록 구성될 수 있다. 다양한 실시예에서, 네트워크(1490)는 LAN(Local Area Network)(예: 이더넷 또는 기업 네트워크), WAN(Wide Area Network)(예: 인터넷), 무선 데이터 네트워크, 기타 전자 데이터 네트워크 또는 이들의 조합을 포함하지만 이에 제한되지 않는 하나 이상의 네트워크를 포함할 수 있다. 다양한 실시예에서, 네트워크 인터페이스(1440)는 예를 들어, 임의의 적합한 유형의 이더넷 네트워크와 같은 유선 또는 무선 일반 데이터 네트워크를 통해; 디지털 광섬유 통신 네트워크를 통해; 파이버 채널 SAN과 같은 스토리지 영역 네트워크를 통해 또는 기타 적절한 유형의 네트워크 및/또는 프로토콜을 통해 통신을 지원할 수 있다.
입력/출력 장치(1450)는 일부 실시예에서 하나 이상의 디스플레이 단말기, 키보드, 키패드, 터치 패드, 스캐닝 장치, 음성 또는 광학 인식 장치, 또는 하나 이상의 컴퓨터 시스템에 의해 데이터를 입력하거나 액세스하기에 적합한 임의의 다른 장치를 포함할 수 있다. 다중 입력/출력 장치(1450)는 컴퓨터 시스템에 존재할 수 있거나 컴퓨팅 장치(1400)의 다양한 노드에 분산될 수 있다. 일부 실시예에서, 유사한 입력/출력 장치는 컴퓨팅 장치(1400)로부터 분리될 수 있고, 네트워크 인터페이스(1440)와 같은 유선 또는 무선 연결을 통해 컴퓨팅 장치(1400)의 하나 이상의 노드와 상호 작용할 수 있다.
당업자는 컴퓨팅 장치(1400)가 단지 예시일 뿐이며 실시예의 범위를 제한하려는 것이 아님을 이해할 것이다. 특히, 컴퓨터 시스템 및 장치는 컴퓨터, 네트워크 장치, 인터넷 기기, PDA, 무선 전화, 호출기 등을 포함하는 다양한 실시예의 표시된 기능을 수행할 수 있은 하드웨어 또는 소프트웨어의 임의의 조합을 포함할 수 있다. 컴퓨팅 장치(1400)는 또한 도시되지 않은 다른 장치에 연결될 수 있거나, 대신 독립형 시스템으로 동작 할 수 있다. 또한, 예시된 구성요소에 의해 제공되는 기능은 일부 실시예에서 더 적은 구성요소로 결합되거나 추가 구성요소로 분산될 수 있다. 유사하게, 일부 실시예에서, 예시된 구성요소 중 일부의 기능이 제공되지 않을 수 있고/있거나 다른 추가 기능이 이용 가능할 수 있다.
컴퓨팅 장치(1400)는 Wi-Fi, Bluetooth RTM(및/또는 단거리 데이터 교환을 위한 기타 표준에는 단파장 무선 전송을 사용하는 프로토콜이 포함됨), USB, 이더넷, 셀룰러, 초음파 근거리 통신 프로토콜 등과 같은 다양한 컴퓨터 통신 프로토콜을 기반으로 다른 컴퓨팅 장치와 통신할 수 있다. 컴퓨팅 장치(1400)는 웹 브라우저를 더 포함할 수 있다.
컴퓨팅 장치(1400)는 범용 컴퓨터로 표시되지만 컴퓨팅 장치(1400)는 다양한 특수 제어 기능을 수행하도록 프로그래밍되어 있고, 컴퓨팅 장치(1400)는 본 발명의 원리들에 따라 전문화된 특정 컴퓨터로 동작하도록 구성되고, 실시예는 예를 들어 ASIC(application specific integrated circuit)과 같은 하드웨어에서 구현될 수 있다. 이와 같이, 여기에 설명된 프로세스 단계는 소프트웨어, 하드웨어 또는 이들의 조합에 의해 동등하게 수행되는 것으로 광범위하게 해석되도록 의도된다.
도 15는 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들에 따른 컨테이너 보안 시스템의 실시예가 적용될 수 있은 네트워크의 고-레벨 블록도를 도시한다. 도 15의 네트워크 환경(1500)은 예시 적으로 사용자 도메인 서버/컴퓨팅 장치(1504)를 포함하는 사용자 도메인(1502)을 포함한다. 도 15의 네트워크 환경(1500)은 컴퓨터 네트워크(1506) 및 클라우드 서버/컴퓨팅 장치(1512)를 포함하는 클라우드 환경(1510)을 더 포함한다.
도 15의 네트워크 환경(1500)에서, 도 1의 시스템(100)과 같은 본 발명의 원리들에 따른 컨테이너 보안을 위한 시스템은 사용자 도메인 서버/컴퓨팅 장치(1504), 컴퓨터 네트워크(1506) 및 클라우드 서버/컴퓨팅 장치(1512) 중 적어도 하나에 포함될 수 있다. 즉, 일부 실시예에서, 사용자는 본 발명의 원리들에 따라 컨테이너 보안을 제공하기 위해 로컬 서버/컴퓨팅 장치(예를 들어, 사용자 도메인 서버/컴퓨팅 장치(1504))를 사용할 수 있다. 일부 실시예에서, 사용자는 본 발명의 원리들에 따라 컨테이너 보안을 제공하기 위해 컴퓨터 네트워크(1506)에서 컨테이너 보안을 위한 시스템을 구현할 수 있다. 대안 적으로 또는 추가로, 일부 실시예에서, 사용자는 본 발명의 원리들에 따라 컨테이너 보안을 제공하기 위해 클라우드 환경(1510)의 클라우드 서버/컴퓨팅 장치(1512)에서 컨테이너 보안을 위한 시스템을 구현할 수 있다. 예를 들어, 일부 실시예에서 클라우드 환경(1510)의 처리 능력 및 저장 능력을 이용하기 위해 클라우드 환경(1510)에서 본 발명의 원리들의 처리 기능을 수행하는 것이 유리할 수 있다.
본 발명의 원리들에 따른 일부 실시예에서, 컨테이너 네트워크에서 컨테이너 보안을 제공하기 위한 시스템은 단일 및/또는 다중 위치/서버/컴퓨터에 위치하여 본 발명의 원리들에 따라 여기에 설명된 시스템 기능의 전부 또는 일부를 수행할 수 있다. 예를 들어, 일부 실시예에서 컨테이너 네트워크의 컨테이너(110)는 사용자 도메인(1502), 컴퓨터 네트워크 환경(1506) 및 클라우드 환경(1510) 중 하나 이상 및 본 발명의 원리들의 적어도 하나의 글로벌 매니저에 위치할 수 있다. 글로벌 매니저(120)와 같은, 사용자 도메인(1502), 컴퓨터 네트워크 환경(1506) 및 클라우드 환경(1510) 중 적어도 하나에 위치될 수 있으며, 이는 로컬로 또는 원격으로 위에서 설명된 기능을 제공한다.
일부 실시예에서, 본 발명의 원리들의 컨테이너 보안은 예를 들어 소프트웨어를 통해 서비스로서 제공될 수 있다. 이러한 실시예에서, 본 발명의 원리들의 소프트웨어는 사용자 도메인 서버/컴퓨팅 장치(1504), 컴퓨터 네트워크(1506) 및 클라우드 서버/컴퓨팅 장치(1512) 중 적어도 하나에 존재할 수 있다. 더 나아가 일부 실시예에서, 소프트웨어는 본 발명의 원리들의 실시예를 제공하기 위해 사용자 도메인 서버/컴퓨팅 장치(1504), 컴퓨터 네트워크(1506) 및 클라우드 서버/컴퓨팅 장치(1512)의 임의의 컴퓨팅 장치에서 컴퓨팅 장치에 의해 실행될 수 있는 비일시적 컴퓨터 판독 가능 매체를 통해 제공될 수 있다.
당업자는 또한 다양한 항목이 사용되는 동안 메모리 또는 저장 장치에 저장되는 것으로 예시되지만, 이러한 항목 또는 항목의 일부는 메모리 관리 및 데이터 무결성을 위해 메모리와 다른 저장 장치 간에 전송될 수 있음을 인식할 것이다. 대안적으로, 다른 실시예에서 소프트웨어 구성요소의 일부 또는 전부는 다른 장치의 메모리에서 실행될 수 있고 컴퓨터 간 통신을 통해 예시된 컴퓨터 시스템과 통신할 수 있다. 시스템 구성요소 또는 데이터 구조의 일부 또는 전부는 또한 적절한 드라이브에 의해 판독될 수 있도록 컴퓨터 액세스 가능 매체 또는 휴대용 물품에 저장(예를 들어, 명령 또는 구조화된 데이터로서) 될 수 있으며, 이들의 다양한 예는 위에 설명되어 있다. 일부 실시예에서, 컴퓨팅 장치(1400)와 분리된 컴퓨터 액세스 가능 매체에 저장된 명령은 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 전달되는 전송 매체 또는 전기, 전자기 또는 디지털 신호와 같은 신호를 통해 컴퓨팅 장치(1400)로 전송될 수 있다. 다양한 실시예는 컴퓨터 액세스 가능 매체 또는 통신 매체를 통해 전술한 설명에 따라 구현된 명령 및/또는 데이터를 수신, 전송 또는 저장하는 것을 더 포함할 수 있다. 일반적으로, 컴퓨터 액세스 가능 매체에는 자기 또는 광학 매체, 예를 들어 디스크 또는 DVD/CD-ROM과 같은 저장 매체 또는 메모리 매체, RAM(예를 들어, SDRAM, DDR, RDRAM, SRAM 등), ROM과 같은 휘발성 또는 비 휘발성 매체 등이 포함될 수 있다.
본 명세서에 설명된 방법 및 프로세스는 상이한 실시예에서 소프트웨어, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 또한 방법의 순서를 변경할 수 있으며 다양한 요소를 추가, 재정렬, 결합, 생략 또는 기타 수정할 수 있다. 여기에 설명된 모든 예는 비제한적인 방식으로 제공된다. 본 개시의 이점을 갖는 당업자에게 명백한 바와 같이 다양한 수정 및 변경이 이루어질 수 있다. 실시예에 따른 실현은 특정 실시예의 맥락에서 설명되었다. 이들 실시예는 예시 적이며 제한적인 것이 아니다. 다양한 변형, 수정, 추가 및 개선이 가능하다. 따라서, 단일 인스턴스로서 본 명세서에 설명된 구성요소에 대해 복수의 인스턴스가 제공될 수 있다. 다양한 구성요소, 작업 및 데이터 저장소 간의 경계는 다소 임의적이며 특정 작업은 특정 예시 구성의 맥락에서 설명된다. 기능의 다른 할당이 계획되어 있으며 다음 청구 범위에 속할 수 있다. 예시적인 구성에서 개별 구성요소로 표시되는 구조 및 기능은 결합된 구조 또는 구성요소로 구현될 수 있다. 이들 및 다른 변형, 수정, 추가 및 개선은 다음의 청구 범위에 정의된 실시예의 범위 내에 있을 수 있다.
전술한 설명에서, 본 개시의보다 철저한 이해를 제공하기 위해 다수의 특정 세부 사항, 예 및 시나리오가 설명되었다. 그러나, 본 개시 내용의 실시예는 그러한 특정 세부 사항 없이 실시될 수 있다는 것이 이해될 것이다. 또한, 그러한 예 및 시나리오는 예시를 위해 제공되며, 어떤 식으로든 본 개시를 제한하려는 의도가 아니다. 포함된 설명과 함께 당업자는 과도한 실험없이 적절한 기능을 구현할 수 있어야한다.
명세서에서 "실시예"등에 대한 언급은 설명된 실시예가 특정 특징, 구조 또는 특성을 포함할 수 있음을 나타내지만, 모든 실시예가 반드시 특정 특징, 구조 또는 특성을 포함할 수는 없다. 그러한 문구는 반드시 동일한 실시예를 지칭하는 것은 아니다. 또한, 특정 특징, 구조 또는 특성이 실시예와 관련하여 기술될 때, 명시적으로 표시되었는지 여부에 관계없이 다른 실시예와 관련하여 그러한 특징, 구조 또는 특성에 영향을 미치는 것은 당업자의 지식 내에 있는 것으로 믿어진다.
본 개시에 따른 실시예는 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로서 제공될 때, 본 발명의 원리들의 실시예는 로컬 사용자 환경의 컴퓨팅 장치, 인터넷 환경의 컴퓨팅 장치 및 클라우드 환경의 컴퓨팅 장치 중 적어도 하나에 존재할 수 있다. 실시예는 또한 하나 이상의 프로세서에 의해 판독 및 실행될 수 있는 하나 이상의 기계 판독 가능 매체를 사용하여 저장된 명령어로서 구현될 수 있다. 기계 판독 가능 매체는 기계(예를 들어, 컴퓨팅 장치 또는 하나 이상의 컴퓨팅 장치에서 실행되는 "가상 기계")에 의해 판독 가능한 형태로 정보를 저장하거나 전송하기 위한 임의의 메커니즘을 포함할 수 있다. 예를 들어, 기계 판독 가능 매체는 임의의 적절한 형태의 휘발성 또는 비 휘발성 메모리를 포함할 수 있다.
여기에 정의된 모듈, 데이터 구조 등은 논의의 편의를 위해 정의되며 특정 구현 세부 사항이 필요함을 의미하지는 않는다. 예를 들어, 설명된 모듈 및/또는 데이터 구조 중 임의의 것은 특정 설계 또는 구현에 의해 요구될 수 있는 바와 같이 서브 모듈, 서브 프로세스 또는 기타 컴퓨터 코드 또는 데이터 단위로 결합되거나 분할될 수 있다.
도면에서, 설명의 용이성을 위해 개략적 인 요소의 특정 배열 또는 순서가 표시될 수 있다. 그러나, 이러한 요소의 특정 순서 또는 배열은 모든 실시예에서 특정 처리 순서 또는 순서, 또는 프로세스 분리가 필요함을 의미하는 것은 아니다. 일반적으로 명령 블록 또는 모듈을 나타내는 데 사용되는 도식적 요소는 임의의 적절한 형태의 기계 판독 가능 명령을 사용하여 구현될 수 있고, 각각의 그러한 명령어는 임의의 적절한 프로그래밍 언어, 라이브러리, API(application-programming interface) 및/또는 기타 소프트웨어 개발 도구 또는 프레임 워크를 사용하여 구현될 수 있다. 유사하게, 데이터 또는 정보를 나타내는 데 사용되는 도식적 요소는 임의의 적절한 전자 배열 또는 데이터 구조를 사용하여 구현될 수 있다. 또한, 본 개시 내용을 모호하게 하지 않기 위해 요소들 간의 일부 연결, 관계 또는 연관이 단순화되거나 도면에 도시되지 않을 수 있다.
본 개시는 예시적인 것으로 간주되어야 하며 성격 상 제한적이지 않으며, 본 개시의 가이드 라인 내에 있는 모든 변경 및 수정이 보호되기를 원한다.
본 발명의 원리들의 실시예들은 새로운 컨테이너 네트워크 스택을 제공한다. 일부 실시예들에서, 본 발명의 원리들의 아키텍처는 각 컨테이너에 대한 최소-특권 네트워크 액세스를 구현하는 분리, 성능 효율성 및 정밀화된 네트워크 보안 정책 사양을 제공하는 컨테이너 당 컨테이너 네트워크 스택을 인스턴스화한다. 본 발명의 원리들의 실시예들은 호스팅된 컨테이너들의 수가 증가함에 따라 네트워크 정책 규칙 관리에서 더 나은 네트워크 정책 확장성(scalability)을 제공할 뿐만 아니라 컨테이너들이 동적으로 인스턴스화되고 제거됨에 따라 컨테이너 생태계의 더 큰 동적 제어를 제공한다.
본 발명의 원리들의 실시예들은 매니저 및 컨테이너 당 네트워크 스택들을 포함한다. 매니저는 액티브 컨테이너들로부터 네트워크 및 정책 정보를 결정/요청하고, 일부 실시예들에서 보안 시행 네트워크 스택을 각 컨테이너에 배포한다. 그런 다음 네트워크 스택에서 모든 보안 시행은 네트워크 가시성 서비스와 트래픽 가시성 서비스의 두 가지 주요 보안 서비스들을 통해 수행된다. 컨테이너 간 종속성들의 세트를 기반으로 네트워크 가시성 서비스는 컨테이너 탐색 프로세스를 조정하여, 종속성 맵에서 관련이 없다고 간주되는 컨테이너들 및 호스트들에 대한 액세스를 필터링한다. 즉, 적어도 일부 실시예들에서, 네트워크 가시성 서비스는 컨테이너 애플리케이션 당 가시적 네트워크 토폴로지(network topology)에 대한 정밀한 제어를 제공한다. 트래픽 가시성 서비스는 컨테이너와 다른 피어 컨테이너들 사이의 네트워크 트래픽을 제어하는 동시에 트래픽 소스들도 검증한다. 즉, 적어도 일부 실시예들에서, 트래픽 가시성 서비스는 점대점 방식으로 컨테이너 간 트래픽을 안전하게 분리하고 전달하여 이 트래픽이 다른 피어 컨테이너들에 노출되는 것을 방지한다. 본 발명의 원리들의 이러한 실시예들은 전송자들과 수신자들 사이의 네트워크 통신들을 분리하는 효율적인 포워딩 메커니즘을 통해 컨테이너들 간에 트래픽이 흐르도록 한다. 컨테이너 환경들이 변경되면 매니저는 서비스 중단없이 각 컨테이너의 네트워크 스택을 동적으로 업데이트한다.
본 발명의 원리들의 실시예들은 다음 중 적어도 하나 또는 임의의 조합을 포함하지만 이에 제한되지 않는 설계 고려사항들을 정의함으로써 종래 기술의 결함들을 극복한다:
R1: 컨테이너-인식 최소 특권 통신들을 시행. 컨테이너의 연결성은 시스템 또는 서비스를 구성하기 위해 통신들이 필요한 컨테이너들과 컨테이너 간의 상호-종속성들의 기능이 될 수 있다.
R2: 확장 가능하고 정밀화된 네트워크 정책 표현. 컨테이너 네트워크 내의 네트워크 정책 표현 및 시행 성능은 모던 호스트 컨테이너 토폴로지들의 역동성과 크기에 맞게 확장될 수 있다.
R3: 컨테이너 내 통신들에 대한 정책 제어. 게이트웨이 인터페이스가 외부 네트워크들과의 통신들에서 핵심 역할을 하는 동안, 네트워크 스택은 호스트 네임스페이스의 남용을 방지하기 위해 게이트웨이 인터페이스의 다이렉트 액세스를 필터링 할 수 있다.
R4: 네트워크 특권 컨테이너들에 대한 정책 시행. 네트워크 정책 시행은 호스트 인터페이스들에 대한 다이렉트 액세스를 위해 호스트 네트워크 네임스페이스를 공유하는 네트워크-특권이 액티브화된 컨테이너들에 대한 정밀한 액세스 제어가 가능하다.
R5: 무단 도청 및 스푸핑 방지. 통신 조정은 제3자(third-party)-패킷들에 대한 액세스(예: 도청) 및 잘못된 패킷 헤더 생성(ARP(Address Resolution Protocol) 스푸핑 및 로컬 컨테이너들 간의 트래픽 삽입을 방지)을 방지할 수 있다.
R6: 어떤 컨테이너 토폴로지와도 잘 확장되는 경쟁력 있는 성능. 네트워크 스택은 컨테이너 네트워크들을 보호하면서 짧은 지연 시간과 높은 처리량의 통신들을 제공할 수 있다.
도 1은 본 발명의 원리들의 실시예에 따른 컨테이너 보안 시스템(container security system; CSS)(100)의 고-레벨 블록도를 도시한다. 도 1의 컨테이너 보안 시스템(CSS)(100)은 예시적으로 복수의 네트워크 스택들(1101-110N)(집합 적으로 네트워크 스택들(110)), 컨테이너 네트워크(미도시)의 각 컨테이너에 대한 적어도 하나의 네트워크 스택 및 글로벌 매니저(120)를 포함한다. 도 1의 컨테이너 보안 시스템(100)의 실시예에서, 각각의 네트워크 스택(110)은 아래에서 더 상세히 설명되는 네트워크 가시성 서비스/모듈(NVS)(130) 및 트래픽 가시성 서비스/모듈(TVS)(140)을 포함한다./이 제공된다. 도 1의 컨테이너 보안 시스템(100)의 실시예에서, 각각의 네트워크 스택(110)이 NVS(130) 및 TVS(140)를 포함하는 것으로 도시되어 있지만, 대안적으로 또는 추가로, 본 발명의 원리들의 컨테이너 보안 시스템의 일부 실시예들에서, NVS(130) 및/또는 TVS(140)는 각각의 네트워크 스택(110)에 외부 적으로 제공되는 서비스들/모듈들일 수 있고 도 1에 도시된 바와 같이 각각의 네트워크 스택(110) 내에 존재할 필요가 없다. 예를 들어, 도 2는 NVS(130) 및/또는 TVS(140)가 각각의 네트워크 스택(110)에 외부적으로 제공되는 본 발명의 원리들의 컨테이너 보안 시스템의 아키텍처를 도시한다(아래에서 더 상세히 설명됨). 도 1에 도시된 바와 같이, 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 컨테이너 보안 시스템의 실시예는 본 발명의 원리들에 따라 컴퓨팅 장치(1400)에서 구현될 수 있다(아래에서 도 14를 참조하여 더 자세히 설명됨).
일부 실시예들에서, 글로벌 매니저(120)는 컨테이너 수집부(122) 및 네트워크 스택 관리부(124)의 2개의 논리부들을 포함한다. 컨테이너 수집을 위해, 글로벌 매니저(120)는 예를 들어 도커(docker) 엔진 및 쿠버네티스(Kubernetes) 매니저(도 2와 관련하여 더 자세히 설명됨)로부터 액티브 컨테이너들의 속성들(예를 들어, 네트워크세팅들)을 주기적으로 캡처한다. 명시적인 컨테이너 간 종속성들의 관점에서, 일부 실시예들에서 글로벌 매니저(120)는 특정 키워드들(예를 들어, 도커 플랫폼이 제공하는 "링크(link)"및 "종속(depends on)")를 사용한다. 쿠버네티스의 경우, 글로벌 매니저(120)는 컨테이너 간 종속성들을 명시적으로 정의할 방법이 없으므로, 글로벌 매니저(120)는 명시적인 컨테이너 간 종속성들(예를 들어, 컨테이너들)을 정의하기 위해, 쿠버네티스의 요소들(예를 들어, "라벨들(labels): 종속성(dependency): 서비스(service)")의 아이덴티티를 지정하는 데에 사용되는 라벨들을 사용한다. 보안 정책들 측면에서 글로벌 매니저(120)는 호스트의 iptables에서뿐만 아니라 각 컨테이너의 라벨들을 기반으로 "수신(ingress)"및 "송신(egrees)" 키워드들을 사용하여 그러한 정책들을 추출한다. 그 다음에, 새로운 컨테이너가 생성되면, 글로벌 매니저(120)는 각 컨테이너에 특화된 새로운 관리 스레드를 시작하고, 관리 스레드는 컨테이너에 대해 필터링 된 맵들과 함께 컨테이너를 위한 보안 시행 네트워크 스택을 별도로 설치하여 관리한다. 일부 실시예들에서, 설치 중에 관리 스레드는 버클리 패킷 필터(Berkley Packet Filter; BPF) 컴파일러 컬렉션의 툴킷을 사용한다.
일부 실시예에서, 도 1의 컨테이너 보안 시스템(100)의 각 컨테이너에 대한 네트워크 스택(110)은 리눅스 커널에서 확장된 버클리 패킷 필터(eBPF) 및 익스프레스 데이터 경로(XDP)를 사용하여 구현될 수 있고, 네트워크 스택의 보안 서비스들은 XDP에서 제공하는 xdp md 구조의 원시 수신 패킷들(raw incoming packets)을 조사한다. 일부 실시예들에서, 조사 동안, 2개의 해시 맵들이 탐색되고(즉, 컨테이너 네트워크 및 컨테이너 간 종속성 맵들), 이러한 맵들은 BPF 시스템 콜들을 사용하여 글로벌 매니저(120)의 대응하는 관리 스레드의 맵들과 동기화된다. 그런 다음 일부 실시예들에서 세 가지 유형의 XDP 동작들이 사용될 수 있다: 'XDP TX'는 수신 컨테이너(다이렉트 ARP 핸들러)로 패킷을 다시 전송하고, 'XDP REDIRECT'는 대상의 전송 큐에 패킷을 삽입하고(종단 간 다이렉트 포워딩), 및 'XDP DROP'은 패킷들을 삭제한다.
전술한 바와 같이, 본 발명의 원리들의 실시예들은 컨테이너의 패킷들이 컨테이너 네트워크로 전달되기 전에 보안 시행이 발생하는 분산된 컨테이너 당 네트워크 스택을 구현한다. 이러한 실시예들은 각 컨테이너로부터 오는 네트워크 트래픽에 대한 개별화된 제어를 제공한다. 예를 들어, 도 2는 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 컨테이너 보안 시스템의 기능 아키텍처의 고-레벨 다이어그램을 도시한다. 도 2의 컨테이너 보안 시스템의 아키텍처의 실시예는 컨테이너 네트워크(미도시)의 컨테이너(110) 사이 및 컨테이너(110)와 호스트 컨테이너들(290) 사이의 통신을 보안하기 위해 제공된 본 발명의 원리들의 컨테이너 보안 시스템에 의해 제공되는 보안 서비스(200)로서 예시적으로 도시된다. 도 2의 컨테이너 보안 시스템의 아키텍처는 컨테이너들과 가시성 맵들(250)에서 관련없는 트래픽을 숨기면서, 예시적으로 각 컨테이너(210)에 대한 네트워크 스택(110), 컨테이너 네트워크들의 글로벌 뷰를 유지하는 글로벌 매니저(120), 컨테이너 도달 성을 제어하는 네트워크 가시성 서비스(230)를 제공하는 보안 서비스(200), 컨테이너 간 트래픽을 제어하는 트래픽 가시성 서비스(240)를 포함한다. 도 2는 또한 예시적으로 2개의 호스트 컨테이너들(290)을 포함하고, 각각은 iptables(292) 및 각각의 가상 이더넷들(Virtual Ethernets; veth)(294)을 포함한다. 브릿지(296)는 호스트들(290) 사이의 상호 통신을 제공한다.
도 2의 실시예에서, 네트워크 스택(110)은 보안 서비스(200)를 통한 일부 실시예에서 대응하는 컨테이너에 대한 컨테이너 네트워크 맵(252)을 유지하며, 이는 피어 종속성들(예를 들어, 마이크로서비스 구성 맵)을 가지는 모든 도달 가능한 컨테이너들의 네트워크 정보 및 종속 컨테이너를 위한 보안 정책을 포함하는 컨테이너 간 종속성 맵(254)을 포함한다. 패킷들이 네트워크 스택(110)에 도착하면, 컨테이너 보안 서비스(200)를 통한 네트워크 가시성 서비스(230)는 일부 실시예들에서 컨테이너 네트워크 맵(252)(R1, R5)에 기초하여 ARP(Address Resolution Protocol) 요청들을 처리함으로써 관련 없는 컨테이너의 임의의 탐색 프로세스들을 사전에 필터링하고, 컨테이너 간 종속성 맵(254(R1))에 명시된 보안 정책에 따라 컨테이너들 사이의 통신들을 사전에 제한한다. 도 2의 실시예에서, 다이렉트 ARP 핸들러(232)는 현재 컨테이너의 종속성 맵에 속하지 않는 임의의 불필요한 컨테이너 탐색을 필터링한다(아래에서 더 자세히 설명함). 그러나 다이렉트 ARP 핸들러(232)는 종속 컨테이너들 간의 악의적인 액세스들을 처리하지 않는다. 이와 같이, 컨테이너들의 도달 가능성을 더 제한하기 위해, 제2 네트워크 가시성 구성요소(234)는 컨테이너 인식 네트워크 분리를 구현한다(아래에서 더 자세히 설명됨). 또한, 도 2의 실시예에서 컨테이너 보안 서비스(200)를 통한 네트워크 가시성 서비스(230)의 특수한 IP-핸들러(231)는 특수한 IP 주소들(예를 들어, 게이트웨이 IP 주소들)(R3)에 대한 무단 액세스들을 제한한다.
도 2의 실시예에서, 트래픽 가시성 서비스(240)는 컨테이너 보안 서비스(200)를 통해 컨테이너들 사이에서 보안 패킷 포워딩을 수행한다. 트래픽 가시성 서비스(240)는 먼저 소스 검증(242)(R4-5)을 통해 컨테이너의 아이덴티티로 패킷들을 검증한다. 트래픽 가시성 서비스(240)는 다이렉트 포워딩(244)을 통해 인터페이스 주소를 사용하여 소스 컨테이너로부터 목적지 컨테이너들로 패킷을 다이렉트로 포워딩한다(아래에서 더 자세히 설명함). 다이렉트 패킷 포워딩이 네트워크 인터페이스 수준에서 발생하므로 패킷들이 더 이상 컨테이너 네트워크(R5-6)를 통과하지 않으므로 무단 네트워크 트래픽 노출 가능성이 없다(네트워크 권한이 있는 컨테이너들에도 해당).
다시 도 2를 참조하면, 일부 실시예에서, 크로스-호스트 컨테이너 간 통신들을 위해, 특화된 네트워크 스택(255)이 각 노드의 외부 인터페이스에서 사용된다. 컨테이너들(210)에 대한 네트워크 스택(110)과 달리, 특수 네트워크 스택(255)은 각 노드에 배포된 모든 컨테이너들에 대한 컨테이너 네트워크 맵을 유지한다. 패킷들이 각 컨테이너의 네트워크 스택에 들어갈 때 모든 보안 결정들이 이미 이루어지기 때문에 외부 인터페이스에서 목적지 컨테이너들로 간단한 보안 포워딩이 수행된다. 호스트들(노드들) 간의 물리적 링크들은 컨테이너 보안 시스템의 범위를 벗어나므로 기존 오버레이 네트워크들(예: IPSec을 통한 위브 네트워크)를 활용한다. 또한, 일부 실시예들에서 본 발명의 원리들의 컨테이너 보안 시스템들은 컨테이너 플랫폼들의 기존 메커니즘들을 유지하여 외부 네트워크들로부터의 인바운드 트래픽을 유지한다.
도 2의 실시예에서, 글로벌 매니저(120)는 두 가지 주요 역할들을 수행한다: 글로벌 매니저(120)는 컨테이너 플랫폼들로부터 모든 액티브 컨테이너들의 네트워크 정보를 수집하고 액티브 컨테이너들에 배포된 네트워크들 스택을 관리한다. 일부 실시예에서, 컨테이너 수집을 위해, 글로벌 매니저(120)는 먼저 각 컨테이너의 보안 평가를 위해 2 개의 해시 맵들(즉, 글로벌 컨테이너 네트워크 맵(252) 및 모든 컨테이너들의 컨테이너 간 종속성 맵(254))을 유지한다. 일부 실시예들 및 도 2에 도시된 바와 같이, 본 발명의 원리들의 컨테이너 보안 시스템은 도 1 및 2의 컨테이너 보안 시스템(100)과 같은 도커 또는 쿠버네티스와 같은 컨테이너 플랫폼(260)을 사용하여 네트워크 정보(예: 컨테이너 ID, 컨테이너 네트워크-마이크로서비스의 ID, 컨테이너 세트-컨테이너 세트의 ID)를 탐색한다. 모든 컨테이너들에 대한 특정 기능, 호스트-측 네트워크 인터페이스, IP 및 MAC 주소들), 탐색된 정보 및 해당 수신/송신 보안 정책들(ingress/egress security policies)을 기반으로 컨테이너 간의 종속성들을 추출하여 컨테이너 간 종속성 맵을 구축한다. 또한 컨테이너들이 동적으로 위아래로 회전할 수 있기 때문에 글로벌 매니저(120)는 주기적으로 네트워크 정보를 탐색하여 맵들을 업데이트한다. 일부 실시예들에서, 임의의 요청된 수정들 없이 이미-배포된 컨테이너 환경들과 통합될 수 있는 투명하고 호환 가능한 솔루션을 제공하기 위해 폴링-기반 메커니즘이 선택된다.
일부 실시예들에서, 본 발명의 원리들의 컨테이너 보안 시스템은 컨테이너들 간의 종속성들을 자동으로 추출한다. 이를 위해 마이크로서비스 그룹(microservice group)이 하나 이상의 컨테이너 세트들로 구성되고 각 컨테이너 세트에 동일한 역할을 수행하는 하나 이상의 컨테이너들이 있는 컨테이너 네트워크 모델이 정의된다(확장 및 로드-밸런싱으로 인해). 각 컨테이너 세트는 다른 컨테이너 세트들과 통신하기 위해 내부 서비스 포트들을 노출하는 반면, 마이크로서비스는 외부 세계에서 일부 내부 서비스 포트들로 액세스들을 리디렉션하기 위해 글로벌 서비스 포트들을 노출한다. 이러한 실시예들에서, 암시적 컨테이너 간 종속성에 대한 컨테이너 간 통신들에는 네 가지 제약들이 존재할 수 있다: (1) 동일한 컨테이너 세트를 가진 컨테이너들에 상호 연결성이 부여되고, (2) 서로 다른 컨테이너 세트들의 컨테이너들은 내부 서비스 포트들(구성들에 의해 명시적으로 노출됨)을 통해 통신하고, (3) 관련되지 않은 컨테이너들은 글로벌 서비스 포트들을 통해 서로 통신할 수 있고, (4) 다른 모든 통신들은 기본적으로 삭제된다.
본 발명의 원리들의 컨테이너 보안 시스템의 일부 실시예에서, 컨테이너 간 종속성들은 도 3의 알고리즘(300)을 사용하여 추출될 수 있다. 도 3의 알고리즘(300)에서, 먼저, 최소 특권 연결 정책(least-privilege connectivity policy)을 나타내는 컨테이너 네트워크에서 각 컨테이너의 수신 및 송신 정책(ingress and egress policy)을 교차(intersect)하여 초기 종속성 맵(initial dependency map)을 구축하기 위해 오퍼레이터 지정 정책(operator-specified policies)이 사용된다. 다음으로, 알고리즘(300)은 제약에 기초하여 암시적으로 종속적인 컨테이너들을 찾는다. 동일한 컨테이너 세트(즉, 제약 1)의 컨테이너들에 대해, 글로벌 매니저(120)는 알고리즘(300)에 따라 명시적으로 종속된 컨테이너들로서 종속성 맵에 컨테이너들을 추가한다. 동일한 마이크로서비스 그룹(제약 2)의 상이한 컨테이너 세트들에 속하는 컨테이너들은 각 컨테이너의 송신 정책들을 다른 컨테이너 세트들의 내부 서비스 포트들과 교차시켜 맵에 추가된다. 마지막으로, 마이크로서비스 그룹 간 통신들(제약 3)의 경우, 글로벌 매니저(120)는 알고리즘(300)에 따르면, 각 컨테이너의 송신 정책을 글로벌 서비스 포트들과 교차시킴으로써 다른 마이크로서비스들에 대한 대표 IP 주소들(마이크로서비스들에 액세스하기 위한 가상 IP 주소들)를 맵에 추가한다. 마지막으로, 알고리즘(300)은 모든 컨테이너들에 대한 컨테이너 간 종속성 맵들을 집계(aggregate)한다.
일부 실시예들에서, 본 발명의 원리들에 따른 컨테이너 보안 시스템은 컨테이너 간 종속성 및 네트워크 정책들을 탐색할 수 있다. 예를 들어, 통신들을 최소한의 필수 액세스로 제한하는 적절한 네트워크 정책들 없이는 컨테이너 네트워크가 보안 될 수 없기 때문에, 일부 실시예들에서, 도 1 및 2의 글로벌 매니저(120)와 같은 본 발명의 원리들의 글로벌 매니저는 컨테이너 연산자에 의해 명시적으로 정의되지 않은 컨테이너 간 종속성들을 탐색한다. 예를 들어, 컨테이너 간 트래픽의 흐름 제어 중에 본 발명의 원리들의 글로벌 매니저는 트래픽을 모니터링하고 컨테이너들에서/로의 네트워크 액세스들을 캡처하는 네트워크 로그를 생성할 수 있다. 동시에 글로벌 매니저는 생성된 로그들을 컨테이너 간 종속성 맵과 비교하여 컨테이너의 로깅된 정보를 합법적인 액세스들, 누락된 정책들 및 과도한 정책들의 세 가지 경우들로 분류할 수 있다. 주제 통신의 경우 관찰된 컨테이너들의 쌍이 미리 계산된 컨테이너 간 종속성 맵에 없으면 현재 원리들의 글로벌 매니저는 누락된 네트워크 정책 또는 유효하지 않은 액세스가 있다고 간주할 수 있다. 일부 실시예들에서, 본 발명의 원리들의 글로벌 매니저는 예를 들어 네트워크 오퍼레이터에게 통신이 전송되어 식별된 현재 네트워크 정책들에는 아직 존재하지 않는 흐름들/액세스들을 승인하기 위해 새로운 네트워크 정책들이 생성되어야 하는지 여부를 결정하도록 특정 네트워크 정책들의 검토를 유발할 수 있다. 대안 적으로 또는 추가적으로, 일부 실시예들에서, 본 발명의 원리들의 글로벌 매니저는 예를 들어 일부 실시예들에서 동일한 시도의 빈도에 기초하여 추가 반복 액세스 시도들을 수용하기 위해 추가 네트워크 정책들이 추가되어야 하는지 여부를 자동으로 결정하도록 구성될 수 있다.
유사하게, 일부 실시예들에서, 글로벌 매니저는 어떠한 흐름들도 만나지 않은 네트워크 정책들을 식별할 수 있다. 이러한 인스턴스는 컨테이너 네트워크의 운영들에 불필요한 흐름들을 가능하게 하는 정책들의 과도한 사양을 나타낼 수 있다. 이러한 경우, 본 발명의 원리들의 글로벌 매니저는 예를 들어, 통신이 네트워크 오퍼레이터에게 전송되어 특정 네트워크 정책들을 검토하여 이미 존재하지만 사용되지 않는 네트워크 정책들을 제거해야 하는지 여부를 결정할 수 있다. 대안적으로 또는 추가적으로, 일부 실시예들에서, 본 발명의 원리들의 글로벌 매니저는 예를 들어, 일부 실시예들에서, 정책이 사용된 이후 얼마나 오래되었는지에 기초하여 네트워크 정책이 제거되어야 하는지 여부를 자동으로 결정하도록 구성될 수 있다.
전술한 바와 같이, 일부 실시예들에서, 본 발명의 원리들의 글로벌 매니저는 컨테이너 네트워크에서 컨테이너들의 트래픽들을 모니터링하고 컨테이너들로부터/로의 네트워크 액세스들을 캡처하는 네트워크 로그들을 생성할 수 있다. 이러한 실시예들에서, 글로벌 매니저는 네트워크 로그들로부터 컨테이너 네트워크들의 네트워크 및 정책 정보를 결정할 수 있고, 결정된 네트워크 및 정책 정보로부터 복수의 컨테이너에 대한 최소 특권 통신 정책을 결정할 수 있다. 즉, 일부 실시예들에서 본 발명의 원리들의 글로벌 매니저는 컨테이너 네트워크의 컨테이너들에 각각의 작업 기능을 수행하는 데 필요한 최소 수준들의 액세스/허가들이 제공되는 보안 개념을 결정할 수 있다. 글로벌 매니저는 결정된 최소 특권 통신 정책에 기초하여 각각의 통신에 관련된 복수의 컨테이너들의 컨테이너들로만 제한되도록 컨테이너 네트워크들에서 컨테이너 액세스를 구성할 수 있다. 글로벌 매니저는 컨테이너 네트워크들의 컨테이너 간 트래픽이 피어 컨테이너들에 대한 컨테이너 간 트래픽 노출이 방지되도록 점대점 방식으로 소스 컨테이너에서 하나 이상의 목적지 컨테이너로만 전달되도록 구성할 수 있다.
도 16은 복수의 컨테이너들을 가지는 컨테이너 네트워크들에 대해 최소 특권 보안을 제공하기 위한 방법(1600)의 흐름도를 도시한다. 방법(1600)은 컨테이너 네트워크들에서의 트래픽이 모니터링되고 컨테이너 트래픽의 네트워크 로그들이 생성되는(1602)에서 시작할 수 있다. 방법(1600)은(1604)로 진행할 수 있다.
(1604)에서 컨테이너 네트워크의 네트워크 및 정책 정보는 네트워크 로그들에서 결정된다. 방법(1600)은 (1606)으로 진행할 수 있다.
(1606)에서, 결정된 네트워크 및 정책 정보로부터 복수의 컨테이너들에 대해 최소 특권 통신 정책이 결정된다. 방법(1600)은 (1608)로 진행할 수 있다.
(1608)에서, 컨테이너 네트워크들에서의 컨테이너 액세스는 결정된 최소 특권 통신 정책에 기초하여 각각의 통신에 관련된 복수의 컨테이너들의 컨테이너들로만 제한되도록 구성된다. 방법(1600)은 (1610)으로 진행할 수 있다.
(1610)에서, 컨테이너 네트워크들의 컨테이너 간 트래픽은 피어 컨테이너들에 대한 컨테이너 간 트래픽의 노출이 방지되도록 점대점 방식으로 소스 컨테이너에서 적어도 하나의 목적지 컨테이너로만 전달되도록 구성된다. 방법(1600)은 종료될 수 있다.
본 발명의 원리들에 따른 그리고 적어도 도 2의 실시예를 참조하는 실시예에서, 전술한 바와 같이 글로벌 매니저(120)는 각 컨테이너에 대한 네트워크 스택(110)을 유지한다. 새로 생성된 컨테이너들의 경우, 글로벌 매니저(120)는 컨테이너 네트워크(252) 및 컨테이너 간 종속성 맵들(254)을 사용하여 인터페이스에 네트워크 스택들(110)을 설치한다. 맵 크기와 관련하여, 각 컨테이너는 종속 이웃들과 통신하기 위해 네트워크 정보의 일부만 필요로 하는 반면, 글로벌 매니저(120)는 배포된 모든 컨테이너들의 전체 네트워크 정보를 유지한다. 따라서, 보안 서비스들의 크기를 최적화하기 위해, 일부 실시예들에서 본 발명의 원리들의 컨테이너 보안 시스템은 컨테이너 당 관련 없는 정보를 필터링한다. 글로벌 매니저(120)는 또한 컨테이너 간 종속성들의 변경 감지를 수행하여 해당 컨테이너들의 네트워크 스택 맵들을 자동으로 업데이트한다.
위에서 언급한 바와 같이, 네트워크 가시성 서비스(230)는 컨테이너 사이 및 컨테이너들과 외부 호스트들 사이의 불필요한 연결을 제한한다. 일부 실시예들에서, 컨테이너 간 네트워킹의 경우, 탐색은 다른 컨테이너 통신 타겟들을 식별하는 첫 번째 단계이다. 일부 실시예들에서, 컨테이너들은 ARP 요청들을 사용하여 타겟 컨테이너들의 필요한 네트워크 정보(즉, MAC 주소들)를 식별할 수 있다. 네트워크 가시성 서비스(230)의 다이렉트 ARP 핸들러(232)는 현재 컨테이너의 종속성 맵에 속하지 않는 불필요한 컨테이너 탐색을 필터링한다. 컨테이너가 ARP 요청을 보낼 때, 다이렉트 ARP 핸들러(232)는 요청이 브로드 캐스트되기 전에 요청을 가로채서 소스 컨테이너가 목적지 컨테이너에 대한 종속성을 가지고 있는지 확인한다. 일부 실시예들에서, 분석은 컨테이너 간 종속성 맵(254)을 사용하여 수행된다. 액세스가 가능하다면, 다이렉트 ARP 핸들러(232)는 컨테이너 네트워크 맵에서 목적지 컨테이너의 주어진 MAC 주소들을 사용하여 ARP 응답을 생성하고 응답을 소스 컨테이너로 다시 전송한다. 그렇지 않으면, 다이렉트 ARP 핸들러(232)는 단순히 요청을 삭제한다.
다이렉트 ARP 핸들러(232)가 컨테이너들 제한되지 않은 토폴로지 탐색을 수행하는 것을 방지하지만 커버리지는 컨테이너-레벨 분리로 제한된다. 다이렉트 ARP 핸들러(232)는 종속 컨테이너들 간의 악의적인 액세스들을 처리하지 않는다. 이와 같이, 컨테이너들의 도달 가능성을 더 제한하기 위해, 제2 네트워크 가시성 구성요소(234)는 컨테이너-인식 네트워크 분리를 구현한다. 도 4a는 본 발명의 원리들의 실시예에 따라 컨테이너-인식 네트워크 분리를 구현하기 위한 고-레벨의 예시적인 흐름도(400)를 도시한다. 도 4a의 흐름도(400)는 웹 애플리케이션 컨테이너들과 데이터베이스 컨테이너들 간의 상호 의존성을 도시한다. 즉, 도 4a의 실시예에서, 웹 애플리케이션 컨테이너는 도 4b에 도시된 컨테이너 네트워크의 데이터베이스 컨테이너의 서비스에 액세스한다.
즉, 도 4b에 도시 된 바와 같이, 본 발명의 원리들의 컨테이너 보안 시스템은 각각의 호스팅 된 컨테이너에 대한 네트워크 인터페이스 속성들을 캡처하는 컨테이너 네트워크 맵(402) 및 컨테이너 간의 링크들 및 종속성들을 나타내는 컨테이너들 사이의 종속성 맵(404)을 계산한다. 예를 들어 도 4b의 실시예에서 도시된 바와 같이, 컨테이너 네트워크(408)의 오퍼레이터(406)는 예를 들어 글로벌 매니저(420)가 컨테이너 네트워크 맵(402) 및 컨테이너 간 종속성 맵(404) 중 적어도 하나를 계산/업데이트하도록 명령을 글로벌 매니저(420)에 전달할 수 있다. 또한 도 4b에 도시된 바와 같이, 일부 실시예에서 글로벌 매니저(420)는 주기적으로 컨테이너 네트워크 맵(402) 및 컨테이너 간 종속성 맵(404) 중 적어도 하나를 계산/업데이트하도록 구성될 수 있다.
도 4a로 돌아가면, 웹 애플리케이션의 네트워크 스택은 웹 애플리케이션 자체에 대한 컨테이너 네트워크 맵(402) 및 컨테이너 간 종속성 맵(404)만을 포함한다. 웹 애플리케이션의 패킷들을 조정할 때 본 발명의 원리들의 컨테이너 보안 시스템은 먼저 1 단계에서 웹 애플리케이션에서 들어오는 패킷을 가로 챌 수 있다. 본 발명의 원리들의 컨테이너 보안 시스템은 대상 IP 주소를 키로 사용하는 컨테이너 간 종속성 맵을 검사하여 WebApp과 대상 간의 종속성을 확인할 수 있다. 즉, 단계 2에서, 일부 실시예들에서, 본 발명의 원리들의 컨테이너 보안 시스템은 해시 맵 룩업을 수행할 수 있다. 맵에 정책들이 있는 경우 웹 애플리케이션이 대상(이 경우 데이터베이스)에 대한 종속성이 있다는 결론을 내릴 수 있다. 데이터베이스 컨테이너에 대한 정책과 일치하면 연결이 허용되고 그렇지 않으면 연결이 끊어진다. 즉, 3단계에서 본 발명의 원리들의 컨테이너 보안 시스템은 정책 매칭들을 수행할 수 있다.
본 발명의 원리들의 일부 실시예들은 순차 매칭을 사용하지만, 대안적으로 또는 추가로 다른 매칭 알고리즘들(예: 블룸 필터)이 본 발명의 원리들에 따라 구현될 수 있다. 위에서 설명된 실시예들은 iptables에서 발생하는 것과 같이 매치 세트가 호스트-글로벌 특정이 아니라 컨테이너 특정이기 때문에 간소화된 컨테이너 별 정책 사양과 최소화된 정책 시행 성능 영향을 모두 제공한다. 또한 iptables은 정적 정책들에 의존하는 반면, 서비스 중단 없이 동적으로 변화하는 컨테이너 네트워크 환경에 대한 최신 정보를 유지하는 종속성 맵을 기반으로 하는 동적 정책들을 통해 현재 원리들의 컨테이너 인식 네트워크 분리가 구현된다.
도 2와 관련하여 위에서 언급한 바와 같이, 네트워크 가시성 서비스(230)의 특수한 IP 핸들러(231)는 직접 호스트 액세스들을 필터링한다. 네트워크 연결이 로컬이 아닌 컨테이너 주소들을 타겟으로 하는 경우 네트워크의 게이트웨이 MAC 주소와 실제 대상의 IP 주소가 포함된다. 본 발명의 원리들의 컨테이너 보안 시스템의 네트워크 가시성 서비스(230)의 IP-핸들러(231)는 도 1의 컨테이너 보안 시스템(100)과 같은 일부 실시예들에서 IP 및 MAC 주소들이 게이트웨이에 속하는지 확인함으로써 임의의 다이렉트 호스트 액세스들을 차단한다. 이러한 게이트웨이는 호스트 네트워크에 연결되기 때문에 네트워크 흐름이 다른 컨테이너 네트워크들의 게이트웨이들에 대안적으로 액세스 할 수 있다는 점에 유의해야 한다. 그 결과, 본 발명의 원리들의 일부 실시예들에서, IP-핸들러(231)는 또한 들어오는 패킷들의 IP 및 MAC 주소들을 모든 게이트웨이 정보와 비교함으로써 허가되지 않은 호스트 액세스들을 필터링한다.
쿠버네티스 환경들에는 추가적인 특수 서비스 IP 주소가 있다. 서비스 IP 주소들은 실제 컨테이너들로 리디렉션하는 데 사용되는 가상 IP 주소들이다. 그러나 이러한 IP 주소들은 컨테이너 네트워크들에 속하지 않으므로 외부 IP 주소들로 간주할 수 있다. 따라서, 본 발명의 원리들의 일부 실시예들에서, {서비스 IP 주소, 포트} 및 {해당 컨테이너 IP 주소, 포트} 쌍은 쿠버네티스가 관리하는 ip 테이블들의 NAT 테이블에서 추가로 추출되며, 서비스 맵은 현재 원리들의 각 네트워크 스택에서 유지된다. 그런 다음 컨테이너가 서비스 IP 주소와 서비스 포트가 있는 패킷을 보내면, 네트워크 가시성 서비스(230)의 특수한 IP-핸들러(231)는 서비스 맵에 따라 서비스 IP 주소 및 포트를 실제 컨테이너 IP 주소 및 포트로 덮어쓴다. 단일 서비스에 매핑된 여러 컨테이너들이 있는 경우 소스 IP 주소 및 포트의 해시를 기반으로 컨테이너가 선택된다. 결과적으로 모든 컨테이너 간 통신들은 컨테이너 네트워크들에 있는 기존 IP 주소들로 수행될 수 있다.
도 5a는 리눅스 커널 내에서 수행되는 종래 기술의 패킷 처리 시퀀스의 개요를 도시한다. 도 5a의 실시예에서, 패킷이 인터페이스에 도착할 때, 패킷은 먼저 수신 트래픽 제어(ingress traffic control)로 전달된다. 결과적으로 패킷은 실제 네트워크 스택을 통과하고 필터 검사들을 통해 처리된 후 궁극적으로 응용 프로그램에 전달된다. 애플리케이션이 패킷을 보낼 때 패킷은 인터페이스에 반대로 전달된다. 트래픽 가시성을 제어하려면 패킷들을 필터링하고 캡처 할 위치를 모두 고려해야 한다. 첫 번째 질문(즉, 패킷들을 필터링 할 위치)에 대한 답은 네트워크 스택에 있다. 예를 들어 네트워크 스택에있는 Netfilter를 사용하여 네트워크 트래픽을 필터링할 수 있다. Netfilter는 네트워킹 레이어들(예: L2 트래픽의 경우 ebtables 및 L3/L4 트래픽의 경우 iptables)에서 여러 데이터 이동 색인으로 구성된다. 따라서 보안 정책들(예: DROP)을 각 레이어들의 해당 매치 테이블들에 추가하여 네트워크 트래픽에 적용할 수 있다. 보안 정책을 위반하는 패킷들은 이미 네트워크 스택에서 처리되었기 때문에 애플리케이션들은 이를 수신하지 않는다.
두 번째 질문(즉, 패킷들 캡처 위치)에 대한 대답은 수신 및 송신 트래픽 제어들(ingress and egress traffic controls)에 있다. 네트워크 트래픽이 캡처되면 패킷 캡처 도구들(예: tcpdump)가 사용된다. 이러한 도구는 내부적으로 BPF(Berkeley Packet Filter) 필터들을 만들어 트래픽 제어들에 삽입한다. BPF 필터들을 사용하여 네트워크 트래픽을 복제하고 선택적으로 탐색한다. 따라서 netfilter에 의해 삭제된 패킷들도 모니터링 할 수 있다. 도 5a에 도시 된 바와 같이 Linux 커널 및 다른 네트워크 스택 기능 내에서 수행되는 종래 기술 패킷 처리 시퀀스의 결함은 모든 보안 시행 및 패킷 포워딩이 패킷 헤더 정보에 의존한다는 것을 암시한다. 따라서 악성 컨테이너는 타겟 컨테이너들의 ID와 일치하는 패킷들을 제출할 수 있다. 이렇게 하면 목적지 컨테이너의 트래픽을 자신에게 리디렉션 할 수 있다(예: ARP 스푸핑 공격). 또한 악성 컨테이너는 통과하는 트래픽(예: 중간자 공격)을 수정하거나 위조 된 패킷들을 삽입하여 다른 컨테이너의 기존 세션들을 방해할 수 있다(예: TCP RST 공격).
위에서 설명된 결함들을 방지하기 위해, 본 발명의 원리들의 실시예들은 컨테이너 간 트래픽의 소스 검증을 수행한다. 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 일부 실시예들에서, 본 발명의 원리들의 각 컨테이너의 네트워크 스택은 대응하는 컨테이너의 컨테이너 정보(즉, IP 및 MAC 주소들)를 정적으로 포함한다. 일부 실시예들에서, 트래픽 가시성 서비스(240)와 같은 본 발명의 원리들의 트래픽 가시성 서비스는 패킷 헤더 정보를 네트워크 스택에 내장된 컨테이너 정보와 비교함으로써 들어오는 트래픽을 검증한다. 패킷 정보가 컨테이너 정보와 일치하지 않으면 들어오는 트래픽이 스푸핑된 것으로 간주되고 트래픽이 즉시 삭제된다. 대안적으로 또는 추가적으로, 본 발명의 원리들의 일부 실시예들에서, 들어오는 패킷들의 커널 메타데이터(예를 들어, 수신 네트워크 인터페이스 인덱스(ingress network interface index))는 컨테이너 간 트래픽의 소스 검증을 수행하기 위해 활용된다. 본 발명의 원리들의 이러한 실시예들에서, 트래픽 가시성 서비스(240)와 같은 본 발명의 원리들의 트래픽 가시성 서비스는 패킷 헤더 정보뿐만 아니라 메타데이터도 컨테이너의 정보와 비교함으로써 들어오는 트래픽을 검증한다. 패킷 정보 및/또는 메타데이터가 컨테이너 정보와 일치하지 않으면 들어오는 트래픽이 스푸핑된 것으로 간주되고 트래픽이 즉시 삭제된다.
소스 검증의 효과는 수신 패킷들의 출처를 확인하는 충실함에서 비롯된다. 그 결과, 본 발명의 원리들의 실시예들은 컨테이너 환경들에서 파괴 및 스푸핑 위협들의 스펙트럼을 효과적으로 제거한다. 도 5a의 종래 기술의 패킷 처리 시퀀스와 같은 기존 솔루션은 패킷 헤더 정보를 통해 들어오는 패킷들이 어디에서 오는지 관찰하도록 제한된다. 도 5a에 도시 된 바와 같이, 종래 기술의 네트워크 스택들은 필터 위치가 캡처 포인트 뒤에 있기 때문에 다른 컨테이너들로부터의 컨테이너 간 트래픽의 노출을 방지할 수 없다. 따라서 악성 컨테이너가 목적지 컨테이너의 트래픽을 자신에게 리디렉션할 수 있는 기능이 있는 경우 악성 컨테이너는 제한없이 트래픽을 모니터링 할 수 있다. 또한 네트워크 특권 컨테이너들은 모든 컨테이너들 네트워크에 대한 완전한 가시성을 가진다. 전술한 바와 같이, 이러한 결함들을 해결하기 위해, 본 발명의 원리들의 실시예들은 종단 간 다이렉트 포워딩 구성요소를 제공함으로써 최소 특권 트래픽 노출을 구현한다.
도 5b는 본 발명의 원리들의 실시예에 따른 종단 간 다이렉트 패킷 포워딩 프로세스의 고-레벨 기능 블록도를 도시한다. 일부 실시예들에서, 본 발명의 원리들의 도 5b의 프로세스는 원본 네트워크 스택들뿐만 아니라 브릿지 인터페이스들을 우회하여 피어 컨테이너들에 의한 도청을 방지함으로써 다른 컨테이너들에 대한 컨테이너 내 트래픽의 노출을 우회하도록 구현된다. 도 5B의 실시예에서, 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 컨테이너 보안 시스템이 컨테이너로부터 들어오는 네트워크 연결을 수신할 때, 컨테이너 보안 시스템은 컨테이너 네트워크 맵에서 대상의 인터페이스 정보를 탐색한다. 대상이 동일한 노드의 컨테이너 인 경우 컨테이너 보안 시스템은 패킷 스트림을 목적지 컨테이너에 삽입한다. 예를 들어, 도 5b의 실시예에서 본 발명의 원리들의 컨테이너 보안 서비스(500)는 컨테이너 A(502) 및 컨테이너 B(504) 각각에서 구현된다. 도 5a의 통신 프로토콜과 달리, 도 5b의 실시예에서, 컨테이너 A(502)에서 컨테이너 B(504) 로의 통신은 컨테이너 A의 호스트 측 인터페이스(512)를 사용하여 컨테이너 B의 호스트 측 인터페이스(514)로 완료되지 않는다. 컨테이너 A(502)로부터 컨테이너 B(504) 로의 통신은 대신에 본 발명의 원리들의 컨테이너 보안 서비스(500)에 의해 컨테이너 A(502)의 내부 인터페이스(516)로부터 컨테이너 B(504)의 내부 인터페이스(518)로 직접 전달된다. 본 발명의 원리들에 따라 일부 실시예들에서, 컨테이너 A(502) 및 컨테이너 B(504) 중 적어도 하나로부터의 통신 대상이 다른 노드의 컨테이너인 경우, 패킷은 본 발명의 원리들의 서비스(500)에 의해 호스트(미도시)의 외부 인터페이스에 삽입된다. 타겟 노드에 있는 외부 인터페이스의 네트워크 스택이 패킷을 수신하면 네트워크 스택은 패킷 스트림을 목적지 컨테이너에 직접 삽입한다. 본 발명의 원리들에 따른 이러한 트래픽 흐름 격리는 다른 컨테이너들에 의한 트래픽 공개 및 삽입을 모두 방지하여 네트워크-특권이 있는 컨테이너들조차도 제3자의 트래픽 흐름들을 보는 것을 방지한다.
도 6은 보안 공격이 발생하는 종래 기술의 쿠버네티스 환경의 고-레벨 기능 블록도를 도시한다. 도 6의 쿠버네티스 환경에서는 두 개의 독립 서비스들이 공통 마이크로서비스들과 함께 배포된다. 도 6에서 하나는 합법적인 사용자들을 위한 서비스로 구현되고 다른 하나는 게스트 사용자들을 위한 서비스로 구현되고 있다. 도 6의 쿠버네티스 환경에서는 도커 허브(Docker Hub)에서 탐색된 엔진엑스 및 레디스 컨테이너 이미지들이 사용된다. 도 6의 쿠버네티스 환경에서, 한 서비스의 손상된 컨테이너는 피어 서비스의 다른 컨테이너들 사이의 통신을 가로 채기 위해 일련의 네트워크 공격들을 수행한다. 이 시나리오에서 공격자는 웹 애플리케이션 취약성들을 악용하여 공용 엔진엑스 서버에 침투한 후 합법적인 사용자 요청들을 위조한다. 그런 다음 공격자는 정적으로 컴파일된 공격 바이너리들을 모든 프로세스들에 대한 글로벌 읽기 및 쓰기 권한들이 있는 /tmp 디렉토리에 다운로드할 수 있다.
그림 6의 쿠버네티스 환경에서 공격자는 3개의 네트워크 기반 공격들을 활용하여 엔진엑스-게스트 컨테이너를 손상시키고 중간자 공격을 성공적으로 실행한다. 첫 번째 단계에서 공격자는 ARP 기반 스캐닝을 통해 네트워크 주변의 액티브 컨테이너들을 탐색한다. 도 6의 쿠버네티스 환경에서는 모든 컨테이너들이 오버레이 네트워크에 연결되고 ARP 패킷들이 iptables에 의해 필터링 되지 않기 때문에 공격자가 컨테이너들의 네트워크 정보를 쉽게 수집할 수 있다.
예를 들어, 도 7a는 이웃 컨테이너들을 조사하는 도 6의 쿠버네티스 환경의 공격자에 의해 수집된 컨테이너 네트워크의 컨테이너들로부터의 패킷 데이터를 도시한다(즉, 엔진엑스-게스트의 관점). 그림 6의 쿠버네티스 환경에서 공격자는 엔진엑스-사용자와 레디스-사용자 컨테이너들 사이의 모든 트래픽이 엔진엑스-게스트를 통과하도록 거짓 ARP 응답들을 네트워크에 삽입할 수 있다. 예를 들어, 도 7b는 공격자에 의해 도 6의 네트워크에 입력된 거짓 ARP 응답들의 예를 도시한다. 즉, 도 7b에서 엔진엑스-사용자의 ARP 테이블에 있는 레디스-사용자의 MAC 주소가 엔진엑스-게스트의 MAC 주소로 대체되었음을 알 수 있다. 그러면 공격자는 엔진엑스-사용자와 레디스-사용자 간의 모든 트래픽을 모니터링 할 수 있다. 예를 들어, 도 7c는 도 6의 네트워크에서 공격자에 의해 모니터링되는 엔진엑스-사용자와 레디스-사용자 간의 트래픽의 예를 도시한다.
그림 6의 쿠버네티스 환경에서 공격자는 합법적인 사용자에 대한 응답들을 위조된 콘텐츠로 대체할 수 있다. 예를 들어, 공격자는 내부적으로 레디스-사용자로부터 전달된 패킷들을 삭제하고 위조된 콘텐츠로 새 패킷들을 삽입할 수 있다. 그런 다음 엔진엑스-사용자는 원본 대신 위조된 콘텐츠를 처리하고 결과들을 다시 사용자에게 반환한다. 예를 들어, 도 7d는 공격자에 의해도 6의 Nginx-User에 삽입된 위조된 패킷들의 예를 도시한다. 결국 사용자는 공격자가 의도한 대로 위조된 콘텐츠들을 수신한다.
도 7a에 도시된 바와 같이, 손상된 컨테이너가 피어 탐색을 수행하여 다른 컨테이너들을 찾는 데 사용될 때, 현재 컨테이너 네트워크 스택은 공격자가 제한들이 없이 모든 이웃 컨테이너들을 탐색할 수 있도록 한다. 또한 쿠버네티스 환경의 위브(Weave) 오버레이 네트워크를 통해 컨테이너들은 단일 스위치에 논리적으로 위치하므로 다른 노드들의 모든 컨테이너들을 탐색할 수 있다.
도 6 및 도 6의 종래 기술의 쿠버네티스 환경과 대조적으로, 도 7a-7d, 도 8은 본 발명의 원리들의 일 실시예에 따른 네트워크 분리로 인한 패킷 데이터의 예시를 도시한다. 본 발명의 원리들의 다이렉트 ARP 핸들러 및 컨테이너 인식 네트워크 분리 아키텍처는 각 컨테이너의 종속성들(R1)을 기반으로 각 컨테이너의 도달 가능성을 줄인다. 도 8의 네트워크 정보에 도시된 바와 같이, 본 발명의 원리들의 아키텍처의 결과로서, 감염된 컨테이너(즉, 도 6의 엔진엑스-게스트)는 하나의 종속 컨테이너만 가지며 컨테이너는 게이트웨이와 해당 종속 컨테이너만 관찰한다.
예를 들어, 도 9a는 공격자가 본 발명의 원리들의 종단 간 포워딩 없이 도 6의 스푸핑된 타겟 컨테이너에 대해 볼 수 있는 트래픽의 예를 도시한다. 즉, 도 9a에 도시된 바와 같이, 손상된 컨테이너는 타겟 컨테이너의 네트워크 트래픽을 스니핑할 수 있다. 또한 공격자가 “네트워크-권한이 있는" 컨테이너를 손상시킬 때 공격자는 제한없이 모든 네트워크 트래픽에 액세스 할 수 있다.
대조적으로, 도 9b는 공격자가 본 발명의 원리들의 종단 간 전달로 응답 트래픽을 볼 수 없는 방법을 예시하는 패킷 데이터를 도시한다. 도 9b에 도시된 바와 같이, 본 발명의 원리들에 따라 다이렉트 포워딩이 적용될 때, 주어진 인터페이스로부터의 유일한 가시적 트래픽은 컨테이너 자체를 포함하는 트래픽의 트래픽(R4-5)이다. 차이점들을 강조하기 위해, 도 9b에서 소스에서 대상으로의 트래픽 흐름은 의도적으로 표시된다. 결과적으로 공격자는 소스에서 대상으로의 흐름을 관찰할 수 있지만 공격자는 더 이상 반대 방향으로 트래픽을 관찰할 수 없다. 본 발명의 원리들에 따른 종단 간 포워딩이 모든 트래픽에 완전히 적용되면 공격자는 이들 간의 트래픽을 볼 수 없다.
네트워크 기반 공격들은 종종 스푸핑된 패킷 삽입 기술에 의존하여 악성 패킷들을 타겟 컨테이너들로 전송한다. 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 컨테이너 보안 시스템은 명시적 소스 검증을 수행함으로써 이러한 공격들을 방지한다. 미리 설정된 원리들의 실시예들의 이점을 추가로 설명하기 위해, 도 10a-10d는 다른 공격 시나리오로부터 발생하는 패킷 데이터, 특히 공격자와 피해자의 관점들에서 케이스들 전후의 패킷 데이터를 도시한다. 도 10a는 공격자에 의한 RST 패킷들의 종래의 보안 아키텍처를 가지는 컨테이너 네트워크의 컨테이너로의 삽입을 보여주는 패킷 데이터를 도시한다. 도 10a의 컨테이너 네트워크에서, 소스 검증은 IP-레벨에서만 가능하고 공격자는 본 발명의 원리들의 소스 검증없이 ARP 스푸핑 공격들을 수행할 수 있다. 도 10a에 도시 된 바와 같이, 공격자는 엔진엑스-사용자를 스푸핑하고 엔진엑스-사용자의 트래픽을 수신한다. 또한 공격자는 엔진엑스-사용자의 세션을 종료하기 위해 RST 패킷들을 삽입한다. 도 10b는 공격자가 컨테이너에 RST 패킷을 삽입하는 것이 엔진엑스-사용자의 관점에서 세션 종료를 유발하는 방법을 도시한다. 즉, 도 10b에 도시된 바와 같이, 공격자가 RST 패킷들을 삽입하자마자 엔진엑스-사용자는 삽입된 RST 패킷들을 수신하여(RST 패킷들의 수신 시간 참조) 엔진엑스-사용자의 세션이 즉시 종료된다.
종래의 컨테이너 네트워크 아키텍처의 이러한 결함들은 본 발명의 원리들의 명시적인 소스 검증으로 해결할 수 있다. 예를 들어, 도 10c는 본 발명의 원리들의 일 실시예에 따라 소스 검증을 구현하는 컨테이너 보안 시스템에 RST 패킷들을 삽입하려는 공격자의 시도와 관련된 패킷 데이터를 도시한다. 공격자가 도 10c에 도시된 바와 같이 RST 패킷들을 삽입하려고 시도하지만, RST 패킷들은 본 발명의 원리들의 소스 검증 구현에 의해 거부되고(도 10d에 도시 된 바와 같이) RST 패킷들은 엔진엑스-사용자(R5)에 도달하지 못한다.
발명자들은 본 발명의 원리들의 컨테이너 보안 시스템의 구현이 쿠버네티스 환경에 어떤 영향을 미치는지 평가하기 위해 위브 오버레이 네트워크가 있는 쿠버네티스 환경을 구축했다. 구축된 쿠버네티스 환경에서 한 시스템은 쿠버네티스 마스터 노드 역할을 하고 다른 두 시스템들은 컨테이너-호스팅-노드들의 역할을 했다. 각 시스템은 Intel Xeon E5-2630v4 CPU, 64GB RAM 및 Intel 10Gbps NIC로 구성되었다. netperf와 iperf는 각각 왕복 지연 시간과 TCP 스트림 처리량들을 측정하는 데 사용되었다.
이전에 언급된 바와 같이, 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 컨테이너 보안 시스템의 실시예들은 컨테이너 플랫폼들로부터 컨테이너 정보를 주기적으로 검색하고 새로운 컨테이너들을 쿼리한다. 새 컨테이너가 감지되면 컨테이너 보안 시스템은 각 새 컨테이너에 대한 네트워크 스택을 설정/배포한다. 본 발명자들은 본 발명의 원리들에 따라 새로운 네트워크 스택을 설정/배포하는 데 걸리는 시간을 조사하기 위해 100개의 컨테이너들을 생성하는 데 필요한 배포 시간을 측정했다. 실험에서 발명자들은 각 컨테이너에 대한 네트워크 스택 컴파일을 실행하는 데 평균 2.67초가 걸린다는 것을 확인했다. 발명자들은 컨테이너들이 자체 서비스들을 초기화하는 데 몇 초가 걸리기 때문에(즉, 저장소에서 컨테이너 이미지들을 가져오고, 컨테이너 분리를 구성하고, 서비스를 시작하는 데) 몇 초가 걸리기 때문에 이러한 배포 시간은 무시할 수 있다고 판단했다.
도 11은 도 1의 컨테이너 보안 시스템(CSS)(100)과 같은 본 발명의 원리들의 실시예에 따른 iptables-기반 액세스 제어 네트워크 및 컨테이너 보안 시스템을 사용하여 제어되는 네트워크 모두에 대해 호스트 내에서 증가하는 보안 정책들에 따른 컨테이너 간 처리량 변동들의 그래픽 표현을 도시한다. iptables 경우와의 공정한 비교를 위해 본 발명의 원리들의 컨테이너 보안 시스템을 사용하여 제어되는 네트워크의 오버 헤드를 결정할 때 각 컨테이너에 대해 동일한 수의 정책들을 정의한다. iptables의 경우 모든 컨테이너들를 위한 보안 정책들은 호스트 커널에서 집합적으로 유지된다. 따라서 컨테이너들에서 패킷들이 도착하면 iptables는 먼저 해당 컨테이너들에 대한 정책들을 조회하고 들어오는 패킷들로 개별적으로 검사한다. 또한 iptables는 일반적인 액세스 제어를 위해 설계되었으므로 iptables는 많은 수의 필드 일치(최소한 각 정책에 대한 소스 및 대상 IP 주소들 및 포트들)가 필요하다. 그 결과, 도 11에 나타난 바와 같이, 처리량은 100개의 정책들에서 23.3%, 500개의 정책들에서 64.0% 감소했다. 이러한 추세는 컨테이너 네트워크들에 대한 현재 정책 시행 접근 방식의 근본적인 확장 문제를 지적한다.
대조적으로, 도 11에 도시된 바와 같이, 본 발명의 원리들의 컨테이너 보안 시스템(CSS)에 의한 처리량 저하는 정책들의 수가 증가함에 따라 거의 눈에 띄지 않았다(500개의 정책들에 대해 3.2 %)(R2). 이러한 성능 향상들은 특정 대상들에 대한 해시 기반 정책 조회 및 단일 필드 일치(즉, 대상 포트 일치)로 구성된 컨테이너 환경들에 최적화된 본 발명의 원리들의 매칭 프로세스에서 비롯된다. 본 발명의 원리들의 컨테이너 보안 시스템의 네트워크 스택은 각 컨테이너에 특정한 보안 정책만을 유지하기 때문에 종래 기술의 경우와 같이 소스 IP 주소들 및 포트들을 일치시킬 필요가 없다.
도 12a는 본 발명의 원리들의 실시예에 따른 컨테이너 네트워크의 호스트 내의 서비스들의 상이한 조합들에 대한 컨테이너 간 지연 시간 측정들의 그래픽 표현을 도시한다. 즉, 도 12a는 단일 노드 내에서 4 개의 테스트 케이스들의 왕복 대기 시간 비교를 제공한다. 도 12a에서, 기본 케이스는 보안 서비스들과 상호 작용하지 않은 두 컨테이너들의 기본 구성에 대한 지연 시간 측정들을 제공하며, 이는 TCP 및 UDP 패킷들에 대해 각각 21.6s 및 18.2s이다. 본 발명의 원리들의 컨테이너 보안 시스템의 네트워크 가시성 서비스를 적용한 경우, 컨테이너들 사이의 도달성 검사를 도출하기 위해 추가 패킷 처리가 필요한 보안 기능들이 새로 적용되어 지연 시간들이 5.7%, 9.3% 증가했다. 본 발명의 원리들의 컨테이너 보안 시스템의 트래픽 가시성 서비스를 적용했을 때 보안 포워딩이 기존 컨테이너 네트워크들을 우회하면서 컨테이너 간 트래픽을 목적지 컨테이너들로 직접 공급했기 때문에 전체 지연 시간이 26.3% 향상되었다. 마지막으로, 본 발명의 원리들의 컨테이너 보안 시스템의 모든 보안 기능들을 완전히 적용했을 때 TCP 및 UDP 패킷들에 대한 기본 케이스 23.0% 및 25.4%에 대해 전반적인 성능 향상이 관찰되었다(R6). 이러한 지연 시간 개선들로 호스트 간 처리량이 12.9% 향상되었다.
도 12b는 본 발명의 원리들의 실시예에 따른 호스트들에 걸친 본 발명의 원리들의 컨테이너 보안 시스템의 서비스들의 상이한 조합들에 대한 컨테이너 간 지연 시간 측정들의 그래픽 표현을 도시한다. 도 12b에 도시된 바와 같이, 도 12a의 호스트 내 측정과 비교하여, 물리적 링크 통과 및 호스트들 간의 터널링 오버 헤드들로 인해 전체 지연 시간들이 크게 증가했다; 따라서 기본 케이스의 지연 시간은 TCP 및 UDP 패킷들에 대해 각각 100.1μs 및 91.5μs가 되었다. 또한 네트워크 영향을 고려할 때 본 발명의 원리들의 네트워크 가시성 서비스로 인한 오버 헤드가 감소했다(1% 미만). 본 발명의 원리들의 트래픽 가시성 서비스들의 경우, 본 발명의 원리들의 보안 전달이 외부 인터페이스들을 통해 소스 컨테이너에서 목적지 컨테이너로 네트워크 패킷들을 직접 전달하기 때문에 지연 시간이 평균 21.3% 감소했다. 마지막으로, 본 발명의 원리들의 모든 보안 서비스를 적용했을 때 지연 시간들이 17.7% 감소하여 기본 사례(R6)에 비해 크게 향상되었다. 이러한 지연 시간 개선들로 인해 호스트 간 처리량이 12.9% 향상되었다.
도 13은 본 발명의 원리들에 따라 컨테이너 네트워크에 보안을 제공하기 위한 방법(1300)의 흐름도를 도시한다. 방법(1300)은 컨테이너 네트워크의 복수의 컨테이너 각각에 대해 네트워크 스택이 설정되는(1302)에서 시작된다. 방법(1300)은(1303)으로 진행할 수 있다.
(1303)에서 네트워크 및 정책 정보는 액티브 컨테이너에서 결정된다. 방법(1300)은(1304)로 진행할 수 있다. (1304)에서, 결정된 네트워크 정보로부터 학습된 복수의 컨테이너에 대한 사전 결정된 컨테이너 간 종속성 세트에 기초하여, 각각의 통신과 관련이 없는 복수의 컨테이너의 컨테이너에 대한 액세스는 거부되지 않으면 적어도 제한된다. 방법(1300)은(1306)으로 진행할 수 있다.
(1306)에서, 컨테이너 간 트래픽은 피어 컨테이너에 대한 컨테이너 간 트래픽의 노출이 방지되도록 지점 간 방식으로 소스 컨테이너에서 목적지 컨테이너로 직접 공급되도록 구성된다. 방법(1300)은 종료될 수 있다.
도 1에 도시 된 바와 같이, 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들의 컨테이너 보안 시스템의 실시예는 본 발명의 원리들에 따라 컴퓨팅 장치(1400)에서 구현될 수 있다. 즉, 일부 실시예에서 네트워크 패킷, 통신, 데이터 등은 예를 들어 컴퓨팅 장치(1400)와 관련된 임의의 입력/출력 수단을 통해 컴퓨팅 장치(1400)를 사용하여 컨테이너 보안 시스템(100)의 컨테이너 및 구성요소와 통신될 수 있다. 본 발명의 원리들에 따른 컨테이너 보안 시스템과 관련된 데이터는 디스플레이, 프린터 또는 임의의 다른 형태의 출력 장치와 같은 컴퓨팅 장치(1400)의 출력 장치를 사용하여 사용자에게 제시될 수 있다.
예를 들어, 도 14는 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들에 따른 컨테이너 보안 시스템의 실시예와 함께 사용하기에 적합한 컴퓨팅 장치(1400)의 고-레벨의 블록도를 도시한다. 일부 실시예에서, 컴퓨팅 장치(1400)는 다양한 실시예에서 프로세서 실행 가능한 실행 가능한 프로그램 명령(1422)(예를 들어, 프로세서(들)(910)에 의해 실행 가능한 프로그램 명령)으로서 본 발명의 원리들의 방법을 구현하도록 구성될 수 있다.
도 14의 실시예에서, 컴퓨팅 장치(1400)는 입력/출력(I/O) 인터페이스(1430)를 통해 시스템 메모리(1420)에 연결된 하나 이상의 프로세서(1410a-1410n)를 포함한다. 컴퓨팅 장치(1400)는 I/O 인터페이스(1430) 및 커서 제어 장치(1460), 키보드(1470) 및 디스플레이(들)(1480)와 같은 하나 이상의 입력/출력 장치(1450)에 연결된 네트워크 인터페이스(1440)를 더 포함한다. 다양한 실시예에서, 사용자 인터페이스가 생성되고 디스플레이(1480) 상에 디스플레이될 수 있다. 일부 경우에, 실시예는 컴퓨팅 장치(1400)의 단일 인스턴스를 사용하여 구현될 수 있은 반면, 다른 실시예에서는 이러한 다중 시스템 또는 컴퓨팅 장치(1400)를 구성하는 다중 노드가 다양한 실시예의 다른 부분 또는 인스턴스를 호스팅하도록 구성될 수 있다는 것이 고려된다. 예를 들어, 일 실시예에서 일부 요소는 다른 요소를 구현하는 노드와 구별되는 컴퓨팅 장치(1400)의 하나 이상의 노드를 통해 구현될 수 있다. 다른 예에서, 다수의 노드는 분산 방식으로 컴퓨팅 장치(900)를 구현할 수 있다.
다른 실시예에서, 컴퓨팅 장치(1400)는 개인용 컴퓨터 시스템, 데스크톱 컴퓨터, 랩톱, 노트북, 태블릿 또는 넷북 컴퓨터, 메인 프레임 컴퓨터 시스템, 핸드 헬드 컴퓨터, 워크 스테이션, 네트워크 컴퓨터, 카메라, 셋톱 박스, 모바일 장치, 소비자를 포함하지만 이에 국한되지는 않는다. 장치, 비디오 게임 콘솔, 휴대용 비디오 게임 장치, 응용 프로그램 서버, 저장 장치, 스위치, 모뎀, 라우터와 같은 주변 장치 또는 일반적으로 모든 유형의 컴퓨팅 또는 전자 장치를 포함하는 임의의 다양한 유형의 장치 일 수 있다.
다양한 실시예에서, 컴퓨팅 장치(1400)는 하나의 프로세서(1410)를 포함하는 단일 프로세서 시스템, 또는 여러 프로세서(1410)(예를 들어, 2 개, 4 개, 8 개 또는 다른 적절한 수)를 포함하는 멀티 프로세서 시스템일 수 있다. 프로세서(1410)는 명령을 실행할 수 있는 임의의 적절한 프로세서 일 수 있다. 예를 들어, 다양한 실시예에서 프로세서(1410)는 다양한 명령 세트 아키텍처(ISA) 중 임의의 것을 구현하는 범용 또는 임베디드 프로세서일 수 있다. 다중 프로세서 시스템에서, 프로세서(1410) 각각은 공통적으로 동일한 ISA를 구현할 수 있지만 반드시 그런 것은 아니다.
시스템 메모리(1420)는 프로세서(1410)에 의해 액세스 가능한 프로그램 명령어(1422) 및/또는 데이터(1432)를 저장하도록 구성될 수 있다. 다양한 실시예에서, 시스템 메모리(1420)는 정적 랜덤 액세스 메모리(SRAM), 동기식 동적 RAM(SDRAM), 비 휘발성/플래시형 메모리, 또는 임의의 다른 유형의 메모리와 같은 임의의 적절한 메모리 기술을 사용하여 구현될 수 있다. 예시된 실시예에서, 전술한 실시예의 임의의 요소를 구현하는 프로그램 명령 및 데이터는 시스템 메모리(1420) 내에 저장될 수 있다. 다른 실시예에서, 프로그램 명령 및/또는 데이터는 상이한 유형의 컴퓨터 액세스 가능 매체 또는 시스템 메모리(1420) 또는 컴퓨팅 장치(1400)와 분리된 유사한 매체에 수신, 전송 또는 저장될 수 있다.
일 실시예에서, I/O 인터페이스(1430)는 프로세서(1410), 시스템 메모리(1420) 및 네트워크 인터페이스(1440) 또는 입력/출력 장치(1450)와 같은 다른 주변 인터페이스를 포함하는 장치의 임의의 주변 장치 사이의 I/O 트래픽을 조정하도록 구성될 수 있다. 일부 실시예에서, I/O 인터페이스(1430)는 하나의 구성요소(예를 들어, 시스템 메모리(1420))로부터의 데이터 신호를 다른 구성요소(예를 들어, 프로세서(1410))에 의해 사용하기에 적합한 포맷으로 변환하기 위해 임의의 필요한 프로토콜, 타이밍 또는 다른 데이터 변환을 수행할 수 있다. 일부 실시예에서, I/O 인터페이스(1430)는 예를 들어 PCI(Peripheral Component Interconnect) 버스 표준의 변형 또는 USB(Universal Serial Bus) 표준과 같은 다양한 유형의 주변 버스를 통해 부착된 장치에 대한 지원을 포함할 수 있다. 일부 실시예에서, I/O 인터페이스(1430)의 기능은 예를 들어 노스 브릿지 및 사우스 브릿지와 같은 둘 이상의 개별 구성요소로 분할될 수 있다. 또한, 일부 실시예에서 시스템 메모리(1420)에 대한 인터페이스와 같은 I/O 인터페이스(1430)의 기능의 일부 또는 전부가 프로세서(1410)에 직접 통합될 수 있다.
네트워크 인터페이스(1440)는 컴퓨팅 장치(1400)와 하나 이상의 외부 시스템과 같은 네트워크(예를 들어, 네트워크(1490))에 부착된 다른 장치 사이에서 또는 컴퓨팅 장치(1400)의 노드 사이에서 데이터가 교환되도록 구성될 수 있다. 다양한 실시예에서, 네트워크(1490)는 LAN(Local Area Network)(예: 이더넷 또는 기업 네트워크), WAN(Wide Area Network)(예: 인터넷), 무선 데이터 네트워크, 기타 전자 데이터 네트워크 또는 이들의 조합을 포함하지만 이에 제한되지 않는 하나 이상의 네트워크를 포함할 수 있다. 다양한 실시예에서, 네트워크 인터페이스(1440)는 예를 들어, 임의의 적합한 유형의 이더넷 네트워크와 같은 유선 또는 무선 일반 데이터 네트워크를 통해; 디지털 광섬유 통신 네트워크를 통해; 파이버 채널 SAN과 같은 스토리지 영역 네트워크를 통해 또는 기타 적절한 유형의 네트워크 및/또는 프로토콜을 통해 통신을 지원할 수 있다.
입력/출력 장치(1450)는 일부 실시예에서 하나 이상의 디스플레이 단말기, 키보드, 키패드, 터치 패드, 스캐닝 장치, 음성 또는 광학 인식 장치, 또는 하나 이상의 컴퓨터 시스템에 의해 데이터를 입력하거나 액세스하기에 적합한 임의의 다른 장치를 포함할 수 있다. 다중 입력/출력 장치(1450)는 컴퓨터 시스템에 존재할 수 있거나 컴퓨팅 장치(1400)의 다양한 노드에 분산될 수 있다. 일부 실시예에서, 유사한 입력/출력 장치는 컴퓨팅 장치(1400)로부터 분리될 수 있고, 네트워크 인터페이스(1440)와 같은 유선 또는 무선 연결을 통해 컴퓨팅 장치(1400)의 하나 이상의 노드와 상호 작용할 수 있다.
당업자는 컴퓨팅 장치(1400)가 단지 예시일 뿐이며 실시예의 범위를 제한하려는 것이 아님을 이해할 것이다. 특히, 컴퓨터 시스템 및 장치는 컴퓨터, 네트워크 장치, 인터넷 기기, PDA, 무선 전화, 호출기 등을 포함하는 다양한 실시예의 표시된 기능을 수행할 수 있은 하드웨어 또는 소프트웨어의 임의의 조합을 포함할 수 있다. 컴퓨팅 장치(1400)는 또한 도시되지 않은 다른 장치에 연결될 수 있거나, 대신 독립형 시스템으로 동작 할 수 있다. 또한, 예시된 구성요소에 의해 제공되는 기능은 일부 실시예에서 더 적은 구성요소로 결합되거나 추가 구성요소로 분산될 수 있다. 유사하게, 일부 실시예에서, 예시된 구성요소 중 일부의 기능이 제공되지 않을 수 있고/있거나 다른 추가 기능이 이용 가능할 수 있다.
컴퓨팅 장치(1400)는 Wi-Fi, Bluetooth RTM(및/또는 단거리 데이터 교환을 위한 기타 표준에는 단파장 무선 전송을 사용하는 프로토콜이 포함됨), USB, 이더넷, 셀룰러, 초음파 근거리 통신 프로토콜 등과 같은 다양한 컴퓨터 통신 프로토콜을 기반으로 다른 컴퓨팅 장치와 통신할 수 있다. 컴퓨팅 장치(1400)는 웹 브라우저를 더 포함할 수 있다.
컴퓨팅 장치(1400)는 범용 컴퓨터로 표시되지만 컴퓨팅 장치(1400)는 다양한 특수 제어 기능을 수행하도록 프로그래밍되어 있고, 컴퓨팅 장치(1400)는 본 발명의 원리들에 따라 전문화된 특정 컴퓨터로 동작하도록 구성되고, 실시예는 예를 들어 ASIC(application specific integrated circuit)과 같은 하드웨어에서 구현될 수 있다. 이와 같이, 여기에 설명된 프로세스 단계는 소프트웨어, 하드웨어 또는 이들의 조합에 의해 동등하게 수행되는 것으로 광범위하게 해석되도록 의도된다.
도 15는 도 1의 컨테이너 보안 시스템(100)과 같은 본 발명의 원리들에 따른 컨테이너 보안 시스템의 실시예가 적용될 수 있은 네트워크의 고-레벨 블록도를 도시한다. 도 15의 네트워크 환경(1500)은 예시 적으로 사용자 도메인 서버/컴퓨팅 장치(1504)를 포함하는 사용자 도메인(1502)을 포함한다. 도 15의 네트워크 환경(1500)은 컴퓨터 네트워크(1506) 및 클라우드 서버/컴퓨팅 장치(1512)를 포함하는 클라우드 환경(1510)을 더 포함한다.
도 15의 네트워크 환경(1500)에서, 도 1의 시스템(100)과 같은 본 발명의 원리들에 따른 컨테이너 보안을 위한 시스템은 사용자 도메인 서버/컴퓨팅 장치(1504), 컴퓨터 네트워크(1506) 및 클라우드 서버/컴퓨팅 장치(1512) 중 적어도 하나에 포함될 수 있다. 즉, 일부 실시예에서, 사용자는 본 발명의 원리들에 따라 컨테이너 보안을 제공하기 위해 로컬 서버/컴퓨팅 장치(예를 들어, 사용자 도메인 서버/컴퓨팅 장치(1504))를 사용할 수 있다. 일부 실시예에서, 사용자는 본 발명의 원리들에 따라 컨테이너 보안을 제공하기 위해 컴퓨터 네트워크(1506)에서 컨테이너 보안을 위한 시스템을 구현할 수 있다. 대안 적으로 또는 추가로, 일부 실시예에서, 사용자는 본 발명의 원리들에 따라 컨테이너 보안을 제공하기 위해 클라우드 환경(1510)의 클라우드 서버/컴퓨팅 장치(1512)에서 컨테이너 보안을 위한 시스템을 구현할 수 있다. 예를 들어, 일부 실시예에서 클라우드 환경(1510)의 처리 능력 및 저장 능력을 이용하기 위해 클라우드 환경(1510)에서 본 발명의 원리들의 처리 기능을 수행하는 것이 유리할 수 있다.
본 발명의 원리들에 따른 일부 실시예에서, 컨테이너 네트워크에서 컨테이너 보안을 제공하기 위한 시스템은 단일 및/또는 다중 위치/서버/컴퓨터에 위치하여 본 발명의 원리들에 따라 여기에 설명된 시스템 기능의 전부 또는 일부를 수행할 수 있다. 예를 들어, 일부 실시예에서 컨테이너 네트워크의 컨테이너(110)는 사용자 도메인(1502), 컴퓨터 네트워크 환경(1506) 및 클라우드 환경(1510) 중 하나 이상 및 본 발명의 원리들의 적어도 하나의 글로벌 매니저에 위치할 수 있다. 글로벌 매니저(120)와 같은, 사용자 도메인(1502), 컴퓨터 네트워크 환경(1506) 및 클라우드 환경(1510) 중 적어도 하나에 위치될 수 있으며, 이는 로컬로 또는 원격으로 위에서 설명된 기능을 제공한다.
일부 실시예에서, 본 발명의 원리들의 컨테이너 보안은 예를 들어 소프트웨어를 통해 서비스로서 제공될 수 있다. 이러한 실시예에서, 본 발명의 원리들의 소프트웨어는 사용자 도메인 서버/컴퓨팅 장치(1504), 컴퓨터 네트워크(1506) 및 클라우드 서버/컴퓨팅 장치(1512) 중 적어도 하나에 존재할 수 있다. 더 나아가 일부 실시예에서, 소프트웨어는 본 발명의 원리들의 실시예를 제공하기 위해 사용자 도메인 서버/컴퓨팅 장치(1504), 컴퓨터 네트워크(1506) 및 클라우드 서버/컴퓨팅 장치(1512)의 임의의 컴퓨팅 장치에서 컴퓨팅 장치에 의해 실행될 수 있는 비일시적 컴퓨터 판독 가능 매체를 통해 제공될 수 있다.
당업자는 또한 다양한 항목이 사용되는 동안 메모리 또는 저장 장치에 저장되는 것으로 예시되지만, 이러한 항목 또는 항목의 일부는 메모리 관리 및 데이터 무결성을 위해 메모리와 다른 저장 장치 간에 전송될 수 있음을 인식할 것이다. 대안적으로, 다른 실시예에서 소프트웨어 구성요소의 일부 또는 전부는 다른 장치의 메모리에서 실행될 수 있고 컴퓨터 간 통신을 통해 예시된 컴퓨터 시스템과 통신할 수 있다. 시스템 구성요소 또는 데이터 구조의 일부 또는 전부는 또한 적절한 드라이브에 의해 판독될 수 있도록 컴퓨터 액세스 가능 매체 또는 휴대용 물품에 저장(예를 들어, 명령 또는 구조화된 데이터로서) 될 수 있으며, 이들의 다양한 예는 위에 설명되어 있다. 일부 실시예에서, 컴퓨팅 장치(1400)와 분리된 컴퓨터 액세스 가능 매체에 저장된 명령은 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 전달되는 전송 매체 또는 전기, 전자기 또는 디지털 신호와 같은 신호를 통해 컴퓨팅 장치(1400)로 전송될 수 있다. 다양한 실시예는 컴퓨터 액세스 가능 매체 또는 통신 매체를 통해 전술한 설명에 따라 구현된 명령 및/또는 데이터를 수신, 전송 또는 저장하는 것을 더 포함할 수 있다. 일반적으로, 컴퓨터 액세스 가능 매체에는 자기 또는 광학 매체, 예를 들어 디스크 또는 DVD/CD-ROM과 같은 저장 매체 또는 메모리 매체, RAM(예를 들어, SDRAM, DDR, RDRAM, SRAM 등), ROM과 같은 휘발성 또는 비 휘발성 매체 등이 포함될 수 있다.
본 명세서에 설명된 방법 및 프로세스는 상이한 실시예에서 소프트웨어, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 또한 방법의 순서를 변경할 수 있으며 다양한 요소를 추가, 재정렬, 결합, 생략 또는 기타 수정할 수 있다. 여기에 설명된 모든 예는 비제한적인 방식으로 제공된다. 본 개시의 이점을 갖는 당업자에게 명백한 바와 같이 다양한 수정 및 변경이 이루어질 수 있다. 실시예에 따른 실현은 특정 실시예의 맥락에서 설명되었다. 이들 실시예는 예시 적이며 제한적인 것이 아니다. 다양한 변형, 수정, 추가 및 개선이 가능하다. 따라서, 단일 인스턴스로서 본 명세서에 설명된 구성요소에 대해 복수의 인스턴스가 제공될 수 있다. 다양한 구성요소, 작업 및 데이터 저장소 간의 경계는 다소 임의적이며 특정 작업은 특정 예시 구성의 맥락에서 설명된다. 기능의 다른 할당이 계획되어 있으며 다음 청구 범위에 속할 수 있다. 예시적인 구성에서 개별 구성요소로 표시되는 구조 및 기능은 결합된 구조 또는 구성요소로 구현될 수 있다. 이들 및 다른 변형, 수정, 추가 및 개선은 다음의 청구 범위에 정의된 실시예의 범위 내에 있을 수 있다.
전술한 설명에서, 본 개시의보다 철저한 이해를 제공하기 위해 다수의 특정 세부 사항, 예 및 시나리오가 설명되었다. 그러나, 본 개시 내용의 실시예는 그러한 특정 세부 사항 없이 실시될 수 있다는 것이 이해될 것이다. 또한, 그러한 예 및 시나리오는 예시를 위해 제공되며, 어떤 식으로든 본 개시를 제한하려는 의도가 아니다. 포함된 설명과 함께 당업자는 과도한 실험없이 적절한 기능을 구현할 수 있어야한다.
명세서에서 "실시예"등에 대한 언급은 설명된 실시예가 특정 특징, 구조 또는 특성을 포함할 수 있음을 나타내지만, 모든 실시예가 반드시 특정 특징, 구조 또는 특성을 포함할 수는 없다. 그러한 문구는 반드시 동일한 실시예를 지칭하는 것은 아니다. 또한, 특정 특징, 구조 또는 특성이 실시예와 관련하여 기술될 때, 명시적으로 표시되었는지 여부에 관계없이 다른 실시예와 관련하여 그러한 특징, 구조 또는 특성에 영향을 미치는 것은 당업자의 지식 내에 있는 것으로 믿어진다.
본 개시에 따른 실시예는 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로서 제공될 때, 본 발명의 원리들의 실시예는 로컬 사용자 환경의 컴퓨팅 장치, 인터넷 환경의 컴퓨팅 장치 및 클라우드 환경의 컴퓨팅 장치 중 적어도 하나에 존재할 수 있다. 실시예는 또한 하나 이상의 프로세서에 의해 판독 및 실행될 수 있는 하나 이상의 기계 판독 가능 매체를 사용하여 저장된 명령어로서 구현될 수 있다. 기계 판독 가능 매체는 기계(예를 들어, 컴퓨팅 장치 또는 하나 이상의 컴퓨팅 장치에서 실행되는 "가상 기계")에 의해 판독 가능한 형태로 정보를 저장하거나 전송하기 위한 임의의 메커니즘을 포함할 수 있다. 예를 들어, 기계 판독 가능 매체는 임의의 적절한 형태의 휘발성 또는 비 휘발성 메모리를 포함할 수 있다.
여기에 정의된 모듈, 데이터 구조 등은 논의의 편의를 위해 정의되며 특정 구현 세부 사항이 필요함을 의미하지는 않는다. 예를 들어, 설명된 모듈 및/또는 데이터 구조 중 임의의 것은 특정 설계 또는 구현에 의해 요구될 수 있는 바와 같이 서브 모듈, 서브 프로세스 또는 기타 컴퓨터 코드 또는 데이터 단위로 결합되거나 분할될 수 있다.
도면에서, 설명의 용이성을 위해 개략적 인 요소의 특정 배열 또는 순서가 표시될 수 있다. 그러나, 이러한 요소의 특정 순서 또는 배열은 모든 실시예에서 특정 처리 순서 또는 순서, 또는 프로세스 분리가 필요함을 의미하는 것은 아니다. 일반적으로 명령 블록 또는 모듈을 나타내는 데 사용되는 도식적 요소는 임의의 적절한 형태의 기계 판독 가능 명령을 사용하여 구현될 수 있고, 각각의 그러한 명령어는 임의의 적절한 프로그래밍 언어, 라이브러리, API(application-programming interface) 및/또는 기타 소프트웨어 개발 도구 또는 프레임 워크를 사용하여 구현될 수 있다. 유사하게, 데이터 또는 정보를 나타내는 데 사용되는 도식적 요소는 임의의 적절한 전자 배열 또는 데이터 구조를 사용하여 구현될 수 있다. 또한, 본 개시 내용을 모호하게 하지 않기 위해 요소들 간의 일부 연결, 관계 또는 연관이 단순화되거나 도면에 도시되지 않을 수 있다.
본 개시는 예시적인 것으로 간주되어야 하며 성격 상 제한적이지 않으며, 본 개시의 가이드 라인 내에 있는 모든 변경 및 수정이 보호되기를 원한다.
Claims (22)
- 복수의 컨테이너들을 가지는 컨테이너 네트워크를 위한 보안을 제공하는 방법에 있어서,
상기 컨테이너 네트워크의 복수의 컨테이너들 각각에 대한 네트워크 스택을 설정하는 단계;
액티브 컨테이너들로부터 네트워크 및 정책 정보를 결정하는 단계;
상기 컨테이너 네트워크에서 상기 복수의 컨테이너들의 상기 컨테이너들 각각의 수신 및 송신 정책을 교차함으로써, 상기 복수의 컨테이너에 대한 컨테이너 간 종속성들을 결정하는 단계;
상기 복수의 컨테이너에 대해 상기 결정된 컨테이너 간 종속성들의 세트에 기초하여, 상기 컨테이너 네트워크에서의 컨테이너 액세스를 각각의 통신에 관련된 복수의 컨테이너들의 컨테이너들에게만 제한되도록 구성하는 단계; 및
피어 컨테이너들에 대한 컨테이너 간 트래픽의 노출이 방지되도록, 점대점 방식으로 오직 소스 컨테이너로부터 목적지 컨테이너까지만 지향(direct)되도록 상기 컨테이너 네트워크에서의 컨테이너 간 트래픽을 구성하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 복수의 컨테이너들 각각에 대한 상기 컨테이너 간 종속성들을 결정하는 단계
를 포함하는 방법. - 제2항에 있어서,
상기 컨테이너 간 종속성들은,
컨테이너 각각과 관련된 네트워크 정보를 식별하는 ARP(Address Resolution Protocol) 요청들 및 IP 패킷들 중 적어도 하나를 사용하여 결정되는
방법. - 제3항에 있어서,
각각의 ARP 요청을 수행하기 전에, 소스 컨테이너가 상기 컨테이너 네트워크에서 목적지 컨테이너에 대한 종속성을 가지는지를 검증하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 복수의 컨테이너들 각각에 대한 상기 컨테이너 간 종속성들을 결정하는 단계는,
초기 컨테이너 간 종속성 맵을 구축하기 위해 오퍼레이터-지정 정책들을 사용하는 단계;
동일한 컨테이너 세트에 속하는 상기 복수의 컨테이너들의 컨테이너들에 대해, 상기 동일한 컨테이너 세트의 상기 컨테이너들을 명시적으로 종속된 컨테이너로서 상기 컨테이너 간 종속성 맵에 추가하는 단계;
동일한 마이크로서비스 그룹의 다른 컨테이너 세트들에 속하는 복수의 컨테이너들의 컨테이너들에 대해, 상기 동일한 마이크로서비스 그룹의 다른 컨테이너 세트들에서 컨테이너들의 내부 서비스 포트들과 세트에서 컨테이너 각각의 송신 정책들을 교차함으로써 상기 컨테이너 간 종속성 맵에 상기 컨테이너들을 추가하는 단계; 및
마이크로서비스 그룹 간 통신을 위해, 각각의 글로벌 서비스 포트들과 서브젝트 마이크로서비스 그룹의 컨테이너 각각의 송신 정책들을 교차시킴으로써 상기 서브젝트 마이크로서비스 그룹의 컨테이너들의 상기 컨테이너 간 종속성 맵에서 각각의 다른 마이크로서비스들 그룹들에 대한 대표 IP 주소를 추가하는 단계
를 포함하는 방법. - 제5항에 있어서,
상기 복수의 컨테이너들에 대한 상기 컨테이너 간 종속성 맵들을 집계하는 단계
를 더 포함하는 방법. - 제1항에 있어서,
상기 컨테이너 네트워크의 토폴로지의 변화에 의해 영향을 받는 상기 복수의 컨테이너들의 컨테이너들에 대해서만 컨테이너 간 종속성들의 맵을 업데이트하는 단계
를 더 포함하는 방법. - 제1항에 있어서,
상기 복수의 컨테이너를 컨테이너 세트들로 분할하는 단계
를 더 포함하고,
동일한 컨테이너 세트 내의 컨테이너들은 상호 연결성(interconnectivity)이 부여되는
방법. - 제1항에 있어서,
컨테이너에 대한 인증되지 않은 호스트 액세스를 방지하기 위해 상기 컨테이너와 관련된 모든 게이트웨이 정보와 컨테이너로 들어오는(incoming) 패킷들의 IP 주소 및 MAC 주소를 비교하는 단계
를 더 포함하는 방법. - 복수의 컨테이너들을 가지는 컨테이너 네트워크를 위한 보안을 제공하는 장치에 있어서,
프로세서; 및
상기 프로세서에 연결된 메모리
를 포함하고,
상기 메모리는,
상기 프로세서로 하여금:
상기 컨테이너 네트워크의 복수의 컨테이너들 각각에 대한 네트워크 스택을 설정하고,
액티브 컨테이너들로부터 네트워크 및 정책 정보를 결정하고,
상기 컨테이너 네트워크에서 상기 복수의 컨테이너들의 상기 컨테이너들 각각의 수신 및 송신 정책을 교차함으로써, 상기 복수의 컨테이너에 대한 컨테이너 간 종속성들을 결정하고,
상기 복수의 컨테이너에 대해 상기 결정된 컨테이너 간 종속성들의 세트에 기초하여, 상기 컨테이너 네트워크에서의 컨테이너 액세스를 각각의 통신에 관련된 복수의 컨테이너들의 컨테이너들에게만 제한하고,
피어 컨테이너들에 대한 컨테이너 간 트래픽의 노출이 방지되도록, 점대점 방식으로 컨테이너로부터 목적지 컨테이너로 상기 컨테이너 네트워크에서의 컨테이너 간 트래픽을 지향(direct)하도록
구성하는, 상기 프로세서에 의하여 실행가능한 적어도 하나의 프로그램 또는 명령어를 저장하는
를 포함하는 장치. - 제10항에 있어서,
상기 네트워크 스택은,
상기 복수의 컨테이너들의 컨테이너 각각에 대한 컨테이너 각각의 네트워크 맵을 유지하는
장치. - 제10항에 있어서,
상기 결정된 네트워크 및 정책 정보는,
적어도 각각의 컨테이너 네트워크 맵 및 상기 복수의 컨테이너들 각각에 대한 각각의 컨테이너 간 종속성 맵
을 포함하는 장치. - 제10항에 있어서,
상기 프로세서는,
상기 복수의 컨테이너들 각각에 대한 상기 컨테이너 간 종속성들을 결정하도록 더 구성되는
장치. - 제10항에 있어서,
상기 프로세서는,
각각의 컨테이너와 관련된 네트워크 정보를 식별하는 ARP(Address Resolution Protocol) 요청들 및 IP 패킷들 중 적어도 하나를 사용하여 상기 컨테이너 간 종속성들을 결정하도록 더 구성되는
장치. - 제14항에 있어서,
상기 프로세서는,
각각의 ARP 요청을 수행될 수 있기 전에, 소스 컨테이너가 상기 컨테이너 네트워크에서 목적지 컨테이너에 대한 종속성을 가지는지를 검증하도록 더 구성되는
장치. - 제10항에 있어서,
상긱 프로세서는,
방법을 사용하여 상기 복수의 컨테이너들 각각에 대한 상기 컨테이너 간 종속성들을 결정하도록 더 구성되고,
상기 방법은,
상기 컨테이너 네트워크에서 상기 복수의 컨테이너들의 상기 컨테이너들 각각의 수신 및 송신 정책을 교차함으로써 초기 컨테이너 간 종속성 맵을 구축하기 위해 오퍼레이터-지정 정책들을 사용하는 단계;
동일한 컨테이너 세트에 속하는 상기 복수의 컨테이너들의 컨테이너들에 대해, 상기 동일한 컨테이너 세트의 상기 컨테이너들을 명시적으로 종속된 컨테이너로서 상기 컨테이너 간 종속성 맵에 추가하는 단계;
동일한 마이크로서비스 그룹의 다른 컨테이너 세트들에 속하는 복수의 컨테이너들의 컨테이너들에 대해, 상기 동일한 마이크로서비스 그룹의 다른 컨테이너 세트들에서 컨테이너들의 내부 서비스 포트들과 세트에서 컨테이너 각각의 송신 정책들을 교차함으로써 상기 컨테이너 간 종속성 맵에 상기 컨테이너들을 추가하는 단계; 및
마이크로서비스 그룹 간 통신을 위해, 각각의 글로벌 서비스 포트들과 서브젝트 마이크로서비스 그룹의 컨테이너 각각의 송신 정책들을 교차시킴으로써 상기 서브젝트 마이크로서비스 그룹의 컨테이너들의 상기 컨테이너 간 종속성 맵에서 각각의 다른 마이크로서비스들 그룹들에 대한 대표 IP 주소를 추가하는 단계
를 포함하는 장치. - 제10항에 있어서,
상기 프로세서는,
상기 컨테이너 네트워크의 토폴로지의 변화에 의해 영향을 받는 상기 복수의 컨테이너들의 컨테이너들에 대해서만 컨테이너 간 종속성들의 맵을 업데이트하도록 더 구성되는
장치. - 제10항에 있어서,
상기 복수의 컨테이너는 컨테이너 세트들로 분할되고, 동일한 컨테이너 세트 내의 컨테이너들은 상호 연결성이 부여되는
장치. - 제10항에 있어서,
상기 프로세서는,
컨테이너에 대한 인증되지 않은 호스트 액세스를 방지하기 위해 상기 컨테이너와 관련된 모든 게이트웨이 정보에 대해 컨테이너로 들어오는 패킷들의 IP 주소 및 MAC 주소를 비교하도록 더 구성되는
장치. - 복수의 컨테이너들을 가지는 컨테이너 네트워크를 위한 보안을 제공하는 방법에 있어서,
상기 컨테이너 네트워크들에서 트래픽을 모니터링하고 컨테이너 트래픽의 네트워크 로그들을 생성하는 단계;
상기 네트워크 로그들로부터 상기 컨테이너 네트워크들의 네트워크 및 정책 정보를 결정하는 단계;
상기 컨테이너 네트워크에서 상기 복수의 컨테이너들의 상기 컨테이너들 각각의 수신 및 송신 정책을 교차함으로써, 상기 복수의 컨테이너에 대한 컨테이너 간 종속성들을 결정하는 단계;
상기 결정된 컨테이너 간 종속성들 및 상기 결정된 네트워크 및 정책 정보로부터 상기 복수의 컨테이너들에 대한 최소 특권 통신 정책을 결정하는 단계;
상기 결정된 최소 특권 통신 정책에 기초하여, 상기 컨테이너 네트워크들에서의 컨테이너 액세스를 각각의 통신에 관련된 복수의 컨테이너들의 컨테이너들에게만 제한되도록 구성하는 단계; 및
피어 컨테이너들에 대한 상기 컨테이너 간 트래픽의 노출이 방지되도록, 점대점 방식으로 오직 소스 컨테이너로부터 적어도 하나의 목적지 컨테이너까지만 지향되도록 상기 컨테이너 네트워크에서의 컨테이너 간 트래픽을 구성하는 단계
를 포함하는 방법. - 제20항에 있어서,
정책 외 액세스 시도(out-of-policy access attempt) 및 미사용 정책 중 적어도 하나를 결정하기 위해 상기 결정된 네트워크 및 정책 정보를 상기 복수의 컨테이너들 각각의 컨테이너 간 종속성 맵들과 비교하는 단계
를 포함하는 방법. - 제21항에 있어서,
상기 정책 외 액세스 시도를 수용하기 위해 각각의 통신 정책의 추가 및 상기 적어도 하나의 미사용 정책의 제거 중 적어도 하나를 야기하는 단계
를 포함하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062956408P | 2020-01-02 | 2020-01-02 | |
US62/956,408 | 2020-01-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210087399A KR20210087399A (ko) | 2021-07-12 |
KR102451237B1 true KR102451237B1 (ko) | 2022-10-06 |
Family
ID=76654405
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200189426A KR102451237B1 (ko) | 2020-01-02 | 2020-12-31 | 컨테이너 네트워크를 위한 보안 |
KR1020210000359A KR102488708B1 (ko) | 2020-01-02 | 2021-01-04 | 컨테이너들을 관리하기 위한 포렌식들을 제공하는 시스템, 장치 및 방법 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210000359A KR102488708B1 (ko) | 2020-01-02 | 2021-01-04 | 컨테이너들을 관리하기 위한 포렌식들을 제공하는 시스템, 장치 및 방법 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11314614B2 (ko) |
JP (2) | JP6994123B2 (ko) |
KR (2) | KR102451237B1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220231990A1 (en) * | 2021-01-20 | 2022-07-21 | AVAST Software s.r.o. | Intra-lan network device isolation |
US11983569B2 (en) * | 2021-08-18 | 2024-05-14 | International Business Machines Corporation | Services thread scheduling based upon thread tracing |
US12118380B2 (en) * | 2021-09-07 | 2024-10-15 | International Business Machines Corporation | Container storage system in remote pods in Kubernetes |
CN114039789B (zh) * | 2021-11-17 | 2023-11-14 | 北京天融信网络安全技术有限公司 | 流量防护方法及电子设备、存储介质 |
US20230185628A1 (en) * | 2021-12-13 | 2023-06-15 | International Business Machines Corporation | Clustered container protection |
KR102479438B1 (ko) * | 2022-01-24 | 2022-12-20 | 한국과학기술원 | 하드웨어 기반의 신뢰할 수 있는 안전한 컨테이너 네트워크 |
CN114816424A (zh) * | 2022-04-26 | 2022-07-29 | 深圳海星智驾科技有限公司 | 一种基于容器的持续集成方法、装置和电子设备 |
CN115118791B (zh) * | 2022-05-20 | 2023-09-22 | 网宿科技股份有限公司 | Udp报文的分发方法、设备及可读存储介质 |
KR102643204B1 (ko) * | 2023-07-27 | 2024-03-05 | 주식회사 시큐브 | 컨테이너 기반 클라우드 접근통제 시스템 및 방법 |
KR102646200B1 (ko) * | 2023-12-21 | 2024-03-11 | (주)모니터랩 | eBPF(XDP)를 활용한 효율적 패킷 전송 방법 및 이를 위한 컴퓨팅 장치 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8135815B2 (en) * | 2001-03-27 | 2012-03-13 | Redseal Systems, Inc. | Method and apparatus for network wide policy-based analysis of configurations of devices |
US7733795B2 (en) * | 2006-11-28 | 2010-06-08 | Oracle America, Inc. | Virtual network testing and deployment using network stack instances and containers |
US8635686B2 (en) * | 2007-05-25 | 2014-01-21 | Apple Inc. | Integrated privilege separation and network interception |
US8209738B2 (en) * | 2007-05-31 | 2012-06-26 | The Board Of Trustees Of The University Of Illinois | Analysis of distributed policy rule-sets for compliance with global policy |
US20140096270A1 (en) * | 2012-09-28 | 2014-04-03 | Richard T. Beckwith | Secure data containers and data access control |
US9787567B1 (en) * | 2013-01-30 | 2017-10-10 | Big Switch Networks, Inc. | Systems and methods for network traffic monitoring |
CN104052661B (zh) * | 2013-03-11 | 2018-04-10 | 华为技术有限公司 | 容器名服务器和容器名解析方法 |
US9754122B1 (en) * | 2014-03-21 | 2017-09-05 | Amazon Technologies, Inc. | Isolating tenants executing in multi-tenant software containers |
US10409989B2 (en) * | 2014-12-26 | 2019-09-10 | Mcafee, Llc | Trusted updates |
US9544275B2 (en) * | 2015-01-28 | 2017-01-10 | defend7, Inc. | Communication tunneling in application container environments |
US10397255B1 (en) * | 2015-09-23 | 2019-08-27 | StackRox, Inc. | System and method for providing security in a distributed computation system utilizing containers |
US10354066B2 (en) * | 2016-02-26 | 2019-07-16 | Cylance Inc. | Retention and accessibility of data characterizing events on an endpoint computer |
US9521115B1 (en) * | 2016-03-24 | 2016-12-13 | Varmour Networks, Inc. | Security policy generation using container metadata |
US10503623B2 (en) * | 2016-04-29 | 2019-12-10 | Ca, Inc. | Monitoring containerized applications |
US10855725B2 (en) * | 2016-06-02 | 2020-12-01 | Microsoft Technology Licensing, Llc | Hardware-based virtualized security isolation |
WO2018031951A1 (en) * | 2016-08-11 | 2018-02-15 | Hopzero, Inc. | Method and system for limiting the range of data transmissions |
US11089064B1 (en) * | 2016-09-12 | 2021-08-10 | Skyhigh Networks, Llc | Cloud security policy enforcement for custom web applications |
JP6599294B2 (ja) * | 2016-09-20 | 2019-10-30 | 株式会社東芝 | 異常検知装置、学習装置、異常検知方法、学習方法、異常検知プログラム、および学習プログラム |
US10554690B2 (en) * | 2016-11-10 | 2020-02-04 | International Business Machines Corporation | Security policy inclusion with container deployment |
US11416751B2 (en) * | 2017-03-31 | 2022-08-16 | H2O.Ai Inc. | Time-based ensemble machine learning model |
US10439987B2 (en) * | 2017-06-12 | 2019-10-08 | Ca, Inc. | Systems and methods for securing network traffic flow in a multi-service containerized application |
US10581873B2 (en) * | 2017-07-11 | 2020-03-03 | Cisco Technology, Inc. | Securing micro-services |
WO2019040771A1 (en) * | 2017-08-24 | 2019-02-28 | Pensando Systems Inc. | METHODS AND SYSTEMS FOR NETWORK SECURITY |
US20210344719A1 (en) * | 2017-11-08 | 2021-11-04 | Csp, Inc. | Secure invocation of network security entities |
JP7021507B2 (ja) * | 2017-11-14 | 2022-02-17 | 富士通株式会社 | 特徴抽出装置、特徴抽出プログラム、および特徴抽出方法 |
US10824726B1 (en) * | 2018-03-29 | 2020-11-03 | EMC IP Holding Company LLC | Container anomaly detection using container profiles |
US11106560B2 (en) * | 2018-06-22 | 2021-08-31 | EMC IP Holding Company LLC | Adaptive thresholds for containers |
KR101940029B1 (ko) * | 2018-07-11 | 2019-01-18 | 주식회사 마키나락스 | 어노말리 디텍션 |
US11106480B2 (en) * | 2019-01-25 | 2021-08-31 | Vmware, Inc. | Systems, methods, and apparatus to improve containerized application visibility |
KR20200108523A (ko) * | 2019-03-05 | 2020-09-21 | 주식회사 엘렉시 | 이상 패턴 감지 시스템 및 방법 |
US20210026700A1 (en) * | 2019-07-25 | 2021-01-28 | Hewlett Packard Enterprise Development Lp | Managing a containerized application in a cloud system based on usage |
US11811801B2 (en) * | 2019-08-21 | 2023-11-07 | Nokia Solutions And Networks Oy | Anomaly detection for microservices |
US11334675B2 (en) * | 2019-10-31 | 2022-05-17 | Dell Products, L.P. | Systems and methods for supporting secure transfer of data between workspaces |
US11128637B2 (en) * | 2019-11-05 | 2021-09-21 | Cyberark Software Ltd. | Automatic least-privilege access and control for target resources |
-
2020
- 2020-12-17 US US17/125,551 patent/US11314614B2/en active Active
- 2020-12-28 US US17/134,605 patent/US11586521B2/en active Active
- 2020-12-31 KR KR1020200189426A patent/KR102451237B1/ko active IP Right Grant
-
2021
- 2021-01-04 JP JP2021000209A patent/JP6994123B2/ja active Active
- 2021-01-04 JP JP2021000214A patent/JP7005795B2/ja active Active
- 2021-01-04 KR KR1020210000359A patent/KR102488708B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
JP7005795B2 (ja) | 2022-01-24 |
KR102488708B1 (ko) | 2023-01-13 |
JP6994123B2 (ja) | 2022-01-14 |
KR20210087403A (ko) | 2021-07-12 |
US20210208991A1 (en) | 2021-07-08 |
JP2021111397A (ja) | 2021-08-02 |
US11314614B2 (en) | 2022-04-26 |
JP2021111396A (ja) | 2021-08-02 |
KR20210087399A (ko) | 2021-07-12 |
US20210211408A1 (en) | 2021-07-08 |
US11586521B2 (en) | 2023-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102451237B1 (ko) | 컨테이너 네트워크를 위한 보안 | |
EP3704846B1 (en) | Cloud-based multi-function firewall and zero trust private virtual network | |
US11394688B2 (en) | Packet classification for network routing | |
EP3382989B1 (en) | Network interface device | |
Rawat et al. | Software defined networking architecture, security and energy efficiency: A survey | |
Yoon et al. | Enabling security functions with SDN: A feasibility study | |
Alsmadi et al. | Security of software defined networks: A survey | |
Dhawan et al. | Sphinx: detecting security attacks in software-defined networks. | |
US11665139B2 (en) | Distributed offload leveraging different offload devices | |
JP3954385B2 (ja) | 迅速なパケット・フィルタリング及びパケット・プロセシングのためのシステム、デバイス及び方法 | |
US9100363B2 (en) | Automatically recommending firewall rules during enterprise information technology transformation | |
US20220337555A1 (en) | Firewall offloading | |
AlSabeh et al. | A survey on security applications of P4 programmable switches and a STRIDE-based vulnerability assessment | |
JP7388613B2 (ja) | パケット処理方法及び装置、デバイス、並びに、コンピュータ可読ストレージ媒体 | |
Thimmaraju et al. | Outsmarting network security with SDN teleportation | |
Gao et al. | A review of P4 programmable data planes for network security | |
US20180332060A1 (en) | Malware detection in distributed computer systems | |
US10999303B2 (en) | Capturing data | |
Nam et al. | Secure inter-container communications using xdp/ebpf | |
US10021070B2 (en) | Method and apparatus for federated firewall security | |
Tahir et al. | A novel DDoS floods detection and testing approaches for network traffic based on linux techniques | |
Bernardo et al. | Multi-layer security analysis and experimentation of high speed protocol data transfer for GRID | |
Demetriou et al. | Guardian of the HAN: Thwarting mobile attacks on smart-home devices using OS-level situation awareness | |
EP4170971A1 (en) | End point secured network | |
You et al. | HELIOS: Hardware-assisted High-performance Security Extension for Cloud Networking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |