[go: up one dir, main page]

KR102689032B1 - Cyber attack route recommendation method of electronic apparatus - Google Patents

Cyber attack route recommendation method of electronic apparatus Download PDF

Info

Publication number
KR102689032B1
KR102689032B1 KR1020220094930A KR20220094930A KR102689032B1 KR 102689032 B1 KR102689032 B1 KR 102689032B1 KR 1020220094930 A KR1020220094930 A KR 1020220094930A KR 20220094930 A KR20220094930 A KR 20220094930A KR 102689032 B1 KR102689032 B1 KR 102689032B1
Authority
KR
South Korea
Prior art keywords
node
attack
edge
vulnerability
weight
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020220094930A
Other languages
Korean (ko)
Other versions
KR20240016765A (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 KR1020220094930A priority Critical patent/KR102689032B1/en
Publication of KR20240016765A publication Critical patent/KR20240016765A/en
Application granted granted Critical
Publication of KR102689032B1 publication Critical patent/KR102689032B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

도착 노드로의 접근 가능성, 작전 요소 및 개별 노드의 취약점을 기초로 시작 노드부터 도착 노드까지의 토폴로지를 생성하고, 토폴로지에 포함되는 노드의 노드 가중치를 계산하고, 토폴로지 및 요망 효과를 기초로 공격 그래프를 생성하고, 공격 그래프에 포함되는 엣지의 엣지 가중치를 계산하고, 노드 가중치 및 엣지 가중치를 기초로, 시작 노드부터 도착 노드까지의 적어도 하나의 최단 경로를 확인하는 전자 장치 및 그의 동작 방법을 제공한다.Create a topology from the start node to the destination node based on the accessibility to the destination node, operational elements, and vulnerabilities of individual nodes, calculate the node weights of nodes included in the topology, and create an attack graph based on the topology and desired effects. Provides an electronic device and method of operating the same that generate, calculate the edge weight of the edge included in the attack graph, and check at least one shortest path from the start node to the destination node based on the node weight and the edge weight. .

Description

전자 장치의 사이버 공격 경로 추천 방법{CYBER ATTACK ROUTE RECOMMENDATION METHOD OF ELECTRONIC APPARATUS}Cyber attack route recommendation method for electronic devices {CYBER ATTACK ROUTE RECOMMENDATION METHOD OF ELECTRONIC APPARATUS}

본 개시는 전자 장치의 사이버 공격 경로 추천 방법에 관한 것이다.This disclosure relates to a method for recommending a cyber attack route for an electronic device.

최근 사이버 공격방어에서 방어 우선순위와 방어확률, 공격당할 확률 등을 분석하는 방법으로 공격 그래프 방법이 적용되고 있다. 공격 그래프는 공격 시나리오를 기반으로 보유한 자산과 장치들의 데이터를 분석하여 적절한 방어대응책을 마련하기 위한 방법으로 사용되고 있다. Recently, in cyber attack defense, the attack graph method has been applied as a method of analyzing defense priority, defense probability, and probability of being attacked. The attack graph is used as a method to prepare appropriate defense measures by analyzing data from assets and devices based on attack scenarios.

본 발명은 사이버 환경에서 최적의 공세적 대응 방책과 무기를 추천하고 결정하기 위해 적의 네트워크정보, 취약점 정보, 환경 정보를 기반으로 최적의 공격 그래프를 자동으로 생성하고 이를 통해 효과적인 공격 방법, 루트, 무기 등을 추천하기 위한 방법 및 장치이다. 본 발명의 기술은 노드간의 취약점간 전제조건을 기반으로 노드간 연결 가중치를 계산할 수 있는 방법을 이용하여 최적 공격 경로를 명확하게 분석할 수 있다. 요망효과에 따라 기밀성, 무결성, 가용성 값의 가중치가 변경되게 되는데 이를 반영할 수 있도록 공격 유형, 취약점의 전제조건에 따른 가중치를 포함하여 엣지 점수값을 계산할 수 있어 공격 목적 달성에 더 최적화된 공격 경로를 탐색하고 공격 방책을 수립할 수 있다. The present invention automatically generates an optimal attack graph based on the enemy's network information, vulnerability information, and environmental information in order to recommend and determine the optimal offensive response plan and weapon in a cyber environment, thereby creating effective attack methods, routes, weapons, etc. This is a method and device for recommending. The technology of the present invention can clearly analyze the optimal attack path by using a method that can calculate the connection weight between nodes based on preconditions between vulnerabilities between nodes. The weight of the confidentiality, integrity, and availability values changes depending on the desired effect. To reflect this, the edge score value can be calculated including the weight according to the attack type and vulnerability prerequisites, creating a more optimized attack path to achieve the attack purpose. You can explore and establish attack plans.

본 발명이 이루고자 하는 기술적 과제는 상기된 바와 같은 과제로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.The technical problem to be achieved by the present invention is not limited to the problems described above, and other technical problems can be inferred from the following examples.

일 실시예에 따라, 전자 장치의 사이버 공격 경로 추천 방법에 있어서, 도착 노드로의 접근 가능성, 작전 요소 및 개별 노드의 취약점을 기초로 시작 노드부터 상기 도착 노드까지의 토폴로지를 생성하는 단계; 상기 토폴로지에 포함되는 노드의 노드 가중치를 계산하는 단계; 상기 토폴로지 및 요망 효과를 기초로 공격 그래프를 생성하고, 상기 공격 그래프에 포함되는 엣지의 엣지 가중치를 계산하는 단계; 및 상기 노드 가중치 및 상기 엣지 가중치를 기초로, 상기 시작 노드부터 상기 도착 노드까지의 적어도 하나의 최단 경로를 확인하는 단계를 포함할 수 있다.According to one embodiment, a method for recommending a cyber attack path for an electronic device includes: generating a topology from a starting node to the destination node based on accessibility to the destination node, operational elements, and vulnerabilities of individual nodes; calculating node weights of nodes included in the topology; generating an attack graph based on the topology and desired effects, and calculating edge weights of edges included in the attack graph; and confirming at least one shortest path from the start node to the destination node based on the node weight and the edge weight.

일 실시예에 따라, 사이버 공격 경로 추천을 위한 전자 장치로서, 도착 노드까지의 접근 가능성, 작전 요소 및 취약점을 기초로 시작 노드부터 도착 노드까지의 토폴로지를 생성하고, 상기 토폴로지에 포함되는 노드의 노드 가중치를 계산하고, 상기 토폴로지 및 요망 효과를 기초로 공격 그래프를 생성하고, 상기 공격 그래프에 포함되는 엣지의 엣지 가중치를 계산하고, 상기 노드 가중치 및 상기 엣지 가중치를 기초로, 시작 노드부터 도착 노드까지의 적어도 하나의 최단 경로를 확인하는 프로세서를 포함할 수 있다.According to one embodiment, an electronic device for cyber attack route recommendation, which generates a topology from a starting node to a destination node based on accessibility to the destination node, operational elements, and vulnerabilities, and nodes of nodes included in the topology. Calculate weights, create an attack graph based on the topology and desired effects, calculate edge weights of edges included in the attack graph, and based on the node weight and the edge weight, from the start node to the destination node. It may include a processor that checks at least one shortest path.

일 실시예에 따라, 컴퓨터로 읽을 수 있는 기록매체는 상술한 동작 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 비일시적 기록매체를 포함할 수 있다. According to one embodiment, the computer-readable recording medium may include a non-transitory recording medium on which a program for executing the above-described operation method on a computer is recorded.

기타 실시예들의 구체적인 사항은 상세한 설명 및 도면들에 포함된다.Details of other embodiments are included in the detailed description and drawings.

본 발명에 따르면, 효과적으로 적의 정보를 분석하고, 최적화된 공격 경로를 자동으로 찾아낼 수 있어 지능화되고 자동화된 공세적 대응 방책 및 무기를 추천 받고 의사결정권자의 결정을 지원할 수 있다. According to the present invention, it is possible to effectively analyze enemy information and automatically find an optimized attack path, so that intelligent and automated offensive response measures and weapons can be recommended and decision makers can be supported in their decisions.

또한 본 발명에 따르면, 접근 가능성과 무기 보유 여부에 따라 효율적으로 최적의 공격 그래프를 생성할 수 있어 효율적인 공세적 방책을 결정할 수 있다. In addition, according to the present invention, an optimal attack graph can be efficiently generated depending on accessibility and weapon possession, and an efficient offensive strategy can be determined.

또한 본 발명에 따르면, 지휘관의 요망 효과를 기반으로 공격 그래프의 노드 또는 엣지의 값들을 산출할 수 있도록 설계되어 있어 요망 효과에 가장 적합한 공격 그래프를 생성하므로 효과적인 공세적 방책을 수립할 수 있다.In addition, according to the present invention, it is designed to calculate the values of nodes or edges of the attack graph based on the commander's desired effect, thereby generating an attack graph that is most suitable for the desired effect, so that effective offensive measures can be established.

발명의 효과는 이상에서 언급한 효과만으로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있다.The effect of the invention is not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the claims.

도 1 은 본 개시에 따른 전자 장치를 나타낸다.
도 2 는 본 개시에 따른 방법의 개념도를 나타낸다.
도 3 은 본 개시에 따른 공격그래프 자동생성부의 일 실시예를 나타낸다.
도 4 는 본 개시에 따른 방법의 일 실시예를 나타낸다.
도 5 는 본 개시에 따른 네트워크 토폴로지의 일 실시예를 나타낸다.
도 6 은 본 개시에 따른 공격 그래프의 일 실시예를 나타낸다.
도 7 은 본 개시에 따른 공격 그래프의 일 실시예를 나타낸다.
1 shows an electronic device according to the present disclosure.
Figure 2 shows a conceptual diagram of a method according to the present disclosure.
Figure 3 shows an example of an automatic attack graph generation unit according to the present disclosure.
Figure 4 shows one embodiment of a method according to the present disclosure.
Figure 5 shows one embodiment of a network topology according to the present disclosure.
Figure 6 shows an example of an attack graph according to the present disclosure.
7 shows an example of an attack graph according to the present disclosure.

본 개시에 기술된 실시예는 본 개시를 제한하는 것이 아니라 예시하는 것이고, 통상의 기술자는 첨부된 청구범위에 의해 정의된 본 개시의 범주를 벗어나지 않으면서, 다수의 대안적인 실시예를 설계할 수 있다. 실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.The embodiments described in this disclosure are illustrative rather than limiting, and those skilled in the art may design many alternative embodiments without departing from the scope of the disclosure as defined by the appended claims. there is. The terms used in the embodiments are general terms that are currently widely used as much as possible while considering the functions in the present disclosure, but this may vary depending on the intention or precedent of a person working in the art, the emergence of new technology, etc. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the relevant description. Therefore, the terms used in this disclosure should be defined based on the meaning of the term and the overall content of this disclosure, rather than simply the name of the term.

본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 반대되는 기재가 존재하지 않는 한, 단수는 물론 복수를 모두 포함한다. As used herein, the singular expressions singular and plural include both the singular and the plural, unless the context clearly states otherwise.

본 명세서 전체에서 어떤 부분이 어떤 구성요소들 또는 어떤 단계들을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 어떤 부분이 구성요소들 또는 단계들을 반드시 모두 포함해야 하는 것은 아니고, 청구범위 또는 명세서 전체에 열거된 것 이외의 구성요소 또는 단계가 포함되는 것을 배제하는 것도 아니며, 단지 이들을 더 포함할 수 있음을 의미한다. Throughout the specification, when a part is said to “include” certain elements or certain steps, this does not necessarily mean that any part must include all of the elements or steps, unless specifically stated to the contrary, and is not included in the claims. Additionally, it does not exclude the inclusion of components or steps other than those listed throughout the specification, but only means that they may be further included.

또한, 본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 서수를 포함하는 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 문맥상 명세서의 일 부분에서 일 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 명세서의 다른 부분에서 제2 구성요소로 명명될 수 있고, 반대로 제2 구성요소도 명세서의 다른 부분에서 제1 구성요소로 명명될 수 있다.Additionally, terms containing ordinal numbers, such as first, second, etc., used in this specification may be used to describe various components, but the components should not be limited by terms containing the ordinal numbers. The above terms are used in context only to distinguish one element from another element in one part of the specification. For example, without departing from the scope of the present invention, a first element may be referred to as a second element in other parts of the specification, and conversely, the second element may also be referred to as a first element in other parts of the specification. It can be.

본 명세서에서 "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.In this specification, terms such as “mechanism,” “element,” “means,” and “configuration” may be used broadly and are not limited to mechanical and physical configurations. The term may include the meaning of a series of software routines in connection with a processor, etc.

본 명세서(특히 청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 재배열되어 행해질 수 있고, 반드시 상기 단계들의 기재 순서에 한정되는 것은 아니다. 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 기술적 사상을 상세히 설명하기 위한 것으로서 청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 범위가 한정되는 것은 아니다. 통상의 기술자는 본 명세서에 개시된 실시예에 설계 조건 및 팩터에 따라 다양한 수정, 조합 및 변경을 부가하여 특허청구범위 또는 그 균등물의 범주에 속하는 새로운 실시예를 구성할 수 있다.In this specification (particularly in the claims), the use of the term “above” and similar referential terms may refer to both the singular and the plural. In addition, when a range is described, it includes individual values within the range (unless there is a statement to the contrary), which is the same as describing each individual value constituting the range in the detailed description. Lastly, unless the order of the steps constituting the method is clearly stated or stated to the contrary, the steps may be rearranged and performed in an appropriate order, and are not necessarily limited to the order of description of the steps. The use of any examples or illustrative terms (e.g., etc.) is merely for illustrating the technical idea in detail, and the scope is not limited by the examples or illustrative terms unless limited by the claims. A person skilled in the art can add various modifications, combinations, and changes to the embodiments disclosed in this specification according to design conditions and factors to construct new embodiments that fall within the scope of the patent claims or their equivalents.

본 개시에서 "토폴로지"는 "네트워크 토폴로지"를 의미할 수 있으며, 컴퓨터 네트워크의 요소들(링크, 노드 등)을 물리적으로 연결해 놓은 것, 또는 그 연결 방식을 지칭할 수 있다. In the present disclosure, “topology” may mean “network topology” and may refer to the physical connection of elements (links, nodes, etc.) of a computer network, or the connection method.

본 개시에서 "요망 효과"는 본 개시에 따른 방법의 사용자가 적군, 목표 노드 또는 목표 네트워크에서 발생시키고자 하는 부정적인 효과를 의미할 수 있다. 예를 들어, 요망 효과는 "약화(Degrade)", "와해(Denial)", "파괴(Destroy)", "기만(Deceive)", "위조(Disrupt)" 또는 "변조(Manipulate)" 등을 포함할 수 있다.In the present disclosure, “desired effect” may mean a negative effect that a user of the method according to the present disclosure wishes to generate in an adversary, a target node, or a target network. For example, the desired effect could be "Degrade", "Denial", "Destroy", "Deceive", "Disrupt", or "Manipulate". It can be included.

이하에서는 도면을 참조하여 본 개시의 실시예를 설명한다.Hereinafter, embodiments of the present disclosure will be described with reference to the drawings.

도 1 은 본 개시의 적어도 하나의 실시예를 실행하는데 사용될 수 있는 전자 장치(100)의 예시적이고 단순화된 블록도를 나타낸다. 다양한 실시예에서, 전자 장치(100)는 본 개시에서 서술된 임의의 시스템 또는 방법을 구현하는데 사용될 수 있다. 예를 들어, 전자 장치(100)는 데이터 서버, 웹 서버, 휴대용 컴퓨팅 디바이스, 개인용 컴퓨터, 태블릿 컴퓨터, 워크스테이션, 휴대폰, 스마트 폰(smart phone) 또는 아래에서 서술되는 임의의 다른 디바이스를 포함하는 임의의 전자 장치로서 사용되도록 구성될 수 있다.1 illustrates an example, simplified block diagram of an electronic device 100 that may be used to practice at least one embodiment of the present disclosure. In various embodiments, electronic device 100 may be used to implement any system or method described in this disclosure. For example, electronic device 100 may include any data server, web server, portable computing device, personal computer, tablet computer, workstation, mobile phone, smart phone, or any other device described below. It can be configured to be used as an electronic device.

전자 장치(100)는 메모리(120) 및 메모리(120)와 통신하도록 구성될 수 있는 하나 이상의 캐시 메모리 및 메모리 제어기를 갖는 하나 이상의 프로세서(110)를 포함할 수 있다. 추가적으로, 전자 장치(100)는 하나 이상의 포트(예컨대, USB(Universal Serial Bus), 헤드폰 잭, 라이트닝(Lightning) 커넥터, 썬더볼트(Thunderbolt) 커넥터 등)를 통해 전자 장치(100)에 연결될 수 있는 다른 디바이스를 포함할 수 있다. 전자 장치(100)에 연결될 수 있는 디바이스는 광섬유 커넥터를 수용하도록 구성되는 복수의 포트를 포함할 수 있다. 도시된 전자 장치(100)의 구성은 디바이스의 바람직한 실시예를 예시할 목적으로 특정 예시로서만 의도된다. 도시된 전자 장치(100)에는 본 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 전자 장치(100)에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다. Electronic device 100 may include memory 120 and one or more processors 110 having one or more cache memories and a memory controller that may be configured to communicate with memory 120 . Additionally, the electronic device 100 may be connected to the electronic device 100 through one or more ports (e.g., Universal Serial Bus (USB), headphone jack, Lightning connector, Thunderbolt connector, etc.). May include devices. A device that can be connected to electronic device 100 can include a plurality of ports configured to receive fiber optic connectors. The configuration of electronic device 100 shown is intended as a specific example only for the purpose of illustrating preferred embodiments of the device. In the illustrated electronic device 100, only components related to the present embodiments are shown. Accordingly, it is obvious to those skilled in the art that the electronic device 100 may further include other general-purpose components in addition to the components shown.

프로세서(110)는 전자 장치(100)가 본 개시에서 서술된 임의의 실시예의 단계 또는 기능을 제공하도록 하기 위해 이용될 수 있다. 예를 들어, 프로세서(110)는 전자 장치(100) 내의 메모리(120)에 저장된 프로그램들을 실행함으로써, 전자 장치(100)를 전반적으로 제어한다. 프로세서(110)는 전자 장치(100) 내에 구비된 CPU(central processing unit), GPU(graphics processing unit), AP(application processor) 등으로 구현될 수 있으나, 이에 제한되지 않는다.Processor 110 may be used to cause electronic device 100 to provide the steps or functions of any embodiment described in this disclosure. For example, the processor 110 generally controls the electronic device 100 by executing programs stored in the memory 120 within the electronic device 100. The processor 110 may be implemented as a central processing unit (CPU), graphics processing unit (GPU), or application processor (AP) provided in the electronic device 100, but is not limited thereto.

메모리(120)는 전자 장치(100) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 메모리(120)는 전자 장치(100)에서 프로세서(110)를 통해 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다. 또한, 메모리(120)는 본 개시의 적어도 하나의 실시예의 기능을 제공할 수 있는 기본 프로그래밍 및 데이터 구조를 저장하는 것은 물론, 본 개시의 실시예의 기능을 제공할 수 있는 애플리케이션들(프로그램, 코드 모듈, 명령어), 드라이버들 등을 저장할 수 있다. 메모리(120)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다. The memory 120 is hardware that stores various data processed within the electronic device 100. The memory 120 can store data processed through the processor 110 and data to be processed in the electronic device 100. there is. In addition, the memory 120 stores basic programming and data structures that can provide the functions of at least one embodiment of the present disclosure, as well as applications (programs, code modules) that can provide the functions of the embodiments of the present disclosure. , commands), drivers, etc. can be saved. The memory 120 includes random access memory (RAM) such as dynamic random access memory (DRAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), CD- It may include ROM, Blu-ray or other optical disk storage, a hard disk drive (HDD), a solid state drive (SSD), or flash memory.

본 개시에 따른 방법 및 각 단계는 전자 장치(100) 또는 프로세서(110)가 수행할 수 있지만, 설명을 간단히 하기 위하여 아래부터는 프로세서(110)가 본 개시에 따른 방법 및 각 단계의 수행 주체임을 전제하여 설명한다.The method and each step according to the present disclosure can be performed by the electronic device 100 or the processor 110, but for simplicity of explanation, the following assumes that the processor 110 is the one performing the method and each step according to the present disclosure. This explains.

도 2 는 본 개시에 따른 방법의 개념도를 나타낸다. 일 실시예에서, 프로세서(110)는 도착 노드로의 접근 가능성, 작전 요소 및 개별 노드의 취약점을 기초로 시작 노드부터 도착 노드까지의 토폴로지를 생성하고, 토폴로지에 포함되는 노드의 노드 가중치를 계산하고, 토폴로지 및 요망 효과를 기초로 공격 그래프를 생성하고, 공격 그래프에 포함되는 엣지의 엣지 가중치를 계산하고, 노드 가중치 및 엣지 가중치를 기초로, 시작 노드부터 도착 노드까지의 적어도 하나의 최단 경로를 확인할 수 있다. Figure 2 shows a conceptual diagram of a method according to the present disclosure. In one embodiment, processor 110 generates a topology from the starting node to the destination node based on the accessibility to the destination node, operational factors, and vulnerabilities of individual nodes, calculates node weights for nodes included in the topology, and , generate an attack graph based on topology and desired effects, calculate edge weights of edges included in the attack graph, and determine at least one shortest path from the start node to the destination node based on the node weight and edge weight. You can.

도 2 에 나타난 정보수집부(220), 공격 그래프 자동 생성부(230), 공격 그래프 분석부(250), 공세적 방책 추천부(251), 무기추천부(252) 및 공격경로추천부(253)는 전자 장치(100) 또는 프로세서(110)에 포함될 수 있다. The information collection unit 220 shown in Figure 2, the automatic attack graph generation unit 230, the attack graph analysis unit 250, the offensive strategy recommendation unit 251, the weapon recommendation unit 252, and the attack route recommendation unit 253. may be included in the electronic device 100 or the processor 110.

토폴로지 또는 접근가능경로기반 토폴로지(210)는 시작 노드로부터 도착 노드로까지 접근 또는 도달할 수 있는 하나 이상의 경로를 포함할 수 있다. 토폴로지 또는 접근가능경로기반 토폴로지(210)의 구체적인 실시예에 대해서는 이후 도 5 와 관련하여 설명한다.The topology or reachable path-based topology 210 may include one or more paths that can be accessed or reached from a starting node to a destination node. A specific embodiment of the topology or accessible path-based topology 210 will be described later with reference to FIG. 5 .

일 실시예에서, 정보수집부(220)는 작전 요소, 무기정보 및 입력정보 등의 정보를 수집할 수 있다. In one embodiment, the information collection unit 220 may collect information such as operational elements, weapon information, and input information.

구분division 활용 데이터utilization data 입력정보Input information 정보식별_IDInformation identification_ID INFO_IDINFO_ID 요망효과정보Requested effect information REQ_EFFECT_INFOREQ_EFFECT_INFO 무기정보Weapon Information WEAPON_INFOWEAPON_INFO 작전요소정보Operation element information COMBAT_INFOCOMBAT_INFO 사용자입력정보User input information USER_INPUTUSER_INPUT 취약점간 전제조건Prerequisites between vulnerabilities CVE_PRECONDITIONCVE_PRECONDITION 수집정보Collected information 수집정보식별_IDCollection information identification_ID COLLECT_IDCOLLECT_ID 네트워크정보Network information NETWORK_INFONETWORK_INFO 네트워크접근위치정보Network access location information NETWORK_ACCESS_TYPENETWORK_ACCESS_TYPE CVSS_SCORE정보CVSS_SCOREInformation CVSS_SCORECVSS_SCORE 취약점정보Vulnerability information CVSS_INFOCVSS_INFO 자산정보Asset information ASSET_INFOASSET_INFO 접근가능성정보Accessibility Information REACHABILITY_INFOREACHABILITY_INFO 공격유형정보Attack type information CVE_ATTACK_TYPECVE_ATTACK_TYPE

표 1은 정보수집부(220)가 수집할 수 있는 정보를 나타낸다. 정보수집부(220)는 사용자 또는 다른 전자 장치로부터 입력정보를 입력 받을 수 있다. 정보식별_ID는 입력정보의 식별자를 포함할 수 있다. 요망효과정보는 요망효과에 대한 정보를 포함할 수 있다. 무기정보는 사용자 또는 아군이 적군 또는 적군 네트워크를 공격하기 위해 활용할 수 있는 무기를 포함할 수 있다. 작전요소정보는 아군이 적군 또는 적군 네트워크를 공격하기 위해 활용할 수 있는 무기, 공격팀, 지원무기, 지원팀 등의 자원을 포함할 수 있다. 사용자입력정보는 사용자가 입력할 수 있는 추가 정보를 포함할 수 있다. 취약점 간 전제조건은 네트워크 취약점 간의 전제조건을 포함할 수 있다. 예를 들어, 취약점 A를 이용한 공격을 위해 취약점 B를 먼저 이용하여 공격해야 할 수 있다. 이러한 경우, 취약점 B가 취약점 A의 전제조건일 수 있다.Table 1 shows information that the information collection unit 220 can collect. The information collection unit 220 may receive input information from a user or another electronic device. Information identification_ID may include the identifier of the input information. The desired effect information may include information about the desired effect. Weapon information may include weapons that a user or an ally can use to attack an enemy or enemy network. Operational element information may include resources such as weapons, attack teams, support weapons, and support teams that friendly forces can utilize to attack enemy forces or enemy networks. User input information may include additional information that the user can input. Preconditions between vulnerabilities may include preconditions between network vulnerabilities. For example, in order to attack using vulnerability A, you may need to attack using vulnerability B first. In this case, vulnerability B may be a prerequisite for vulnerability A.

정보수집부(220)는 입력정보 이외에도 다른 장치, 네트워크 또는 데이터베이스로부터 수집정보를 수집할 수 있다. 수집정보식별_ID는 수집정보의 식별자를 의미할 수 있다. 네트워크 정보는 적군 네트워크에 관한 정보를 포함할 수 있다. 네트워크접근위치 정보는 적군 네트워크로 접근할 수 있는 노드 또는 적군 네트워크에 포함되는 하나 이상의 노드 및 그 연결관계를 포함할 수 있다. CVSS_SCORE 정보는 CVSS(Common Vulnerability Scoring System)에서 정의하는 하나 이상의 취약점에 대한 점수를 포함할 수 있다. 취약점정보는 적군, 목표 노드, 또는 시작 노드로부터 목표 노드로의 경로에 포함되는 하나 이상의 노드에 대한 취약점에 관한 정보를 포함할 수 있다. 자산정보는 적군 네트워크에 포함되는 노드에 대한 정보를 포함할 수 있다. 접근가능성정보는 적군 네트워크에 포함되는 하나 이상의 노드로부터 다른 노드로 접근 가능한지에 관한 정보 또는 연결관계를 포함할 수 있다. 공격유형정보는 취약점에 대한 공격유형에 관한 정보를 포함할 수 있다.The information collection unit 220 may collect information from other devices, networks, or databases in addition to input information. Collection information identification_ID may refer to the identifier of the collected information. Network information may include information about enemy networks. Network access location information may include nodes that can access the enemy network or one or more nodes included in the enemy network and their connection relationships. CVSS_SCORE information may include scores for one or more vulnerabilities defined by the Common Vulnerability Scoring System (CVSS). Vulnerability information may include information about vulnerabilities about an enemy, a target node, or one or more nodes included in the path from the start node to the target node. Asset information may include information about nodes included in the enemy network. Accessibility information may include information or a connection relationship regarding whether one or more nodes included in the enemy network can be accessed from another node. Attack type information may include information about attack types for vulnerabilities.

공격 그래프 자동 생성부(230)는 접근가능경로기반 토폴로지(210) 및 정보수집부(220)가 수집한 정보를 기초로 공격 그래프 또는 최적 공격 그래프 모델(240)을 생성할 수 있다. 공격 그래프 또는 최적 공격 그래프 모델(240)은 시작 노드로부터 도착 노드까지의 하나 이상의 경로 및 각 경로에 포함되는 경유지 노드를 포함할 수 있다. 공격 그래프 또는 최적 공격 그래프 모델(240)에 포함되는 개별 노드에는 노드 가중치 또는 노드 랭크(nodeRank)가 부여될 수 있다. 공격 그래프 또는 최적 공격 그래프 모델(240)에 포함되는 개별 엣지에는 엣지 가중치가 부여될 수 있다. 특히, 엣지 가중치는 요망 효과에 기초하여 부여될 수 있다. 노드 가중치 또는 엣지 가중치를 부여하는 방법에 관하여는 이후에 자세히 설명한다.The automatic attack graph generation unit 230 may generate an attack graph or an optimal attack graph model 240 based on the information collected by the accessible path-based topology 210 and the information collection unit 220. The attack graph or optimal attack graph model 240 may include one or more paths from a start node to a destination node and transit nodes included in each path. Individual nodes included in the attack graph or optimal attack graph model 240 may be assigned a node weight or node rank (nodeRank). Edge weights may be assigned to individual edges included in the attack graph or optimal attack graph model 240. In particular, edge weights may be assigned based on desired effects. Methods for assigning node weights or edge weights will be described in detail later.

공격 그래프 분석부(250)는 공격 그래프 또는 최적 공격 그래프 모델(240)에서 적어도 하나의 최단 경로를 확인할 수 있다. 공격 그래프 분석부(250)는 공세적방책추천부(251), 무기추천부(252) 및 공격경로추천부(253)를 포함할 수 있다. 공격경로추천부(253)는 시작 노드로부터 도착 노드에 도달할 수 있는 최적 또는 최단 경로를 추천할 수 있다. 공세적방책추천부(251) 및 무기추천부(252)는 공격경로추천부(253)에 따른 공격을 실행하기 위해 필요한 작전요소 및 무기 등을 추천할 수 있다.The attack graph analysis unit 250 may check at least one shortest path in the attack graph or the optimal attack graph model 240. The attack graph analysis unit 250 may include an offensive strategy recommendation unit 251, a weapon recommendation unit 252, and an attack route recommendation unit 253. The attack path recommendation unit 253 can recommend the optimal or shortest path to reach the destination node from the start node. The offensive countermeasure recommendation unit 251 and the weapon recommendation unit 252 can recommend operational elements and weapons necessary to execute an attack according to the attack route recommendation unit 253.

도 3 은 본 개시에 따른 공격 그래프 자동 생성부(350)이 공격 그래프를 생성하기 위해 필요한 요소들을 나타낸다. 공격 그래프 자동 생성부(350)는 전자 장치(100) 또는 프로세서(110)에 포함될 수 있다. 공격 그래프 자동 생성부(350)는 요망 효과(310), 무기 정보(320), 수집정보(330) 및 접근 가능한 네트워크 토폴로지 정보(340)를 기초로, 공격 그래프를 생성할 수 있다. 즉, 프로세서(110)는 토폴로지에 포함되는 노드의 노드 가중치를 계산하고, 토폴로지 및 요망 효과를 기초로 공격 그래프를 생성하고, 공격 그래프에 포함되는 엣지의 엣지 가중치를 계산할 수 있다. Figure 3 shows the elements necessary for the automatic attack graph generation unit 350 according to the present disclosure to generate an attack graph. The automatic attack graph generation unit 350 may be included in the electronic device 100 or the processor 110. The automatic attack graph generation unit 350 may generate an attack graph based on the desired effect 310, weapon information 320, collected information 330, and accessible network topology information 340. That is, the processor 110 can calculate the node weight of the node included in the topology, generate an attack graph based on the topology and the desired effect, and calculate the edge weight of the edge included in the attack graph.

공격 그래프에 포함되는 각 엣지의 엣지 가중치(edge_score)는 다음 수학식을 이용하여 계산될 수 있다.The edge weight (edge_score) of each edge included in the attack graph can be calculated using the following equation.

위 수학식에서, AL은 접근 위치(Access Location) 지표, AT는 공격 유형(Attack Type) 지표를 의미한다. CIA는 CIA(Confidentiality, Integrity and Availability) 지표를 의미한다. CCI는 취약점 연관성(CVE Correlation Index) 지표를 나타낸다. CVE는 공통 취약점 및 익스포저(Common Vulnerabilities and Exposure)를 의미한다. w1 내지 w4는 각 지표에 대한 가중치를 의미하여, 각 가중치는 필요에 따라 사용자가 미리 설정할 수 있다.In the above equation, AL refers to the Access Location indicator and AT refers to the Attack Type indicator. CIA stands for CIA (Confidentiality, Integrity and Availability) indicator. CCI stands for vulnerability correlation index (CVE Correlation Index). CVE stands for Common Vulnerabilities and Exposure. w1 to w4 mean weights for each indicator, and each weight can be set in advance by the user as needed.

일 실시예에서, 프로세서(110)는 엣지의 양 끝 노드 각각의 CVSS(Common Vulnerability Scoring System) 공격 벡터(Attack Vector)를 기초로 엣지 가중치를 확인할 수 있다. 구체적으로, 프로세서(110)는 엣지의 양 끝 노드 각각의 CVSS(Common Vulnerability Scoring System) 공격 벡터(Attack Vector)를 기초로 접근 위치 지표(AL)을 계산할 수 있다.In one embodiment, the processor 110 may check the edge weight based on the Common Vulnerability Scoring System (CVSS) attack vector of each end node of the edge. Specifically, the processor 110 may calculate an access location indicator (AL) based on the Common Vulnerability Scoring System (CVSS) attack vector of each end node of the edge.

접근 위치 지표는 다음 수학식을 이용하여 계산될 수 있다.The approach location indicator can be calculated using the following equation.

위 수학식에서, NodeiALweight 및 NodejALweight은 각각 노드 i의 접근 위치 가중치 및 노드 j의 접근 위치 가중치를 의미한다. 접근 위치 가중치는 각 노드를 접근할 수 있는 방법에 따라 정의될 수 있다. 접근 위치 가중치는 CVSS의 공격 벡터(Attack Vector) 가중치를 기초로 다음 표 2를 이용하여 정의될 수 있다.In the above equation, Node i ALweight and Node j ALweight mean the access position weight of node i and the access position weight of node j, respectively. The access location weight can be defined according to the method by which each node can be accessed. The access location weight can be defined using the following Table 2 based on the attack vector weight of CVSS.

타입type CVSS 버전CVSS version 1.01.0 2.02.0 3.0++3.0++ 네트워크(Network)Network 1.01.0 1.01.0 0.850.85 인접 네트워크(Adjacent Network)Adjacent Network -- 0.6460.646 0.620.62 로컬(Local)Local 0.70.7 0.3950.395 0.550.55 물리적(Physical)Physical -- -- 0.200.20

표 2 는 CVSS 버전에 따라, CVSS에 정의된 공격 벡터 가중치를 나타낸다. CVSS 3.0 이상의 버전을 이용한다고 가정하였을때, 예를 들어, 노드 i가 외부 네트워크를 통해 접근 가능하다면, NodeiALweight은 0.85일 수 있다. 다른 예를 들어, 노드 i가 인접한 외부 네트워크에서만 접근 가능하다면, NodeiALweight은 0.62일 수 있다. 다른 예를 들어, 노드 i가 로컬 네트워크 또는 내부 네트워크 에서만 접근 가능하다면, NodeiALweight은 0.55일 수 있다. 다른 예를 들어, 노드 i가 물리적 방법으로만 접근 가능하다면, NodeiALweight은 0.20일 수 있다.Table 2 shows the attack vector weights defined in CVSS, depending on the CVSS version. Assuming that CVSS 3.0 or higher is used, for example, if node i is accessible through an external network, Node i ALweight may be 0.85. For another example, if node i is accessible only from a nearby external network, Node i ALweight may be 0.62. For another example, if node i is accessible only from the local network or internal network, the Node i ALweight may be 0.55. For another example, if node i is only accessible by physical means, Node i ALweight may be 0.20.

따라서 예를 들어, 노드 i가 인접 네트워크에서만 접근 가능하고, 노드 j는 로컬 네트워크에서만 접근 가능하다면, 이 경우의 접근 위치 가중치는 0.62 * 0.55 = 0.341이 될 수 있다.Therefore, for example, if node i is accessible only from the adjacent network and node j is accessible only from the local network, the access location weight in this case can be 0.62 * 0.55 = 0.341.

일 실시예에서, 프로세서(110)는 엣지의 양 끝 노드에 관한 적어도 하나의 공격 유형의 발생 확률을 기초로 엣지 가중치를 확인할 수 있다. 구체적으로, 프로세서(110)는 엣지의 양 끝 노드에 관한 적어도 하나의 공격 유형의 발생 확률을 기초로 공격 유형 지표(AT)를 계산할 수 있다. In one embodiment, the processor 110 may check the edge weight based on the probability of occurrence of at least one attack type regarding both end nodes of the edge. Specifically, the processor 110 may calculate an attack type indicator (AT) based on the probability of occurrence of at least one attack type with respect to both end nodes of the edge.

공격 유형은 사이버 자산에 대한 취약점을 공격 방법에 따라 분류한 것일 수 있다. 공격 유형은 다음의 유형으로 분류될 수 있으나, 필요에 따라 다른 분류 방법이 사용될 수도 있다. 예를 들어, 공격 유형에는 DoS(Denial of Service), 코드 실행(Code Execution), 오버플로우(Overflow), 메모리 커럽션(Memory Corruption), XSS(Cross Site Scripting), 디렉토리 순회(Directory Traversal), HTTP 응답 스플리팅(HTTP response Splitting), 우회(Bypass Something), 권한 획득(Gain Privileges), CSRF(Cross Site Request Forgery), 파일 삽입(File Inclusion) 등이 포함될 수 있다.The attack type may be a classification of vulnerabilities to cyber assets according to the attack method. Attack types can be classified into the following types, but other classification methods may be used as needed. For example, attack types include Denial of Service (DoS), Code Execution, Overflow, Memory Corruption, Cross Site Scripting (XSS), Directory Traversal, and HTTP. This may include HTTP response Splitting, Bypass Something, Gain Privileges, Cross Site Request Forgery (CSRF), File Inclusion, etc.

공격 유형 지표는 다음 수학식을 이용하여 계산될 수 있다. The attack type indicator can be calculated using the following equation:

위 수학식에서, numberofattacki는 공격 유형 i에 해당하는 취약점들에 대한 공격이 발생한 횟수를 의미하고, 는 전체 공격 횟수를 의미한다. 공격 유형 별 취약점들에 대해 발생한 공격 횟수는 다음 표 3과 같이 공개된 자료를 이용하여 수집될 수 있다.In the above equation, numberofattack i means the number of attacks on vulnerabilities corresponding to attack type i, means the total number of attacks. The number of attacks that occurred for vulnerabilities by attack type can be collected using publicly available data as shown in Table 3 below.

DoSDoS Code ExecutionCode Execution OverflowOverflow Memory CorruptionMemory Corruption 18361836 38433843 16801680 484484 CSSCSS Directory TraversalDirectory Traversal Http response SplittingHttp response splitting Bypass SomethingBypass Something 27032703 503503 55 874874 Gain PrivilegesGain Privileges CSRFCSRF File InclusionFile Inclusion 260260 504504 4646

예를 들어, DoS 공격 유형에 대한 공격 유형 지표는, DoS 공격 유형의 발생 횟수인 1,836을 위 표에 나타난 모든 공격 횟수의 총합인 14,318로 나눈 0.1287일 수 있다.For example, the attack type indicator for the DoS attack type may be 0.1287, which is divided by 1,836, the number of occurrences of the DoS attack type, by 14,318, the total number of attacks shown in the table above.

일 실시예에서, 프로세서(110)는 엣지의 양 끝 노드 중 제1 노드의 취약점이 엣지의 양 끝 노드 중 제2 노드의 취약점의 전제조건인지 여부를 기초로 엣지 가중치를 확인할 수 있다. 구체적으로, 프로세서(110)는 엣지의 양 끝 노드 중 제1 노드의 취약점이 엣지의 양 끝 노드 중 제2 노드의 취약점의 전제조건인지 여부를 기초로 취약점 연관성 지표(CCI)를 확인할 수 있다.In one embodiment, the processor 110 may check the edge weight based on whether the vulnerability of the first node among the nodes at both ends of the edge is a prerequisite for the vulnerability of the second node among the nodes at both ends of the edge. Specifically, the processor 110 may check the vulnerability correlation index (CCI) based on whether the vulnerability of the first node among the nodes at both ends of the edge is a prerequisite for the vulnerability of the second node among the nodes at both ends of the edge.

취약점 연관성 지표는 다음 수학식을 이용하여 확인될 수 있다. The vulnerability correlation indicator can be confirmed using the following equation.

위 수학식에서, ci,j = c(vi,vj)이고, vi, vj 는 각각 노드 i 및 노드 j의 취약점을 의미한다. c(vi,vj)는 노드 i의 취약점 vi가 노드 j의 취약점 vj의 전제조건인지 여부에 따라 미리 설정될 수 있다. 예를 들어, c(vi,vj)는 다음 표에 따라 설정될 수 있다. In the above equation, c i,j = c(v i ,v j ), and v i and v j mean the vulnerabilities of node i and node j, respectively. c(v i ,v j ) can be set in advance depending on whether node i's vulnerability v i is a prerequisite for node j's vulnerability v j . For example, c(v i ,v j ) can be set according to the following table.

c(vc(v ii ,v,v jj )) vv jj 가 vgo v ii 의 전제조건prerequisites vv jj 가 vgo v ii 의 전제조건이 아님Not a prerequisite for vv ii 가 vgo v jj 의 전제조건prerequisites 55 33 vv ii 가 vgo v jj 의 전제조건이 아님Not a prerequisite for 33 1One

예를 들어, 노드 i의 취약점 vi가 노드 j의 취약점 vj의 전제조건이지만, 노드 j의 취약점 vj가 노드 i의 취약점 vi의 전제조건은 아닌 경우, c(vi,vj) = 3 이 될 수 있다.For example, if node i's vulnerability v i is a prerequisite for node j's vulnerability v j , but node j's vulnerability v j is not a prerequisite for node i's vulnerability v i , c(v i ,v j ) = It can be 3.

노드 i의 취약점 vi가 노드 j의 취약점 vj의 전제조건인지는 미리 분석될 수 있으며, 전제조건 여부를 결정할 때는 취약점 번호, 유형, 서비스, 연결 방식, 사전 권한, 사후 권한 여부 또는 CVSS의 가능성 데이터가 고려될 수 있다.Whether node i's vulnerability v i is a prerequisite for node j's vulnerability v j can be analyzed in advance, and when determining whether it is a prerequisite, the vulnerability number, type, service, connection method, pre-authorization, post-authorization, or possibility of CVSS are considered. data can be taken into account.

일 실시예에서, 프로세서(110)는 요망 효과에 관한 적어도 하나의 공격 유형에 해당하는 적어도 하나의 취약점의 기밀성 영향(Confidentiality Impact), 무결성 영향(Integrity Impact) 및 가용성 영향(Availability Impact)을 기초로 엣지 가중치를 확인할 수 있다. 구체적으로, 프로세서(110)는 요망 효과에 관한 적어도 하나의 공격 유형에 해당하는 적어도 하나의 취약점의 기밀성 영향(Confidentiality Impact), 무결성 영향(Integrity Impact) 및 가용성 영향(Availability Impact)을 기초로 CIA 지표(CIA)를 확인할 수 있다. In one embodiment, processor 110 determines the desired effect based on the Confidentiality Impact, Integrity Impact, and Availability Impact of at least one vulnerability corresponding to at least one attack type. You can check the edge weight. Specifically, the processor 110 provides CIA indicators based on the Confidentiality Impact, Integrity Impact, and Availability Impact of at least one vulnerability corresponding to at least one attack type with respect to the desired effect. (CIA) can be checked.

CIA 지표는 다음 수학식을 이용하여 확인할 수 있다.The CIA indicator can be checked using the following equation.

위 수학식에서, CVSSconfidentiality, CVSSintegrity 및 CVSSavailability는 각각 CVSS에 정의된 기밀성 영향(Confidentiality Impact), 무결성 영향(Integrity Impact) 및 가용성 영향(Availability Impact)을 의미한다. 또한, REconfidentiality, REintegrity 및 REavailability는 기밀성, 무결성 및 가용성 영향에 대한 가중치를 의미한다. In the above equation, CVSS confidentiality , CVSS integrity , and CVSS availability mean Confidentiality Impact, Integrity Impact, and Availability Impact defined in CVSS, respectively. Additionally, RE confidentiality , RE integrity , and RE availability mean weights for confidentiality, integrity, and availability impacts.

기밀성, 무결성 및 가용성 영향은 각 영향의 크기에 따라 CVSS의 버전 별로 다음 표에 따라 설정될 수 있다. Confidentiality, integrity, and availability impacts can be set according to the following table for each version of CVSS, depending on the magnitude of each impact.

타입type CVSS 버전CVSS version 1.01.0 2.02.0 3.0++3.0++ 높음(High)High 1.01.0 0.660.66 0.560.56 낮음(Low)Low 0.70.7 0.2750.275 0.220.22 없음(None)None 0.00.0 0.00.0 0.00.0

예를 들어, CVSS 3.0 이상의 버전을 사용하는 경우, 특정한 취약점의 기밀성 영향이 높은 경우, 해당 취약점의 CVSSconfidentiality는 0.56일 수 있다.For example, when using CVSS 3.0 or higher, if the confidentiality impact of a particular vulnerability is high, the CVSS confidentiality of that vulnerability may be 0.56.

일 실시예에서, 프로세서(110)는 요망 효과에 관한 적어도 하나의 공격 유형 각각에 해당하는 적어도 하나의 취약점의 기밀성 영향의 평균, 무결성 영향의 평균 및 가용성 영향의 평균을 기초로 엣지 가중치를 확인할 수 있다. 구체적으로, 프로세서(110)는 요망 효과에 관한 적어도 하나의 공격 유형 각각에 해당하는 적어도 하나의 취약점의 기밀성 영향의 평균, 무결성 영향의 평균 및 가용성 영향의 평균을 기초로 기밀성, 무결성 및 가용성 영향에 대한 가중치인 REconfidentiality, REintegrity 및 REavailability를 계산할 수 있다.In one embodiment, processor 110 may determine edge weights based on the average of the confidentiality impact, the average of the integrity impact, and the average of the availability impact of at least one vulnerability corresponding to each of the at least one attack type with respect to the desired effect. there is. Specifically, the processor 110 determines the confidentiality, integrity, and availability impacts based on the average of the confidentiality impact, the average of the integrity impact, and the average of the availability impact of at least one vulnerability corresponding to each of at least one attack type with respect to the desired effect. The weights for RE confidentiality , RE integrity , and RE availability can be calculated.

기밀성 영향에 대한 가중치(REconfidentiality)는 아래 수학식을 이용하여 계산될 수 있다. The weight for confidentiality impact (RE confidentiality ) can be calculated using the equation below.

위 수학식에서, ACI(ATi)는 특정한 요망 효과에 연관된 n개의 공격 유형(Attack Type) 중 i번째 공격 유형에 해당하는 취약점들의 기밀성 영향의 평균(Average of CI)을 의미한다. 공격 유형은 표 3에 나타난 공격 유형들 중 하나일 수 있다. 예를 들어, 요망 효과 중 파괴(Destroy)에 연관된 공격 유형이 DoS(Denial of Service) 및 코드 실행(Code Execution)의 2가지 유형이라면, n은 2가 된다.In the above equation, ACI(AT i ) means the average of the confidentiality impact (Average of CI) of vulnerabilities corresponding to the ith attack type among n attack types associated with a specific desired effect. The attack type may be one of the attack types shown in Table 3. For example, if the attack types related to Destroy among the desired effects are two types, DoS (Denial of Service) and Code Execution, n is 2.

특정 공격 유형에 해당하는 취약점들의 기밀성 영향의 평균은 다음 수학식을 이용하여 계산될 수 있다.The average confidentiality impact of vulnerabilities corresponding to a specific attack type can be calculated using the following equation:

위 수학식에서, CVE(CI)k는 특정한 공격 유형에 해당하는 m개의 취약점 중 k번째 취약점(CVE)의 기밀성 영향(Confidentiality Impact, CI)을 의미한다. In the above equation, CVE(CI) k means the Confidentiality Impact (CI) of the kth vulnerability (CVE) among m vulnerabilities corresponding to a specific attack type.

무결성 영향에 대한 가중치(REintegrity)는 아래 수학식을 이용하여 계산될 수 있다. The weight for integrity impact (RE integrity ) can be calculated using the equation below.

위 수학식에서, AII(ATi)는 특정한 요망 효과에 연관된 n개의 공격 유형(Attack Type) 중 i번째 공격 유형에 해당하는 취약점들의 무결성 영향의 평균(Average of II)을 의미한다. 공격 유형은 표 3에 나타난 공격 유형들 중 하나일 수 있다. In the above equation, AII(AT i ) means the average of the integrity impact (Average of II) of vulnerabilities corresponding to the ith attack type among n attack types associated with a specific desired effect. The attack type may be one of the attack types shown in Table 3.

특정 공격 유형에 해당하는 취약점들의 무결성 영향의 평균은 다음 수학식을 이용하여 계산될 수 있다.The average integrity impact of vulnerabilities corresponding to a specific attack type can be calculated using the following equation:

위 수학식에서, CVE(II)k는 특정한 공격 유형에 해당하는 m개의 취약점 중 k번째 취약점(CVE)의 무결성 영향(Integrity Impact, II)을 의미한다. In the above equation, CVE(II) k means the integrity impact (II) of the kth vulnerability (CVE) among m vulnerabilities corresponding to a specific attack type.

가용성 영향에 대한 가중치(REavailability)는 아래 수학식을 이용하여 계산될 수 있다. The weight for availability impact (RE availability ) can be calculated using the equation below.

위 수학식에서, ACI(ATi)는 특정한 요망 효과에 연관된 n개의 공격 유형(Attack Type) 중 i번째 공격 유형에 해당하는 취약점들의 가용성 영향의 평균(Average of AI)을 의미한다. 공격 유형은 표 3에 나타난 공격 유형들 중 하나일 수 있다. In the above equation, ACI(AT i ) means the average of the availability impact of vulnerabilities corresponding to the ith attack type among n attack types associated with a specific desired effect (Average of AI). The attack type may be one of the attack types shown in Table 3.

특정 공격 유형에 해당하는 취약점들의 가용성 영향의 평균은 다음 수학식을 이용하여 계산될 수 있다.The average availability impact of vulnerabilities corresponding to a specific attack type can be calculated using the following equation:

위 수학식에서, CVE(AI)k는 특정한 공격 유형에 해당하는 m개의 취약점 중 k번째 취약점(CVE)의 가용성 영향(Availability Impact)을 의미한다. In the above equation, CVE(AI) k means the availability impact of the kth vulnerability (CVE) among m vulnerabilities corresponding to a specific attack type.

일 실시예에서, 프로세서(110)는 토폴로지에 포함되는 노드의 취약점에 관한 CVSS 점수 및 작전 요소에 관한 점수를 기초로 노드 가중치를 계산할 수 있다. 구체적으로, 공격 그래프에 포함되는 노드 가중치(nodeRank)는 다음의 수학식을 이용하여 계산될 수 있다. In one embodiment, the processor 110 may calculate node weights based on CVSS scores regarding vulnerabilities and operational elements of nodes included in the topology. Specifically, the node weight (nodeRank) included in the attack graph can be calculated using the following equation.

위 수학식에서, VulScore는 해당 노드가 갖는 취약점의 점수일 수 있다. 예를 들어, VulScore는 CVSS의 BaseVector 점수일 수 있다. 또한, OperationScore는 작전 요소에 대한 점수일 수 있다. OperationScore는 공격무기, 공격팀, 지원무기, 지원팀 등을 고려하여 미리 정의될 수 있다. v 및 o는 각 점수에 대한 가중치를 의미할 수 있고, 미리 정의될 수 있다. v 및 o는 0 이상 1 이하의 값일 수 있다.In the above equation, VulScore may be the score of the vulnerability of the node. For example, VulScore could be the BaseVector score of CVSS. Additionally, OperationScore may be a score for an operational element. OperationScore can be predefined considering attack weapons, attack team, support weapons, support team, etc. v and o may mean a weight for each score and may be predefined. v and o may be values between 0 and 1.

도 4 는 본 개시에 따른 방법의 일 실시예를 나타낸다. 각 단계의 순서가 논리적으로 명백이 모순되지 않는 한, 도 4 에 나타난 각 단계는 순서가 뒤바뀔 수 있다. 일 실시예에서, 프로세서(110)는 단계 S410에 따라 시작노드 S와 도착노드 G를 선정할 수 있다. 프로세서(110)는 단계 S411에 따라 시작노드 S부터 도착노드 G까지의 접근 가능성을 분석할 수 있다. 시작노드 S부터 도착노드 G까지는 바로 접근 가능할 수도 있고, 하나 이상의 경유지 노드를 거쳐서 접근 가능할 수도 있다. Figure 4 shows one embodiment of a method according to the present disclosure. As long as the order of each step is not clearly logically contradictory, the steps shown in Figure 4 may be reversed. In one embodiment, the processor 110 may select a start node S and a destination node G according to step S410. The processor 110 may analyze accessibility from the start node S to the destination node G according to step S411. From the start node S to the destination node G may be directly accessible, or may be accessible through one or more transit nodes.

프로세서(110)는 단계 S412에 따라, 작전 요소 및 취약점을 로드할 수 있다. 예를 들어, 작전 요소 및 취약점은 별도의 데이터베이스로부터 로드하거나, 사용자의 입력으로부터 획득될 수 있다. Processor 110 may load operational elements and vulnerabilities according to step S412. For example, operational elements and vulnerabilities can be loaded from a separate database or obtained from user input.

프로세서(110)는 단계 S413에 따라, 접근가능성기반 토폴로지를 생성할 수 있다. 접근가능성기반 토폴로지의 실시예는 도 5에 나타나 있다.The processor 110 may generate an accessibility-based topology in step S413. An example of an accessibility-based topology is shown in Figure 5.

프로세서(110)는 단계 S414에 따라, 토폴로지 내 모든 노드의 노드 가중치(nodeRank)를 계산할 수 있다. 노드 가중치의 계산은 수학식 12를 이용할 수 있다.The processor 110 may calculate the node weight (nodeRank) of all nodes in the topology according to step S414. To calculate the node weight, Equation 12 can be used.

프로세서(110)는 단계 S415에 따라, 사용자로부터 요망 효과를 입력 받을 수 있다. 이후, 프로세서(110)는 단계 S416에 따라 입력 받은 요망 효과를 기초로 토폴로지 내 포함되는 모든 노드 사이의 엣지에 대해 엣지 가중치(edge score)를 계산할 수 있다. The processor 110 may receive a desired effect input from the user in step S415. Thereafter, the processor 110 may calculate edge weights (edge scores) for edges between all nodes included in the topology based on the desired effect received in step S416.

프로세서(110)는 단계 S417에 따라, 토폴로지, 노드 가중치 및 엣지 가중치를 기초로 공격 그래프를 생성할 수 있다. 공격그래프의 실시예는 도 6 및 도 7 에 나타나 있다. The processor 110 may generate an attack graph based on topology, node weights, and edge weights in step S417. Examples of attack graphs are shown in Figures 6 and 7.

프로세서(110)는 단계 S418에 따라, 공격 그래프에서 최적 혹은 최단 경로를 생성하는 작업을 실행할 수 있다. 구체적으로, 프로세서(110)는 k-shortest 알고리즘을 기반으로 k개의 최적 경로 공격 그래프를 생성할 수 있다. The processor 110 may execute a task of generating an optimal or shortest path in the attack graph according to step S418. Specifically, the processor 110 may generate k optimal path attack graphs based on the k-shortest algorithm.

우선, 프로세서(110)는 단계 S419에 따라, 반복문을 초기화할 수 있다. AGn은 최적 경로의 순번을 나타낸다. 프로세서(110)는 AGn을 1로 초기화할 수 있다. k는 최적 경로의 총 개수를 나타낸다. k는 사용자에 의해 설정될 수 있다. 프로세서(110)는 k=n으로 초기화하여 n개의 최적 경로 공격 그래프를 생성할 수 있다. First, the processor 110 may initialize a loop in step S419. AGn represents the sequence number of the optimal path. The processor 110 may initialize AGn to 1. k represents the total number of optimal paths. k can be set by the user. The processor 110 can generate n optimal path attack graphs by initializing k=n.

프로세서(110)는 단계 S420에 따라, AGn번째 최적 경로 공격 그래프를 탐색할 수 있다. 이 때, 최적 혹은 최단 경로 탐색 알고리즘은 다익스트라(Djakstra) 알고리즘 또는 CCH(Customizable Contraction Hierarchies) 알고리즘 등의 알려진 최단 경로 탐색 알고리즘이 이용될 수 있다. 이후 프로세서(110)는 단계 S421에 따라, 최적 경로 AGn을 생성할 수 있다.The processor 110 may search the AGnth optimal path attack graph in step S420. At this time, known shortest path search algorithms such as the Djakstra algorithm or the Customizable Contraction Hierarchies (CCH) algorithm may be used as the optimal or shortest path search algorithm. Thereafter, the processor 110 may generate the optimal path AGn in step S421.

프로세서(110)는 단계 S422에 따라, AGn의 값을 1 증가시키고, 단계 S423에 따라, AGn이 k를 초과하는지 확인할 수 있다. AGn이 k를 초과하지 않는 경우, 프로세서(110)는 다시 단계 S420으로 돌아가서 단계 S420 내지 단계 S423을 반복할 수 있다. AGn이 k를 초과하는 경우, k개의 최적 혹은 최단 경로 공격 그래프가 생성된 것이므로, 프로세서(110)는 반복문을 종료하고 단계 S424에 따라 최적 경로 공격 그래프 셋을 도출할 수 있다. 마지막으로, 프로세서(110)는 단계 S425에 따라 최적 혹은 최단 경로 공격 그래프를 최단거리 또는 rank 순으로 정렬할 수 있다. 즉, 프로세서(110)는 다익스트라 알고리즘 또는 CCH 알고리즘을 이용하여 기 설정된 순위의 최단 경로를 확인할 수 있다. The processor 110 may increase the value of AGn by 1 in step S422 and check whether AGn exceeds k in step S423. If AGn does not exceed k, the processor 110 may return to step S420 and repeat steps S420 to S423. If AGn exceeds k, k optimal or shortest path attack graphs have been created, so the processor 110 can end the loop and derive the optimal path attack graph set in step S424. Finally, the processor 110 may sort the optimal or shortest path attack graph in order of shortest distance or rank according to step S425. That is, the processor 110 can confirm the shortest path with a preset rank using the Dijkstra algorithm or the CCH algorithm.

이 때, 최단 경로 또는 최적 경로란 노드 가중치 및 엣지 가중치를 기초로 계산된 값이 가장 작거나 가장 큰 경로를 의미할 수 있다. 예를 들어, 최단 경로 또는 최적 경로란 노드 가중치 및 엣지 가중치의 합계, 곱 또는 가중 합계가 가장 작은 경로 또는 가장 큰 경로를 의미할 수 있다.At this time, the shortest path or optimal path may mean a path with the smallest or largest value calculated based on the node weight and edge weight. For example, the shortest path or optimal path may mean the path in which the sum, product, or weighted sum of node weights and edge weights is the smallest or the largest.

구체적으로, 단계 S419 내지 단계 S423는 다음 표에 나타난 알고리즘에 따라 실행될 수 있다.Specifically, steps S419 to S423 may be executed according to the algorithm shown in the following table.

function GenerateAG_KShortestPath(Graph, source, sink, K):
// 시작 노드로부터 도착 노드까지의 최단 경로를 결정
A[0] = CCH or Dijkstra(Graph, source, sink);
// 잠재적 k번째 최단 경로를 저장할 세트를 초기화
B = [];
for k from 1 to K:
// 분기 노드는 첫 번째 노드부터 이전 k-최단 경로의 마지막 노드에 인접한 노드까지로 설정됨
for i from 0 to size(A[k-1]) - 2:
// 분기 노드는 이전 k-최단 경로인 k-1 번째 경로로부터 획득됨
spurNode = A[k-1].node(i);
// 이전 k-최단 경로의 시작 노드부터 분기 노드까지의 시퀀스
rootPath = A[k-1].nodes(0, i);
for each path p in A:
if rootPath == p.nodes(0, i):
// 동일한 루트 경로를 공유하는 이전 최단 경로들의 일부인 엣지를 제거
remove p.edge(i,i + 1) from Graph;
for each node rootPathNode in rootPath except spurNode:
remove rootPathNode from Graph;
// 분기 노드로부터 도착지 노드까지의 분기 경로를 확인
spurPath = CCH or Dijkstra(Graph, spurNode, sink);
// 전체 경로는 루트 경로와 분기 경로를 이어서 생성됨
totalPath = rootPath + spurPath;
// 잠재적 k-최단 경로를 힙에 저장
if (totalPath not in B):
B.append(totalPath);
// 제거된 엣지와 노드를 다시 복원.
restore edges to Graph;
restore nodes in rootPath to Graph;
if B is empty:
// 분기 경로가 남지 않은 경우의 조치
break;
// 잠재적 k-최단 경로를 가중치에 따라 정렬
B.sort();
// 가장 낮은 가중치를 갖는 경로가 k-최단 경로가 됨
A[k] = B[0];
// 힙에서 첫 번째 경로를 pop 함
B.pop();
return A;
function GenerateAG_KShortestPath(Graph, source, sink, K):
// Determine the shortest path from the start node to the destination node
A[0] = CCH or Dijkstra(Graph, source, sink);
// initialize a set to store the potential k shortest path
B = [];
for k from 1 to K:
// branch nodes are set from the first node to the node adjacent to the last node of the previous k-shortest path
for i from 0 to size(A[k-1]) - 2:
// The branch node is obtained from the k-1th path, which is the previous k-shortest path.
spurNode = A[k-1].node(i);
// Sequence from start node to branch node of previous k-shortest path
rootPath = A[k-1].nodes(0, i);
for each path p in A:
if rootPath == p.nodes(0, i):
// Remove edges that are part of previous shortest paths that share the same root path
remove p.edge(i,i + 1) from Graph;
for each node rootPathNode in rootPath except spurNode:
remove rootPathNode from Graph;
// Check the branch path from the branch node to the destination node
spurPath = CCH or Dijkstra(Graph, spurNode, sink);
// The full path is created by concatenating the root path and branch path.
totalPath = rootPath + spurPath;
// Store potential k-shortest paths in heap
if (totalPath not in B):
B.append(totalPath);
// Restore removed edges and nodes.
restore edges to graph;
restore nodes in rootPath to Graph;
if B is empty:
// Action when no branch path remains
break;
// Sort potential k-shortest paths according to their weights
B.sort();
// The path with the lowest weight becomes the k-shortest path
A[k] = B[0];
// Pop the first path from the heap
B.pop();
return A;

도 5 는 본 개시에 따른 접근가능성 기반 토폴로지 또는 네트워크 토폴로지(500)의 일 실시예를 나타낸다. 프로세서(110)는 도 5 에 나타난 토폴로지를 생성할 수 있다. FIG. 5 illustrates an embodiment of an accessibility-based topology or network topology 500 according to the present disclosure. Processor 110 may generate the topology shown in FIG. 5.

프로세서(110)는 시작 노드 A(510)로부터 노드 B(551), 노드 C(552) 및 노드 D(553)가 접근 가능(520)하다고 확인할 수 있다. 이 때, 프로세서(110)는 접근 가능한 노드 B(552), 노드 C(552) 및 노드 D(553) 각각에 대한 취약점 Vb(531), Vc(532) 및 Vd(533)를 확인할 수 있다. The processor 110 may confirm that node B 551, node C 552, and node D 553 are accessible 520 from the starting node A 510. At this time, the processor 110 checks vulnerabilities V b (531), V c (532), and V d (533) for each of the accessible node B (552), node C (552), and node D (553). You can.

프로세서(110)는 표 1에 따른 정보 등을 활용하여 노드 B(552) 및 노드 C(552) 각각의 취약점 Vb(531) 및 Vc(532)에 대한 무기를 보유(540)하고 있음을 확인할 수 있다.The processor 110 uses the information according to Table 1 to determine that it possesses weapons 540 against vulnerabilities V b (531) and V c (532) of node B (552) and node C (552), respectively. You can check it.

다음으로, 프로세서(110)는 노드 B(551), 노드 C(552) 및 노드 D(553)로부터 노드 E(591) 및 노드 F(592)가 접근 가능(561, 562)하다고 확인할 수 있다. 프로세서(110)는 노드 E(591) 및 노드 F(592) 각각에 대한 취약점 Ve(571) 및 Vf(572)를 확인할 수 있다.Next, the processor 110 can confirm that node E (591) and node F (592) are accessible (561, 562) from node B (551), node C (552), and node D (553). The processor 110 can check vulnerabilities V e (571) and V f (572) for node E (591) and node F (592), respectively.

프로세서(110)는 표 1에 따른 정보 등을 활용하여 노드 F(592)의 취약점 Vf(572)에 대한 무기를 보유(580)하고 있음을 확인할 수 있다.The processor 110 can confirm that it possesses a weapon (580) against the vulnerability V f (572) of the node F (592) using the information according to Table 1.

도 6 및 도 7은 본 개시에 따른 공격 그래프(600, 700)의 일 실시예를 나타낸다. 프로세서(110)는 시작 노드 S로부터 도착 노드 G까지의 접근 가능성 기반 토폴로지를 기초로 도 6에 나타난 공격 그래프(600)를 생성할 수 있다. 각 노드에는 노드 가중치(nodeRank)가, 각 엣지에는 엣지 가중치(edge score)가 부여될 수 있다. 공격 그래프(600)에 포함되는 모든 노드의 노드 가중치는 수학식 12를 이용하여 계산될 수 있고, 공격 그래프(600)에 포함되는 모든 엣지의 엣지 가중치는 수학식 1을 이용하여 계산될 수 있다.Figures 6 and 7 show one embodiment of attack graphs 600 and 700 according to the present disclosure. The processor 110 may generate the attack graph 600 shown in FIG. 6 based on the accessibility-based topology from the starting node S to the destination node G. A node weight (nodeRank) may be assigned to each node, and an edge weight (edge score) may be assigned to each edge. The node weights of all nodes included in the attack graph 600 can be calculated using Equation 12, and the edge weights of all edges included in the attack graph 600 can be calculated using Equation 1.

프로세서(110)는 도 4 또는 표 6에 나타난 방법 또는 알고리즘을 이용하여 공격 그래프(600)의 시작 노드 S로부터 도착 노드 G까지의 하나 이상의 최적 혹은 최단 경로를 확인할 수 있다. The processor 110 may identify one or more optimal or shortest paths from the start node S to the destination node G of the attack graph 600 using the method or algorithm shown in FIG. 4 or Table 6.

예를 들어, 프로세서(110)는 도 7 에 나타난 것와 같이 첫 번째 최단 경로인 [S, V1, G] 및 두 번째 최단 경로인 [S, B2, V6, G]의 경로를 확인할 수 있고, 도 7 에 나타난 것과 같이 최적 혹은 최단 경로 공격 그래프(700)를 생성할 수 있다.For example, the processor 110 may check the paths of the first shortest path [S, V1, G] and the second shortest path [S, B2, V6, G], as shown in Figure 7. As shown in Figure 7, an optimal or shortest path attack graph 700 can be created.

도 8 은 일 실시예에 따른 전자 장치(100)의 동작 방법을 나타낸다. 도 8 의 동작 방법의 각 단계는 도 1 의 전자 장치(100)에 의해 수행될 수 있으므로, 도 1 과 중복되는 내용에 대해서는 설명을 생략한다.FIG. 8 shows a method of operating the electronic device 100 according to an embodiment. Since each step of the operation method of FIG. 8 can be performed by the electronic device 100 of FIG. 1, description of content that overlaps with FIG. 1 will be omitted.

단계 S810에서, 전자 장치(100)는 도착 노드로의 접근 가능성, 작전 요소 및 개별 노드의 취약점을 기초로 시작 노드부터 도착 노드까지의 토폴로지를 생성할 수 있다.In step S810, the electronic device 100 may generate a topology from the start node to the destination node based on accessibility to the destination node, operational factors, and vulnerabilities of individual nodes.

단계 S820에서, 전자 장치(100)는 토폴로지에 포함되는 노드의 노드 가중치를 계산할 수 있다.In step S820, the electronic device 100 may calculate the node weight of the node included in the topology.

전자 장치(100)는 토폴로지에 포함되는 노드의 취약점에 관한 CVSS 점수 및 작전 요소에 관한 점수를 기초로 노드 가중치를 계산할 수 있다.The electronic device 100 may calculate the node weight based on the CVSS score regarding vulnerabilities of nodes included in the topology and the scores regarding operational elements.

단계 S830에서, 전자 장치(100)는 토폴로지 및 요망 효과를 기초로 공격 그래프를 생성하고, 공격 그래프에 포함되는 엣지의 엣지 가중치를 계산할 수 있다.In step S830, the electronic device 100 may generate an attack graph based on the topology and desired effects and calculate edge weights of edges included in the attack graph.

전자 장치(100)는 엣지의 양 끝 노드 각각의 CVSS(Common Vulnerability Scoring System) 공격 벡터(Attack Vector)를 기초로 엣지 가중치를 확인할 수 있다.The electronic device 100 can check the edge weight based on the Common Vulnerability Scoring System (CVSS) attack vector of each end node of the edge.

전자 장치(100)는 엣지의 양 끝 노드에 관한 적어도 하나의 공격 유형의 발생 확률을 기초로 엣지 가중치를 확인할 수 있다.The electronic device 100 may check the edge weight based on the probability of occurrence of at least one attack type regarding both end nodes of the edge.

전자 장치(100)는 엣지의 양 끝 노드 중 제1 노드의 취약점이 엣지의 양 끝 노드 중 제2 노드의 취약점의 전제조건인지 여부를 기초로 엣지 가중치를 확인할 수 있다.The electronic device 100 may check the edge weight based on whether the vulnerability of the first node among the nodes at both ends of the edge is a prerequisite for the vulnerability of the second node among the nodes at both ends of the edge.

전자 장치(100)는 요망 효과에 관한 적어도 하나의 공격 유형에 해당하는 적어도 하나의 취약점의 기밀성 영향(Confidentiality Impact), 무결성 영향(Integrity Impact) 및 가용성 영향(Availability Impact)을 기초로 엣지 가중치를 확인할 수 있다.The electronic device 100 determines the edge weight based on the Confidentiality Impact, Integrity Impact, and Availability Impact of at least one vulnerability corresponding to at least one attack type with respect to the desired effect. You can.

전자 장치(100)는 요망 효과에 관한 적어도 하나의 공격 유형 각각에 해당하는 적어도 하나의 취약점의 기밀성 영향의 평균, 무결성 영향의 평균 및 가용성 영향의 평균을 기초로 엣지 가중치를 확인할 수 있다.The electronic device 100 may check the edge weight based on the average of the confidentiality impact, the average of the integrity impact, and the average of the availability impact of at least one vulnerability corresponding to each of at least one attack type with respect to the desired effect.

단계 S840에서, 전자 장치(100)는 노드 가중치 및 엣지 가중치를 기초로, 시작 노드부터 도착 노드까지의 적어도 하나의 최단 경로를 확인할 수 있다.In step S840, the electronic device 100 may check at least one shortest path from the start node to the destination node based on the node weight and the edge weight.

전자 장치(100)는 다익스트라 알고리즘 또는 CCH(Customizable Contraction Hierarchies) 알고리즘을 이용하여 기 설정된 순위의 최단 경로를 확인할 수 있다.The electronic device 100 may check the shortest path with a preset ranking using the Dijkstra algorithm or the Customizable Contraction Hierarchies (CCH) algorithm.

이상 설명된 본 개시에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치 또는 전자 장치는 본 개시에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Embodiments according to the present disclosure described above may be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium or non-transitory recording medium. The computer-readable recording medium or non-transitory recording medium may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on the computer-readable recording medium or non-transitory recording medium may be specially designed and constructed for the present invention or may be known and usable by those skilled in the computer software field. Examples of computer-readable recording media or non-transitory recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. Includes magneto-optical media and hardware devices specifically configured to store and perform program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions include not only machine language code such as that created by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device or electronic device may be configured to operate as one or more software modules to perform processing according to the present disclosure, and vice versa.

본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어, 소프트웨어, 또는 이들의 조합들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 데이터 처리 또는 이들의 조합 등을 위하여 종래 기술을 채용할 수 있다. This embodiment can be represented by functional block configurations and various processing steps. These functional blocks may be implemented as various numbers of hardware, software, or combinations thereof that execute specific functions. For example, embodiments include integrated circuit configurations such as memory, processing, logic, look-up tables, etc. that can execute various functions under the control of one or more microprocessors or other control devices. can be hired. Similar to how the components can be implemented as software programming or software elements, the present embodiments include various algorithms implemented as combinations of data structures, processes, routines or other programming constructs, such as C, C++, Java ( It can be implemented in a programming or scripting language such as Java), assembler, etc. Functional aspects may be implemented as algorithms running on one or more processors. Additionally, this embodiment may employ conventional technologies for electronic environment setting, signal processing, data processing, or a combination thereof.

Claims (10)

전자 장치의 사이버 공격 경로 추천 방법에 있어서,
도착 노드로의 접근 가능성, 작전 요소 및 개별 노드의 취약점을 기초로 시작 노드부터 상기 도착 노드까지의 토폴로지를 생성하는 단계;
상기 토폴로지에 포함되는 노드의 노드 가중치를 계산하는 단계;
상기 토폴로지 및 요망 효과를 기초로 공격 그래프를 생성하고, 상기 공격 그래프에 포함되는 엣지의 엣지 가중치를 계산하는 단계; 및
상기 노드 가중치 및 상기 엣지 가중치를 기초로, 상기 시작 노드부터 상기 도착 노드까지의 적어도 하나의 최단 경로를 확인하는 단계를 포함하되,
상기 엣지 가중치를 계산하는 단계는,
상기 엣지의 양 끝 노드 각각의 CVSS(Common Vulnerability Scoring System) 공격 벡터(Attack Vector)에 기초한 접근 위치 지표, 상기 엣지의 양 끝 노드에 관한 적어도 하나의 공격 유형의 발생 확률에 기초한 공격 유형 지표, 상기 엣지의 양 끝 노드 중 제1 노드의 취약점이 상기 엣지의 양 끝 노드 중 제2 노드의 취약점의 전제조건인지 여부에 기초한 취약점 연관성 지표, 및 상기 요망 효과에 관한 적어도 하나의 공격 유형에 해당하는 적어도 하나의 취약점의 기밀성 영향(Confidentiality Impact), 무결성 영향(Integrity Impact) 및 가용성 영향(Availability Impact)에 기초한 CIA(Confidentiality, Integrity and Availability) 지표를 기초로 상기 엣지 가중치를 확인하는 단계를 포함하는, 사이버 공격 경로 추천 방법.
In the method of recommending a cyber attack route for an electronic device,
generating a topology from a starting node to the destination node based on accessibility to the destination node, operational factors, and vulnerabilities of individual nodes;
calculating node weights of nodes included in the topology;
generating an attack graph based on the topology and desired effects, and calculating edge weights of edges included in the attack graph; and
Confirming at least one shortest path from the start node to the destination node based on the node weight and the edge weight,
The step of calculating the edge weight is,
An access location indicator based on the CVSS (Common Vulnerability Scoring System) attack vector of each end node of the edge, an attack type indicator based on the probability of occurrence of at least one attack type for both end nodes of the edge, A vulnerability correlation indicator based on whether the vulnerability of the first node among the nodes at both ends of the edge is a prerequisite for the vulnerability of the second node among the nodes at both ends of the edge, and at least one attack type corresponding to the desired effect Cyber, comprising the step of checking the edge weight based on the Confidentiality, Integrity and Availability (CIA) indicator based on the Confidentiality Impact, Integrity Impact and Availability Impact of one vulnerability How to recommend attack routes.
삭제delete 삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 엣지 가중치를 계산하는 단계는,
상기 요망 효과에 관한 적어도 하나의 공격 유형 각각에 해당하는 적어도 하나의 취약점의 기밀성 영향의 평균, 무결성 영향의 평균 및 가용성 영향의 평균을 기초로 상기 CIA 지표를 확인하는 단계를 포함하는,
사이버 공격 경로 추천 방법.
According to paragraph 1,
The step of calculating the edge weight is,
Identifying the CIA indicator based on the average confidentiality impact, average integrity impact, and average availability impact of at least one vulnerability corresponding to each of the at least one attack type with respect to the desired effect,
How to recommend cyber attack routes.
제1항에 있어서,
상기 노드 가중치를 계산하는 단계는,
상기 토폴로지에 포함되는 노드의 취약점에 관한 CVSS 점수 및 상기 작전 요소에 관한 점수를 기초로 상기 노드 가중치를 계산하는 단계를 포함하는,
사이버 공격 경로 추천 방법.
According to paragraph 1,
The step of calculating the node weight is,
Comprising the step of calculating the node weight based on the CVSS score regarding the vulnerability of the node included in the topology and the score regarding the operational element,
How to recommend cyber attack routes.
제1항에 있어서,
상기 적어도 하나의 최단 경로를 확인하는 단계는,
다익스트라 알고리즘 또는 CCH(Customizable Contraction Hierarchies) 알고리즘을 이용하여 기 설정된 순위의 최단 경로를 확인하는 단계를 포함하는, 사이버 공격 경로 추천 방법.
According to paragraph 1,
The step of checking the at least one shortest path includes:
A method of recommending a cyber attack path, including the step of checking the shortest path of a preset rank using Dijkstra's algorithm or CCH (Customizable Contraction Hierarchies) algorithm.
전자 장치로서,
적어도 하나의 프로그램이 저장된 메모리; 및
상기 적어도 하나의 프로그램을 실행함으로써,
도착 노드까지의 접근 가능성, 작전 요소 및 개별 노드의 취약점을 기초로 시작 노드부터 도착 노드까지의 토폴로지를 생성하고,
상기 토폴로지에 포함되는 노드의 노드 가중치를 계산하고,
상기 토폴로지 및 요망 효과를 기초로 공격 그래프를 생성하고, 상기 공격 그래프에 포함되는 엣지의 엣지 가중치를 계산하고,
상기 노드 가중치 및 상기 엣지 가중치를 기초로, 시작 노드부터 도착 노드까지의 적어도 하나의 최단 경로를 확인하는 프로세서를 포함하되,
상기 프로세서는,
상기 엣지의 양 끝 노드 각각의 CVSS 공격 벡터에 기초한 접근 위치 지표, 상기 엣지의 양 끝 노드에 관한 적어도 하나의 공격 유형의 발생 확률에 기초한 공격 유형 지표, 상기 엣지의 양 끝 노드 중 제1 노드의 취약점이 상기 엣지의 양 끝 노드 중 제2 노드의 취약점의 전제조건인지 여부에 기초한 취약점 연관성 지표, 및 상기 요망 효과에 관한 적어도 하나의 공격 유형에 해당하는 적어도 하나의 취약점의 기밀성 영향, 무결성 영향 및 가용성 영향에 기초한 CIA 지표를 기초로 상기 엣지 가중치를 확인하는,
전자 장치.
As an electronic device,
a memory in which at least one program is stored; and
By executing the at least one program,
Create a topology from the start node to the destination node based on the accessibility to the destination node, operational elements, and vulnerabilities of individual nodes,
Calculate the node weight of the node included in the topology,
Generating an attack graph based on the topology and desired effects, calculating edge weights of edges included in the attack graph,
A processor that determines at least one shortest path from a starting node to a destination node based on the node weight and the edge weight,
The processor,
An access location indicator based on the CVSS attack vector of each end node of the edge, an attack type indicator based on the probability of occurrence of at least one attack type regarding both end nodes of the edge, and a first node among both end nodes of the edge A vulnerability relevance indicator based on whether the vulnerability is a prerequisite for a vulnerability in a second node of the edge nodes, and confidentiality impact, integrity impact, and Checking the edge weights based on CIA metrics based on availability impacts,
Electronic devices.
전자 장치의 사이버 공격 경로 추천 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체로서,
상기 사이버 공격 경로 추천 방법은,
도착 노드까지의 접근 가능성, 작전 요소 및 개별 노드의 취약점을 기초로 시작 노드부터 도착 노드까지의 토폴로지를 생성하는 단계;
상기 토폴로지에 포함되는 노드의 노드 가중치를 계산하는 단계;
상기 토폴로지 및 요망 효과를 기초로 공격 그래프를 생성하고, 상기 공격 그래프에 포함되는 엣지의 엣지 가중치를 계산하는 단계; 및
상기 노드 가중치 및 상기 엣지 가중치를 기초로, 시작 노드부터 도착 노드까지의 적어도 하나의 최단 경로를 확인하는 단계를 포함하되,
상기 엣지 가중치를 계산하는 단계는,
상기 엣지의 양 끝 노드 각각의 CVSS 공격 벡터에 기초한 접근 위치 지표, 상기 엣지의 양 끝 노드에 관한 적어도 하나의 공격 유형의 발생 확률에 기초한 공격 유형 지표, 상기 엣지의 양 끝 노드 중 제1 노드의 취약점이 상기 엣지의 양 끝 노드 중 제2 노드의 취약점의 전제조건인지 여부에 기초한 취약점 연관성 지표, 및 상기 요망 효과에 관한 적어도 하나의 공격 유형에 해당하는 적어도 하나의 취약점의 기밀성 영향, 무결성 영향 및 가용성 영향에 기초한 CIA 지표를 기초로 상기 엣지 가중치를 확인하는 단계를 포함하는,
비일시적 기록 매체.
It is a non-transitory computer-readable recording medium that records a program for executing a cyber attack path recommendation method for electronic devices on a computer,
The cyber attack route recommendation method is,
generating a topology from the starting node to the destination node based on the accessibility to the destination node, operational factors, and vulnerabilities of individual nodes;
calculating node weights of nodes included in the topology;
generating an attack graph based on the topology and desired effects, and calculating edge weights of edges included in the attack graph; and
Confirming at least one shortest path from a starting node to a destination node based on the node weight and the edge weight,
The step of calculating the edge weight is,
An access location indicator based on the CVSS attack vector of each end node of the edge, an attack type indicator based on the probability of occurrence of at least one attack type regarding both end nodes of the edge, and a first node among both end nodes of the edge a vulnerability relevance indicator based on whether the vulnerability is a prerequisite for a vulnerability in a second node of the edge nodes, and confidentiality impact, integrity impact, and Verifying the edge weight based on a CIA metric based on availability impact,
Non-transitory recording medium.
KR1020220094930A 2022-07-29 2022-07-29 Cyber attack route recommendation method of electronic apparatus Active KR102689032B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220094930A KR102689032B1 (en) 2022-07-29 2022-07-29 Cyber attack route recommendation method of electronic apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220094930A KR102689032B1 (en) 2022-07-29 2022-07-29 Cyber attack route recommendation method of electronic apparatus

Publications (2)

Publication Number Publication Date
KR20240016765A KR20240016765A (en) 2024-02-06
KR102689032B1 true KR102689032B1 (en) 2024-07-29

Family

ID=89858533

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220094930A Active KR102689032B1 (en) 2022-07-29 2022-07-29 Cyber attack route recommendation method of electronic apparatus

Country Status (1)

Country Link
KR (1) KR102689032B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101893253B1 (en) * 2016-07-14 2018-08-29 국방과학연구소 Apparatus and Method for estimating automated network penetration path based on network reachability
KR102153926B1 (en) * 2017-08-10 2020-09-10 한국전자통신연구원 Apparatus for enhancing network security and method for the same

Also Published As

Publication number Publication date
KR20240016765A (en) 2024-02-06

Similar Documents

Publication Publication Date Title
Nguyen et al. sfuzz: An efficient adaptive fuzzer for solidity smart contracts
KR102226257B1 (en) Method and device for writing service data to a blockchain system
JP4732874B2 (en) Software behavior modeling device, software behavior monitoring device, software behavior modeling method, and software behavior monitoring method
Çeker et al. Deception-based game theoretical approach to mitigate DoS attacks
US9021584B2 (en) System and method for assessing danger of software using prioritized rules
KR20210074891A (en) Method and apparatus for predicting attack target based on attack graph
CN105760787B (en) System and method for the malicious code in detection of random access memory
US8301433B2 (en) Software behavior modeling apparatus, software behavior monitoring apparatus, software behavior modeling method, and software behavior monitoring method
JP6404273B2 (en) System and method for performing anti-virus scanning of files in a virtual machine
WO2016022720A2 (en) Method and apparatus of identifying a transaction risk
US20160239661A1 (en) Information processing apparatus, information processing method, and program
JP2019145925A (en) Method for verifying transaction in blockchain network, and node for constituting the network
CN108416039A (en) A kind of data query method and system
JP7355118B2 (en) Risk analysis result display device, method, and program
CN113138836A (en) Escape-proof honeypot system based on Docker container and method thereof
JP6282217B2 (en) Anti-malware system and anti-malware method
JP2020028092A (en) Attack detection device, attack detection system, attack detection method, and attack detection program
US9838420B2 (en) System and method for distributing most effective antivirus records to user devices
JP2024163229A (en) Analytical device, analytical method, and analytical program
Zhang et al. A scalable double oracle algorithm for hardening large active directory systems
CN112748862B (en) Method, electronic device and computer program product for managing a disk
KR102689032B1 (en) Cyber attack route recommendation method of electronic apparatus
CN103677746A (en) Instruction recombining method and device
CN113518086A (en) Network attack prediction method, device and storage medium
CN116663005B (en) Method, device, equipment and storage medium for defending composite Lesu virus

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20220729

PA0201 Request for examination
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20231030

Patent event code: PE09021S01D

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20240718

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20240723

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20240724

End annual number: 3

Start annual number: 1

PG1601 Publication of registration