KR102206562B1 - 원격 실행 코드 기반 노드의 제어 플로우 관리 시스템 및 그에 관한 방법 - Google Patents

원격 실행 코드 기반 노드의 제어 플로우 관리 시스템 및 그에 관한 방법 Download PDF

Info

Publication number
KR102206562B1
KR102206562B1 KR1020200098163A KR20200098163A KR102206562B1 KR 102206562 B1 KR102206562 B1 KR 102206562B1 KR 1020200098163 A KR1020200098163 A KR 1020200098163A KR 20200098163 A KR20200098163 A KR 20200098163A KR 102206562 B1 KR102206562 B1 KR 102206562B1
Authority
KR
South Korea
Prior art keywords
control flow
code
server
terminal
data packet
Prior art date
Application number
KR1020200098163A
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
Priority claimed from US16/580,974 external-priority patent/US11381557B2/en
Priority claimed from US16/580,866 external-priority patent/US11190494B2/en
Application filed by 프라이빗테크놀로지 주식회사 filed Critical 프라이빗테크놀로지 주식회사
Priority to US17/656,152 priority Critical patent/US20220247748A1/en
Priority to PCT/KR2020/012927 priority patent/WO2021060857A1/ko
Application granted granted Critical
Publication of KR102206562B1 publication Critical patent/KR102206562B1/ko

Links

Images

Classifications

    • 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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • 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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • H04L47/323Discarding or blocking control packets, e.g. ACK packets
    • 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/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/306Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information intercepting packet switched data communications, e.g. Web, Internet or IMS communications
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)

Abstract

본 발명의 실시 예에 따른 서버에서의 제어 플로우 관리 방법은 상기 단말로부터 제어 플로우 생성 요청 데이터 패킷을 수신하는 단계와 제어 플로우 통신 코드를 상기 단말로 전송하는 단계와 상기 제어 플로우 통신 코드에 대한 실행 결과를 상기 단말로부터 수신하는 단계를 포함하고, 상기 제어 플로우 통신 코드에 대한 실행 결과가 정상인 경우 상기 단말과 상기 제어 플로우를 생성하고, 상기 실행 결과 값이 비정상이거나 상기 실행 결과가 일정 시간 이내에 상기 단말로부터 수신되지 않는 경우 상기 단말과의 상기 제어 플로우 생성을 차단할 수 있다.

Description

원격 실행 코드 기반 노드의 제어 플로우 관리 시스템 및 그에 관한 방법{SYSTEM FOR MANAGING CONTROL FLOW FOR REMOTE EXECUTION CODE BASED NODE AND METHOD THEREOF}
본 문서에서 개시되는 실시예들은, 원격 실행 코드 기반 노드의 안전한 제어 플로우 생성 및 유지를 위한 기술과 관련된다.
정보통신기술(ICT)과 전통산업의 융합으로 촉진된 4차 산업혁명은 산업 간 기술의 경계를 허물고 있다. ICT에 기반한 비즈니스 경험이 없는 전통산업 기업들까지 기존에 경험하지 못했던 사이버 보안 위협에 대응해야 하는 상황에 놓이게 되었다.
도 1을 참조하면, 종래의 네트워크는 실행 모듈(21)과 통신 모듈(22)을 포함하는 통신 애플리케이션(20)이 탑재된 단말(10)과 단말(10)과 통신 연결하여 특정 서비스를 제공하는 서버(30)를 포함하여 구성되었다.
종래 통신 애플리케이션(20)은 서버(30)와의 네트워크 접속을 위한 통신 모듈(22)이 배포된 상태로 배포되었으며, 단일 통신 채널을 구성하여 서버(30)와 직접 연결되었다.
종래 통신 애플리케이션(20)은 서버(30)와의 통신 구간을 보호하기 위해 HTTPS(Hyper Text Protocol Secure), HTTP over TLS((Hyper Text Protocol over Transaction Layer Security), End to End Security, SSL-VPN(Secure Sockets Layer-Virtual Private Network) 기술 등이 적용되었다.
이러한 배포 및 통신 구조를 갖는 통신 애플리케이션은 최초 배포 시 모든 통신 프로토콜 및 정보를 포함하고 있기 때문에 역공학(Reverse Engineering, RE)에 의한 각종 위/변조 및 인증 우회 등으로 인한 위협에 대응하기 어려운 문제점을 가지고 있다.
특히, 제어 플로우와 데이터 플로우의 분리 없이 단일 채널로 통신하는 구조를 갖고 있기 때문에 네트워크 접속 제어 및 위협 발생 시 완전한 네트워크 접속 차단이 어려운 문제점이 있었다.
최근 악성 코드 또는 악의적 행위들은 단일 통신 채널의 문제점을 이용해서 기존의 네트워크 경계를 무력화하고 직접적인 서버 공격을 발생시키고 있다.
통신 애플리케이션의 역공학을 방지하기 위한 난독화 기술, 위변조 탐지 및 방지 기술의 대표적인 예인 동적으로 모듈을 다운로드 받아 실행하는 기술이 통신 애플리케이션 보호를 위해 도입되고 있으나, 해당 기술은 애플리케이션을 보호하기 단편적인 기술일 뿐 효과적인 역공학 방지가 어려운 문제점이 있다.
실제 환경에서 종래 애플리케이션 통신은 다양한 보안 기술을 적용하여도 보안 모듈을 우회한 이후에 데이터 패킷이 전송되는 것을 차단하거나 필터링할 수 있는 근본적인 해결책을 제시해주고 있지 못하고 있다.
특히, 애플리케이션의 보안 기술 우회는 점점 그 공격이 정교해지고 있으며, 시간이 지나면 결과적으로 애플리케이션의 보안 기술은 무력화될 수 밖에 없기 때문에 근본적인 대안이 요구되고 있는 실정이다.
본 발명의 목적은 원격 실행 코드 기반 노드의 제어 플로우 관리 시스템 및 그에 관한 방법을 제공하는 것이다.
본 발명의 다른 목적은 제로 트러스트 환경에서 단말 애플리케이션과 컨트롤러(또는 서버)간에 안전한 제어 플로우를 생성하여 안전한 인증, 인가, 제어 체계 확보가 가능하고, 제어 플로우 보호를 위한 상시 위협 감시 기능, 메모리상에서의 제어 플로우 추적을 무력화시키는 패치 기술, 위협 발견 또는 제어 플로우 종료 시 데이터 플로우를 강제 종료 시킴으로써 더 이상 네트워크에서 데이터 패킷을 전송할 없도록 제어하는 격리 기술을 제공하는 것이다.
본 발명의 또 다른 목적은 제어 플로우 보호에 집중하여 최소화된 공격 표면 관리를 통한 위협 최소화를 제공하고, 제어 플로우 위협 발견 시 즉각적인 데이터 플로우 제거를 통해 효율적인 통신 차단 및 애플리케이션이 더 이상 사용될 수 없도록 제어하는 것이 가능한 개선된 보안 기술을 제공하는 것이다.
본 발명의 또 다른 목적은 제어 플로우 생성 요청에 따라 전송한 제어 플로우 통신 및 원격 실행 코드의 실행 결과를 해당 단말로부터 수신 시 제어 플로우 생성을 완료하거나, 실행 결과가 미리 정의된 시간 이내에 수신되지 않았거나 실행 결과 값이 기대 값과 상이한 경우 제어 플로우 생성을 거절하는 서버를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재들로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 문서에 개시되는 일 실시예에 따른 단말에서의 제어 플로우 관리 방법은 서버로 제어 플로우 생성 요청 데이터 패킷을 전송하는 단계와 제어 플로우 통신 코드를 상기 서버로부터 수신하는 단계와 상기 수신된 제어 플로우 통신 코드를 가상 머신에 적재하여 실행하는 단계와 상기 실행 결과를 상기 서버로 전송하는 단계를 포함하고, 상기 제어 플로우 통신 코드에 대한 실행 결과가 정상인 경우 상기 제어 플로우가 생성되고, 상기 실행 결과 값이 비정상이거나 상기 실행 결과가 일정 시간 이내에 상기 서버에 수신되지 않는 경우 상기 제어 플로우 생성이 상기 서버에 의해 차단될 수 있다.
실시 예로, 상기 방법은 상기 제어 플로우 통신 코드가 정상적으로 실행되었음을 지시하는 제어 플로우 통신 코드 실행 완료 데이터 패킷을 상기 서버로 전송하는 단계와 상기 제어 플로우 생성이 완료되었음을 지시하는 제어 플로우 생성 완료 데이터 패킷을 상기 서버로부터 수신하는 단계를 더 포함하고, 가상화된 API(Application Protocol Interface)를 이용하여 상기 생성된 제어 플로우를 기반으로 상기 단말의 모든 요청이 상기 서버로 전송될 수 있다.
실시 예로, 상기 제어 플로우 통신 코드는 상기 가상 머신에서 실행 가능한 바이트 코드이고, 별도의 디스크에 저장되지 않고 상기 가상 머신의 상기 메모리상에 직접 실시간 적재되어 실행될 수 있다.
실시 예로, 상기 방법은 상기 제어 플로우 생성 완료 데이터 패킷에 포함된 상태 값이 정상인 경우, 제어 플로우 폴링을 시작하는 단계와 상기 폴링 중 실행할 탐지 코드 존재 시 상기 탐지 코드를 실행하는 단계와 탐지 코드 실행 결과가 포함된 제어 플로우 폴링 정보를 상기 서버로 전송하는 단계를 더 포함하고, 상기 탐지 코드 실행 결과에 기초하여 상기 서버에 의해 패치가 필요한 것으로 판단된 경우, 상기 새로운 패치 코드가 상기 서버로부터 수신될 수 있다.
실시 예로, 상기 패치 코드 수신에 따라 기존 제어 플로우 통신 코드는 상기 가상 머신의 메모리상에서 삭제되고, 상기 패치 코드의 실행을 통해 상기 제어 플로우가 갱신될 수 있다.
실시 예로, 상기 방법은 상기 새로운 탐지 코드, 상기 새로운 탐지 코드를 실행하기 위한 엔트리 포인트 및 상기 새로운 탐지 코드의 잔여 실행 회수에 관한 정보가 포함된 폴링 정보 처리 결과 데이터 패킷을 상기 제어 플로우를 통해 상기 서버로부터 수신하는 단계와 상기 새로운 탐지 코드를 상기 가상 머신의 메모리에 적재하는 단계와 상기 엔트리 포인트 및 상기 잔여 실행 회수에 관한 정보를 탐지 코드 실행 큐에 추가하는 단계를 포함하고, 다음 폴링 시각에 상기 탐지 코드 실행 큐를 참조하여 상기 새로운 탐지 코드가 실행될 수 있다.
실시 예로, 상기 폴링은 미리 설정된 정책에 따라 일정 주기로 수행되되, 상기 폴링 수행 시마다 상기 잔여 실행 회수가 1만큼 감소되고, 상기 잔여 실행 회수가 0 이 되면, 상기 새로운 탐지 코드가 상기 제어 플로우를 통해 상기 서버러로부터 수신되어 상기 메모리에 적재된 후 실행될 수 있다.
실시 예로, 상기 방법은 수신되는 데이터 패킷의 상태 값이 비정상인 경우, 상기 수신된 데이터 패킷의 유효성 검사에 실패한 경우, 종료 또는 중지 사유가 발생한 경우, 위협이 탐지된 경우, 탐지 코드 실행 실패인 경우 및 제어 플로우 갱신 실패인 경우 중 어느 하나의 경우에 해당되면, 상기 서버로 제어 플로우 종료 요청 데이터 패킷을 전송하는 단계를 더 포함하고, 상기 제어 플로우 종료 요청 데이터 패킷 전송에 따라 해당 제어 플로우 및 해당 제어 플로우와 관련된 모든 데이터 플로우가 해제될 수 있다.
실시 예로, 상기 방법은 상기 제어 플로우 통신 코드에 터널 생성 정보가 포함된 경우, 상기 터널 생성 정보를 이용하여 상기 서버로 터널 생성을 요청하는 단계를 더 포함하고, 상기 터널 생성 정보는 터널 종류, 터널 방식, 상호 키교환을 위한 인증 정보 중 적어도 하나를 포함할 수 있다.
본 발명의 다른 실시 예에 따른 서버와 통신하는 단말은 서버로 제어 플로우 생성 요청 데이터 패킷을 전송하고, 제어 플로우 통신 코드를 상기 서버로부터 수신하고, 상기 제어 플로우 통신 코드에 대한 실행 결과를 상기 서버로 전송하는 실행 모듈과 상기 수신된 제어 플로우 통신 코드가 적재되는 메모리와 상기 적재된 제어 플로우 통신 코드를 상기 메모리상에서 실행시키는 가상 머신을 포함하고, 상기 제어 플로우 통신 코드에 대한 실행 결과가 정상인 경우 상기 제어 플로우가 생성되고, 상기 실행 결과 값이 비정상이거나 상기 실행 결과가 일정 시간 이내에 상기 서버에 수신되지 않는 경우 상기 제어 플로우의 생성이 상기 서버에 의해 차단될 수 있다.
실시 예로, 상기 단말은 상기 제어 플로우 통신 코드가 정상적으로 실행되었음을 지시하는 제어 플로우 통신 코드 실행 완료 데이터 패킷을 상기 서버로 전송하는 수단과 상기 제어 플로우 생성이 완료되었음을 지시하는 제어 플로우 생성 완료 데이터 패킷을 상기 서버부터 수신하는 수단이 구비될 수 있다.
실시 예로, 상기 제어 플로우 통신 코드는 상기 가상 머신에서 실행 가능한 바이트 코드이고, 별도의 디스크에 저장되지 않고 상기 가상 머신의 상기 메모리상에 직접 실시간 적재되어 실행될 수 있다.
실시 예로, 상기 단말은 상기 제어 플로우 생성 완료 데이터 패킷에 포함된 상태 값이 정상인 경우, 제어 플로우 폴링을 시작하는 수단과 상기 폴링 중 실행할 탐지 코드 존재 시 상기 탐지 코드를 실행하는 수단과 탐지 코드 실행 결과가 포함된 제어 플로우 폴링 정보를 상기 서버로 전송하는 수단을 포함하고, 상기 탐지 코드 실행 결과에 기초하여 상기 서버에 의해 패치가 필요한 것으로 판단된 경우, 상기 새로운 패치 코드가 상기 서버로부터 수신될 수 있다.
실시 예로, 상기 패치 코드 수신에 따라 기존 제어 플로우 통신 코드는 상기 가상 머신의 상기 메모리상에서 삭제되고, 상기 패치 코드의 실행을 통해 상기 제어 플로우가 갱신될 수 있다.
실시 예로, 상기 단말은 상기 새로운 탐지 코드, 상기 새로운 탐지 코드를 실행하기 위한 엔트리 포인트 및 상기 새로운 탐지 코드의 잔여 실행 회수에 관한 정보가 포함된 폴링 정보 처리 결과 데이터 패킷을 상기 제어 플로우를 통해 수신하는 수단과 상기 새로운 탐지 코드를 상기 가상 머신의 상기 메모리에 적재하는 수단과 상기 엔트리 포인트 및 상기 잔여 실행 회수에 관한 정보를 탐지 코드 실행 큐에 추가하는 수단을 포함하고, 다음 폴링 시각에 상기 탐지 코드 실행 큐를 참조하여 상기 새로운 탐지 코드를 실행할 수 있다.
실시 예로, 상기 폴링은 미리 설정된 정책에 따라 일정 주기로 수행되되, 상기 폴링 수행 시마다 상기 잔여 실행 회수가 1만큼 감소되고, 상기 잔여 실행 회수가 0 이 되면, 상기 새로운 탐지 코드가 상기 제어 플로우를 통해 상기 서버로부터 수신되어 상기 메모리에 적재된 후 실행될 수 있다.
실시 예로, 상기 단말은 수신되는 데이터 패킷의 상태 값이 비정상인 경우, 상기 수신된 데이터 패킷의 유효성 검사에 실패한 경우, 종료 또는 중지 사유가 발생한 경우, 위협이 탐지된 경우, 탐지 코드 실행 실패인 경우 및 제어 플로우 갱신 실패인 경우 중 어느 하나의 경우에 해당되면, 상기 서버로 제어 플로우 종료 요청 데이터 패킷을 전송하는 수단을 더 포함하고, 상기 제어 플로우 종료 요청 데이터 패킷 전송에 따라 해당 제어 플로우 및 해당 제어 플로우와 관련된 모든 데이터 플로우가 해제될 수 있다.
실시 예로, 상가 단말은 상기 제어 플로우 통신 코드에 터널 생성 정보가 포함된 경우, 상기 터널 생성 정보를 이용하여 상기 서버로 터널 생성을 요청하는 수단을 더 포함하고, 상기 터널 생성 정보는 터널 종류, 터널 방식, 상호 키교환을 위한 인증 정보 중 적어도 하나를 포함할 수 있다.
본 발명의 또 다른 실시 예에 따른 서버에서의 제어 플로우 관리 방법은 상기 단말로부터 제어 플로우 생성 요청 데이터 패킷을 수신하는 단계와 제어 플로우 통신 코드를 상기 단말로 전송하는 단계와 상기 제어 플로우 통신 코드에 대한 실행 결과를 상기 단말로부터 수신하는 단계를 포함하고, 상기 제어 플로우 통신 코드에 대한 실행 결과가 정상인 경우 상기 단말과 상기 제어 플로우를 생성하고, 상기 실행 결과 값이 비정상이거나 상기 실행 결과가 일정 시간 이내에 상기 단말로부터 수신되지 않는 경우 상기 단말과의 상기 제어 플로우 생성을 차단할 수 있다.
본 발명의 또 다른 실시 예에 따른 제어 플로우 관리 시스템은 제어 플로우 생성 요청 데이터 패킷을 전송하여 제어 플로우 통신 코드를 수신하여 실행하고, 상기 제어 플로우 통신 코드에 대한 실행 결과를 전송하는 단말과 상기 제어 플로우 생성 요청 데이터 패킷 수신 시 상기 단말에 상응하는 상기 제어 플로우 통신 코드를 생성하거나 미리 생성되어 원격 실행 코드 테이블에 유지된 상기 단말에 상응하는 상기 제어 플로우 통신 코드를 추출하여 상기 단말로 전송하고, 상기 제어 플로우 통신 코드에 대한 실행 결과가 정상인 경우 상기 단말과 상기 제어 플로우를 생성하고, 상기 실행 결과 값이 비정상이거나 상기 실행 결과가 일정 시간 이내에 수신되지 않는 경우 상기 단말과의 상기 제어 플로우 생성을 차단하는 서버와 상기 서버의 제어에 따라 상기 단말과 목적지 네트워크 사이에 데이터 플로우를 생성하는 게이트웨이를 포함할 수 있다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 문서에 개시되는 실시예들에 따르면, 본 발명은 원격 실행 코드 기반 노드의 제어 플로우 관리 시스템 및 그에 관한 방법을 제공하는 장점이 있다.
또한, 본 문서에 개시되는 실시예들에 따르면, 본 발명은 제로 트러스트 환경에서 애플리케이션과 컨트롤러간에 안전한 제어 플로우를 생성하여 안전한 인증, 인가, 제어 체계 확보가 가능하고, 제어 플로우 보호를 위한 상시 위협 감시 기술, 메모리상에서의 제어 플로우 추적을 무력화시키는 패치 기술 및 위협 발견 또는 제어 플로우 종료 시 데이터 플로우를 강제 종료 시킴으로써 더 이상 네트워크에서 데이터 패킷을 전송할 없도록 제어하는 격리 기술을 제공할 수 있는 장점이 있다.
또한, 본 문서에 개시되는 실시예들에 따르면, 본 발명은 제어 플로우 보호에 집중하여 최소화된 공격 표면 관리를 통한 위협 최소화를 제공하고, 제어 플로우 위협 발견 시 즉각적인 데이터 플로우 제거를 통해 효율적인 통신 차단 및 애플리케이션이 더 이상 사용될 수 없도록 제어하는 것이 가능한 개선된 보안 기술을 제공하는 장점이 있다.
또한, 본 발명은 제어 플로우 생성 요청에 따라 전송한 제어 플로우 통신 및 원격 실행 코드의 실행 결과를 해당 단말로부터 수신 시 제어 플로우 생성을 완료하거나, 실행 결과가 미리 정의된 시간 이내에 수신되지 않았거나 실행 결과 값이 기대 값과 상이한 경우 제어 플로우 생성을 거절하는 서버를 제공하는 장점이 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은 종래의 일반적인 네트워크 구조를 설명하기 위한 도면이다.
도 2는 본 발명의 실시 예에 따른 경계 네트워크(또는 제어 플로우 관리 시스템) 구조이다.
도 3a 내지 3b는 일반적인 네트워크 토폴로지를 설명하기 위한 도면이다.
도 3c 내지 3d는 실시 예에 따른 네트워크 토폴로지를 설명하기 위한 도면이다.
도 4는 본 발명의 실시 예에 따른 경계 제어 플로우 브로커의 동작을 설명하기 위한 도면이다.
도 5는 본 발명의 다른 실시 예에 따른 경계 제어 플로우 브로커의 동작을 설명하기 위한 도면이다.
도 6은 본 발명의 실시 예에 따른 제어 플로우 통신 코드 갱신 동작을 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예에 따른 PCFB와 경계 컨트롤러 사이의 제어 플로우 생성 절차를 설명하기 위한 도면이다.
도 8은 실시 예에 따른 제어 플로우 폴링 절차를 설명하기 위한 도면이다.
도 9는 실시 예에 따른 제어 플로우 패치 절차를 설명하기 위한 도면이다.
도 10은 실시 예에 따른 제어 플로우 제거 절차를 설명하기 위한 도면이다.
도 11은 실시 예에 따른 통신 구간 보호 절차를 설명하기 위한 도면이다.
도 12는 본 발명의 실시 예에 따른 경계 컨트롤러의 구조를 설명하기 위한 블록도이다.
도 13은 본 발명의 실시 예에 따른 제어 플로우 정보를 설명하기 위한 도면이다.
도 14는 실시 예에 따른 단말 또는 PCFB의 메모리에 전개되는 제어 플로우 통신 코드 정보를 설명하기 위한 도면이다.
도 15는 실시 예에 따른 단말 측에 유지되는 탐지 코드 실행 큐를 설명하기 위한 도면이다.
도 16은 실시 예에 따른 경계 컨트롤러의 상태 다이어그램을 보여준다.
도면의 설명과 관련하여, 동일 또는 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다.
본 문서에서 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나",“A 또는 B 중 적어도 하나”, "A, B 또는 C", "A, B 및 C 중 적어도 하나” 및 “A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, “기능적으로” 또는 “통신적으로”라는 용어와 함께 또는 이런 용어 없이, “커플드” 또는 “커넥티드”라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 설명되는 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시 예들에 따르면, 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
본 문서에서 사용되는 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시 예들은 기기(machine) 의해 읽을 수 있는 저장 매체(storage medium)(예: 메모리)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램 또는 애플리케이션)로서 구현될 수 있다. 예를 들면, 기기의 프로세서는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 애플리케이션 스토어(예: 플레이 스토어™)를 통해 또는 두 개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 애플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
이하 도 2 내지 도 16을 참조하여 본 발명의 실시 예에 따른 원격 실행 코드 기반 노드의 제어 플로우 관리 시스템 및 그에 관한 방법을 상세히 설명하기로 한다.
도 2는 본 발명의 실시 예에 따른 경계 네트워크(또는 제어 플로우 관리 시스템) 구조이다.
도 2를 참조하면, 경계 네트워크(Perimeter Network, 200)(또는 제어 플로우 관리 시스템)은 경계 컨트롤러(210, Perimeter Controller), 경계 브로커 또는 종단 노드(Perimeter Broker or End Node, 220), 경계 게이트웨이(Perimeter Gateway, 230) 및 목적지 네트워크(Destination Network, 240)을 포함하여 구성될 수 있다.
여기서, 경계 컨트롤러(210)는 서버의 역할을 수행하고, 경계 브로커(220)는 단말에 탑재되어 경계 컨트롤러(210)의 제어 하에 단말과 경계 컨트롤러(210) 사이의 제어 플로우를 생성하고, 생성된 제어 플로우를 통해 제어 데이터 패킷을 전송하거나 수신할 수 있는 네트워크 접속 제어 애플리케이션일 수 있다. 예를 들어, 네트워크 접속 제어 애플리케이션은 사용자 인증, 목적지 네트워크로의 접속을 요청하는 네트워크 접속 절차, 또는 경계 컨트롤러(210)와 다른 제어 절차를 수행할 수 있다.
실시 예로, 경계 브로커(220)는 제어 플로우 생성을 경계 컨트롤러(210)로 요청하여 제어 플로우 통신 및 원격 실행 코드를 경계 컨트롤러(210)로부터 수신하여 적재할 수 있으며, 적재된 코드를 실행한 후 실행 결과를 경계 컨트롤러(210)로 전송할 수 있다. 만약, 실행 결과가 정상인 경우, 경계 컨트롤러(210)는 제어 플로우 생성을 완료하고, 실행 결과가 미리 정의된 시간 이내에 수신되지 않았거나 실행 결과 값이 기대 값과 상이한 경우, 제어 플로우 생성을 거절(또는 차단)할 수 있다.
실시 예로, 단말의 경계 브로커(220)와 서버인 경계 컨트롤러(210) 사이에 제어 플로우가 정상적으로 생성된 이후에도 경계 컨트롤러(210)는 일정 주기로 제어 플로우를 갱신할 수 있다. 만약, 제어 플로우 갱신에 실패하거나(즉, 일정 시간 이내에 제어 플로우 갱신에 대한 실행 결과가 단말로부터 수신되지 않은 경우), 제어 플로우 갱신에 대한 실행 결과 값이 기대 값과 상이한 경우, 경계 컨트롤러(210)는 해당 단말과 설정된 제어 플로우 및 데이터 플로우를 제거하여 해당 단말의 네트워크 접속을 차단할 수 있다.
다른 실시 예로, 경계 컨트롤러(210)는 단말에 대한 추가적인 검사가 필요한 경우, 갱신 주기와 상관없이도 제어 플로우 갱신 절차를 개시할 수 있다. 경계 컨트롤러(210)는 추가 검사 필요 시 새로운 원격 실행 코드를 생성하여 단말에 전송하고, 해당 코드에 대한 실행 결과가 일정 시간 이내에 수신되지 않거나, 실행 결과 값이 비정상적인 경우, 경계 컨트롤러(210)는 해당 단말에 설정된 제어 플로우 및 데이터 플로우를 제거하여 해당 단말의 네트워크 접속을 차단할 수 있다.경계 컨트롤러(210)는 단말과 단말 사이에서 다양한 컴포넌트를 제어할 수도 있다.
일 예로, 경계 컨트롤러(210)에 의해 제어되는 컴포넌트는 경계 브로커(220) 및 경계 게이트웨이(230) 뿐만 아니라 종단간(Peer 2 Peer) 통신 네트워크 구현 시 목적지 네트워크(240)에 존재하는 애플리케이션 또는 해당 애플리케이션이 탑재된 단말 등 네트워크 상에서의 모든 기기를 포함할 수 있다.
경계 브로커(220)는 단말의 데이터 패킷을 최초로 수신하는 통신 애플리케이션이 탑재된 컴포넌트일 수 있다. 경계 브로커(220)는 단말에 내장되는 컴포넌트일 수 있으나, 이는 하나의 실시 예에 불과하며, 단말과 유선 또는 무선으로 통신할 수 있는 통신 모뎀 및 통신 애플리케이션이 탑재된 별도의 장비일 수 있다.
경계 게이트웨이(230)는 네트워크 경계에서 인가 또는 승인된 데이터 패킷만이 포워딩 및(또는) 라우팅될 수 있도록 제어를 수행하는 통신 애플리케이션이 탑재된 컴포넌트일 수 있다.
도 3a 내지 3b는 일반적인 네트워크 토폴로지를 설명하기 위한 도면이다.
일반적인 네트워크 토폴로지의 경우, 단말과 네트워크 경계 그리고 접속 대상 네트워크 사이의 IP(Internet Protocol) 기술을 통한 데이터 플로우 구조에서 경계 컨트롤러(210)의 제어를 받아야 하는 컴포넌트를 대상으로 제어 플로우가 형성되어 있어야 한다.
도 3a를 참조하면, 제어 플로우는 경계 컨트롤러(210)와 경계 브로커(220), 경계 컨트롤러(210)와 경계 게이트웨이(230) 사이에 형성될 수 있다.
실제로 경계 네트워크(200)는 도 3a에 도시된 바와 같이, 경계 네트워크(200) 상에 제어 플로우만 구성되고, 대상 네트워크-예를 들면, 목적지 네트워크(240)-에 접속하기 위한 데이터 플로우는 형성되지 않은 상태에서 시작될 수 있다.
데이터 플로우가 형성되지 않은 경우 컴포넌트들은 물리적으로 네트워크에 연결되어 있지만, 대상 네트워크에 접속할 수 있는 통로인 터널이 존재하지 않기 때문에 데이터 패킷이 대상 네트워크로 전달될 수 없다.
기본적으로 상기의 토폴로지는 제어 플로우에 의해 단말이 통제 받는 구조를 제공함으로써, 도 3b에 도시된 바와 같이, 단일 채널로 제어 데이터 및 일반 데이터가 혼용되어 사용됨으로써, 각종 위협으로부터 비교적 안전한 요소를 제공할 수 있지만, 여전히 제로 트러스트 환경에서 제어 플로우의 안전을 보장하기 어려운 문제점이 있다.
도 3c 내지 3d는 실시 예에 따른 네트워크 토폴로지를 설명하기 위한 도면이다.
실시 예에 따른 네트워크 토폴로지는 경계 브로커(220)(또는 단말)과 경계 컨트롤러(210) 사이 및 경계 컨트롤러(210)와 경계 게이트웨이(230) 사이의 통신 구간을 보호하기 위해 터널링 기술 또는 자체적인 보호 기술을 적용하여 안전한 제어 플로우 기반으로 통신할 수 있는 방법을 제공할 수 있다.
도 3c를 참조하면, 실시 예에 따른 네트워크 토폴로지는 제어 플로우와 별도로 데이터 플로우가 생성될 수 있다.
제어 플로우는 경계 컨트롤러(210)와 경계 브로커(220) 사이 및 경계 컨트롤로(210)와 경계 게이트웨이(230) 사이에 형성될 수 있다.
데이터 플로우는 경계 브로커(220)와 경계 게이트웨이(230) 사이 및 경계 게이트웨이(230)와 목적지 네트워크(240) 사이에 형성될 수 있다.
본 실시 예에 따른 네트워크 토폴로지상에서 경계 브로커(220)(또는 단말)은 목적지 네트워크(240)와의 통신을 위한 각종 인가 및 인증 요청을 안전한 제어 플로우 기반으로 수행할 수 있으며, 경계 컨트롤러(210)는 제로 트러스트 상태인 각 단말의 다양한 위협을 탐지하지 위한 탐지 코드(Inspection Code)를 경계 브로커(220)(또는 단말)에 전송하고, 원격 실행 결과를 확인하여 위협 여부를 탐지할 수 있다.
또한, 본 실시 예에 따른 네트워크 토폴로지상에서 경계 브로커(220)(또는 단말)은 제어 플로우가 형성된 코드의 위변조 및 우회를 막기 위해 지속적인 메모리 위치 및 코드 변화, 구간 암호화 정보 또는 터널링 정보 변경 등 지속적으로 변화하는 제어 플로우 환경을 제공하기 위한 패치 코드를 실행할 수 있으며, 그를 통해 제어 플로우를 효과적으로 보호할 수 있다.
경계 브로커(220)(또는 단말)은 안전한 제어 플로우 기반의 대상 네트워크와의 통신을 위해 인가 및 인증 요청을 수행하여 데이터 플로우를 생성함으로써, 경계 브로커(220)(또는 단말)과 대상 네트워크 간의 안전한 통신을 보장할 수 있으며, 인가된 대상에 대해서만 통신을 수행될 수 있는 접속성 제어 기술이 탑재될 수 있다.
도 3d를 참조하면, 경계 컨트롤러(210)는 지속적인 위협 탐지 절차를 통해 각종 위협이 탐지된 경우, 또는 정상적으로 경계 브로커(220)(또는 단말)로부터 통신 종료 요청이 있는 경우, 생성된 제어 플로우를 회수하고, 회수된 제어 플로우에 상응하는 데이터 플로우를 모두 회수함으로써, 경계 브로커(220)(또는 단말)이 목적지 네트워크(240)로 데이터 패킷을 전송할 수 없는 상태로 변경할 수 있다.
도 4는 본 발명의 실시 예에 따른 경계 제어 플로우 브로커의 동작을 설명하기 위한 도면이다.
도 2 및 4를 참조하면, 경계 제어 플로우 브로커(PCFB: Perimeter Control Flow Broker, 400)는 경계 브로커(220) 또는 경계 게이트웨이(230) 등과 같은 컴포넌트 내 경계 컨트롤러(210)와 통신을 수행하기 위한 애플리케이션 내 삽입되거나, 네트워크 드라이버 형태 또는 단독으로 동작하는 애플리케이션으로 구현될 수 있다.
PCFB(400)는 각 컴포넌트와 경계 컨트롤러(210) 간의 안전한 제어 플로우를 생성하고, 각 컴포넌트에서 발생되는 각종 네트워크 접속 제어 요청을 경계 컨트롤러(210)로 전송하고, 경계 컨트롤러(210)가 전송하는 원격 실행 코드 수신하고 실행 결과를 안전하게 전송하기 위한 용도로 사용될 수 있다.
여기서, 제어 플로우 생성이란 경계 브로커(220)와 경계 컨트롤러(210) 사이에 세션 기반으로 상호간에 신뢰 및 검증 가능한 제어용 데이터 패킷을 송수신할 수 있는 통로를 생성하는 것을 의미한다. 제어 플로우 생성 과정에서 필요시 터널을 수립하기 위한 정보를 제공하여 상호간에 안전한 통신을 보장할 수 있다.
도 4를 참조하면, 경계 컨트롤러(210)는 일반 통신을 위한 제1 통신 모듈(211), PCFB의 동작을 제어하는 PCFB 제어 모듈(212), 제어 플로우 생성을 위한 통신을 수행하는 제2 통신 모듈(213)을 포함하여 구성될 수 있다.
PCFB(400)는 실행 모듈(410)과 가상 머신(420)을 포함하여 구성될 수 있다.
PCFB(400)의 실행 모듈(410)은 최초로 애플리케이션이 실행되면(S401), 경계 컨트롤러(210)로부터 제어 플로우 통신 코드를 다운로드 받은 후(S402), 코드 적재 및 실행을 수행하도록 가상 머신(420)을 제어할 수 있다(S403).
제어 플로우 통신 코드는 메모리(430)에 적재된 후 실행되며(S404), 가상 머신(420)은 경계 컨트롤러(210)와의 통신을 위한 전용 제어 플로우를 생성할 수 있다(S405).
실시 예에 따른 제어 플로우 통신 코드는 가상 머신(420)의 메모리(430) 수준에서 동작하기 때문에 본 발명은 단말 및 네트워크 환경이 기본적으로 신뢰할 수 없는 상태에서 PCFB(400)에 대한 역공학을 어렵게 만들 뿐만 아니라 완전한 모듈이 포함되어 동작되는 종래의 애플리케이션보다 각종 위협 및 우회를 어렵게 만들 수 있는 장점이 있다.
또한, 제어 플로우 통신 코드는 경계 브로커(220)에 내장된 가상 머신 또는 운영 체제(OS: Operating System)에서 제공되는 가상 머신에서 동작하기 위한 일련의 바이트 코드(Byte Code)로써, Java, .NET(MSIL) 등과 같은 런타임(Runtime) 또는 자발적으로 개발된 가상 머신에서 실행될 수 있는 코드일 수 있다.
제어 플로우 통신 코드는 런타임에 직접 코드를 별도의 디스크에 저장하는 것이 아닌 가상 머신의 메모리상에서 직접 주입되어 실행되도록 제어되므로 흔적 없이 실행될 수 있는 장점이 있으며, 오로지 메모리를 분석할 수 있어야만 공격 가능한 특징이 있다. 따라서, 본 발명은 DLL(Dynamic Link Library) 패치 또는 모듈 형태로 전송되는 기존의 방식보다 더 향상된 역공학 방지 방법을 제공할 수 있는 장점이 있다.
도 5는 본 발명의 다른 실시 예에 따른 경계 제어 플로우 브로커의 동작을 설명하기 위한 도면이다.
상세하게 도 5는 PCFB(400)에서의 제어 플로우 기반 이벤트 처리 절차를 설명하기 위한 도면이다.
도 5를 참조하면, 경계 제어 플로우 브로커(PCFB: Perimeter Control Flow Broker, 400)는 경계 브로커(220) 또는 경계 게이트웨이(230) 등과 같은 컴포넌트 내 경계 컨트롤러(210)와 통신을 수행하기 위한 애플리케이션 내 삽입되거나, 네트워크 드라이버 형태 또는 단독으로 동작하는 애플리케이션으로 구현될 수 있다.
PCFB(400)는 각 컴포넌트와 경계 컨트롤러(210) 간의 안전한 제어 플로우를 생성하고, 각 컴포넌트에서 발생되는 각종 네트워크 접속 제어 요청을 경계 컨트롤러(210)로 전송하고, 경계 컨트롤러(210)가 전송하는 원격 실행 코드 수신하고 실행 결과를 안전하게 전송하기 위한 용도로 사용될 수 있다.
여기서, 제어 플로우 생성이란 경계 브로커(220)와 경계 컨트롤러(210) 사이에 세션 기반으로 상호간에 신뢰 및 검증 가능한 제어용 데이터 패킷을 송수신할 수 있는 통로를 생성하는 것을 의미한다. 제어 플로우 생성 과정에서 필요시 터널을 수립하기 위한 정보를 제공하여 상호간에 안전한 통신을 보장할 수 있다.
도 4를 참조하면, 경계 컨트롤러(210)는 일반 통신을 위한 제1 통신 모듈(211), PCFB의 동작을 제어하는 PCFB 제어 모듈(212), 제어 플로우 생성을 위한 통신을 수행하는 제2 통신 모듈(213)을 포함하여 구성될 수 있다.
PCFB(400)는 실행 모듈(410)과 가상 머신(420)을 포함하여 구성될 수 있다.
PCFB(400)의 실행 모듈(410)은 최초로 애플리케이션이 실행되면(S401), 경계 컨트롤러(210)로부터 제어 플로우 통신 코드를 다운로드 받은 후(S402), 코드 적재 및 실행을 수행하도록 가상 머신(420)을 제어할 수 있다(S403).
제어 플로우 통신 코드는 메모리(430)에 적재된 후 실행되며(S404), 가상 머신(420)은 경계 컨트롤러(210)와의 통신을 위한 전용 제어 플로우를 생성할 수 있다(S405).
실시 예에 따른 제어 플로우 통신 코드는 가상 머신(420)의 메모리(430)상에서 동작하기 때문에 본 발명은 단말 및 네트워크 환경이 기본적으로 신뢰할 수 없는 상태에서 PCFB(400)에 대한 역공학을 어렵게 만들 뿐만 아니라 완전한 모듈이 포함되어 동작되는 종래의 애플리케이션보다 각종 위협 및 우회를 어렵게 만들 수 있는 장점이 있다.
또한, 제어 플로우 통신 코드는 경계 브로커(220)에 내장된 가상 머신 또는 운영 체제(OS: Operating System)에서 제공되는 가상 머신에서 동작하기 위한 일련의 바이트 코드(Byte Code)로써, Java, .NET(MSIL) 등과 같은 런타임(Runtime) 또는 자발적으로 개발된 가상 머신에서 실행될 수 있는 코드일 수 있다.
제어 플로우 통신 코드는 런타임에 직접 코드를 별도의 디스크에 저장하는 것이 아닌 가상 머신의 메모리상에서 직접 주입되어 실행되도록 제어되므로 흔적 없이 실행될 수 있는 장점이 있으며, 오로지 메모리를 분석할 수 있어야만 공격 가능한 특징이 있다. 따라서, 본 발명은 DLL(Dynamic Link Library) 패치 또는 모듈 형태로 전송되는 기존의 방식보다 더 향상된 역공학 방지 방법을 제공할 수 있는 장점이 있다.
실시 예에 따른 경계 컨트롤로(210)는 정책에 의해 필요한 시점에 추적 및 유추가 어려운 탐지 코드를 무작위로 생성할 수 있으며, 생성된 탐지 코드는 반드시 활성화된 제어 플로우를 통해 원격으로 전송될 수 있다.
PCFB(400)는 가상 머신(420)의 메모리(430) 수준에서 실행된 제어 플로우 통신 코드를 통해 탐지 코드를 수신하여 실행할 수 있다. 탐지 코드 실행 결과는 활성화된 제어 플로우를 통해 경계 컨트롤러(210)에 안전하게 전송될 수 있다.
경계 컨트롤로(210)는 탐지 코드 실행 결과에 기초하여 제어 플로우의 제거 또는 유지를 결정할 수 있다.
도 6은 본 발명의 실시 예에 따른 제어 플로우 통신 코드 갱신 동작을 설명하기 위한 도면이다.
종래 신뢰할 수 없는 제로 트러스트 단말 환경에서 발생될 수 있는 애플리케이션 위/변조 탐지 및 방지, 유해 환경 탐지 등 다양한 위협 요소를 탐지하거나 해킹을 어렵게 하기 위한 일련의 코드들이 애플리케이션의 배포와 함께 제공되었던 것과 달리, 본 발명에 따른 경계 컨트롤러(210)는 정책에 의해 필요로 한 시점에 필요로 한 위협을 지속적으로 탐지하기 위한 코드가 해커 등에 의해 유추될 수 없도록 해당 탐지 코드를 무작위 생성하여 안전한 제어 플로우를 통해 원격으로 PCFB(400)에 전송할 수 있다.
도 6을 참조하면, 실행 모듈(410)에 의해 소정 이벤트 발생이 감지되면(S610), PCFB(400)로 전송된 탐지 코드는 가상 머신(420)의 메모리(430)상에서 실행되고(S602 내지 S603), 관련 코드 실행 결과는 안전한 제어 플로우를 통해 경계 컨트롤러(210)로 전송될 수 있다(S604). 이때, 경계 컨트롤러(210)는 수신된 실행 결과 값에 기반하여 제어 플로우 및 관련된 데이터 플로우의 제거 여부를 결정하여 해당 컴포넌트에 계속적으로 통신을 인가할 것인지를 결정할 수 있다.
경계 컨트롤러(210)는 탈취자에 의해 PFCB(400)의 메모리(430) 영역이 분석되는 것을 차단하기 위해 일정 시간 또는 특정 이벤트 발생에 따라 제어 플로우 통신 코드를 개신 (및 패치)할 수 있다.
패치 시 안전한 제어 플로우 기반으로 새로운 제어 플로우 통신 코드가 전송되어 가상 머신(420)의 메모리(430)에서 수준에서 실행될 수 있다. 이때, 기존의 제어 플로우 통신 코드(431)는 메모리(430)상에서 폐기되고, 새로운 제어 플로우 통신 코드(432)는 메모리(430)의 새로운 영역에 기록되어 실행될 수 있다.
상술한 바와 같이, 제어 플로우 통신 코드를 일정 주기 및(또는) 특정 이벤트 기반으로 갱신(및 패치)함으로써, 메모리(430)에 배치된 일련의 정보들을 변경할 수 있으며, 이는 탈취자의 역공학 및 각종 위협 행위를 효과적으로 방지할 수 있는 장점이 있다.
도 7은 본 발명의 실시 예에 따른 PCFB와 경계 컨트롤러 사이의 제어 플로우 생성 절차를 설명하기 위한 도면이다.
도 7을 참조하면, 제어 플로우 생성 절차는 제어 플로우 생성 요청 단계(S710), 제어 플로우 생성 처리 단계(S720), 제어 플로우 통신 코드 수신 단계(S730), 제어 플로우 통신 코드 실행 단계(S740), 제어 플로우 통신 코드 실행 완료 수신 처리 단계(S750), 제어 플로우 생성 완료 수신 처리 단계(S760) 및 제어 요청 프로세스 단계(S770)을 포함하여 구성될 수 있다.
이하, 제어 플로우 생성 절차의 각 단계를 상세히 설명하기로 한다.
1) 제어 플로우 생성 요청 단계(S710)
PCFB(400)는 알려져 있는 프로토콜(TCP, HTTP, HTTPS 등)을 활용하여 경계 컨트롤러(210)와 PCFB(400) 간에 안전한 제어 데이터 송/수신을 위한 제어 플로우를 생성하기 위한 정보를 경계 컨트롤러(210)에 요청할 수 있다.
일 예로, 제어 플로우 생성 요청을 위해 PCFB(400)가 경계 컨트롤러(210)에 전송하는 값은 아이디(ID)와 데이터(Data)를 포함할 수 있다.
여기서, ID는 PCFB(400) 또는 PCFB(400)를 포함하고 있는 통신 애플리케이션을 식별하기 위한 정보로써, 애플리케이션 ID, 해쉬값, 지문(Fingerprint), 서명(Signature) 값 등을 포함할 수 있다.
일 예로, 암호화 및 캡슐화되기 이전의 제어 플로우 생성 요청을 위한 데이터 패킷은 하기와 같이 구성될 수 있다.
{id:WxUV9xzbZT9YQjkn, data:{deviceid:MdfSYAbmkWcK8pa5}}
데이터 패킷 전송 시 기존 프로토콜에서 발생될 수 있는 문제점 개선 및 향상된 통신 보호를 위해 통신 구간 보호 프로세스의 전송 프로세스와 같은 추가적인 보호 기술이 적용될 수 있다.
2) 제어 플로우 생성 처리 단계(S720)
경계 컨트롤러(210)는 PCFB(400)로부터 제어 플로우 생성 요청을 위한 데이터 패킷을 수신할 수 있다.
경계 컨트롤러(210)는 수신된 데이터 패킷에 포함된 ID에 기반하여 미리 저장된 애플리케이션 배포 테이블에서 애플리케이션 및 PCFB(400) 정보를 획득할 수 있다.
만약, 애플리케이션 및 PCFB(400) 정보가 애플리케이션 배포 테이블에 존재하지 않는 경우-즉, 해당 애플리케이션 및 PCFB(400)는 존재하지만 사용할 수 없는 상태인 경우, 경계 컨트롤러(210)는 제어 플로우 생성 요청을 거부할 수 있다.
데이터 패킷에 대한 보호 기술이 적용되어 있을 경우, 경계 컨트롤러(210)는 후술할 통신 구간 보호 프로세스의 수신 프로세스를 수행할 수 있다. 만약, 수신 처리에 실패한 경우, 경계 컨트롤러(210)는 제어 플로우 생성 요청을 거부할 수 있다.
실시 예에 따른 경계 컨트롤러(210)는 전송된 IP 또는 데이터에 포함된 각종 식별 정보가 블랙리스트에 포함되어 있는 경우, 제어 플로우 생성 요청을 거부할 수 있다.
경계 컨트롤러(210)는 PCFB(400)와 제어 플로우를 생성하기 위해 가상 머신(420)에서 실행되는 제어 플로우 통신 코드를 생성하거나 미리 생성된 코드를 준비할 수 있다.
제어 플로우 통신 코드는 제어 플로우 생성, 제어 플로우 유지를 위한 지속적인 폴링, 경계 컨트롤러(210)가 원격 코드를 실행하기 위한 일련의 체계, 통신 애플리케이션이 PCFB(400)에 각종 제어를 요청하기 위한 스텁(Stub), 최초 실행을 위한 엔트리 포인트(Entry Point) 정보 등을 포함할 수 있다.
제어 플로우 통신 코드를 통해 통신 애플리케이션의 요청 및 PCFB(400)가 경계 컨트롤러(210)로 요청하는 모든 제어 관련 통신은 안전하게 보호될 수 있으며, 제어 플로우 통신 코드가 가상 머신(420)에서 구동되는 특성에 따라 애플리케이션의 역공학에 의한 각종 공격이 최소화될 수 있다.
제어 플로우 생성은 단말의 환경-예를 들면, 모바일의 경우, IPSec 터널링을 2개 이상 형성하지 못하는 환경 등-을 고려하여 알려져 있는 터널링 방식(IPSec 등)을 통해 전송 계층에서 PCFB(400)와 경계 컨트롤러(210) 사이에 터널이 수립되거나 또는 자체적인 터널링 알고리즘을 통해 터널이 수립될 수 있다. 이때, 각각의 환경에 따라 포함되는 코드는 상이할 수 있다.
예를 들어, 알려져 있는 터널링 방식을 사용할 경우, 사전 공유된 키(Preshared Key) 또는 인증 정보 등 터널 생성에 필요한 일련의 인증 정보를 활용하고, 자체적인 터널링 방식을 사용할 경우, 알려져 있는 터널링 알고리즘이 가지고 있는 기밀성, 무결성 등에 대한 특성이 고려된 데이터 패킷 수준에서의 터널링이 제공될 수 있다.
제어 플로우 생성 코드는 제어 플로우 ID를 포함할 수 있으며, 제어 플로우에 의한 통신 시 제어 플로우 ID를 통해 단말이 식별될 수 있도록 구현될 수 있다.
생성된 제어 플로우 통신 코드에 포함된 제어 플로우 ID는 제어 플로우 테이블에 추가될 수 있다. 여기서, 제어 플로우 테이블은 일종의 세션 관리 테이블로서, 해당 제어 플로우 ID를 기반으로 통신 시 검증할 일련의 정보 정책에 의해 설정된 제어 플로우 생성 만료 시간이 등록될 수 있다.
이후, 경계 컨트롤러(210)는 생성 또는 준비된 제어 플로우 통신 코드를 PCFB(400)로 전송할 수 있다.
경계 컨트롤러(210)는 제어 플로우 생성 요청에 대한 응답 코드(정상(0) 또는 비정상(1))인 상태(Status) 정보 및 제어 플로우 통신 코드를 실행하기 위한 엔트리 포인트 정보를 제어 플로우 통신 코드와 함께 PCFB(400)로 전송할 수 있다.
경계 컨트롤러(210)는 제어 플로우 통신 코드가 포함된 데이터 패킷 전송 시 기존 프로토콜에서 발생될 수 있는 문제점 개선 및 향상된 통신 보호를 위해 후술할 통신 구간 보호 프로세서의 전송 프로세스와 같은 추가적인 보호 기술을 적용할 수 있다.
상기한 과정을 통해 제어 플로우 생성 요청이 거부된 경우, 요청 거부 사유 및 시각, 해당 시점까지 식별된 정보(단말 ID, IP 등)을 포함한 정보가 예비 블랙 리스트에 추가될 수 있다.
만약, 블랙리스트 정책에 의해 일정 시간 동안 일정 회수 이상 요청 거부가 발생된 경우, 식별된 정보를 기반으로 블랙리스트 전환 또는 추가함으로써, 이후 해당 단말 ID 또는 IP를 통해 요청되는 사항은 기본적으로 경계 컨트롤러(210)에 의해 거부될 수 있다.
실시 예로, 블랙리스트는 정책에 따라 일정 시간 이후 자동 제거되거나 관리자에 의해 제거될 수 있다.
3) 제어 플로우 통신 코드 수신(S730)
PCFB(400)는 제어 플로우 통신 코드가 포함된 데이터 패킷을 경계 컨트롤러(210)로부터 수신할 수 있다.
PCFB(400)는 데이터 패킷에 대한 보호 기술이 적용되어 있을 경우, 통신 구간 보호 프로세스의 수신 프로세스를 수행하며, 만약 수신 처리에 실패한 경우 제어 플로우 생성은 중단될 수 있다.
4) 제어 플로우 통신 코드 실행(S740)
PCFB(400)는 수신된 데이터 패킷으로부터 제어 플로우 통신 코드를 추출하여 가상 머신(420)에 주입할 수 있다.
여기서, 주입은 직접적인 코드 주입일 수 있으나, 이는 하나의 실시 예에 불과하며 제어 플로우 통신 코드의 용량이 클 경우 파일 형태로 저장하여 주입할 수 있다.
주입이 완료된 경우, PCFB(400)는 데이터 패킷에 포함된 엔트리 포인트 정보를 활용하여 주입된 제어 플로우 통신 코드를 실행할 수 있다.
제어 플로우 통신 코드 실행이 완료된 경우, 현재까지 통신에 수행에 활용된 모든 정보 및 파일은 메모리(430)상에서 제거하고, 이후 모든 절차는 새롭게 주입된 제어 플로우 통신 코드를 활용하여 이루어질 수 있다.
제어 플로우 통신 코드 실행 시 터널 생성을 위한 정보가 포함되어 있을 경우, PCFB(400)는 해당 터널 생성 정보를 이용하여 경계 컨트롤러(210)에 터널 생성을 요청할 수 있다.
여기서, 터널 생성 정보는 터널 생성에 필요한 터널 종류(예를 들면, IPSec 등), 터널링 방식(예를 들면, AH 모드, ESP 모드 등), 상호 키교환을 위한 인증 정보(예를 들면, Preshared Key, User ID, Password 등) 등이 포함할 수 있으며, 단말의 환경에 따라 최적화된 터널 기술이 적용될 수 있다.
또한, 생성된 터널을 통해서 전송 구간에서 데이터 패킷이 안전하게 보호될 수 있다.
만약, 터널 생성에 실패한 경우, 제어 플로우 생성 절차는 종료될 수 있다.
PCFB(400)는 제어 플로우 통신 코드에 포함된 일련의 코드를 실행한 후 해당 통신 코드가 정상적으로 기동되었음을 알리는 제어 플로우 통신 코드 실행 완료 데이터 패킷을 경계 컨트롤러(210)로 전송할 수 있다. 여기서, 제어 플로우 통신 코드 실행 완료 데이터 패킷은 생성된 제어 플로우를 식별하기 위한 제어 플로우 ID 정보와 제어 플로우 통신 코드 실행 결과 정보를 포함할 수 있다.
5) 제어 플로우 통신 코드 실행 완료 수신 처리(S750)
경계 컨트롤러(210)는 PCFB(400)로부터 제어 플로우 통신 코드 실행 완료 데이터 패킷을 수신하면, 제어 플로우 테이블에서 수신된 데이터 패킷에 포함된 제어 플로우 ID에 상응하는 제어 플로우 정보를 검색할 수 있다.
검색 결과, 해당 제어 플로우 ID에 상응하는 제어 플로우 정보가 존재하지 않는 경우, 또는 해당 제어 플로우가 존재하지만 실행 대기 상태가 아니거나 만료 시각을 초과하여 사용이 불가한 상태인 경우, 경계 컨트롤러(210)는 제어 플로우 코드 실행 완료 수신 처리를 중단할 수 있다.
수신된 제어 플로우 통신 코드 실행 완료 데이터 패킷에 데이터 패킷 보호 기술이 적용되어 있는 경우, 경계 컨트롤러(210)는 통신 구간 보호 프로세스의 수신 프로세스를 수행할 수 있다. 만약, 수신 처리에 실패한 경우, 제어 플로우 코드 실행 완료 수신 처리는 중단될 수 있다.
제어 플로우 통신 코드 실행 완료 수신 처리가 중단된 경우, 제어 플로우 테이블에서 해당 정보는 삭제될 수 있으며, 그에 따라 단말-즉, PCFB(400)-는 처음부터 제어 플로우 생성 절차를 다시 수행해야 한다.
경계 컨트롤러(210)는 제어 플로우의 상태 값을 폴링 상태로 변경하고 폴링 만료 시각을 정책에 따라 일정 시간만큼 갱신할 수 있다. 이후 PCFB(400)는 지속적인 폴링을 통해 제어 플로우 통신 코드를 갱신하고, 경계 컨트롤러(210)가 필요로 하는 일련의 요청에 대응할 있다.
경계 컨트롤러(210)는 제어 플로우 통신 코드 실행 완료 수신 처리가 정상적으로 완료된 경우, PCFB(400)로 제어 플로우 생성 완료 여부에 대한 응답 코드(Status 값)이 포함된 제어 플로우 생성 완료 데이터 패킷을 전송할 수 있다. 이때, Status 값은 정상인 0으로 설정되고, 비정상인 경우, 1로 설정될 수 있다.
경계 컨트롤러(210)는 제어 플로우 생성 완료 데이터 패킷 전송 시 기존 프로토콜에서 발생될 수 있는 문제점 개선 및 향상된 통신 보호를 위해 통신 구간 보호 프로세스의 전송 프로세스와 같은 추가적인 보호 기술을 사용할 수 있다.
6) 제어 플로우 생성 완료 수신 처리(S760)
PCFB(400)는 제어 플로우 생성 완료 데이터 패킷을 경계 컨트롤로(210)로부터 수신할 수 있다.
수신된 데이터 패킷에 데이터 패킷에 대한 데이터 패킷 보호 기술이 적용되어 있는 경우, PCFB(400)는 통신 구간 보호 프로세스의 수신 프로세스를 수행할 수 있다. 만약, 수신 처리에 실패한 경우, 제어 플로우 생성 절차는 중단될 수 있다.
PCFB(400)는 제어 플로우 생성 완료 데이터 패킷에 포함된 Status 값이 정상이 아닌 경우, 제어 플로우 생성 절차를 종료할 수 있다.
PCFB(400)는 제어 플로우 생성 완료 데이터 패킷에 포함된 Status 값이 정상인 경우, 제어 플로우 통신 코드에 포함된 폴링 로직을 실행할 수 있다.
PCFB(400)는 지속적인 폴링을 통해 제어 플로우 생성 절차가 현재 종료된 상태인지를 확인할 수 있으며, 경계 컨트롤러(210)로부터 각종 정보 요청에 즉각적으로 대응할 수 있다.
특히, 폴링 코드 실행은 제로 트러스트 단말에서의 각종 위협 정보 파악을 위한 지속적인 감시를 통해 제어 플로우 기반의 안전한 네트워크 환경을 제공할 수 있다.
7) 제어 요청 프로세스(S770)
단말 및 통신 애플리케이션은 경계 컨트롤러(210)로부터 제어 요청이 필요한 경우, PCFB(400)에 포함된 가상화된 API(Application Programming Interface)를 이용하여 안전하게 제어 플로우 기반으로 통신을 수행할 수 있다.
일반적인 제어 플로우는 네트워크 통신 구간에서 충분한 보호 기술을 제공하고 있지만, 단말에서 발생되는 제어 플로우의 위변조 및 위협 데이터 전송에 대한 보호는 충분하지 않다.
특히, 종래에는 제어 플로우 생성을 위한 코드가 애플리케이션에 포함되어 있지 않으므로 탈취자 관점에서 역공학을 통한 제어 플로우 메커니즘 확보 및 중간자 공격(MITM(Man In The Middle attack)이 가능한 상태였다.
하지만, 본 발명은 상기한 제어 플로우 생성 절차를 통해 제어 플로우 통신 코드가 제어 플로우 생성시 마다 가상화된 메모리상에서 동작하는 코드 형태로 동작하기 때문에 탈취자 입장에서 제어 플로우를 공격하기 어려운 요소를 제공할 수 있다.
도 8은 실시 예에 따른 제어 플로우 폴링 절차를 설명하기 위한 도면이다.
도 8을 참조하면, 제어 플로우 폴링 절차는 PFCB(400)와 경계 컨트롤러(210) 사이에 수행되는 절차이며, 제어 플로우 폴링 단계(S810), 제어 플로우 폴링 정보 처리 단계(S820) 및 폴링 정보 처리 결과 수신 단계(S830)을 포함하여 구성될 수 있다.
이하, 제어 플로우 폴링 절차의 각 단계를 상세히 설명하기로 한다.
1) 제어 플로우 폴링 단계(S810)
PCFB(400)는 폴링 로직이 최초 실행되었거나 계속적인 시각 확인을 통해 정책에 따라 폴링 시각이 도래한 경우 폴링을 수행할 수 있다.
PCFB(400)는 실행해야 할 탐지 코드가 큐에 존재하는 경우, 큐의 엔트리 포인트 정보를 확인하여 탐지 코드를 실행하고 그 결과 값을 취합할 수 있다.
PCFB(400)는 탐지 코드 실행이 완료된 후 큐의 잔여 실행 횟수를 감소시킬 수 있다. 만약, 잔여 실행 횟수가 0인 경우, PCFB(400)는 큐에서 해당 탐지 코드를 제거하고, 가상 머신(420)에서 해당 탐지 코드를 해제(Release)할 수 있다.
PCFB(400)는 폴링 실행 중 동작 상태 정보를 알리기 위한 폴링 처리 데이터 패킷을 생성하여 경계 컨트롤러(210)에 전송할 수 있다.
여기서, 폴링 처리 데이터 패킷은 제어 플로우 ID 및 탐지 코드 실행 결과 정보를 포함할 수 있다.
폴링 처리 데이터 패킷 전송 시 기존 프로토콜에서 발생될 수 있는 문제점 개선 및 향상된 통신 보호를 위해 통신 구간 보호 프로세스의 전송 프로세스와 같은 추가적인 보호 기술이 사용될 수 있다.
2) 제어 플로우 폴링 단계(S820)
경계 컨트롤러(210)는 폴링 처리 데이터 패킷이 PCFB(400)로부터 수신되면, 수신된 폴링 처리 데이터 패킷에 포함된 제어 플로우 ID에 상응하는 제어 플로우 정보를 제어 플로우 테이블을 참조하여 검색할 수 있다.
만약, 제어 플로우 테이블에 해당 제어 플로우 ID에 상응하는 제어 플로우 정보가 존재하지 않는 경우, 또는 해당 제어 플로우가 존재하지만 폴링 상태가 아니거나 만료 시각을 초과하여 사용 불가능한 상태인 경우, 경계 컨트롤러(210)는 제어 플로우 폴링 정보 처리를 중단할 수 있다.
폴링 정보 처리가 중단된 경우, 제어 플로우 테이블에서 해당 정보는 삭제되며 단말은 처음부터 다시 제어 플로우 폴링 절차를 수행해야 한다.
경계 컨트롤러(210)는 제어 플로우에 존재하는 탐지 코드 정보를 기반으로 PCFB(400)가 전송한 탐지 코드 실행 결과를 확인할 수 있다.
만약 요구되는 탐지 코드 실행 결과가 존재하지 않거나, PCFB(400)가 전송한 실행 결과값이 제어 플로우에 존재하는 탐지 코드 정보와 상이한 경우, 경계 컨트롤러(210)는 해당 제어 플로우를 제거할 수 있다.
탐지 코드 실행 결과에 대한 검증이 완료된 후 경계 컨트롤러(210)는 큐의 잔여 실행 회수를 감소시킬 수 있다. 만약, 큐의 잔여 실행 회수가 0에 도달한 경우, 경계 컨트롤러(210)는 큐에서 해당 탐지 코드를 제거하고, 제어 플로우 상태를 폴링 처리중으로 변경할 수 있다.
경계 컨트롤러(210)는 정책에 기초하여 경계 컨트롤러(210)와 PCFB(400) 사이에 설정된 제어 플로우를 갱신하기 위한 패치 여부를 결정할 수 있다.
제어 플로우가 패치가 필요한 경우, 경계 컨트롤러(210)는 패치 절차를 진행할 수 있다.
경계 컨트롤러(210)는 정책에 따라 PCFB(400)의 유해 환경 확인 및 위변조 여부 검사 등을 요구하기 위해 탐지 코드 실행 필요 여부 및 탐지 코드 종류를 확인할 수 있다.
만약 탐지 코드 실행이 필요한 것으로 판단된 경우, 탐지 코드, 엔트리 포인트 정보, 탐지 코드 실행 시 기대되는 값(유효 또는 정상적인 값), 실행 필요 회수 정보 등을 해당 제어 플로우 정보에 추가할 수 있다. 여기서, 탐지 코드는 탐지 코드 실행이 필요한 경우, 실시간 생성될 수 있으나, 이는 하나의 실시 예에 불과하여 탐지 코드는 미리 생성되어 소정 기록 영역에 저장되어 유지될 수 있다.
경계 컨트롤러(210)는 제어 플로우의 만료 시각을 갱신할 수 있다.
일 예로, 정책에 의한 폴링 만료 주기가 30초인 경우, 다음 만료 시간은 현재 시각에 30초를 더하여 갱신되며, 이때, 제어 플로우 상태는 폴링 대기중으로 변경될 수 있다.
경계 컨트롤러(210)는 폴링 정보 처리에 대한 응답 코드(Status 값) 및 실행해야 할 탐지 코드가 있을 경우 탐지 코드 및 부대 정보가 포함된 폴링 정보 처리 결과 데이터 패킷을 PCFB(400)로 전송할 수 있다.
폴링 정보 처리 결과 데이터 패킷 전송 시 기존 프로토콜에서 발생될 수 있는 문제점 개선 및 향상된 통신 보호를 위해 통신 구간 보호 프로세스의 전송 프로세스와 같은 추가적인 보호 기술이 사용될 수 있다.
3) 폴링 정보 처리 결과 수신(S830)
PCFB(400)는 경계 컨트롤러(210)로부터 폴링 정보 처리 결과 데이터 패킷을 수신할 수 있다.
PCFB(400)는 수신된 폴링 정보 처리 결과 데이터 패킷에 대해 보호 기술이 적용되어 있을 경우, 통신 구간 보호 프로세스의 수신 프로세스를 수행할 수 있다. 만약, 수신 처리에 실패한 경우, PCFB(400)는 제어 플로우 생성을 중단할 수 있다.
만약, 폴링 정보 처리 결과 데이터 패킷에 포함된 상태 값이 비정상인 경우, PCFB(400)의 종료될 수 있다.
PCFB(400)는 폴링 정보 처리 결과 데이터 패킷에 탐지 코드가 포함되어 있는지 확인할 수 있다.
확인 결과, 탐지 코드가 포함된 경우, PCFB(400)는 탐지 코드를 가상 머신(420)에 주입하고 엔트리 포인트 및 실행 횟수와 같은 정보를 탐지 코드 실행 큐에 추가하여 다음 폴링 때 해당 탐지 코드를 실행할 수 있도록 한다.
상기한 제어 플로우 폴링 절차가 완료되면, PCFB(400)는 사전 설정된 폴링 대기 시간 동안 폴링을 대기할 수 있다. 폴링 대기 시간이 만료되면, PCFB(400)는 제어 플로우 폴링 절차를 다시 시작할 수 있다.
도 9는 실시 예에 따른 제어 플로우 패치 절차를 설명하기 위한 도면이다.
도 9를 참조하면 제어 플로우 패치 절차는 PCFB(400)와 경계 컨트롤러(210) 사이에서 이루어질 수 있으며, 제어 플로우 패치 코드 전송 단계(S910), 패치 코드 실행 결과 처리 단계(S920). 패치 코드 실행 완료 수신 처리 단계(930), 패치 완료 수신 처리 단계(S940) 및 제어 요청 프로세스 단계(S950)을 포함하여 구성될 수 있다.
이하, 제어 플로우 패치 절차의 각 단계를 상세히 설명하기로 한다.
1)제어 플로우 패치 코드 전송 단계(S910)
정책에 따라 제어 플로우 갱신을 위한 패치 절차가 수행되어야 하는 경우, 경계 컨트롤러(210)는 단말에 적합한 패치 코드를 생성하거나 미리 생성된 패치 코드 및 엔트리 포인트 정보, 새로운 제어 플로우 ID 등을 현재 사용중인 제어 플로우 정보에 반영할 수 있다.
본 실시 예에 따른 패치는 PCFB(400)의 가상 머신(420) 및 메모리(430)에 적재된 제어 플로우 정보를 탈취자가 추적하기 어렵게 하기 위해 일정 시간 단위별-즉, 일정 시간 주기-로 기 적재된 제어 플로우 정보를 제거하고 새로운 제어 플로우를 생성하고 유추할 수 있는 각종 인증 정보 및 암호화 정보를 새롭게 변경하기 위한 절차를 의미한다.
경계 컨트롤러(210)는 제어 플로우의 상태를 패치 대기 상태로 전환하고 패치 만료 시각을 갱신할 수 있다.
일 예로, 경계 컨트롤러(210)는 정책에 의한 패치 만료 주기가 60초인 경우, 다음 만료 시각을 현재 시각에 60초를 더한 시각으로 갱신하며, 해당 만료 시각까지 패치가 완료되지 않을 경우 제어 플로우 패치 프로세스를 종료할 수 있다.
경계 컨트롤러(210)는 폴링 정보 처리에 대한 응답 코드(Status), 제어 플로우 패치 코드 및 부대 정보(Data)가 포함한 제어 플로우 패치 코드 데이터 패킷을 PCFB(400)로 전송할 수 있다. 여기서, 부대 정보는 엔트리 포인트 및 제어 플로우 ID를 포함할 수 있다.
경계 컨트롤로(210)는 폴링 정보 처리 결과에 따라 패치가 필요한 경우, 패치가 필요함을 지시하는 상태 값(Status: 2)를 포함하는 제어 플로우 패치 코드 데이터 패킷을 PCFB(400)로 전송할 수 있다.
2) 패치 코드 실행 결과 처리 단계(S920).
PCFB(400)는 제어 플로우 패치 코드 데이터 패킷을 경계 컨트롤로(210)로부터 수신할 수 있다.
PCFB(400)는 수신된 제어 플로우 패치 코드 데이터 패킷에 대해 보호 기술이 적용되어 있을 경우, 통신 구간 보호 프로세스의 수신 프로세스를 수행할 수 있다. 만약, 수신 처리에 실패한 경우, PCFB(400)는 제어 플로우 생성을 중단할 수 있다.
또한, 수신된 제어 플로우 패치 코드 데이터 패킷의 폴링 정보 처리에 대한 응답 코드에 상응하는 상태 값이 비정상인 경우(Status: 1), PCFB(400)는 종료될 수 있다.
반면, 수신된 제어 플로우 패치 코드 데이터 패킷의 폴링 정보 처리에 대한 응답 코드에 상응하는 상태 값이 패치 필요인 경우(Status: 2), PCFB(400)는 최초 제어 플로우 통신 코드 실행 기반 제어 플로우 생성 절차와 유사한 절차를 수행할 수 있다.
이는 제어 플로우 패치 절차가 기존에 사용중인 제어 플로우 통신 코드를 제거하고, 새로운 제어 플로우 통신 코드를 메모리(430)에 적재함으로써, 메모리(430) 추적에 의한 각종 위협 및 유추 가능한 위협으로부터 보호하기 위한 방법으로 사용되기 때문이다.
PCFB(400)는 제어 플로우 패치 코드 데이터 패킷에 포함된 패치 코드를 가상 머신(420)에 주입할 수 있다.
여기서, 주입은 패치 코드의 용량에 따라 직접적인 코드 주입이 이루어지거나 파일 형태로 저장하여 주입될 수 있다. 일 예로, 패치 코드의 용량이 기준치 이상인 경우, 패치 코드는 파일 형태로 가상 머신(420)에 주입될 수 있다.
패치 코드 주입이 완료된 경우, PCFB(400)의 가상 머신(420)은 엔트리 포인트 정보를 이용하여 주입된 패치 코드를 실행할 수 있다.
패치 코드 실행이 완료된 경우, PCFB(400)는 현재까지 통신에 사용된 모든 제어 플로우 정보 및 기 생성된 파일을 메모리(430)상에서 제거하고, 이후 모든 절차에서는 메모리(430)상에 새롭게 패치된 제어 플로우 통신 코드를 이용하여 통신을 수행할 수 있다.
제어 플로우 통신 코드 실행 시 터널 생성을 위한 정보가 포함되어 있는 경우, PCFB(400)는 해당 터널 생성 정보를 이용하여 경계 컨트롤러(210)에 터널 생성을 요청할 수 있다.
여기서, 터널 생성 정보는 터널 생성에 필요한 터널 종류(예를 들면, IPSec 등), 터널링 방식(예를 들면, AH 모드, ESP 모드 등), 상호 키교환을 위한 인증 정보(예를 들면, Preshared Key, User ID, Password 등) 등이 포함할 수 있으며, 단말의 환경에 따라 최적화된 터널 기술이 적용될 수 있다.
생성된 터널을 통해서 전송 구간에서 데이터 패킷이 안전하게 보호할 수 있다.
만약, 터널 생성에 실패한 경우, 제어 플로우 생성 절차는 종료될 수 있다.
PCFB(400)는 패치 코드가 정상 실행된 경우, 제어 플로우 통신 코드가 정상적으로 기동되었음을 지시하는 패치 코드 실행 완료 데이터 패킷을 경계 컨트롤러(210)에 전송할 수 있다.
여기서, 패치 코드 실행 완료 데이터 패킷은 제어 플로우 ID 및 패치 코드 실행 결과 정보(Data)를 포함할 수 있다.
패치 코드 실행 완료 데이터 패킷 전송 시 기존 프로토콜에서 발생될 수 있는 문제점 개선 및 향상된 통신 보호를 위해 통신 구간 보호 프로세스의 전송 프로세스와 같은 추가적인 보호 기술이 적용될 수 있다.
3) 패치 코드 실행 완료 수신 처리 단계(S930)
경계 컨트롤러(210)는 패치 코드 실행 완료 데이터 패킷을 PCFB(400)로부터 수신할 수 있다.
경계 컨트롤러(210)는 수신된 패치 코드 실행 완료 데이터 패킷에 포함된 제어 플로우 ID에 기반하여 제어 플로우 테이블에서 해당 제어 플로우 ID에 상응하는 제어 플로우 정보를 검색할 수 있다.
만약, 해당 제어 플로우 정보가 존재하지 않거나 해당 제어 플로우 정보가 존재하지만 해당 제어 플로우가 패치 대기 상태가 아니거나 만료 시각을 초과하여 사용 불가 상태로 확인된 경우, 경계 컨트롤러(210)는 해당 제어 플로우 ID에 대한 패치 코드 실행 완료 수신 처리를 중단할 수 있다.
패치 코드 실행 완료 데이터 패킷에 대한 보호 기술이 적용된 경우, 경계 컨트롤러(210)는 통신 구간 보호 프로세스의 수신 프로세스를 수행할 수 있다.
만약, 패치 코드 실행 완료 수신 처리가 중단된 경우, 제어 플로우 테이블에서 해당 제어 플로우 정보는 삭제되며, 단말은 처음부터 다시 제어 플로우 생성 절차를 수행해야 한다.
경계 컨트롤러(210)는 패치 코드 실행이 정상적으로 완료된 경우, 해당 제어 플로우의 상태 값을 폴링 상태로 변경하고, 폴링 만료 시각을 정책에 따라 재설정함으로써, 이후 PCFB(400)가 지속적인 폴링을 수행하여 제어 플로우를 갱신하고, 경계 컨트롤러(210)가 필요로 하는 일련의 요청에 PCFB(400)가 대응하도록 제어할 수 있다. 이때, 패치 이전에 존재하던 제어 플로우 정보는 제어 플로우 테이블에서 삭제될 수 있다.
경계 컨트롤로(210)는 제어 플로우 생성 완료 여부에 대한 응답 코드(Status)가 포함된 패치 완료 데이터 패킷을 PCFB(400)로 전송할 수 있다. 제어 플로우 패치 코드 실행 완료 수신 처리가 정상 완료된 경우, Status는 0으로 설정되고, 그렇기 않은 경우, Status는 1로 설정될 수 있다.
패치 완료 데이터 패킷 전송 시 기존 프로토콜에서 발생될 수 있는 문제점 개선 및 향상된 통신 보호를 위해 통신 구간 보호 프로세스의 전송 프로세스와 같은 추가적인 보호 기술이 적용될 수 있다.
4) 패치 완료 수신 처리(S940)
PCFB(400)는 경계 컨트롤러(210)로부터 패치 완료 데이터 패킷을 수신할 수 있다.
PCFB(400)는 패치 완료 데이터 패킷에 대해 보호 기술이 적용되어 있을 경우, 통신 구간 보호 프로세스의 수신 프로세스를 수행할 수 있다. 만약, 수신 처리에 실패한 경우, PCFB(400)는 제어 플로우 생성을 중단할 수 있다.
PCFB(400)는 패치 완료 데이터 패킷에 포함된 상태 값이 정상이 아닌 경우 제어 플로우 패치 코드 실행 절차를 종료할 수 있다.
PCFB(400)는 패치 완료 데이터 패킷에 포함된 상태 값이 정상인 경우, 제어 플로우 통신 코드에 포함된 폴링 로직을 실행할 수 있다.
지속적인 폴링을 통해 PCFB(400)가 현재 종료 상태인지를 지속적으로 확인할 수 있으며, PCFB(400)는 경계 컨트롤러(210)에 의한 각종 정보 요청에 대응할 수 있다.
특히, 상기한 제어 플로우 폴링 절차는 제로 트러스트 단말에서의 각종 위협 정보 파악을 위한 지속적인 감시를 통해 제어 플로우 기반의 안전한 네트워크 환경을 항상 제공할 수 있다.
도 10은 실시 예에 따른 제어 플로우 제거 절차를 설명하기 위한 도면이다.
도 10을 참조하면, 제어 플로우 제거 절차는 PCFB(400), 경계 컨트롤러(210) 및 경계 게이트웨이(230)가 연동하여 수행될 수 있다.
실시 예로, 제어 플로우 제거 절차는 제어 플로우 종료 요청 단계(S1010 및 S1020), 제어 플로우 종료 처리 단계(S1030) 및 데이터 플로우 종료 요청 단계(S1040)을 포함하여 구성될 수 있다.
이하, 제어 플로우 제거 절차를 구성하는 각 단계를 상세히 설명하기로 한다.
1)제어 플로우 종료 요청 단계(S1010 및 S1020)
제어 플로우 종료 요청은 PCFB(400) 및(또는) 경계 컨트롤로(210)에 의해 수행될 수 있다.
PCFB(400)는 경계 컨트롤러(210)에 제어 플로우 종료 요청 패킷을 경계 컨트롤러(210)로 전송할 수 있다. 여기서, 제어 플로우 종료 요청 패킷은 종료 대상 제어 플로우를 식별할 수 있는 제어 플로우 ID 또는 PCFB(400) 식별자 또는 단말 식별자 또는 애플리케이션 식별자 중 어느 하나를 포함할 수 있다.
경계 컨트롤러(210)는 PCFB(400)와의 모든 통신 및 절차 수행 과정에서 유효성 검사 실패, 중지 또는 종료 사유 발생, 위협 탐지, 탐지 코드 실행 실패, 제어 플로우의 갱신 시각 만료 등과 같은 비정상적 행위 및 상태가 탐지된 경우, 해당 제어 플로우 종료 절차를 개시할 수 있다.
경계 컨트롤러(210)는 제어 플로우 종료 요청에 따라 해당 제어 플로우 ID 등의 식별 정보에 상응하는 제어 플로우 정보를 제어 플로우 테이블에서 제거할 수 있다.
제어 플로우 제거 시 종료 사유가 비정상적 행위에 의한 것으로 확인된 경우, 경계 컨트롤러(210)는 블랙리스트 정책에 따라 해당 IP 또는 단말 ID 등의 식별된 정보를 일시적 차단 또는 영구적 차단을 위한 블랙리스트에 등록할 수 있다.
블랙리스트에 등록된 IP 또는 단말 ID의 경우, 최초 제어 플로우 요청 절차에서부터 접속이 원천적으로 차단될 수 있기 때문에 다양한 위협으로부터 경계 컨트롤러(210)는 보호될 수 있다.
2) 제어 플로우 종료 처리 단계(S1030)
제어 플로우 종료 시 경계 컨트롤러(210)는 해당 제어 플로우에 연관되어 있는 모든 데이터 플로우 정보를 제거하며, 연결된 경계 게이트웨이(230) 및 PCFB(400) (또는 단말)에 해당 제어 플로우에 상응하는 데이터 플로우 종료 사실을 통보할 수 있다.
3)데이터 플로우 종료 요청 단계(S1040)
상기 데이터 플로우 종료 통보에 따라 PCFB(400)(또는 단말) 및 경계 게이트웨이(230)는 해당 데이터 플로우를 더 이상 사용할 수 없음을 인지할 수 있다.
제어 플로우 종료 처리에 따라 모든 데이터 플로우가 제거됨으로써, PCFB(400)(또는 단말)은 제어 플로우 없이 단독으로 통신을 수행할 수 없는 상태가 되며, 그에 따라 네트워크에 연결되어는 있지만 실질적으로 데이터 패킷을 전송할 수 없는 격리 상태가 된다.
도 11은 실시 예에 따른 통신 구간 보호 절차를 설명하기 위한 도면이다.
통신 구간 보호 절차는 크게 전송 처리와 수신 처리로 구분될 수 있다.
전송 처리는 전송되는 데이터 패킷을 보호하기 위해 HMAC 기반 일회용 패스워드(HOTP: HMAC-based One-time Password) 알고리즘 등을 활용하여 무작위 요청을 방지하고, 통신 구간 상에서 발생될 수 있는 데이터 오염을 방지하기 위한 요청 데이터의 무결성 검증하는 기능이 포함될 수 있다.
또한, 전송 처리는 데이터를 보호하기 위해 PCFB(400) 배포시에 포함된 암호화키를 통한 자체적인 암호화 기능을 포함할 수도 있다.
상기 도 11은 통신 보호 기술에 적용되는 다양한 데이터 패킷 구조를 보여준다.
도 11에 도시된 구조 이외에도 제어 플로우 헤더가 데이터 패킷 내의 다양한 구간에 삽입될 수 있다.
데이터 패킷은 단말 및 경계 컨트롤러(210)의 상황에 따라 적합한 형태가 사용될 수 있다.
이때, 제어 플로우 헤더는 포함될 수 있는 정보(또는 필드)는 다음과 같다.
- 식별자(Identifier): 제어 플로우를 식별하기 위한 식별자로서, 제어 플로우를 생성하기 이전에는 단말 또는 PCFB(400)를 식별하기 위한 식별자로 사용될 수 있다.
- 일회용 패스워드(One Time Password): 제어 플로우 정보가 유효한 당사자간에 전송되는 것임을 확인하기 위한 OTP와 같은 난수 발생 알고리즘에 의해 생성된 정보로써, HOTP 알고리즘 또는 SPA(Single Packet Authorization) 기법이 활용될 수 있다.
- 시퀀스(Sequence): MITM(Man In The Middle) 공격을 방지하기 위해 상호간에 전송된 데이터 패킷의 순서를 카운트해서 비이상적 데이터 패킷이 중간에 끼어들어오는 것을 방지할 수 있다. 전송 및 수신 측에서 각각 프로세스 처리가 완료된 경우 기존 시퀀스 값에 1을 더한다.
- 무결성(Integrity): 데이터 패킷의 무결성을 검사하기 위한 정보로써, 터널 헤더 및 페이로드를 포함한 해쉬값 또는 무결성을 검증하기 위한 정보를 포함할 수 있다.
데이터 패킷에 포함되는 페이로드는 적용된 보호 기술에 따라 터널 또는 자체적인 암호화 알고리즘을 통해 암호화될 수 있다.
도 12는 본 발명의 실시 예에 따른 경계 컨트롤러의 구조를 설명하기 위한 블록도이다.
도 12를 참조하면, 경계 컨트롤러(210)는 제어 플로우 관련 정책이 기록된 정책 테이블(1201), 생성된 제어 플로우를 관리하기 위한 제어 플로우 정보가 유지되는 제어 플로우 테이블(1202), 원격 실행할 탐지 및 패치 코드를 미리 생성하여 저장해둔 원격 실행 코드 테이블(1203), 원격 코드를 생성하는 원격 실행 코드 생성 모듈(1204), 일반적 통신 및 제어 플로우 기반 통신을 수행하기 위한 통신 모듈(1205), 통신 모듈(1205)을 통해 수신된 각종 데이터 패킷을 처리하고, 제어 플로우 생성/삭제/갱신을 제어하는 PCFB 제어 모듈(1206) 및 제어 플로우 테이블(1202) 및 제어 플로우 제어 시 발생되는 각종 종료 조건에 따라 관련된 제어 플로우 및 데이터 플로우를 종료 처리하기 위한 제어 채널 감시 및 종료 처리 모듈(1207)을 포함하여 구성될 수 있다.
제어 플로우 테이블(1202)는 단말(또는 PCFB(400)과 경계 컨트롤러(210) 사이에 제어 데이터 패킷의 생성된 흐름(예: 제어 플로우)을 관리하기 위한 일종의 세션(session) 관리 테이블일 수 있다. 단말이 성공적으로 경계 컨트롤러(210)에 접속하는 경우, 제어 플로우 및 제어 플로우에 대한 식별 정보가 경계 컨트롤러(210)에 의하여 생성될 수 있다. 제어 플로우 정보는 제어 플로우의 식별 정보, 경계 컨트롤러(210)에 대한 접속 및 인증 시 식별되는 IP 주소, 단말 ID, 또는 사용자 ID 중 적어도 하나를 포함할 수 있다. 예를 들어, 단말로부터 목적지 네트워크에 대한 접속이 요청되면, 경계 컨트롤러(210)는 해당 단말로부터 수신된 제어 플로우 식별 정보를 통해 제어 플로우 정보를 검색하고, 검색된 제어 플로우 정보 내에 포함된 IP 주소, 단말 ID, 또는 사용자 ID 중 적어도 하나를 접속 정책에 매핑함으로써 상기 단말이 접속이 가능한지 여부 및 터널 생성 여부를 결정할 수 있다.
실시 예에 따른 정책 테이블(1201)은 접속 정책 정보, 터널 정책 정보, 블랙리스트 정책 정보 등을 포함하여 구성될 수 있다.
접속 정책 정보는 식별된 네트워크, 단말, 사용자, 또는 애플리케이션이 접속 가능한 네트워크 및/또는 서비스에 대한 정보를 포함할 수 있다. 예를 들어, 단말로부터 목적지 네트워크에 대한 접속이 요청되면, 경계 컨트롤러(210)는 접속 정책에 기반하여 식별된 네트워크(예: 단말이 속하는 네트워크), 단말, 사용자(예: 단말의 사용자), 및/또는 애플리케이션(예: 단말에 포함되는 애플리케이션)이 목적지 네트워크에 접속이 가능한지 여부를 결정할 수 있다.
터널 정책 정보는 연결(connection) 경로 상에서 출발지 노드(예: 단말)와 네트워크의 경계에 존재하는 경계 게이트웨이(230)에 연결될 터널의 종류, 암호화 방법, 및 암호화 수준 정보를 포함할 수 있다. 예를 들어, 단말로부터 목적지 네트워크에 대한 접속이 요청되면, 경계 컨트롤러(210)는 터널 정책에 기반하여 목적지 네트워크에 접속하기 위한 최적의 터널 및 그에 관한 정보를 단말에게 제공할 수 있다.
블랙 리스트 정보는 특정 단말의 접속을 영구적 또는 일시적으로 차단하기 위한 정책에 관한 정보를 포함할 수 있다. 블랙리스트 정책은 단말 또는 게이트웨이에서 주기적으로 수집되는 보안 이벤트 중에서 보안 이벤트의 위험도, 발생 주기, 및/또는 행위 분석을 통해 식별된 정보(예: 단말 ID(identifier), IP 주소, MAC(media access control) 주소, 또는 사용자 ID 중 적어도 하나)를 기반으로 생성될 수 있다.
블랙리스트는 블랙리스트 정책에 의해서 차단된 단말, IP 주소, MAC 주소, 또는 사용자 중 적어도 하나에 대한 목록을 포함할 수 있다. 예를 들어, 경계 컨트롤러(210)는 목적지 네트워크로의 접속을 요청하는 단말이 블랙리스트에 포함된 경우 상기 단말의 접속 요청을 거부함으로써 상기 목적지 네트워크로부터 상기 단말을 격리시킬 수 있다.
도 13은 본 발명의 실시 예에 따른 제어 플로우 정보를 설명하기 위한 도면이다.
제어 플로우 정보는 제어 플로우 별 관리되며, 제어 플로우 테이블(1202)에 유지될 수 있다.
도 13을 참조하면, 제어 플로우 정보(1300)는 제어 플로우 ID(1301), 제어 플로우 터널 및 통신 정보(1302), 데이터 플로우 ID 테이블(1303), 단말 ID 테이블(1304), 탐지 코드 실행 큐(1305), 시퀀스(1306), 상태(1307) 및 만료 시각(1308) 중 적어도 하나의 정보를 포함하여 구성될 수 있다.
제어 플로우 ID(1301)는 PCFB(400)에게 할당된 제어 플로우를 고유하게 식별 및 관리하기 위한 식별자 정보이다.
제어 플로우 터널 및 통신 정보(1302)는 PCFB(400)와 생성된 제어 플로우에 적용된 터널링 정보 및 구간 보호에 필요한 일련의 정보-예를 들면, 유효성 검증 방식, 암호화키 및 복호화키, 시퀀스, 난수 발생 정보 등-을 포함할 수 있다.
데이터 플로우 ID 테이블(1303)은 해당 제어 플로우를 통해 생성된 단말의 데이터 플로우를 고유하게 식별하기 위한 식별자 정보를 포함할 수 있다. 제어 플로우가 제어되면, 해당 제어 플로우를 통해 생성된 데이터 플로우에 관한 정보도 모두 제거되며. 경계 컨트롤러(210)는 해당 데이터 플로우 제거 시 해당 단말(또는 PCFB(400))로 데이터 플로우가 제거되었음을 통지하기 위한 소정 데이터 패킷을 전송할 수 있다.
단말 ID 테이블(1304)은 PCFB(400)를 통해 식별된 단말의 고유 식별자 정보, IP 정보, 사용자 ID 정보 등을 유지할 수 있다. 경계 컨트롤러(210)는 위협 발생 시 단말 ID 테이블(1304)를 참조하여 해당 단말과의 접속 해제 처리를 수행하고, 블랙리스트 등록에 필요한 식별 정보를 획득할 수 있다.
또한, 단말의 모빌리티 기능 지원을 위해 IP 변경시에도 단말 ID 테이블(1304)에 유지된 각종 식별 정보를 기반으로 계속적으로 제어 플로우가 유지될 수 있다. 나아가, 단말 ID 테이블(1304)에 저장된 정보들은 정책에 따라 해당 단말이 필요로 하는 탐지 코드를 식별하기 위한 용도뿐만 아니라 단말의 접속을 인가하고 인증하기 위한 정보로 사용될 수 있다.
탐지 코드 실행 큐(1305)는 PFCB(400)가 실행해야 할 탐지 코드 정보를 포함할 수 있다.
시퀀스(1306)는 기대하는 시퀀스 값-즉, 기대 값-에 관한 정보일 수 있다.
경계 컨트롤러(210)는 PFCB(400)가 탐지 코드를 실행하지 않았거나, 수신된 데이터 패킷의 시퀀스가 기대 값과 다를 경우 위협으로 간주하고 해당 제어 플로우를 제거할 수 있다.
만료 시각(1308)은 제어 플로우 폴링 정보를 수신하기까지 대기하는 시각을 의미할 수 있다.
PCFB(400)가 제어 플로우 폴링 정보를 만료 시각(1308) 이전에 경계 컨트롤러(210)에 전송하면, 해당 제어 플로우는 유지되지만, 만료 시각(1308)까지 제어 플로우 폴링 정보가 수신되지 않으면 단말이 정상적인 동작 상태가 아니거나 위협 발생으로 간주하여 경계 컨트롤러(210)는 해당 제어 플로우를 제거할 수 있다.
경계 컨트롤러(210)는 만료 시각(1308) 이전에 제어 플로우 폴링 정보가 정상 수신될 때마다 정책에 따라 만료 시각(1308)을 갱신할 수 있다.
도 14는 실시 예에 따른 단말 또는 PCFB의 메모리에 전개되는 제어 플로우 통신 코드 정보를 설명하기 위한 도면이다.
도 14를 참조하면, 제어 플로우 통신 코드 정보(1400)는 제어 플로우 ID(1401), 폴링 시 실행할 탐지 코드 정보를 포함하는 탐지 코드 실행 큐(1402), PCFB(400)와 경계 컨트롤러(210) 간에 생성할 제어 플로우에 적용된 터널링 정보 및 구간 보호에 필요한 일련의 정보-예를 들면, 유효성 검증 정보, 암호화키 및 복호화키, 시퀀스, 난수 발생 정보 등-을 포함하는 제어 플로우 터널 및 통신 코드(1403), 제어 플로우를 유지하기 위해 단말 또는 PCFB(400)의 상태를 지속적으로 모니터링하기 위한 폴링 코드(1404) 및 애플리케이션과 PCFB(400) 간에 가상 인터페이스를 제공하기 위한 제어 플로우 인터페이스 코드(1405)를 포함하여 구성될 수 있다.
도 15는 실시 예에 따른 단말 측에 유지되는 탐지 코드 실행 큐를 설명하기 위한 도면이다.
도 15를 참조하면, 탐지 코드 실행 큐(1402)에는 탐지 코드를 고유하게 식별하기 위한 탐지 코드 ID(1501), 탐지 코드를 실행하기 위한 진입점인 엔트리 포인트 및 탐지 코드를 얼마나 계속적으로 실행할 것인가에 대한 잔여 실행 회수에 관한 정보가 유지될 수 있다. 경계 컨트롤러(210)는 탐지 코드 ID(1501)를 통해 어느 탐지 코드의 실행 결과인지를 식별할 수 있다.
도 16은 실시 예에 따른 경계 컨트롤러의 상태 다이어그램을 보여준다.
도16을 참조하면, 경계 컨트롤러(210)의 상태 다이어그램은 제어 플로우 생성 대기 상태(1610), 제어 플로우 수신 대기 상태(1620), 폴링 대기 상태(1630), 폴링 처리 상태(1640) 및 패치 대기 상태(1650)를 포함할 수 있다.
경계 컨트롤러(210)는 제어 플로우 생성부터 종료까지 일련의 라이프 사이클을 관리하기 위한 상태 정보를 관리하며, 상태 값에 맞지 않은 비정상적인 요청이 발생된 경우, 위협으로 간주하여 즉각적인 제어 플로우 종료 절차를 수행할 수 있다.
경계 컨트롤러(210)는 제어 플로우 생성 대기 상태(1610)에서 PCFB(400)로부터의 제어 플로우 생성 요청을 대기할 수 있다.
경계 컨트롤러(210)는 PCFB(400)로부터 제어 플로우 생성이 요청되면 제어 플로우 통신 코드를 PCFB(400)로 전송한 후 제어 플로우 수신 대기 상태(1620)로 진입하여 제어 플로우 통신 코드 실행 결과의 수신을 대기할 수 있다.
경계 컨트롤러(210)는 제어 플로우 통신 코드가 정상적으로 실행된 경우, 폴링 대기 상태(1630)로 진입하여 제어 플로우 폴링 정보 수신을 대기할 수 있다.
경계 컨트롤러(210)는 폴링 대기 상태(1630)에서 제어 플로우 폴링 정보가 수신되면, 폴링 처리 상태(1640)로 진입하여 제어 플로우 폴링 정보를 처리하고, 처리 완료 시 다시 폴링 대기 상태(1630)로 진입할 수 있다.
경계 컨트롤러(210)는 폴링 대기 상태(1630)에서 수신된 제어 플로우 폴링 정보에 기반하여 위협 발생을 감지한 경우, 제어 플로 패치 코드를 생성하여 해당 PFCB(400)로 전송한 후 패치 대기 상태(1650)로 진입할 수 있다.
패치 대기 상태(1650)에서 패치 코드 실행 완료 데이터 패킷이 수신된 경우, 경계 컨트롤러(210)는 이를 처리한 후 다시 폴링 대기 상태(1630)로 천이할 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (20)

  1. 단말에서의 제어 플로우 관리 방법에 있어서
    서버로 제어 플로우 생성 요청 데이터 패킷을 전송하는 단계;
    제어 플로우 통신 코드를 상기 서버로부터 수신하는 단계;
    상기 수신된 제어 플로우 통신 코드를 가상 머신에 적재하여 실행하는 단계; 및
    상기 실행 결과를 상기 서버로 전송하는 단계
    를 포함하고, 상기 제어 플로우 통신 코드에 대한 실행 결과가 정상인 경우 상기 제어 플로우가 생성되고, 상기 실행 결과 값이 비정상이거나 상기 실행 결과가 일정 시간 이내에 상기 서버에 수신되지 않는 경우 상기 제어 플로우 생성이 상기 서버에 의해 차단되고,
    상기 제어 플로우는 상기 단말과 상기 서버 간 생성되는 것을 특징으로 하는 제어 플로우 관리 방법.
  2. 제1항에 있어서,
    상기 제어 플로우 통신 코드가 정상적으로 실행되었음을 지시하는 제어 플로우 통신 코드 실행 완료 데이터 패킷을 상기 서버로 전송하는 단계; 및
    상기 제어 플로우 생성이 완료되었음을 지시하는 제어 플로우 생성 완료 데이터 패킷을 상기 서버로부터 수신하는 단계
    를 더 포함하고, 가상화된 API(Application Protocol Interface)를 이용하여 상기 생성된 제어 플로우를 기반으로 상기 단말의 모든 요청이 상기 서버로 전송되는 것을 특징으로 하는 제어 플로우 관리 방법.
  3. 제1항에 있어서,
    상기 제어 플로우 통신 코드는 상기 가상 머신에서 실행 가능한 바이트 코드이고, 별도의 디스크에 저장되지 않고 상기 가상 머신의 메모리상에 직접 실시간 적재되어 실행되는 것을 특징으로 하는 제어 플로우 관리 방법.
  4. 제2항에 있어서,
    상기 제어 플로우 생성 완료 데이터 패킷에 포함된 상태 값이 정상인 경우, 제어 플로우 폴링을 시작하는 단계;
    상기 폴링 중 실행할 탐지 코드 존재 시 상기 탐지 코드를 실행하는 단계; 및
    탐지 코드 실행 결과가 포함된 제어 플로우 폴링 정보를 상기 서버로 전송하는 단계
    를 더 포함하고, 상기 탐지 코드 실행 결과에 기초하여 상기 서버에 의해 패치가 필요한 것으로 판단된 경우, 새로운 패치 코드가 상기 서버로부터 수신되는 것을 특징으로 하는 제어 플로우 관리 방법.
  5. 제4항에 있어서,
    상기 패치 코드 수신에 따라 기존 제어 플로우 통신 코드는 상기 가상 머신의 메모리상에서 삭제되고, 상기 패치 코드의 실행을 통해 상기 제어 플로우가 갱신되는 것을 특징으로 하는 제어 플로우 관리 방법.
  6. 제4항에 있어서,
    새로운 탐지 코드, 상기 새로운 탐지 코드를 실행하기 위한 엔트리 포인트 및 상기 새로운 탐지 코드의 잔여 실행 회수에 관한 정보가 포함된 폴링 정보 처리 결과 데이터 패킷을 상기 제어 플로우를 통해 수신하는 단계;
    상기 새로운 탐지 코드를 상기 가상 머신의 메모리에 적재하는 단계; 및
    상기 엔트리 포인트 및 상기 잔여 실행 회수에 관한 정보를 탐지 코드 실행 큐에 추가하는 단계
    를 포함하고, 다음 폴링 시각에 상기 탐지 코드 실행 큐를 참조하여 상기 새로운 탐지 코드를 실행하는 것을 특징으로 하는 제어 플로우 관리 방법.
  7. 제6항에 있어서,
    상기 폴링은 미리 설정된 정책에 따라 일정 주기로 수행되되, 상기 폴링 수행 시마다 상기 잔여 실행 회수가 1만큼 감소되고, 상기 잔여 실행 회수가 0 이 되면, 상기 새로운 탐지 코드가 상기 제어 플로우를 통해 상기 서버로부터 수신되어 상기 메모리에 적재된 후 실행되는 것을 특징으로 하는 제어 플로우 관리 방법.
  8. 제1항에 있어서,
    수신되는 데이터 패킷의 상태 값이 비정상인 경우, 상기 수신된 데이터 패킷의 유효성 검사에 실패한 경우, 종료 또는 중지 사유가 발생한 경우, 위협이 탐지된 경우, 탐지 코드 실행 실패인 경우 및 제어 플로우 갱신 실패인 경우 중 어느 하나의 경우에 해당되면, 상기 서버로 제어 플로우 종료 요청 데이터 패킷을 전송하는 단계를 더 포함하고, 상기 제어 플로우 종료 요청 데이터 패킷 전송에 따라 해당 제어 플로우 및 해당 제어 플로우와 관련된 모든 데이터 플로우가 해제되는 것을 특징으로 하는 제어 플로우 관리 방법.
  9. 제1항에 있어서,
    상기 제어 플로우 통신 코드에 터널 생성 정보가 포함된 경우, 상기 터널 생성 정보를 이용하여 상기 서버로 터널 생성을 요청하는 단계를 더 포함하고, 상기 터널 생성 정보는 터널 종류, 터널 방식, 상호 키 교환을 위한 인증 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 제어 플로우 관리 방법.
  10. 서버와 통신하는 단말에 있어서,
    서버로 제어 플로우 생성 요청 데이터 패킷을 전송하고, 제어 플로우 통신 코드를 상기 서버로부터 수신하고, 상기 제어 플로우 통신 코드에 대한 실행 결과를 상기 서버로 전송하는 실행 모듈;
    상기 수신된 제어 플로우 통신 코드가 적재되는 메모리; 및
    상기 적재된 제어 플로우 통신 코드를 상기 메모리상에서 실행시키는 가상 머신
    을 포함하고, 상기 제어 플로우 통신 코드에 대한 실행 결과가 정상인 경우 상기 제어 플로우가 생성되고, 상기 실행 결과 값이 비정상이거나 상기 실행 결과가 일정 시간 이내에 상기 서버에 수신되지 않는 경우 상기 제어 플로우의 생성이 상기 서버에 의해 차단되며,
    상기 제어 플로우는 상기 단말과 상기 서버 간 생성되는 것을 특징으로 하는 단말.
  11. 제10항에 있어서,
    상기 제어 플로우 통신 코드가 정상적으로 실행되었음을 지시하는 제어 플로우 통신 코드 실행 완료 데이터 패킷을 상기 서버로 전송하는 수단; 및
    상기 제어 플로우 생성이 완료되었음을 지시하는 제어 플로우 생성 완료 데이터 패킷을 상기 서버부터 수신하는 수단
    을 포함하고, 가상화된 API(Application Protocol Interface)를 이용하여 상기 생성된 제어 플로우를 기반으로 상기 단말의 모든 요청이 상기 서버로 전송되는 것을 특징으로 하는 단말.
  12. 제10항에 있어서,
    상기 제어 플로우 통신 코드는 상기 가상 머신에서 실행 가능한 바이트 코드이고, 별도의 디스크에 저장되지 않고 상기 가상 머신의 상기 메모리상에 직접 실시간 적재되어 실행되는 것을 특징으로 하는 단말.
  13. 제11항에 있어서,
    상기 제어 플로우 생성 완료 데이터 패킷에 포함된 상태 값이 정상인 경우, 제어 플로우 폴링을 시작하는 수단
    상기 폴링 중 실행할 탐지 코드 존재 시 상기 탐지 코드를 실행하는 수단; 및
    탐지 코드 실행 결과가 포함된 제어 플로우 폴링 정보를 상기 서버로 전송하는 수단
    을 포함하고, 상기 탐지 코드 실행 결과에 기초하여 상기 서버에 의해 패치가 필요한 것으로 판단된 경우, 새로운 패치 코드가 상기 서버로부터 수신되는 것을 특징으로 하는 단말.
  14. 제13항에 있어서,
    상기 패치 코드 수신에 따라 기존 제어 플로우 통신 코드는 상기 가상 머신의 상기 메모리상에서 삭제되고, 상기 패치 코드의 실행을 통해 상기 제어 플로우가 갱신되는 것을 특징으로 하는 단말.
  15. 제13항에 있어서,
    새로운 탐지 코드, 상기 새로운 탐지 코드를 실행하기 위한 엔트리 포인트 및 상기 새로운 탐지 코드의 잔여 실행 회수에 관한 정보가 포함된 폴링 정보 처리 결과 데이터 패킷을 상기 제어 플로우를 통해 수신하는 수단;
    상기 새로운 탐지 코드를 상기 가상 머신의 상기 메모리에 적재하는 수단; 및
    상기 엔트리 포인트 및 상기 잔여 실행 회수에 관한 정보를 탐지 코드 실행 큐에 추가하는 수단
    을 포함하고, 다음 폴링 시각에 상기 탐지 코드 실행 큐를 참조하여 상기 새로운 탐지 코드를 실행하는 것을 특징으로 하는 단말.
  16. 제15항에 있어서,
    상기 폴링은 미리 설정된 정책에 따라 일정 주기로 수행되되, 상기 폴링 수행 시마다 상기 잔여 실행 회수가 1만큼 감소되고, 상기 잔여 실행 회수가 0 이 되면, 상기 새로운 탐지 코드가 상기 제어 플로우를 통해 상기 서버로부터 수신되어 상기 메모리에 적재된 후 실행되는 것을 특징으로 하는 단말.
  17. 제10항에 있어서,
    수신되는 데이터 패킷의 상태 값이 비정상인 경우, 상기 수신된 데이터 패킷의 유효성 검사에 실패한 경우, 종료 또는 중지 사유가 발생한 경우, 위협이 탐지된 경우, 탐지 코드 실행 실패인 경우 및 제어 플로우 갱신 실패인 경우 중 어느 하나의 경우에 해당되면, 상기 서버로 제어 플로우 종료 요청 데이터 패킷을 전송하는 수단을 더 포함하고, 상기 제어 플로우 종료 요청 데이터 패킷 전송에 따라 해당 제어 플로우 및 해당 제어 플로우와 관련된 모든 데이터 플로우가 해제되는 것을 특징으로 하는 단말.
  18. 제10항에 있어서,
    상기 제어 플로우 통신 코드에 터널 생성 정보가 포함된 경우, 상기 터널 생성 정보를 이용하여 상기 서버로 터널 생성을 요청하는 수단을 더 포함하고, 상기 터널 생성 정보는 터널 종류, 터널 방식, 상호 키교환을 위한 인증 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 단말.
  19. 서버에서의 제어 플로우 관리 방법에 있어서
    단말로부터 제어 플로우 생성 요청 데이터 패킷을 수신하는 단계;
    제어 플로우 통신 코드를 상기 단말로 전송하는 단계; 및
    상기 제어 플로우 통신 코드에 대한 실행 결과를 상기 단말로부터 수신하는 단계
    를 포함하고, 상기 제어 플로우 통신 코드에 대한 실행 결과가 정상인 경우 상기 단말과 상기 제어 플로우를 생성하고, 상기 실행 결과 값이 비정상이거나 상기 실행 결과가 일정 시간 이내에 상기 단말로부터 수신되지 않는 경우 상기 단말과의 상기 제어 플로우 생성을 차단되며,
    상기 제어 플로우는 상기 단말과 상기 서버 간 생성되는 것을 특징으로 하는 제어 플로우 관리 방법.
  20. 제어 플로우 생성 요청 데이터 패킷을 전송하여 제어 플로우 통신 코드를 수신하여 실행하고, 상기 제어 플로우 통신 코드에 대한 실행 결과를 전송하는 단말;
    상기 제어 플로우 생성 요청 데이터 패킷 수신 시 상기 단말에 상응하는 상기 제어 플로우 통신 코드를 생성하거나 미리 생성되어 원격 실행 코드 테이블에 유지된 상기 단말에 상응하는 상기 제어 플로우 통신 코드를 추출하여 상기 단말로 전송하고, 상기 제어 플로우 통신 코드에 대한 실행 결과가 정상인 경우 상기 단말과 상기 제어 플로우를 생성하고, 상기 실행 결과 값이 비정상이거나 상기 실행 결과가 일정 시간 이내에 수신되지 않는 경우 상기 단말과의 상기 제어 플로우 생성을 차단하는 서버; 및
    상기 서버의 제어에 따라 상기 단말과 목적지 네트워크 사이에 데이터 플로우를 생성하는 게이트웨이
    를 포함하는 것을 특징으로 하는 제어 플로우 관리 시스템.
KR1020200098163A 2019-09-24 2020-08-05 원격 실행 코드 기반 노드의 제어 플로우 관리 시스템 및 그에 관한 방법 KR102206562B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/656,152 US20220247748A1 (en) 2019-09-24 2020-09-24 System For Remote Execution Code-Based Node Control Flow Management, And Method Therefor
PCT/KR2020/012927 WO2021060857A1 (ko) 2019-09-24 2020-09-24 원격 실행 코드 기반 노드의 제어 플로우 관리 시스템 및 그에 관한 방법

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16/580,974 2019-09-24
US16/580,866 2019-09-24
US16/580,974 US11381557B2 (en) 2019-09-24 2019-09-24 Secure data transmission using a controlled node flow
US16/580,866 US11190494B2 (en) 2019-09-24 2019-09-24 Application whitelist using a controlled node flow

Publications (1)

Publication Number Publication Date
KR102206562B1 true KR102206562B1 (ko) 2021-01-22

Family

ID=71136887

Family Applications (13)

Application Number Title Priority Date Filing Date
KR1020200030721A KR102119257B1 (ko) 2019-09-24 2020-03-12 터널에 기반하여 단말의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR1020200045525A KR102204705B1 (ko) 2019-09-24 2020-04-14 네트워크 접속 제어 시스템 및 그 방법
KR1020200045526A KR102146568B1 (ko) 2019-09-24 2020-04-14 네트워크 접속 제어 시스템 및 그 방법
KR1020200057169A KR102178003B1 (ko) 2019-09-24 2020-05-13 네트워크 접속 제어 시스템 및 그 방법
KR1020200057171A KR102137773B1 (ko) 2019-09-24 2020-05-13 보안 애플리케이션을 통해 안전한 데이터를 전송하기 위한 시스템 및 그에 관한 방법
KR1020200057168A KR102175772B1 (ko) 2019-09-24 2020-05-13 컨트롤러 기반 데이터 전송 시스템 및 방법
KR1020200057170A KR102152314B1 (ko) 2019-09-24 2020-05-13 데이터 플로우 제어 기반 데이터 전송 시스템 및 방법
KR1020200084912A KR102181185B1 (ko) 2019-09-24 2020-07-09 단말의 안전한 네트워크 접속을 위한 시스템 및 방법
KR1020200091275A KR102204143B1 (ko) 2019-09-24 2020-07-22 터널 기반 접속성 관리 방법 및 그를 위한 장치 및 시스템
KR1020200098163A KR102206562B1 (ko) 2019-09-24 2020-08-05 원격 실행 코드 기반 노드의 제어 플로우 관리 시스템 및 그에 관한 방법
KR1020200100062A KR102223827B1 (ko) 2019-09-24 2020-08-10 단말의 네트워크 접속을 인증 및 제어하기 위한 시스템 및 그에 관한 방법
KR1020200105345A KR102250505B1 (ko) 2019-09-24 2020-08-21 터널 및 데이터 플로우에 기반하여 노드의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR1020200117543A KR102274617B1 (ko) 2019-09-24 2020-09-14 제어 데이터 패킷을 보호하기 위한 시스템 및 그에 관한 방법

Family Applications Before (9)

Application Number Title Priority Date Filing Date
KR1020200030721A KR102119257B1 (ko) 2019-09-24 2020-03-12 터널에 기반하여 단말의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR1020200045525A KR102204705B1 (ko) 2019-09-24 2020-04-14 네트워크 접속 제어 시스템 및 그 방법
KR1020200045526A KR102146568B1 (ko) 2019-09-24 2020-04-14 네트워크 접속 제어 시스템 및 그 방법
KR1020200057169A KR102178003B1 (ko) 2019-09-24 2020-05-13 네트워크 접속 제어 시스템 및 그 방법
KR1020200057171A KR102137773B1 (ko) 2019-09-24 2020-05-13 보안 애플리케이션을 통해 안전한 데이터를 전송하기 위한 시스템 및 그에 관한 방법
KR1020200057168A KR102175772B1 (ko) 2019-09-24 2020-05-13 컨트롤러 기반 데이터 전송 시스템 및 방법
KR1020200057170A KR102152314B1 (ko) 2019-09-24 2020-05-13 데이터 플로우 제어 기반 데이터 전송 시스템 및 방법
KR1020200084912A KR102181185B1 (ko) 2019-09-24 2020-07-09 단말의 안전한 네트워크 접속을 위한 시스템 및 방법
KR1020200091275A KR102204143B1 (ko) 2019-09-24 2020-07-22 터널 기반 접속성 관리 방법 및 그를 위한 장치 및 시스템

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020200100062A KR102223827B1 (ko) 2019-09-24 2020-08-10 단말의 네트워크 접속을 인증 및 제어하기 위한 시스템 및 그에 관한 방법
KR1020200105345A KR102250505B1 (ko) 2019-09-24 2020-08-21 터널 및 데이터 플로우에 기반하여 노드의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR1020200117543A KR102274617B1 (ko) 2019-09-24 2020-09-14 제어 데이터 패킷을 보호하기 위한 시스템 및 그에 관한 방법

Country Status (4)

Country Link
EP (2) EP3879785A1 (ko)
JP (2) JP7148173B2 (ko)
KR (13) KR102119257B1 (ko)
WO (4) WO2021060853A1 (ko)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11082256B2 (en) 2019-09-24 2021-08-03 Pribit Technology, Inc. System for controlling network access of terminal based on tunnel and method thereof
US11381557B2 (en) 2019-09-24 2022-07-05 Pribit Technology, Inc. Secure data transmission using a controlled node flow
US11271777B2 (en) 2019-09-24 2022-03-08 Pribit Technology, Inc. System for controlling network access of terminal based on tunnel and method thereof
KR102119257B1 (ko) * 2019-09-24 2020-06-26 프라이빗테크놀로지 주식회사 터널에 기반하여 단말의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
US11652801B2 (en) 2019-09-24 2023-05-16 Pribit Technology, Inc. Network access control system and method therefor
US11190494B2 (en) 2019-09-24 2021-11-30 Pribit Technology, Inc. Application whitelist using a controlled node flow
KR102364445B1 (ko) * 2021-04-28 2022-02-18 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102333554B1 (ko) * 2021-04-28 2021-12-01 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102333555B1 (ko) * 2021-05-07 2021-12-01 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102358595B1 (ko) * 2021-05-07 2022-02-08 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102333553B1 (ko) * 2021-05-07 2021-12-01 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102377245B1 (ko) * 2021-05-28 2022-03-23 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102377247B1 (ko) * 2021-06-09 2022-03-23 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102377246B1 (ko) * 2021-06-10 2022-03-23 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102377248B1 (ko) * 2021-06-10 2022-03-23 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102371181B1 (ko) * 2021-08-26 2022-03-07 주식회사 엠엘소프트 에이전트어플리케이션이 설치된 사용자단말 및 사용자단말과 통신을 수행하는 서버시스템에서 수행되는 통신 보안방법
KR102349039B1 (ko) * 2021-08-31 2022-01-11 프라이빗테크놀로지 주식회사 분산 게이트웨이 환경에 최적화된 제어 데이터 패킷 처리 시스템 및 그에 관한 방법
KR102349038B1 (ko) * 2021-09-02 2022-01-11 프라이빗테크놀로지 주식회사 분산 게이트웨이 환경에 최적화된 터널링 및 게이트웨이 접속 시스템 및 그에 관한 방법
KR102365775B1 (ko) * 2021-09-02 2022-02-23 프라이빗테크놀로지 주식회사 분산 게이트웨이 환경에서 과금 기준 경로 설정 처리 시스템 및 그에 관한 방법
KR102379720B1 (ko) * 2021-09-03 2022-03-29 프라이빗테크놀로지 주식회사 가상화 단말에서 데이터 플로우를 제어하기 위한 시스템 및 그에 관한 방법
KR102379721B1 (ko) * 2021-09-03 2022-03-29 프라이빗테크놀로지 주식회사 Tcp 세션 제어에 기초하여 애플리케이션의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102309116B1 (ko) * 2021-09-07 2021-10-08 프라이빗테크놀로지 주식회사 데이터 플로우 기반 애플리케이션의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102309115B1 (ko) * 2021-09-07 2021-10-08 프라이빗테크놀로지 주식회사 데이터 플로우 기반 애플리케이션의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102407135B1 (ko) * 2021-10-20 2022-06-10 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102407136B1 (ko) * 2021-11-15 2022-06-13 프라이빗테크놀로지 주식회사 컨트롤러 기반 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102460691B1 (ko) * 2021-11-15 2022-10-31 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102460692B1 (ko) * 2021-11-18 2022-10-31 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
CN114157472B (zh) * 2021-11-29 2024-02-23 深信服科技股份有限公司 一种网络访问控制方法、装置、设备及存储介质
CN113905109B (zh) * 2021-12-08 2022-03-22 深圳竹云科技有限公司 零信任网络数据传输方法、装置、设备及计算机存储介质
KR102430881B1 (ko) * 2021-12-13 2022-08-09 에스지에이솔루션즈 주식회사 서버 단말 연결 망의 보안위협과 보안 커널을 연계한 사용자의 경로 및 행위의 가시화 방법, 장치 및 컴퓨터-판독가능 기록매체
CN114301690B (zh) * 2021-12-29 2024-02-23 中国电信股份有限公司 动态网络隔离方法及装置、存储介质、终端设备
KR20230106427A (ko) 2022-01-06 2023-07-13 부산대학교 산학협력단 분기 태그 지정 확장을 위한 리스크 파이브 아키텍처 명령어 확장을 위한 장치 및 방법
KR102427663B1 (ko) * 2022-01-14 2022-08-02 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102396528B1 (ko) * 2022-01-14 2022-05-12 프라이빗테크놀로지 주식회사 컨트롤러 기반 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102410552B1 (ko) * 2022-01-26 2022-06-22 프라이빗테크놀로지 주식회사 애플리케이션의 파일 송신 및 수신을 제어하기 위한 시스템 및 그에 관한 방법
KR102439880B1 (ko) * 2022-01-26 2022-09-05 프라이빗테크놀로지 주식회사 애플리케이션의 파일 송신 및 수신을 제어하기 위한 시스템 및 그에 관한 방법
KR102439881B1 (ko) * 2022-01-27 2022-09-05 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102460693B1 (ko) * 2022-02-23 2022-10-31 프라이빗테크놀로지 주식회사 애플리케이션의 파일 송신 및 수신을 제어하기 위한 시스템 및 그에 관한 방법
KR102460695B1 (ko) * 2022-02-24 2022-10-31 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102460694B1 (ko) * 2022-02-24 2022-10-31 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102502367B1 (ko) * 2022-03-17 2023-02-23 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102472554B1 (ko) * 2022-03-31 2022-12-01 프라이빗테크놀로지 주식회사 컨트롤러 기반 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102495369B1 (ko) * 2022-04-25 2023-02-06 프라이빗테크놀로지 주식회사 컨트롤러 기반 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102514618B1 (ko) * 2022-04-26 2023-03-29 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102495370B1 (ko) * 2022-04-28 2023-02-06 프라이빗테크놀로지 주식회사 프록시에 기반하여 애플리케이션의 파일 송신 및 수신을 제어하기 위한 시스템 및 그에 관한 방법
KR102491627B1 (ko) * 2022-07-20 2023-01-27 주식회사 안랩 게이트웨이 장치와 그 접속 처리 방법
KR102584579B1 (ko) * 2022-09-29 2023-10-05 주식회사 신시웨이 SaaS 기반 데이터베이스 접근제어 게이트웨이 서비스 시스템 및 방법
KR102600442B1 (ko) * 2023-02-21 2023-11-10 프라이빗테크놀로지 주식회사 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102600443B1 (ko) * 2023-02-21 2023-11-10 프라이빗테크놀로지 주식회사 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102564418B1 (ko) * 2023-02-22 2023-08-08 프라이빗테크놀로지 주식회사 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102583604B1 (ko) * 2023-03-24 2023-10-06 프라이빗테크놀로지 주식회사 논리적 연결 식별 기반 데이터 플로우를 제어하기 위한 시스템 및 그에 관한 방법
KR102554200B1 (ko) * 2023-04-11 2023-07-12 프라이빗테크놀로지 주식회사 논리적 연결 식별 기반 데이터 플로우를 제어하기 위한 시스템 및 그에 관한 방법
CN116437349B (zh) * 2023-06-13 2023-09-05 武汉博易讯信息科技有限公司 对移动网络进行访问控制的方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130045919A (ko) * 2010-09-09 2013-05-06 닛본 덴끼 가부시끼가이샤 네트워크 시스템 및 네트워크 관리 방법
KR20160123069A (ko) * 2015-04-15 2016-10-25 한국전자통신연구원 단말의 통합 인증 방법 및 그 장치

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100415554B1 (ko) * 2001-05-21 2004-01-24 한국전자통신연구원 정보 보호 인터넷 프로토콜 패킷의 송수신 방법
KR20030075810A (ko) * 2002-03-20 2003-09-26 유디에스 주식회사 공인네트워크와 비공인네트워크 사이에서의 데이터 통신시스템 및 그 방법
US20050273853A1 (en) * 2004-05-24 2005-12-08 Toshiba America Research, Inc. Quarantine networking
KR20070037650A (ko) * 2004-07-23 2007-04-05 사이트릭스 시스템스, 인크. 종단에서 게이트웨이로 패킷을 라우팅하기 위한 방법 및시스템
US7280826B2 (en) * 2005-02-01 2007-10-09 Telefonaktiebolaget Lm Ericsson (Publ) Method, system and apparatus for providing security in an unlicensed mobile access network or a generic access network
KR100692653B1 (ko) * 2005-11-15 2007-03-13 주식회사 케이티프리텔 무선 인터넷 데이터 중계 방법 및 이를 이용한 무선 인터넷데이터를 위한 액세스 게이트웨이 시스템
JP4727460B2 (ja) * 2006-03-09 2011-07-20 株式会社エヌ・ティ・ティ・データ Vpn管理装置、プログラム及びvpn管理方法
KR100748698B1 (ko) * 2006-03-17 2007-08-13 삼성전자주식회사 보안 통신 시스템의 패킷 처리 방법 및 그 장치
JP5239341B2 (ja) * 2008-01-08 2013-07-17 日本電気株式会社 ゲートウェイ、中継方法及びプログラム
JP2011015327A (ja) * 2009-07-06 2011-01-20 Fujitsu Ltd 通信管理装置および通信管理プログラム
TWI519098B (zh) * 2009-12-28 2016-01-21 內數位專利控股公司 機器對機器閘道架構
JP5413737B2 (ja) * 2010-02-15 2014-02-12 日本電気株式会社 ネットワークシステム、及び経路情報更新方法
US8504818B2 (en) * 2010-04-15 2013-08-06 Microsoft Corporation Method and system for reliable protocol tunneling over HTTP
KR101730954B1 (ko) * 2010-11-01 2017-04-27 에스케이텔레콤 주식회사 애플리케이션을 통한 보안 서비스 제공 시스템 및 방법, 그리고 이에 적용되는 장치
US9529996B2 (en) * 2011-10-11 2016-12-27 Citrix Systems, Inc. Controlling mobile device access to enterprise resources
AU2013260295B2 (en) * 2012-05-10 2017-05-04 Samsung Electronics Co., Ltd. Method and system for connectionless transmission during uplink and downlink of data packets
US9973501B2 (en) * 2012-10-09 2018-05-15 Cupp Computing As Transaction security systems and methods
EP3633954B1 (en) 2012-10-15 2022-08-10 Citrix Systems, Inc. Providing virtualized private network tunnels
KR20140055857A (ko) * 2012-11-01 2014-05-09 주식회사 케이티 이종망간 이동성 제공 시스템 및 방법
KR101481337B1 (ko) * 2013-11-25 2015-01-21 숭실대학교산학협력단 소프트웨어 정의 네트워크 기반 이동통신 시스템 및 이의 단말 접속 처리 방법
KR102245362B1 (ko) * 2014-01-24 2021-04-28 엘지전자 주식회사 서로 다른 통신 프로토콜을 사용하는 디바이스들 간 무선 네트워크 연결을 제어하기 위한 방법 및 이를 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체
KR101561108B1 (ko) * 2014-05-07 2015-10-16 성균관대학교산학협력단 소프트웨어 정의 네트워크에 기반한 프록시 모바일 IPv6환경에서의 데이터 통신 방법 및 핸드오버 방법
EP3142305A4 (en) * 2014-05-27 2017-06-07 Huawei Technologies Co. Ltd. Flow table management method and relevant device and system
KR101755829B1 (ko) * 2014-09-05 2017-07-07 주식회사 케이티 Sdn 환경에서 arp 처리 방법 및 장치
EP3770781B1 (en) 2014-09-30 2022-06-08 Citrix Systems, Inc. Fast smart card logon and federated full domain logon
US9148408B1 (en) * 2014-10-06 2015-09-29 Cryptzone North America, Inc. Systems and methods for protecting network devices
KR102272838B1 (ko) * 2014-11-11 2021-07-06 삼성전자주식회사 이동통신 네트워크를 통한 데이터 서비스 제공 방법 및 장치
KR101578193B1 (ko) * 2014-12-31 2015-12-16 (주)넷비젼텔레콤 소프트웨어 정의 네트워크 기술을 사용하는 엑세스 게이트웨이 제어시스템 및 그 제어방법
CN107210956A (zh) * 2015-02-05 2017-09-26 科里普特佐内北美股份有限公司 多隧道虚拟网络适配器
US10432592B2 (en) 2015-05-10 2019-10-01 Citrix Systems, Inc. Password encryption for hybrid cloud services
WO2016190641A1 (ko) * 2015-05-22 2016-12-01 엘지전자(주) 무선 통신 시스템에서 데이터 송수신 방법 및 이를 위한 장치
US10362011B2 (en) * 2015-07-12 2019-07-23 Qualcomm Incorporated Network security architecture
US9906560B2 (en) * 2015-08-28 2018-02-27 Nicira, Inc. Distributing remote device management attributes to service nodes for service rule processing
US9560015B1 (en) * 2016-04-12 2017-01-31 Cryptzone North America, Inc. Systems and methods for protecting network devices by a firewall
KR101861201B1 (ko) * 2016-08-16 2018-05-25 아토리서치(주) 소프트웨어 정의 네트워킹에서의 서버 은닉 방법, 시스템 및 컴퓨터 프로그램
KR101743559B1 (ko) * 2016-09-20 2017-06-05 주식회사 아라드네트웍스 가상 사설 네트워크 시스템, 그를 이용하는 pc방 네트워크, 및 그를 위한 매니저 장치
KR20180032864A (ko) * 2016-09-23 2018-04-02 주식회사 윈스 사용자 인증을 통한 비정상 네트워크 트래픽 제어 장치 및 방법
KR102050089B1 (ko) * 2016-12-01 2019-11-28 엑사비스 주식회사 적응적 룰셋 세팅을 수행하는 네트워크 보안 시스템 및 그 방법
KR101924712B1 (ko) * 2017-01-24 2018-12-03 건국대학교 산학협력단 패킷 전송 방법 및 오픈플로우 스위치
KR101910605B1 (ko) * 2017-06-19 2018-10-23 주식회사 케이티 무선 단말의 네트워크 접속 제어 시스템 및 방법
US9948612B1 (en) 2017-09-27 2018-04-17 Citrix Systems, Inc. Secure single sign on and conditional access for client applications
KR20190052541A (ko) * 2017-11-08 2019-05-16 한국전자통신연구원 서비스 서버와 사용자 단말간의 네트워크 경로 제공 방법 및 장치
KR20190073114A (ko) * 2017-12-18 2019-06-26 주식회사 케이티 단말, 상기 단말의 동작 방법 및 다중경로 통신 시스템
KR102119257B1 (ko) * 2019-09-24 2020-06-26 프라이빗테크놀로지 주식회사 터널에 기반하여 단말의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130045919A (ko) * 2010-09-09 2013-05-06 닛본 덴끼 가부시끼가이샤 네트워크 시스템 및 네트워크 관리 방법
KR20160123069A (ko) * 2015-04-15 2016-10-25 한국전자통신연구원 단말의 통합 인증 방법 및 그 장치

Also Published As

Publication number Publication date
KR102119257B1 (ko) 2020-06-26
JP2021145335A (ja) 2021-09-24
KR102175772B1 (ko) 2020-11-06
KR102204143B1 (ko) 2021-01-18
JP7148187B2 (ja) 2022-10-05
KR102181185B1 (ko) 2020-11-20
KR102204705B1 (ko) 2021-01-19
KR20210035742A (ko) 2021-04-01
WO2021060854A1 (ko) 2021-04-01
JP2022043329A (ja) 2022-03-15
WO2021060857A1 (ko) 2021-04-01
WO2021060856A1 (ko) 2021-04-01
JP7148173B2 (ja) 2022-10-05
KR102178003B1 (ko) 2020-11-13
EP4020941A1 (en) 2022-06-29
KR20210045917A (ko) 2021-04-27
KR102137773B1 (ko) 2020-07-24
KR102250505B1 (ko) 2021-05-12
KR102274617B1 (ko) 2021-07-08
WO2021060853A1 (ko) 2021-04-01
KR102146568B1 (ko) 2020-08-20
EP3879785A1 (en) 2021-09-15
KR102223827B1 (ko) 2021-03-08
KR102152314B1 (ko) 2020-09-04

Similar Documents

Publication Publication Date Title
KR102206562B1 (ko) 원격 실행 코드 기반 노드의 제어 플로우 관리 시스템 및 그에 관한 방법
US10659434B1 (en) Application whitelist using a controlled node flow
US10659462B1 (en) Secure data transmission using a controlled node flow
EP2936373B1 (en) Trusted container
EP2887576B1 (en) Software key updating method and device
KR102460694B1 (ko) 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
US20170063557A1 (en) Detection of fraudulent certificate authority certificates
JP6654651B2 (ja) 動的なセキュリティーモジュール端末装置及びその駆動方法
JP2007519308A (ja) アプリケーションの認証方法
KR102460695B1 (ko) 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
CN113572791A (zh) 一种视频物联网大数据加密服务方法、***及装置
KR102377248B1 (ko) 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
JP2008276457A (ja) ネットワーク保護プログラム、ネットワーク保護装置およびネットワーク保護方法
US20070220615A1 (en) Frame relay device and frame inspection device
CN113301107A (zh) 节点计算平台及其实现方法、可信云平台实现方法
WO2023125712A1 (zh) 单包授权的状态检测方法、终端设备及存储介质
US20220247748A1 (en) System For Remote Execution Code-Based Node Control Flow Management, And Method Therefor
CN115134146B (zh) 一种车载娱乐***及车辆
KR20150114921A (ko) 기업내 보안망 제공시스템 및 그 방법
JP2008234410A (ja) リモートアクセスシステム、情報処理装置、リモートアクセスプログラム、及びリモートアクセス方法
WO2020253662A1 (zh) 一种解密方法、装置、***、介质及设备
KR101818508B1 (ko) 기업내 보안망 제공시스템, 그 방법 및 컴퓨터 판독가능한 기록 매체
KR101375840B1 (ko) 악성코드 침입 방지시스템 및 악성코드 침입 방지시스템의 동작 방법
CN105357670A (zh) 一种路由器
JP2016021621A (ja) 通信システム及び通信方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant