KR20220060762A - 클라우드 환경에서의 네트워크 분석 장치 및 방법 - Google Patents

클라우드 환경에서의 네트워크 분석 장치 및 방법 Download PDF

Info

Publication number
KR20220060762A
KR20220060762A KR1020200146718A KR20200146718A KR20220060762A KR 20220060762 A KR20220060762 A KR 20220060762A KR 1020200146718 A KR1020200146718 A KR 1020200146718A KR 20200146718 A KR20200146718 A KR 20200146718A KR 20220060762 A KR20220060762 A KR 20220060762A
Authority
KR
South Korea
Prior art keywords
analysis
communication
firewall
resource
policy
Prior art date
Application number
KR1020200146718A
Other languages
English (en)
Inventor
차정도
안중현
이형진
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020200146718A priority Critical patent/KR20220060762A/ko
Priority to US17/514,029 priority patent/US11882018B2/en
Publication of KR20220060762A publication Critical patent/KR20220060762A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)

Abstract

클라우드 환경에서의 네트워크 분석 장치 및 방법이 개시된다. 일 실시예에 따른 네트워크 분석 장치는 클라우드 서비스로부터, 상기 클라우드 서비스에 포함된 하나 이상의 리소스 정보 및 상기 하나 이상의 리소스의 네트워크 환경 정보를 수신하는 수신 모듈; 상기 리소스 정보 및 상기 네트워크 환경 정보를 이용하여 상기 클라우드 서비스의 네트워크 토폴로지를 도출하는 토폴로지 생성 모듈; 및 상기 네트워크 토폴로지로부터, 상기 하나 이상의 리소스 각각의 통신 가능 경로 및 상기 각 통신 가능 경로에서의 하나 이상의 통신 허용 정책을 도출하는 분석 모듈을 포함한다.

Description

클라우드 환경에서의 네트워크 분석 장치 및 방법{APPARATUS AND METHOD FOR ANALYZING NETWORK IN CLOUD ENVIRONMENT}
개시되는 실시예들은 클라우드 환경에서의 네트워크 분석 기술과 관련된다.
클라우드 서비스가 일반화되면서 클라우드 환경에서의 보안 이슈도 함께 증가하고 있다. 클라우드 해킹 사고가 점점 증가하고 있는 가운데 대규모 금융 사고, 개인정보 또는 기업 내부 자료 유출에 대한 우려가 점점 커지고 있다.
클라우드 서비스의 경우 그 특성 상 클라우드 서비스 제공 업체(CSP; Cloud Service Provider)와 클라우드 서비스의 사용자가 데이터 보호 및 보안 책임을 공유하는 경우가 많다. 즉, 클라우드 서비스에서 제공하는 인프라는 클라우드 서비스 제공업체가 보호하고, 권한 설정이나 방화벽 설정 등 클라우드에서 제공하는 보안 설정은 클라우드 서비스의 사용자가 책임지는 형태이다. 그러나 클라우드의 보안 설정, 특히 서버나 데이터베이스 등의 클라우드 리소스의 통신 가능 경로를 확인하기 위해서는 보안 담당자들이 콘솔에 직접 접속 후 육안으로 보안 설정을 일일이 분석해야 하는 바, 많은 시간과 인력이 필요하다.
개시되는 실시예들은, 클라우드 서비스를 구성하는 각각의 통신 가능 경로 및 상기 각 통신 가능 경로에서의 하나 이상의 통신 허용 정책을 효율적으로 분석하기 위한 기술적인 수단을 제공하기 위한 것이다.
예시적인 실시예에 따르면, 클라우드 서비스로부터, 상기 클라우드 서비스에 포함된 하나 이상의 리소스 정보 및 상기 하나 이상의 리소스의 네트워크 환경 정보를 수신하는 수신 모듈; 상기 리소스 정보 및 상기 네트워크 환경 정보를 이용하여 상기 클라우드 서비스의 네트워크 토폴로지를 도출하는 토폴로지 생성 모듈; 및 상기 네트워크 토폴로지로부터, 상기 하나 이상의 리소스 각각의 통신 가능 경로 및 상기 각 통신 가능 경로에서의 하나 이상의 통신 허용 정책을 도출하는 분석 모듈을 포함하는 네트워크 분석 장치가 제공된다.
상기 네트워크 환경 정보는, 상기 하나 이상의 리소스와 관련된 네트워크 인터페이스, 스테이트풀 방화벽 정책, 스테이트리스 방화벽 정책, 라우팅 테이블 및 게이트웨이 정보 중 하나 이상을 포함할 수 있다.
상기 분석 모듈은, 상기 하나 이상의 리소스 각각의 통신 가능 경로를 생성하는 제1 분석 서브 모듈; 및 상기 통신 가능 경로상의 방화벽 정책 분석 및 라우팅 테이블 분석 중 하나 이상을 수행하여 상기 하나 이상의 통신 허용 정책을 도출하는 제2 분석 서브 모듈을 포함할 수 있다.
상기 제1 분석 서브 모듈은, 상기 리소스에 할당된 아이피(IP)가 퍼블릭 아이피인 경우, 상기 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 서브넷의 스테이트리스 방화벽, 및 상기 서브넷의 라우터 중 하나 이상을 포함하는 통신 경로를 식별하고, 상기 라우터의 라우팅 목적지에 인터넷 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 외부 통신 가능 경로에 추가할 수 있다.
상기 제1 분석 서브 모듈은, 상기 리소스에 할당된 아이피(IP)가 프라이빗 아이피인 경우, 상기 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 제1 서브넷의 제1 스테이트리스 방화벽, 및 제1 라우터 중 하나 이상을 포함하는 통신 경로를 식별하고, 상기 제1 라우터의 라우팅 목적지에 NAT 게이트웨이가 포함되어 있는 경우, 상기 NAT 게이트웨이가 속한 제2 서브넷의 제2 스테이트리스 방화벽, 및 제2 라우터를 식별된 상기 통신 경로에 추가할 수 있다.
상기 제1 분석 서브 모듈은, 상기 제2 라우터의 라우팅 목적지에 인터넷 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 외부 통신 가능 경로에 추가할 수 있다.
상기 제1 분석 서브 모듈은, 상기 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 서브넷의 스테이트리스 방화벽, 및 상기 서브넷의 라우터를 포함하는 통신 경로를 식별하고, 상기 라우터의 라우팅 목적지에 내부 통신용 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 내부 통신 가능 경로에 추가할 수 있다.
상기 제2 분석 서브 모듈은, 상기 통신 가능 경로상에 존재하는 하나 이상의 방화벽 각각의 개별 통신 허용 정책을 도출하고, 상기 개별 통신 허용 정책으로부터 상기 하나 이상의 방화벽의 통신 허용 정책을 도출할 수 있다.
상기 제2 분석 서브 모듈은, 상기 방화벽이 스테이트리스 방화벽인 경우, 상기 스테이트리스 방화벽의 통신 가능 대역 정보, 및 상기 스테이트리스 방화벽과 연결된 리소스의 동적 포트(Dynamic Port) 허용 정책을 비교하여 상기 스테이트리스 방화벽의 통신 허용 정책을 도출할 수 있다.
상기 제2 분석 서브 모듈은, 상기 통신 가능 경로 중 동일 계층에 위치한 방화벽의 상기 개별 통신 허용 정책 간에는 병렬 분석을 적용하고, 서로 다른 계층에 위치한 방화벽의 상기 개별 통신 허용 정책 간에는 직렬 분석을 적용하여 방화벽의 상기 방화벽의 통신 허용 정책을 도출할 수 있다.
상기 제2 분석 모듈은, 상기 통신 가능 경로상에 위치한 하나 이상의 라우터 각각의 라우팅 테이블로부터 라우팅 허용 정책을 도출하고, 상기 방화벽 통신 허용 정책 및 상기 라우팅 허용 정책의 교집합을 상기 리소스의 통신 허용 정책으로 도출할 수 있다.
상기 제2 분석 모듈은, 상기 라우팅 테이블의 라우팅 정책 중 상기 통신 가능 경로의 목적지에 대응되는 라우팅 정책을 식별하여 상기 라우팅 허용 정책을 도출할 수 있다.
다른 예시적인 실시예에 따르면, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 클라우드 서비스로부터, 상기 클라우드 서비스에 포함된 하나 이상의 리소스 정보 및 상기 하나 이상의 리소스의 네트워크 환경 정보를 수신하는 단계; 상기 리소스 정보 및 상기 네트워크 환경 정보를 이용하여 상기 클라우드 서비스의 네트워크 토폴로지를 도출하는 단계; 및 상기 네트워크 토폴로지로부터, 상기 하나 이상의 리소스 각각의 통신 가능 경로 및 상기 각 통신 가능 경로에서의 하나 이상의 통신 허용 정책을 도출하는 단계를 포함하는 네트워크 분석 방법이 제공된다.
상기 네트워크 환경 정보는, 상기 하나 이상의 리소스와 관련된 네트워크 인터페이스, 스테이트풀 방화벽 정책, 스테이트리스 방화벽 정책, 라우팅 테이블 및 게이트웨이 정보 중 하나 이상을 포함할 수 있다.
상기 통신 허용 정책을 도출하는 단계는, 상기 하나 이상의 리소스 각각의 통신 가능 경로를 생성하는 제1 분석 단계; 및 상기 통신 가능 경로상의 방화벽 정책 분석 및 라우팅 테이블 분석 중 하나 이상을 수행하여 상기 하나 이상의 통신 허용 정책을 도출하는 제2 분석 단계를 포함할 수 있다.
상기 제1 분석 단계는, 상기 리소스에 할당된 아이피(IP)가 퍼블릭 아이피인 경우, 상기 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 서브넷의 스테이트리스 방화벽, 및 상기 서브넷의 라우터 중 하나 이상을 포함하는 통신 경로를 식별하고, 상기 라우터의 라우팅 목적지에 인터넷 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 외부 통신 가능 경로에 추가하도록 구성될 수 있다.
상기 제1 분석 단계는, 상기 리소스에 할당된 아이피(IP)가 프라이빗 아이피인 경우, 상기 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 제1 서브넷의 제1 스테이트리스 방화벽, 및 제1 라우터 중 하나 이상을 포함하는 통신 경로를 식별하고, 상기 제1 라우터의 라우팅 목적지에 NAT 게이트웨이가 포함되어 있는 경우, 상기 NAT 게이트웨이가 속한 제2 서브넷의 제2 스테이트리스 방화벽, 및 제2 라우터를 식별된 상기 통신 경로에 추가하도록 구성될 수 있다.
상기 제1 분석 단계는, 상기 제2 라우터의 라우팅 목적지에 인터넷 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 외부 통신 가능 경로에 추가하도록 구성될 수 있다.
상기 제1 분석 단계는, 상기 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 서브넷의 스테이트리스 방화벽, 및 상기 서브넷의 라우터를 포함하는 통신 경로를 식별하고, 상기 라우터의 라우팅 목적지에 내부 통신용 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 내부 통신 가능 경로에 추가하도록 구성될 수 있다.
상기 제2 분석 단계는, 상기 통신 가능 경로상에 존재하는 하나 이상의 방화벽 각각의 개별 통신 허용 정책을 도출하고, 상기 개별 통신 허용 정책으로부터 상기 하나 이상의 방화벽의 통신 허용 정책을 도출하도록 구성될 수 있다.
상기 제2 분석 단계는, 상기 방화벽이 스테이트리스 방화벽인 경우, 상기 스테이트리스 방화벽의 통신 가능 대역 정보, 및 상기 스테이트리스 방화벽과 연결된 리소스의 동적 포트(Dynamic Port) 허용 정책을 비교하여 상기 스테이트리스 방화벽의 통신 허용 정책을 도출하도록 구성될 수 있다.
상기 제2 분석 단계는, 상기 통신 가능 경로 중 동일 계층에 위치한 방화벽의 상기 개별 통신 허용 정책 간에는 병렬 분석을 적용하고, 서로 다른 계층에 위치한 방화벽의 상기 개별 통신 허용 정책 간에는 직렬 분석을 적용하여 방화벽의 상기 방화벽의 통신 허용 정책을 도출하도록 구성될 수 있다.
상기 제2 분석 단계는, 상기 통신 가능 경로상에 위치한 하나 이상의 라우터 각각의 라우팅 테이블로부터 라우팅 허용 정책을 도출하고, 상기 방화벽 통신 허용 정책 및 상기 라우팅 허용 정책의 교집합을 상기 리소스의 통신 허용 정책으로 도출하도록 구성될 수 있다.
상기 제2 분석 단계는, 상기 라우팅 테이블의 라우팅 정책 중 상기 통신 가능 경로의 목적지에 대응되는 라우팅 정책을 식별하여 상기 라우팅 허용 정책을 도출하도록 구성될 수 있다.
개시되는 실시예들에 따르면, 클라우드 서비스를 구성하는 각각의 통신 가능 경로 및 상기 각 통신 가능 경로에서의 하나 이상의 통신 허용 정책을 효율적으로 도출함으로써, 클라우드 서비스의 보안 취약점을 용이하게 확인하고 이를 통해 보안 수준을 향상시킬 수 있다.
도 1은 일 실시예에 따른 네트워크 분석 장치(100)를 설명하기 위한 블록도
도 2는 일 실시예에 따른 클라우드 서비스의 네트워크 토폴로지를 설명하기 위한 예시도
도 3은 일 실시예에 따른 분석 모듈(106)의 상세 구성을 설명하기 위한 블록도
도 4는 일 실시예에 따른 클라우드 서비스의 네트워크 토폴로지에서 각 리소스의 통신 가능 경로를 설명하기 위한 예시도
도 5는 일 실시예에 따른 네트워크 분석 방법(500)을 설명하기 위한 흐름도
도 6은 일 실시예에 따른 네트워크 분석 방법(500)의 512 단계에서 퍼블릭 서브넷의 외부 통신 가능 경로를 추출하는 과정을 좀 더 상세히 설명하기 위한 흐름도
도 7은 일 실시예에 따른 네트워크 분석 방법(500)의 512 단계에서 프라이빗 서브넷의 외부 통신 가능 경로를 추출하는 과정을 좀 더 상세히 설명하기 위한 흐름도
도 8은 일 실시예에 따른 네트워크 분석 방법(500)의 512 단계에서 모든(퍼블릭 및 프라이빗) 서브넷의 내부 통신 가능 경로를 추출하는 과정을 좀 더 상세히 설명하기 위한 흐름도
도 9는 일 실시예에 따른 네트워크 분석 방법(500)의 514 단계에서의 방화벽 분석 과정을 좀 더 상세히 설명하기 위한 흐름도
도 10은 일 실시예에 따른 방화벽 분석 방법(514)의 906 단계에서 스테이트리스 방화벽의 아웃바운드(outbound) 정책을 분석하는 과정을 좀 더 상세히 설명하기 위한 흐름도
도 11은 일 실시예에 따른 방화벽 분석 방법(514)의 906 단계에서 스테이트리스 방화벽의 인바운드(inbound) 정책을 분석하는 과정을 좀 더 상세히 설명하기 위한 흐름도
도 12는 일 실시예에 따른 네트워크 분석 방법(500)의 516 단계에서의 라우팅 테이블 분석 과정을 좀 더 상세히 설명하기 위한 흐름도
도 13 내지 18은 일 실시예에 따른 클라우드 서비스의 네트워크 분석 과정을 예시하여 설명하기 위한 예시도
도 19는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로써 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
본 명세서에서, 클라우드 리소스는 다음과 같이 정의할 수 있다.
클라우드 환경에서 통신 패킷을 발생시키고 통신장비와 라인을 매체로 삼아 다른 영역으로 패킷을 전달하거나 다른 영역으로부터 패킷을 수신하는 트래픽 기능은 네트워크 인터페이스가 담당한다.
클라우드 환경에서는 이러한 네트워크 인터페이스에 방화벽을 장착할 수 있다. 이때 상기 방화벽은 스테이트풀(stateful) 방화벽, 또는 스테이트리스(stateless) 방화벽으로 분류할 수 있다. 또한 상기 방화벽은 인바운드(inbound) 방화벽 또는 아웃바운드(outbound) 방화벽 중 어느 하나이거나, 또는 동일한 방화벽인 인바운드 방화벽 및 아웃바운드 방화벽의 역할을 동시에 수행할 수 있다.
각각의 방화벽에는 하나 이상의 규칙(rule)이 등록될 수 있다. 이때 상기 규칙은 접속 허용(allow) 규칙만을 포함할 수도 있고, 허용 및 거부(deny) 규칙을 모두 포함할 수 있다. 만약 방화벽에 허용 및 거부 규칙이 모두 포함될 경우 각 규칙의 적용 순서에 따라 허용되는 트래픽 범위가 달라질 수 있다. 방화벽의 허용 및 거부 규칙은 프로토콜, IP 및 Port를 포함한다.
전술한 네트워크 인터페이스를 1개 이상 장착(attach)하고 통신의 주체자로서 데이터를 송수신하는 역할을 담당하는 클라우드 내 모든 서비스를 리소스로 지칭한다. 클라우드 리소스는 가공된 또는 있는 그대로의 데이터를 네트워크 인터페이스를 통해 클라우드 내부 또는 외부로 전달한다. 이러한 리소스의 예로는 서버 또는 데이터베이스 등을 들 수 있다.
네트워크 인터페이스는 최소 하나 이상의 비공인(Private) IP를 소유하고 있으며, 이 IP는 특정 서브넷의 범위에 속한다. 즉, 네트워크 인터페이스는 특정 서브넷에 속한다. 서브넷에 속한 네트워크 인터페이스는 해당 서브넷에 연결된 라우팅 테이블 규칙을 따르고, 만약 서브넷에 별도의 방화벽이 연결된 경우 해당 방화벽 규칙도 함께 따른다. 여기서 서브넷에 연결된 방화벽의 특성은 앞서 설명한 것과 동일하다.
하나의 리소스에 2개 이상의 [네트워크 인터페이스]가 장착된 경우, 리소스가 생성한 패킷은 네트워크 인터페이스가 속한 서브넷 규칙을 따르며 그에 따라 패킷의 경로가 결정된다.
클라우드의 리소스의 통신은 대상에 따라 클라우드 리소스간 통신 및 외부 영역과의 통신의 두 가지로 분류할 수 있다.
클라우드 리소스간 통신은 동일한 클라우드 환경 내에서의 통신을 의미한다. 이때 통신 상대방은 특정 클라우드 최상위 관리자 계정(A), 또는 해당 계정의 하위 관리자 계정에 의해 생성/관리되는 클라우드 리소스이거나, 또는 상기 최상위 관리자 계정(A)과 동일한 최상위 권한을 가진 또 다른 클라우드 관리자 계정(B)에 의해 생성/관리되는 클라우드 리소스일 수 있다. 또한 클라우드 리소스와 기타 영역 간의 통신은 클라우드 환경 외부에 존재하는 데이터센터, 타 사업장, 타 클라우드 리소스, 기타 외부 인터넷에 존재하는 서버 등과의 통신을 의미한다.
클라우드 리소스에서 생성된 패킷(outbound packet)의 통신 흐름은 다음과 같다. 먼저, 클라우드 리소스는 새로 생성된 패킷의 목적지에 따라 통신을 수행할 네트워크 인터페이스를 선택한다. 만약 클라우드 리소스와 연결된 네트워크 인터페이스가 하나뿐이라면 본 과정은 생략될 수 있다.
네트워크 인터페이스는 자신이 속한 서브넷의 라우팅 정보를 확인하여 목적지로 통신하기 위한 게이트웨이로 해당 패킷을 전달한다.
만약 상기 패킷을 수신한 게이트웨이가 인터넷 게이트웨이인 경우, 해당 게이트웨이는 상기 패킷을 생성한 리소스가 퍼블릭 IP를 보유하고 있는지의 여부를 판단한다. 만약 상기 리소스가 인터넷 통신이 가능한 퍼블릭 IP를 보유하고 있다면(즉, 네트워크 인터페이스에 퍼블릭 IP가 설정된 상태라면), 게이트웨이는 해당 패킷을 인터넷으로 전달한다. 만약 이와 달리 상기 리소스가 퍼블릭 IP를 보유하고 있지 않다면 해당 패킷은 폐기되며, 이는 통신 실패로 이어진다.
만약 상기 패킷을 수신한 게이트웨이가 NAT 게이트웨이인 경우, NAT 게이트웨이는 자신이 속한 서브넷의 라우팅에 인터넷 게이트웨이가 존재하는지 확인 후 전달받은 패킷을 인터넷 게이트웨이로 전달한다. 패킷을 전달받은 인터넷 게이트웨이는 인터넷으로 패킷을 전송한다.
만약 상기 패킷을 수신한 게이트웨이가 기타 게이트웨이인 경우, 패킷의 이동 경로는 해당 게이트웨이의 라우팅, 즉 해당 게이트웨이 다음에 위치한 게이트웨이에 따라 결정된다. 기타 게이트웨이의 종류는 예를 들어 다음과 같다.
- 로컬 게이트웨이: 동일한 서브넷 또는 동일한 클라우드 네트워크에 속한 다른 서브넷에 속한 게이트웨이
- 가상 게이트웨이(VGW): VPN, 전용선 통신을 위한 게이트웨이
- 피어링 커넥션 게이트웨이(PCX): 다른 가상 클라우드 네트워크와 통신하기 위한 게이트웨이
- 전송 게이트웨이(TGW): 중앙 허브로서 VPN, 전용선, 피어링 등을 라우팅 할 수 있는 스위치 역할을 하는 게이트웨이
반대로, 클라우드 리소스로 유입되는 패킷(inbound packet)의 통신 흐름은 위의 과정과 반대이며, 다음과 같다.
먼저 게이트웨이는 유입된 패킷의 목적지를 확인하고, 목적지에 해당하는 가상 클라우드 네트워크의 서브넷 라우터로 패킷을 전달한다. 라우터는 해당 패킷의 목적지(리소스)로부터 패킷을 전송할 목적지 네트워크 인터페이스를 확인하고, 패킷을 목적지 네트워크 인터페이스로 전달한다. 이후 패킷은 최종적으로 해당 네트워크 인터페이스를 사용하는 리소스로 전달된다.
클라우드 환경에서 구비되는 방화벽은 다음의 네 가지 조건을 모두 만족시켜야 한다.
첫째, 클라우드 네트워크 공간에는 스테이트풀 또는 스테이트리스 방화벽이 하나 이상 존재해야 하며,
구성 형태는 아래 중 하나와 같다.
1) 스테이트풀 방화벽 간 직렬(또는 병렬) 구성
2) 스테이트리스 방화벽 간 직렬(또는 병렬) 구성
3) 스테이트풀 방화벽과 스테이트리스 방화벽이 혼합된 형태로의 직렬 또는 병렬 구성
둘째, 방화벽 제공자는 클라우드 서비스 제공업체(기본 방화벽) 또는 서드 파티일 수 있다.
셋째, 방화벽(들)이 놓이는 위치는 아래 중 최소 1개 영역을 포함해야 하며, 필요한 경우 모든 영역에 설치할 수도 있다.
- 네트워크 인터페이스
- 리소스
- 서브넷
- 가상 클라우드 네트워크(서브넷의 집합)
넷째, 서버 등 리소스 내부에서 애플리케이션의 형태로 허용 또는 통제하는 경우는 제외한다. (예를 들어, 윈도우에 설정된 윈도우 방화벽, 접근제어 툴 등)
도 1은 일 실시예에 따른 네트워크 분석 장치(100)를 설명하기 위한 블록도이다. 일 실시예에 따른 네트워크 분석 장치(100)는 클라우드 서비스의 방화벽 정책 및 라우팅 구성 등을 분석하여 클라우드 서비스의 보안 리스크를 도출하기 위한 장치이다. 도시된 바와 같이, 일 실시예에 따른 네트워크 분석 장치(100)는 수신 모듈(102), 토폴로지 생성 모듈(104) 및 분석 모듈(106)을 포함한다.
수신 모듈(102)은 클라우드 서비스로부터, 상기 클라우드 서비스에 포함된 하나 이상의 리소스 정보 및 상기 하나 이상의 리소스의 네트워크 환경 정보를 수신한다. 일 실시예에서, 수신 모듈(102)은 네트워크를 통하여 클라우드 서비스에 접속하고, 접속된 클라우드 서비스의 인증 정보를 입력하여 인증을 수행한 뒤, 인증이 완료된 클라우드 서비스로부터 상기 리소스 정보 및 네트워크 환경 정보를 전달받을 수 있다. 이때 상기 네트워크 환경 정보는, 하나 이상의 리소스와 관련된 네트워크 인터페이스, 스테이트풀 방화벽 정책, 스테이트리스 방화벽 정책, 라우팅 테이블 및 게이트웨이 정보 중 하나 이상을 포함할 수 있다.
토폴로지 생성 모듈(104)은 수신 모듈(102)을 통하여 수신한 리소스 정보 및 네트워크 환경 정보를 이용하여 클라우드 서비스의 네트워크 토폴로지를 도출한다. 개시되는 실시예들에서, 네트워크 토폴로지란 네트워크 구성 정보에 포함된 클라우드 서비스 내 각 구성요소들의 물리적 또는 논리적 연결 상태를 의미한다.
일반적으로 클라우드 서비스의 아키텍처는 다음과 같은 계층으로 구성될 수 있다.
1) 최상위 관리자 계정(들)
일반적으로 구독 계정이라고 하며 비용을 지불하는 단위 계정을 의미한다.
2) 관리자 계정 하에 생성된 가상 클라우드 영역의 IP대역(들) 정보와 식별 정보
여러 서브넷을 포함하는 하나의 가상 클라우드 네트워크 영역으로서 보통 서비스 단위를 이 영역에 생성하고 1개 VPC에 서브넷을 다수 만들어 관리한다.
예를 들어, 대국민 서비스를 하는 쇼핑몰 서비스의 경우 사용자 웹브라우저에 이미지를 응답하는 기능의 웹서버는 퍼블릭 서브넷에 두고, 결제 정보, 사용자의 개인정보를 처리하는 중요 서버는 프라이빗 서브넷에 두어 관리할 수 있다.
3) IP대역을 세분화시킨 서브넷(들)
- 서브넷 식별 정보(ID), IP대역 정보, 퍼블릭/프라이빗 여부 정보
- 서브넷이 연결된 라우팅 테이블 식별 정보(ID)
- 서브넷에 연결된 방화벽 정보
(방화벽 적용 계층은 클라우드 별로 상이하며, 서브넷에서 사용하지 않을 수도 있다.)
4) 각 서브넷에 포함된 리소스(들)
- 리소스의 IP(퍼블릭, 프라이빗) 정보, 리소스 식별자(ID)
5) 리소스가 품은 네트워크 인터페이스(들)
6) 네트워크 인터페이스와 연결된 방화벽(들)
(방화벽 적용 계층은 클라우드 별로 상이하며, 네트워크 인터페이스에서 사용하지 않을 수도 있다.)
도 2는 일 실시예에 따른 클라우드 서비스의 네트워크 토폴로지를 설명하기 위한 예시도이다. 도시된 클라우드 서비스(A)의 경우 퍼블릭 서브넷 및 프라이빗 서브넷의 두 개의 서브넷으로 구성된다. 또한 각각의 서브넷에는 하나 이상의 스테이트풀 방화벽과 스테이트리스 방화벽, 및 패킷 송수신을 위한 라우터가 구비된다. 퍼블릭 서브넷의 라우터는 인터넷 게이트웨이와 연결되어 외부의 인터넷망과 패킷을 송수신하며, 프라이빗 서브넷의 라우터는 퍼블릭 서브넷의 NAT 게이트웨이와 연결된다.
다시 도 1로 돌아가서, 분석 모듈(106)은 상기 네트워크 토폴로지로부터, 하나 이상의 리소스 각각의 통신 가능 경로, 및 각 통신 가능 경로에서의 하나 이상의 통신 허용 정책을 도출한다.
도 3은 일 실시예에 따른 분석 모듈(106)의 상세 구성을 설명하기 위한 블록도이다. 도시된 바와 같이, 일 실시예에 따른 분석 모듈(106)은 제1 분석 서브 모듈(302) 및 제2 분석 서브 모듈(304)을 포함한다.
제1 분석 서브 모듈(302)은 클라우드 네트워크의 각 리소스 별 하나 이상의 통신 가능 경로를 생성한다. 이때 상기 통신 가능 경로는 클라우드 서비스의 각 리소스와 외부의 인터넷망 간의 패킷 송수신이 가능한 경로인 외부 통신 가능 경로, 및 클라우드 서버 내부의 리소스 간의 패킷 송수신이 가능한 경로인 내부 통신 가능 경로를 포함한다.
제1 분석 서브 모듈(302)은 클라우드 네트워크의 각 리소스 별 하나 이상의 외부 통신 가능 경로를 생성할 수 있다. 구체적으로 제1 분석 서브 모듈(302)은 리소스에 할당된 아이피(IP)가 퍼블릭 아이피인 경우, 상기 리소스에 할당된 스테이트풀 방화벽, 리소스가 속한 서브넷의 스테이트리스 방화벽, 및 상기 서브넷의 라우터 중 하나 이상을 포함하는 통신 경로를 식별하고, 상기 라우터의 라우팅 목적지에 인터넷 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 외부 통신 가능 경로에 추가할 수 있다.
만약 리소스에 할당된 아이피(IP)가 프라이빗 아이피인 경우, 제1 분석 서브 모듈(302)은 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 제1 서브넷의 제1 스테이트리스 방화벽, 및 제1 라우터 중 하나 이상을 포함하는 통신 경로를 식별하고, 상기 제1 라우터의 라우팅 목적지에 NAT 게이트웨이가 포함되어 있는 경우, 상기 NAT 게이트웨이가 속한 제2 서브넷의 제2 스테이트리스 방화벽, 및 제2 라우터를 식별된 상기 통신 경로에 추가할 수 있다. 또한 제1 분석 서브 모듈(302)은 상기 제2 라우터의 라우팅 목적지에 인터넷 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 외부 통신 가능 경로에 추가할 수 있다.
또한, 제1 분석 서브 모듈(302)은 클라우드 네트워크의 각 리소스 별 하나 이상의 내부 통신 가능 경로를 생성할 수 있다. 구체적으로, 제1 분석 서브 모듈(302)은, 상기 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 서브넷의 스테이트리스 방화벽, 및 상기 서브넷의 라우터를 포함하는 통신 경로를 식별하고, 상기 라우터의 라우팅 목적지에 내부 통신용 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 내부 통신 가능 경로에 추가할 수 있다.
도 4는 일 실시예에 따른 클라우드 서비스의 네트워크 토폴로지에서 각 리소스의 통신 가능 경로를 설명하기 위한 예시도이다. 도면에서 굵은 화살표로 표시된 부분이 통신 가능 경로를 나타낸다. 예컨대, 퍼블릭 서브넷의 서버는 스테이트풀 방화벽 - 스테이트리스 방화벽 - 라우터 - 인터넷 게이트웨이를 거쳐 인터넷망으로 연결된다. 또한 프라이빗 서브넷의 WAS는 스테이트풀 방화벽 - 스테이트리스 방화벽 - 프라이빗 서브넷의 라우터 - 퍼블릭 서브넷의 스테이트리스 방화벽 - 퍼블릭 서브넷의 NAT 게이트웨이 - 퍼블릭 서브넷의 스테이트리스 방화벽 - 퍼블릭 서브넷의 라우터 - 인터넷 게이트웨이를 거쳐 인터넷망으로 연결된다.
또한 도면에서 VPN 게이트웨이는 VPN, 또는 전용선 통신을 통하여 타 데이터센터 또는 사업장의 서버 또는 PC와 연결하기 위한 게이트웨이이며, 피어링 커넥션 게이트웨이(PCX)는 다른 가상 클라우드 네트워크(B)와 통신하기 위한 게이트웨이다.
다음으로, 제2 분석 서브 모듈(304)은 제1 분석 서브 모듈(302)을 통해 생성된 통신 가능 경로상의 방화벽 정책 분석 및 라우팅 테이블 분석 중 하나 이상을 수행하여, 하나 이상의 통신 허용 정책을 도출한다. 개시되는 실시예들에서, 통신 허용 정책이란 통신 가능 경로상에서 실제 통신이 가능한 트래픽의 범위, 다시 말해 실제 통신 가능한 프로토콜, IP/Port 범위를 포함한다.
일 실시예에서, 제2 분석 서브 모듈(304)은, 상기 통신 가능 경로상에 존재하는 하나 이상의 방화벽 각각의 개별 통신 허용 정책을 도출하고, 상기 개별 통신 허용 정책으로부터 상기 하나 이상의 방화벽의 통신 허용 정책을 도출할 수 있다. 이때 만약 상기 방화벽이 스테이트리스 방화벽인 경우, 제2 분석 서브 모듈(304)은 상기 스테이트리스 방화벽의 통신 가능 대역 정보, 및 상기 스테이트리스 방화벽과 연결된 리소스의 동적 포트(Dynamic Port) 허용 정책을 비교하여 상기 스테이트리스 방화벽의 통신 허용 정책을 도출하게 된다. 그 이유는 다음과 같다.
스테이트리스 방화벽을 분석할 때는 스테이트풀 방화벽과 달리 회신되는 패킷의 프로토콜 및 서버가 사용하는 동적 포트의 분석이 추가로 필요하다. 스테이트풀 방화벽의 경우 외부로 송신되는 패킷의 목적지 IP, Port 허용 정책을 아웃바운드 정책으로 등록하면 회신되는 패킷에 대한 인바운드 정책은 자동으로 적용된다. 그러나 스테이트리스 방화벽의 경우 회신되는 패킷의 인바운드 정책이 자동으로 적용되지 않는다. 따라서 이 경우 회신되는 패킷에 대한 출발지 IP, 동적 포트 허용 정책을 인바운드 정책으로 등록해 주어야 한다.
일 실시예에서, 제2 분석 서브 모듈(304)은, 통신 가능 경로 중 동일 계층에 위치한 방화벽의 개별 통신 허용 정책 간에는 병렬 분석을 적용하고, 서로 다른 계층에 위치한 방화벽의 개별 통신 허용 정책 간에는 직렬 분석을 적용하여 상기 방화벽의 통신 허용 정책을 도출할 수 있다.
또한, 제2 분석 모듈(304)은 통신 가능 경로상에 위치한 하나 이상의 라우터 각각의 라우팅 테이블로부터 라우팅 허용 정책을 도출하고, 방화벽 통신 허용 정책 및 상기 라우팅 허용 정책의 교집합을 리소스의 통신 허용 정책으로 도출할 수 있다. 이때 제2 분석 모듈(304)은 상기 라우팅 테이블의 라우팅 정책 중 상기 통신 가능 경로의 목적지에 대응되는 라우팅 정책을 식별하여 상기 라우팅 허용 정책을 도출할 수 있다.
도 5는 일 실시예에 따른 네트워크 분석 방법(500)을 설명하기 위한 흐름도이다. 도시된 방법은 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치, 예컨대 전술한 네트워크 분석 장치(100)에서 수행될 수 있다. 도시된 흐름도에서는 상기 방법 또는 과정을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
단계 502에서, 네트워크 분석 장치(100)의 수신 모듈(102)은 클라우드 서비스로 인증 정보를 입력한다.
단계 504에서, 클라우드 서비스는 수신된 인증 정보의 유효성을 판단하고, 유효한 것으로 판단되는 경우 인증 응답을 송신한다. 만약 인증 정보가 유효하지 않은 경우, 네트워크 분석 장치(100)의 사용자는 인증 정보를 재확인하여(단계 505) 클라우드 인증 정보를 다시 입력한다.
단계 506에서, 수신 모듈(102)은 클라우드 서비스로 클라우드 서비스를 구성하는 각 리소스 정보 및 네트워크 환경 정보를 요청한다.
단계 508에서, 상기 요청을 받은 클라우드 서비스는 요청된 리소스 정보 및 네트워크 환경 정보를 회신한다.
단계 510에서, 네트워크 분석 장치(100)의 토폴로지 생성 모듈(104)은 수신 모듈(102)을 통하여 수신한 네트워크 구성 정보를 파싱 및 저장하여 클라우드 서비스의 네트워크 토폴로지를 도출한다.
단계 512에서, 네트워크 분석 장치(100)의 분석 모듈(106)은 상기 네트워크 토폴로지로부터, 하나 이상의 리소스 각각의 통신 가능 경로를 추출한다.
단계 514 내지 518에서, 분석 모듈(106) 및 상기 각 통신 가능 경로에 포함된 방화벽 분석 및 라우팅 테이블 분석을 수행하고, 도출된 분석결과로부터 하나 이상의 통신 허용 정책을 도출한다.
단계 520에서, 분석 모듈(106)은 분석되지 않은 추가 경로가 존재하는지 여부를 판단한다. 만약 존재하는 경우 514 단계 이하를 반복 수행한다.
만약 상기 판단 결과 분석되지 않은 추가 경로가 존재하지 않는 경우, 단계 522 및 524에서, 분석 모듈(106)은 저장된 분석 결과(통신 허용 정책)와 리소스 및 게이트웨이가 자체적으로 허용하는 IP/PORT와의 교집합을 추출하여 최종 분석 결과를 도출한다. 이때 자체적으로 허용하는 IP/PORT는 통신 허용 정책과 별개로 리소스 및 게이트웨이가 최종적으로 취하려는 IP/PORT 범위를 의미한다. 가령 데이터베이스의 경우 인스턴스 포트만 열어놓는 경우를 예시로 들 수 있다.
단계 526에서, 분석 모듈(106)은 상기 최종 분석 결과를 관리자 또는 사용자에게 출력한다.
도 6은 일 실시예에 따른 네트워크 분석 방법(500)의 512 단계에서 퍼블릭 서브넷의 외부 통신 가능 경로를 추출하는 과정을 좀 더 상세히 설명하기 위한 흐름도이다.
단계 602에서, 분석 모듈(106)은 파악된 모든 리소스와 각 리소스에 할당된 네트워크 인터페이스를 확인한다.
단계 604에서, 분석 모듈(106)은 파악된 리소스 중 하나의 리소스를 선택한다(통신 경로: A).
단계 606에서, 분석 모듈(106)은 선택한 리소스가 자체적으로 허용하는 IP/Port범위를 확인하고 허용된 경로를 통신 경로에 추가한다(통신 경로: A→B).
단계 608에서, 분석 모듈(106)은 선택한 리소스(A)에 할당된 네트워크 인터페이스가 사용하고 있는 stateful 방화벽을 확인하고 이를 통신 경로에 추가한다(통신 경로: A→B→C).
단계 610에서, 분석 모듈(106)은 선택한 리소스(A)가 속한 서브넷(D)을 확인한다.
단계 612에서, 분석 모듈(106)은 저장된 서브넷(D)에서 사용하고 있는 stateless 방화벽을 확인하고 이를 통신 경로에 추가한다(통신 경로: A→B→C→E).
단계 614에서, 분석 모듈(106)은 저장된 서브넷(D)에서 사용하고 있는 라우터를 확인하고 이를 통신 경로에 추가한다(통신 경로: A→B→C→E→F).
단계 616에서, 분석 모듈(106)은 저장된 라우터(F)의 라우팅 테이블 목록을 확인한다.
단계 618에서, 분석 모듈(106)은 라우팅 테이블의 라우팅 목적지(target)에 인터넷 게이트웨이(Internet Gateway; G)가 존재하는지 여부를 확인한다.
만약 상기 618 단계의 확인 결과 존재하는 경우, 단계 620에서 분석 모듈(106)은 선택된 리소스(A)에 할당된 네트워크 인터페이스가 퍼블릭 IP를 사용하는지 여부를 확인한다.
만약 상기 620 단계의 확인 결과 리소스가 퍼블릭 IP를 사용하는 경우, 단계 622에서 분석 모듈(106)은 인터넷 게이트웨이(G)를 통신 경로에 추가하고(통신 경로: A→B→C→E→F→G), 해당 경로를 외부 통신 가능 경로로 저장한다.
이와 달리 만약 상기 618 단계의 판단 결과 라우팅 목적지에 인터넷 게이트웨이가 없거나, 또는 리소스가 퍼블릭 IP를 사용하고 있지 않은 경우, 단계 628에서 분석 모듈(106)은 지금까지 식별된 통신 경로를 삭제한다.
단계 624에서, 분석 모듈(106)은 추가 리소스가 존재하는지 여부를 판단하고, 만약 존재하는 경우 604 단계로 되돌아간다.
이와 달리 만약 추가 리소스가 존재하지 않는 경우, 즉 모든 리소스에 대한 경로를 모두 파악한 경우, 단계 626에서 분석 모듈(106)은 파악된 외부 통신 가능 경로를 출력한다.
도 7은 일 실시예에 따른 네트워크 분석 방법(500)의 512 단계에서 프라이빗 서브넷의 외부 통신 가능 경로를 추출하는 과정을 좀 더 상세히 설명하기 위한 흐름도이다.
단계 702에서, 분석 모듈(106)은 파악된 모든 리소스와 각 리소스에 할당된 네트워크 인터페이스를 확인한다.
단계 704에서, 분석 모듈(106)은 파악된 리소스 중 하나의 리소스를 선택한다(통신 경로: A).
단계 706에서, 분석 모듈(106)은 선택한 리소스(A)가 자체적으로 허용 하는 IP/Port범위를 확인하고 허용된 경로를 통신 경로에 추가한다(통신 경로: A→B).
단계 708에서, 분석 모듈(106)은 선택한 리소스(A)에 할당된 네트워크 인터페이스가 사용하고 있는 stateful 방화벽을 확인하고 이를 통신 경로에 추가한다(통신 경로: A→B→C).
단계 710에서, 분석 모듈(106)은 선택한 리소스(A)가 속한 서브넷(D)을 확인한다.
단계 712에서, 분석 모듈(106)은 저장된 서브넷(D 또는 이하의 H)에서 사용하고 있는 stateless 방화벽(E 또는 I)을 확인하고 이를 통신 경로에 추가한다(통신 경로: A→B→C→E).
단계 714에서, 분석 모듈(106)은 저장된 서브넷(D)에서 사용하고 있는 라우터(F 또는 J)를 확인하고 이를 통신 경로에 추가한다(통신 경로: A→B→C→E→F).
단계 716에서, 분석 모듈(106)은 저장된 라우터(F/J)의 라우팅 테이블 목록을 확인한다.
단계 718에서, 분석 모듈(106)은 지금까지 저장된 통신 경로에 NAT 게이트웨이(G)가 저장되어 있는지를 확인한다.
만약 상기 718 단계의 확인 결과 통신 경로에 NAT 게이트웨이(G)가 저장되어 있지 않은 경우, 단계 720에서 분석 모듈(106)은 라우팅 테이블의 라우팅 목적지(target)에 NAT 게이트웨이(G)가 존재하는지 여부를 확인한다.
만약 상기 720 단계의 확인 결과 라우팅 테이블의 라우팅 목적지(target)에 NAT 게이트웨이(G)가 존재하는 경우, 단계 722에서 분석 모듈(106)은 NAT 게이트웨이(G)를 통신 경로에 추가하고(통신경로: A→B→C→E→F→G), NAT 게이트웨이(G)가 속한 서브넷(H)을 확인한 뒤, 확인된 서브넷에서 712 단계 이하를 반복 수행한다(통신 경로: A→B→C→E→F→G→I→J).
만약 상기 718 단계의 판단 결과 저장된 통신경로에 NAT 게이트웨이(G)가 저장되어 있는 경우, 단계 724에서 분석 모듈(106)은 라우팅 테이블의 라우팅 목적지(target)에 인터넷 게이트웨이(Internet Gateway; K)가 존재하는지 여부를 확인한다.
만약 상기 724 단계의 확인 결과 라우팅 목적지(target)에 인터넷 게이트웨이(Internet Gateway; K)가 존재하는 경우, 단계 726에서 분석 모듈(106)은 인터넷 게이트웨이(K)를 통신 경로에 추가하고(통신 경로: A→B→C→E→F→G→I→J→K), 해당 경로를 외부 통신 가능 경로로 저장한다.
이와 달리 만약 상기 724 단계의 판단 결과 라우팅 목적지에 인터넷 게이트웨이가 없는 경우, 단계 732에서 분석 모듈(106)은 지금까지 식별된 통신 경로를 삭제한다.
단계 728에서, 분석 모듈(106)은 추가 리소스가 존재하는지 여부를 판단하고, 만약 존재하는 경우 704 단계로 되돌아간다.
이와 달리 만약 추가 리소스가 존재하지 않는 경우, 즉 모든 리소스에 대한 경로를 모두 파악한 경우, 단계 730에서 분석 모듈(106)은 파악된 외부 통신 가능 경로를 출력한다.
도 8은 일 실시예에 따른 네트워크 분석 방법(500)의 512 단계에서 모든(퍼블릭 및 프라이빗) 서브넷의 내부 통신 가능 경로를 추출하는 과정을 좀 더 상세히 설명하기 위한 흐름도이다.
단계 802에서, 분석 모듈(106)은 파악된 모든 리소스와 각 리소스에 할당된 네트워크 인터페이스를 확인한다.
단계 804에서, 분석 모듈(106)은 파악된 리소스 중 하나의 리소스를 선택한다(통신 경로: A).
단계 806에서, 분석 모듈(106)은 선택한 리소스가 자체적으로 허용하는 IP/Port범위를 확인하고 허용된 경로를 통신 경로에 추가한다(통신 경로: A→B).
단계 808에서, 분석 모듈(106)은 선택한 리소스(A)에 할당된 네트워크 인터페이스가 사용하고 있는 stateful 방화벽을 확인하고 이를 통신 경로에 추가한다(통신 경로: A→B→C).
단계 810에서, 분석 모듈(106)은 선택한 리소스(A)가 속한 서브넷(D)을 확인한다.
단계 812에서, 분석 모듈(106)은 저장된 서브넷(D)에서 사용하고 있는 stateless 방화벽(E)을 확인하고 이를 통신 경로에 추가한다(통신 경로: A→B→C→E).
단계 814에서, 분석 모듈(106)은 저장된 서브넷(D)에서 사용하고 있는 라우터(F)를 확인하고 이를 통신 경로에 추가한다(통신 경로: A→B→C→E→F).
단계 816에서, 분석 모듈(106)은 저장된 라우터(F)의 라우팅 테이블 목록을 확인한다.
단계 818에서, 분석 모듈(106)은 라우팅 테이블의 라우팅 목적지(target)에 내부 통신용 게이트웨이(G)가 존재하는지 여부를 확인한다.
만약 상기 818 단계의 확인 결과 내부 통신용 게이트웨이(G)가 존재하는 경우, 단계 820 및 822에서 분석 모듈(106)은 내부 통신용 게이트웨이를 확인하고 해당 게이트웨이가 자체적으로 허용하는 IP/Port 범위를 파악하여 허용된 범위를 통신 경로에 추가한다.
단계 824에서, 분석 모듈(106)은 지금까지 파악된 통신 경로를 내부 통신 경로로 저장한다(통신 경로: A→B→C→E→F→G→H).
만약 상기 818 단계의 판단 결과 라우팅 목적지에 내부 통신용 게이트웨이가 없는 경우, 단계 830에서 분석 모듈(106)은 지금까지 식별된 통신 가능 경로를 삭제한다.
단계 826에서, 분석 모듈(106)은 추가 리소스가 존재하는지 여부를 판단하고, 만약 존재하는 경우 804 단계로 되돌아간다.
이와 달리 만약 추가 리소스가 존재하지 않는 경우, 즉 모든 리소스에 대한 경로를 모두 파악한 경우, 단계 828에서 분석 모듈(106)은 파악된 내부 통신 가능 경로를 출력한다.
도 9는 일 실시예에 따른 네트워크 분석 방법(500)의 514 단계에서의 방화벽 분석 과정을 좀 더 상세히 설명하기 위한 흐름도이다.
앞서 설명한 바와 같이, 제2 분석 서브 모듈(304)은 제1 분석 서브 모듈(302)을 통해 생성된 통신 가능 경로상의 방화벽 정책 분석을 수행한다. 개시되는 실시예들에서, 통신 허용 정책이란 통신 가능 경로상에서 실제 통신이 가능한 트래픽의 범위, 다시 말해 실제 통신 가능한 프로토콜, IP/Port 범위를 포함한다. 일 실시예에서, 제2 분석 서브 모듈(304)은, 상기 통신 가능 경로상에 존재하는 하나 이상의 방화벽 각각의 개별 통신 허용 정책을 도출하고, 상기 개별 통신 허용 정책으로부터 상기 하나 이상의 방화벽의 통신 허용 정책을 도출할 수 있다. 이때 제2 분석 서브 모듈(304)은, 통신 가능 경로 중 동일 계층에 위치한 방화벽의 개별 통신 허용 정책 간에는 병렬 분석을 적용하고, 서로 다른 계층에 위치한 방화벽의 개별 통신 허용 정책 간에는 직렬 분석을 적용하여 방화벽의 상기 방화벽의 통신 허용 정책을 도출하게 된다.
단계 902에서, 제2 분석 서브 모듈(304)은 최종 분석 결과(C)를 ∮ (공집합)으로, 중간 분석 결과(B)를 U(전체집합)로 각각 설정한다.
단계 904에서, 제2 분석 서브 모듈(304)은 개별 스테이트풀 또는 스테이트리스 방화벽의 정책을 입력받는다.
단계 906에서, 제2 분석 서브 모듈(304)은 입력된 정책 분석을 통해 해당 방화벽의 개별 통신 허용 정책을 개별 분석 결과(A)로 도출한다.
단계 908에서, 제2 분석 서브 모듈(304)은 상기 분석 결과(A)와 중간 분석 결과(B)의 교집합을 중간 분석 결과에 저장한다(직렬 분석).
단계 910에서, 제2 분석 서브 모듈(304)은 추가 분석 대상(스테이트리스 또는 스테이트풀 방화벽)이 존재하는지 여부를 판단한다.
상기 910 단계의 판단 결과 추가 분석 대상이 존재하는 경우, 단계 912에서, 제2 분석 서브 모듈(304)은 추가로 개별 스테이트풀 또는 스테이트리스 방화벽의 정책을 입력받는다.
단계 914에서, 제2 분석 서브 모듈(304)은 추가된 방화벽이 직렬 분석 대상인지의 여부를 판단하고, 직렬 분석 대상인 경우 906 단계 이하를 재수행한다.
만약 상기 914 단계의 판단 결과 직렬 분석 대상이 아닌 경우, 단계 916에서, 제2 분석 서브 모듈(304)은 최종 분석 결과(C)와 중간 분석 결과(B)의 합집합을 최종 분석 결과(C)로 저장하고, 중간 분석 결과를 U로 재설정한다.
한편, 상기 910 단계의 판단 결과 추가 분석 대상이 존재하지 않는 경우, 단계 918에서 제2 분석 서브 모듈(304)은 최종 분석 결과(C)와 중간 분석 결과(B)의 합집합을 최종 분석 결과(C)로 저장한다.
단계 920에서, 제2 분석 서브 모듈(304)은 최종 분석 결과(C)를 출력한다.
도 10은 일 실시예에 따른 방화벽 분석 방법(514)의 906 단계에서 스테이트리스 방화벽의 아웃바운드(outbound) 정책을 분석하는 과정을 좀 더 상세히 설명하기 위한 흐름도이다.
단계 1002에서, 제2 분석 서브 모듈(304)은 스테이트리스 방화벽의 정책을 입력받는다.
단계 1004에서, 제2 분석 서브 모듈(304)은 스테이트리스 방화벽의 정책 중 [리소스 → 목적지] 정책 및 [리소스 ← 목적지] 정책을 각각 분석한다.
단계 1006에서, 제2 분석 서브 모듈(304)은 [리소스 → 목적지:포트] 분석 결과(A) 및 [목적지 → 리소스:포트] 분석 결과(B)를 각각 출력한다.
단계 1008에서, 제2 분석 서브 모듈(304)은 상기 분석 결과 중 A를 읽어들인다.
단계 1010에서, 제2 분석 서브 모듈(304)은 분석 결과 A의 통신 프로토콜을 파악한다.
만약 A의 통신 프로토콜이 UDP인 경우, 단계 1012에서 제2 분석 서브 모듈(304)은 A를 해당 스테이트리스 방화벽의 개별 통신 가능 정책에 저장한다.
단계 1014에서, 제2 분석 서브 모듈(304)은 분석 결과가 더 존재하는지 여부를 판단하고 존재하는 경우 1008 단계 이하를 반복 수행한다.
만약 상기 1014 단계의 판단 결과 분석 결과가 더 이상 존재하지 않는 경우, 단계 1016에서 제2 분석 서브 모듈(304)은 개별 통신 가능 정책을 출력한다.
한편, 상기 1010 단계의 판단 결과 A의 통신 프로토콜이 TCP인 경우, 단계 1018 및 1020에서 제2 분석 서브 모듈(304)은 A의 동적 포트 유형(OS 기본 설정 포트인지 또는 실제 가상 머신(VM)에서 설정하는 포트인지)에 따라 설정된 포트를 읽어들인다.
단계 1022에서, 제2 분석 서브 모듈(304)은 분석결과 A에서 다음의 조건을 만족하는 분석 결과 C를 도출한다.
(A의 리소스IP = B의 리소스IP) && (A의 목적지IP = B의 목적지IP)
단계 1024에서, 제2 분석 서브 모듈(304)은 분석 결과 C와 1020 단계에서 읽어들인 포트의 교집합이 존재하는지 여부를 판단한다.
만약 상기 1024 단계의 판단 결과 교집합이 존재하는 경우, 제2 분석 서브 모듈(304)은 분석 결과 A를 통신 가능 정책에 추가하고 1014 단계로 이동한다. 만약 상기 1024 단계의 판단 결과 교집합이 존재하지 않는 경우, 제2 분석 서브 모듈(304)은 곧바로 1014 단계로 이동한다.
도 11은 일 실시예에 따른 방화벽 분석 방법(514)의 906 단계에서 스테이트리스 방화벽의 인바운드(inbound) 정책을 분석하는 과정을 좀 더 상세히 설명하기 위한 흐름도이다.
단계 1102에서, 제2 분석 서브 모듈(304)은 스테이트리스 방화벽의 정책을 입력받는다.
단계 1104에서, 제2 분석 서브 모듈(304)은 스테이트리스 방화벽의 정책 중 [리소스 → 목적지] 정책 및 [리소스 ← 목적지] 정책을 각각 분석한다.
단계 1106에서, 제2 분석 서브 모듈(304)은 [리소스 → 목적지:포트] 분석 결과(A) 및 [목적지 → 리소스:포트] 분석 결과(B)를 각각 출력한다.
단계 1108에서, 제2 분석 서브 모듈(304)은 상기 분석 결과 중 B를 읽어들인다.
단계 1110에서, 제2 분석 서브 모듈(304)은 분석 결과 B의 통신 프로토콜을 파악한다.
만약 B의 통신 프로토콜이 UDP인 경우, 단계 1112에서 제2 분석 서브 모듈(304)은 B를 해당 스테이트리스 방화벽의 개별 통신 가능 정책에 저장한다.
단계 1114에서, 제2 분석 서브 모듈(304)은 분석 결과가 더 존재하는지 여부를 판단하고 존재하는 경우 1108 단계 이하를 반복 수행한다.
만약 상기 1114 단계의 판단 결과 분석 결과가 더 이상 존재하지 않는 경우, 단계 1116에서 제2 분석 서브 모듈(304)은 개별 통신 가능 정책을 출력한다.
한편, 상기 1110 단계의 판단 결과 B의 통신 프로토콜이 TCP인 경우, 단계 1118 및 1120에서 제2 분석 서브 모듈(304)은 B의 동적 포트 유형(OS 기본 설정 포트인지 또는 실제 가상 머신(VM)에서 설정하는 포트인지)에 따라 설정된 포트를 읽어들인다.
단계 1122에서, 제2 분석 서브 모듈(304)은 분석결과 B에서 다음의 조건을 만족하는 분석 결과 C를 도출한다.
(B의 리소스IP = A의 리소스IP) && (B의 목적지IP = A의 목적지IP)
단계 1124에서, 제2 분석 서브 모듈(304)은 분석 결과 C와 1120 단계에서 읽어들인 포트의 교집합이 존재하는지 여부를 판단한다.
만약 상기 1124 단계의 판단 결과 교집합이 존재하는 경우, 제2 분석 서브 모듈(304)은 분석 결과 B를 통신 가능 정책에 추가하고 1114 단계로 이동한다. 만약 상기 1124 단계의 판단 결과 교집합이 존재하지 않는 경우, 제2 분석 서브 모듈(304)은 곧바로 1114 단계로 이동한다.
도 12는 일 실시예에 따른 네트워크 분석 방법(500)의 516 단계에서의 라우팅 테이블 분석 과정을 좀 더 상세히 설명하기 위한 흐름도이다.
단계 1202에서, 제2 분석 서브 모듈(304)은 라우팅 테이블과 분석하고자 하는 게이트웨이(A)를 입력받는다.
단계 1204에서, 제2 분석 서브 모듈(304)은 Longest prefix match에 따라 분석 대상 라우팅 테이블을 정렬한다.
단계 1206에서, 제2 분석 서브 모듈(304)은 정렬된 라우팅 규칙을 순차적으로 읽어들인다.
단계 1208에서, 제2 분석 서브 모듈(304)은 1206 단계에서 읽어들인 게이트웨이가 1202 단계에서 입력된 게이트웨이와 일치하는지의 여부를 판단한다. 예를 들어, 1202 단계에서 입력된 게이트웨이가 인터넷 게이트웨이인 경우, 본 단계에서 제2 분석 서브 모듈(304)은 라우팅 테이블의 게이트웨이에 인터넷 게이트웨이가 포함되어 있는지를 판단한다.
상기 1208 단계의 판단 결과 일치하는 경우, 단계 1210에서, 제2 분석 서브 모듈(304)은 해당 게이트웨이와 관련된 정책을 허용 정책으로 변경한다. 이와 달리 일치하지 않는 경우, 단계 1214에서 제2 분석 서브 모듈(304)은 해당 게이트웨이와 관련된 정책을 거부 정책으로 변경한다.
단계 1216에서, 제2 분석 서브 모듈(304)은 추가 라우팅 규칙이 존재하는지의 여부를 판단하고, 만약 존재하는 경우 1206 이하를 반복 수행한다.
단계 1218에서, 제2 분석 서브 모듈(304)은 저장된 정책을 이용하여 라우팅 정책을 분석한다.
단계 1220에서, 제2 분석 서브 모듈(304)은 분석 결과를 출력한다.
도 13 내지 18은 일 실시예에 따른 클라우드 서비스의 네트워크 분석 과정을 예시하여 설명하기 위한 예시도이다. 구체적으로 도 13은 예시적인 클라우드 서비스의 구조를 나타낸 예시도, 도 14는 도 13의 클라우드 서비스에서 스테이트풀 방화벽 A, B의 개별 분석(A', B') 및 병렬 분석(X)을 수행한 예를 나타낸 예시도, 도 15는 도 13의 클라우드 서비스에서 스테이트리스 방화벽 C의 개별 분석(Y)을 수행한 예를 나타낸 예시도, 도 16은 병렬 분석(X) 및 개별 분석(Y) 결과에 대한 직렬 분석을 통해 방화벽의 통신 가능 정책을 도출한 예를 나타낸 예시도, 도 17은 도 16의 통신 가능 정책과 라우팅 테이블 분석 결과를 결합하여 최종 통신 가능 정책을 도출한 예를 나타낸 예시도. 도 18은 전체 분석 결과를 도시한 테이블의 예를 나타낸 예시도이다.
도 13에 도시된 클라우드 서비스의 경우 리소스에 2개의 네트워크 인터페이스가 연결되어 있다. 각각의 네트워크 인터페이스는 서로 다른 stateful 방화벽(A, B)으로 접근을 제어한다. 앞서 언급한 바와 같이, 리소스에 연결된 모든 방화벽(stateful, stateless)은 개별 분석 후 결합 분석을 하게 된다. 방화벽 A 및 B는 각각 서로 다른 인터페이스에 연결되어 있으나 결국 하나의 리소스로부터 전송되므로, 개별 분석 결과(A', B')는 병렬 분석(합집합)된다. 이후 병렬 분석 결과로 허용된 패킷은 서브넷을 통과하기 전 stateless 방화벽(C)에서 다시 한번 제어를 받는데 이 제어는 이중 접근제어 개념이므로 직렬(교집합)로 볼 수 있다. 이후 라우팅 테이블 분석 결과를 합산하면 최종적으로 리소스의 통신 가능 정책을 얻을 수 있다.
도 19는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 본 발명의 실시예들에 따른 네트워크 분석 장치(100)일 수 있다. 컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램, 및 상기 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 프로그램의 예는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 네트워크 분석 장치
102: 수신 모듈
104: 토폴로지 생성 모듈
106: 분석 모듈
302: 제1 분석 서브 모듈
304: 제2 분석 서브 모듈

Claims (24)

  1. 클라우드 서비스로부터, 상기 클라우드 서비스에 포함된 하나 이상의 리소스 정보 및 상기 하나 이상의 리소스의 네트워크 환경 정보를 수신하는 수신 모듈;
    상기 리소스 정보 및 상기 네트워크 환경 정보를 이용하여 상기 클라우드 서비스의 네트워크 토폴로지를 도출하는 토폴로지 생성 모듈; 및
    상기 네트워크 토폴로지로부터, 상기 하나 이상의 리소스 각각의 통신 가능 경로 및 상기 각 통신 가능 경로에서의 하나 이상의 통신 허용 정책을 도출하는 분석 모듈을 포함하는 네트워크 분석 장치.
  2. 청구항 1에 있어서,
    상기 네트워크 환경 정보는,
    상기 하나 이상의 리소스와 관련된 네트워크 인터페이스, 스테이트풀 방화벽 정책, 스테이트리스 방화벽 정책, 라우팅 테이블 및 게이트웨이 정보 중 하나 이상을 포함하는, 네트워크 분석 장치.
  3. 청구항 1에 있어서,
    상기 분석 모듈은,
    상기 하나 이상의 리소스 각각의 통신 가능 경로를 생성하는 제1 분석 서브 모듈; 및
    상기 통신 가능 경로상의 방화벽 정책 분석 및 라우팅 테이블 분석 중 하나 이상을 수행하여 상기 하나 이상의 통신 허용 정책을 도출하는 제2 분석 서브 모듈을 포함하는 네트워크 분석 장치.
  4. 청구항 3에 있어서,
    상기 제1 분석 서브 모듈은,
    상기 리소스에 할당된 아이피(IP)가 퍼블릭 아이피인 경우,
    상기 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 서브넷의 스테이트리스 방화벽, 및 상기 서브넷의 라우터 중 하나 이상을 포함하는 통신 경로를 식별하고,
    상기 라우터의 라우팅 목적지에 인터넷 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 외부 통신 가능 경로에 추가하는, 네트워크 분석 장치.
  5. 청구항 3에 있어서,
    상기 제1 분석 서브 모듈은,
    상기 리소스에 할당된 아이피(IP)가 프라이빗 아이피인 경우,
    상기 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 제1 서브넷의 제1 스테이트리스 방화벽, 및 제1 라우터 중 하나 이상을 포함하는 통신 경로를 식별하고,
    상기 제1 라우터의 라우팅 목적지에 NAT 게이트웨이가 포함되어 있는 경우, 상기 NAT 게이트웨이가 속한 제2 서브넷의 제2 스테이트리스 방화벽, 및 제2 라우터를 식별된 상기 통신 경로에 추가하는, 네트워크 분석 장치.
  6. 청구항 5에 있어서,
    상기 제1 분석 서브 모듈은,
    상기 제2 라우터의 라우팅 목적지에 인터넷 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 외부 통신 가능 경로에 추가하는, 네트워크 분석 장치.
  7. 청구항 3에 있어서,
    상기 제1 분석 서브 모듈은,
    상기 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 서브넷의 스테이트리스 방화벽, 및 상기 서브넷의 라우터를 포함하는 통신 경로를 식별하고,
    상기 라우터의 라우팅 목적지에 내부 통신용 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 내부 통신 가능 경로에 추가하는, 네트워크 분석 장치.
  8. 청구항 3에 있어서,
    상기 제2 분석 서브 모듈은,
    상기 통신 가능 경로상에 존재하는 하나 이상의 방화벽 각각의 개별 통신 허용 정책을 도출하고, 상기 개별 통신 허용 정책으로부터 상기 하나 이상의 방화벽의 통신 허용 정책을 도출하는, 네트워크 분석 장치.
  9. 청구항 8에 있어서,
    상기 제2 분석 서브 모듈은,
    상기 방화벽이 스테이트리스 방화벽인 경우,
    상기 스테이트리스 방화벽의 통신 가능 대역 정보, 및 상기 스테이트리스 방화벽과 연결된 리소스의 동적 포트(Dynamic Port) 허용 정책을 비교하여 상기 스테이트리스 방화벽의 통신 허용 정책을 도출하는, 네트워크 분석 장치.
  10. 청구항 8에 있어서,
    상기 제2 분석 서브 모듈은,
    상기 통신 가능 경로 중 동일 계층에 위치한 방화벽의 상기 개별 통신 허용 정책 간에는 병렬 분석을 적용하고, 서로 다른 계층에 위치한 방화벽의 상기 개별 통신 허용 정책 간에는 직렬 분석을 적용하여 방화벽의 상기 방화벽의 통신 허용 정책을 도출하는, 네트워크 분석 장치.
  11. 청구항 8에 있어서,
    상기 제2 분석 모듈은,
    상기 통신 가능 경로상에 위치한 하나 이상의 라우터 각각의 라우팅 테이블로부터 라우팅 허용 정책을 도출하고,
    상기 방화벽 통신 허용 정책 및 상기 라우팅 허용 정책의 교집합을 상기 리소스의 통신 허용 정책으로 도출하는, 네트워크 분석 장치.
  12. 청구항 11에 있어서,
    상기 제2 분석 모듈은,
    상기 라우팅 테이블의 라우팅 정책 중 상기 통신 가능 경로의 목적지에 대응되는 라우팅 정책을 식별하여 상기 라우팅 허용 정책을 도출하는, 네트워크 분석 장치.
  13. 하나 이상의 프로세서들, 및
    상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
    클라우드 서비스로부터, 상기 클라우드 서비스에 포함된 하나 이상의 리소스 정보 및 상기 하나 이상의 리소스의 네트워크 환경 정보를 수신하는 단계;
    상기 리소스 정보 및 상기 네트워크 환경 정보를 이용하여 상기 클라우드 서비스의 네트워크 토폴로지를 도출하는 단계; 및
    상기 네트워크 토폴로지로부터, 상기 하나 이상의 리소스 각각의 통신 가능 경로 및 상기 각 통신 가능 경로에서의 하나 이상의 통신 허용 정책을 도출하는 단계를 포함하는 네트워크 분석 방법.
  14. 청구항 13에 있어서,
    상기 네트워크 환경 정보는,
    상기 하나 이상의 리소스와 관련된 네트워크 인터페이스, 스테이트풀 방화벽 정책, 스테이트리스 방화벽 정책, 라우팅 테이블 및 게이트웨이 정보 중 하나 이상을 포함하는, 네트워크 분석 방법.
  15. 청구항 13에 있어서,
    상기 통신 허용 정책을 도출하는 단계는,
    상기 하나 이상의 리소스 각각의 통신 가능 경로를 생성하는 제1 분석 단계; 및
    상기 통신 가능 경로상의 방화벽 정책 분석 및 라우팅 테이블 분석 중 하나 이상을 수행하여 상기 하나 이상의 통신 허용 정책을 도출하는 제2 분석 단계를 포함하는 네트워크 분석 방법.
  16. 청구항 15에 있어서,
    상기 제1 분석 단계는,
    상기 리소스에 할당된 아이피(IP)가 퍼블릭 아이피인 경우,
    상기 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 서브넷의 스테이트리스 방화벽, 및 상기 서브넷의 라우터 중 하나 이상을 포함하는 통신 경로를 식별하고,
    상기 라우터의 라우팅 목적지에 인터넷 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 외부 통신 가능 경로에 추가하도록 구성되는, 네트워크 분석 방법.
  17. 청구항 15에 있어서,
    상기 제1 분석 단계는,
    상기 리소스에 할당된 아이피(IP)가 프라이빗 아이피인 경우,
    상기 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 제1 서브넷의 제1 스테이트리스 방화벽, 및 제1 라우터 중 하나 이상을 포함하는 통신 경로를 식별하고,
    상기 제1 라우터의 라우팅 목적지에 NAT 게이트웨이가 포함되어 있는 경우, 상기 NAT 게이트웨이가 속한 제2 서브넷의 제2 스테이트리스 방화벽, 및 제2 라우터를 식별된 상기 통신 경로에 추가하도록 구성되는, 네트워크 분석 방법.
  18. 청구항 17에 있어서,
    상기 제1 분석 단계는,
    상기 제2 라우터의 라우팅 목적지에 인터넷 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 외부 통신 가능 경로에 추가하도록 구성되는, 네트워크 분석 방법.
  19. 청구항 15에 있어서,
    상기 제1 분석 단계는,
    상기 리소스에 할당된 스테이트풀 방화벽, 상기 리소스가 속한 서브넷의 스테이트리스 방화벽, 및 상기 서브넷의 라우터를 포함하는 통신 경로를 식별하고,
    상기 라우터의 라우팅 목적지에 내부 통신용 게이트웨이가 포함된 경우, 식별된 상기 통신 경로를 상기 리소스의 내부 통신 가능 경로에 추가하도록 구성되는, 네트워크 분석 방법.
  20. 청구항 15에 있어서,
    상기 제2 분석 단계는,
    상기 통신 가능 경로상에 존재하는 하나 이상의 방화벽 각각의 개별 통신 허용 정책을 도출하고, 상기 개별 통신 허용 정책으로부터 상기 하나 이상의 방화벽의 통신 허용 정책을 도출하도록 구성되는, 네트워크 분석 방법.
  21. 청구항 20에 있어서,
    상기 제2 분석 단계는,
    상기 방화벽이 스테이트리스 방화벽인 경우,
    상기 스테이트리스 방화벽의 통신 가능 대역 정보, 및 상기 스테이트리스 방화벽과 연결된 리소스의 동적 포트(Dynamic Port) 허용 정책을 비교하여 상기 스테이트리스 방화벽의 통신 허용 정책을 도출하도록 구성되는, 네트워크 분석 방법.
  22. 청구항 20에 있어서,
    상기 제2 분석 단계는,
    상기 통신 가능 경로 중 동일 계층에 위치한 방화벽의 상기 개별 통신 허용 정책 간에는 병렬 분석을 적용하고, 서로 다른 계층에 위치한 방화벽의 상기 개별 통신 허용 정책 간에는 직렬 분석을 적용하여 방화벽의 상기 방화벽의 통신 허용 정책을 도출하도록 구성되는, 네트워크 분석 방법.
  23. 청구항 20에 있어서,
    상기 제2 분석 단계는,
    상기 통신 가능 경로상에 위치한 하나 이상의 라우터 각각의 라우팅 테이블로부터 라우팅 허용 정책을 도출하고,
    상기 방화벽 통신 허용 정책 및 상기 라우팅 허용 정책의 교집합을 상기 리소스의 통신 허용 정책으로 도출하도록 구성되는, 네트워크 분석 방법.
  24. 청구항 23에 있어서,
    상기 제2 분석 단계는,
    상기 라우팅 테이블의 라우팅 정책 중 상기 통신 가능 경로의 목적지에 대응되는 라우팅 정책을 식별하여 상기 라우팅 허용 정책을 도출하도록 구성되는, 네트워크 분석 방법.
KR1020200146718A 2020-11-05 2020-11-05 클라우드 환경에서의 네트워크 분석 장치 및 방법 KR20220060762A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200146718A KR20220060762A (ko) 2020-11-05 2020-11-05 클라우드 환경에서의 네트워크 분석 장치 및 방법
US17/514,029 US11882018B2 (en) 2020-11-05 2021-10-29 Apparatus and method for analyzing network in cloud environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200146718A KR20220060762A (ko) 2020-11-05 2020-11-05 클라우드 환경에서의 네트워크 분석 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20220060762A true KR20220060762A (ko) 2022-05-12

Family

ID=81379304

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200146718A KR20220060762A (ko) 2020-11-05 2020-11-05 클라우드 환경에서의 네트워크 분석 장치 및 방법

Country Status (2)

Country Link
US (1) US11882018B2 (ko)
KR (1) KR20220060762A (ko)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101147376A (zh) * 2005-02-04 2008-03-19 诺基亚公司 降低tcp洪泛攻击同时节省无线网络带宽的装置、方法和计算机程序产品
US8621552B1 (en) * 2007-05-22 2013-12-31 Skybox Security Inc. Method, a system, and a computer program product for managing access change assurance
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
US10419393B2 (en) * 2017-05-11 2019-09-17 International Business Machines Corporation Using network configuration analysis to improve server grouping in migration
US11005893B2 (en) * 2018-12-04 2021-05-11 Microsoft Technology Licensing, Llc Automatic generation of security rules for network micro and nano segmentation
US11119739B1 (en) * 2019-06-21 2021-09-14 Amazon Technologies, Inc. Executable programs representing firewall rules for evaluating data packets
GB2587905B (en) * 2019-07-31 2021-12-22 Reliance Jio Infocomm Ltd System and method of mapping and diagnostics of data center resources
US11470047B1 (en) * 2019-11-29 2022-10-11 Amazon Technologies, Inc. Managed virtual networks for computing cloud edge locations

Also Published As

Publication number Publication date
US20220141122A1 (en) 2022-05-05
US11882018B2 (en) 2024-01-23

Similar Documents

Publication Publication Date Title
US11962572B2 (en) Policy-based network packet inspection and mediation
US11388200B2 (en) Scalable network security detection and prevention platform
US11095523B2 (en) Virtual network verification service
US20170063927A1 (en) User-Aware Datacenter Security Policies
US10708128B2 (en) Data driven orchestrated network with installation control using a light weight distributed controller
US8713628B2 (en) Method and system for providing cloud based network security services
CN109617753B (zh) 一种网络平台管理方法、系统及电子设备和存储介质
CN114070577A (zh) 基于云的安全服务的大规模本地化
US20230244540A1 (en) Multi-cloud control plane architecture
US20240056388A1 (en) Supporting overlapping network addresses universally
CN113852697B (zh) 一种sdp终端流量代理方法、装置、设备及存储介质
KR20220060762A (ko) 클라우드 환경에서의 네트워크 분석 장치 및 방법
US20220103526A1 (en) Policy integration for cloud-based explicit proxy
Cisco Controlling Network Access and Use
Cisco Controlling Network Access and Use
Aiello et al. Secure Access Service Edge Convergence: Recent Progress and Open Issues
DiCola et al. Microsoft Azure Network Security
US20230247016A1 (en) Propagating identities across different cloud services providers
KR102584579B1 (ko) SaaS 기반 데이터베이스 접근제어 게이트웨이 서비스 시스템 및 방법
CN114553828B (zh) 一种dns运维管理方法、装置、设备及介质
US20230247027A1 (en) Networking techniques for enabling communication between multiple cloud environments
US20230251908A1 (en) Observability framework for a multi-cloud infrastructure
Sandhu et al. Software‐Defined Networking: Recent Developments and Potential Synergies
CN116260600A (zh) 网络地址识别方法、装置及系统
KR20190043105A (ko) 효과적인 디도스 공격 완화를 위한 소프트웨어 정의 네트워킹 기반의 네트워크 보안 기능

Legal Events

Date Code Title Description
A201 Request for examination