KR102635720B1 - Method for threat modeling using blockchain technology - Google Patents
Method for threat modeling using blockchain technology Download PDFInfo
- Publication number
- KR102635720B1 KR102635720B1 KR1020220098296A KR20220098296A KR102635720B1 KR 102635720 B1 KR102635720 B1 KR 102635720B1 KR 1020220098296 A KR1020220098296 A KR 1020220098296A KR 20220098296 A KR20220098296 A KR 20220098296A KR 102635720 B1 KR102635720 B1 KR 102635720B1
- Authority
- KR
- South Korea
- Prior art keywords
- blockchain network
- node
- information
- threat modeling
- threat
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000005516 engineering process Methods 0.000 title description 27
- 238000011156 evaluation Methods 0.000 claims abstract description 187
- 238000012795 verification Methods 0.000 claims abstract description 46
- 230000004044 response Effects 0.000 claims abstract description 15
- 238000010586 diagram Methods 0.000 claims description 38
- 230000000116 mitigating effect Effects 0.000 claims description 20
- 238000012502 risk assessment Methods 0.000 claims description 14
- 238000002360 preparation method Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 description 40
- 230000008569 process Effects 0.000 description 34
- 238000012545 processing Methods 0.000 description 28
- 238000004891 communication Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 20
- 230000003287 optical effect Effects 0.000 description 14
- 238000013461 design Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000007405 data analysis Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 239000002245 particle Substances 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000208341 Hedera Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 238000013349 risk mitigation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007474 system interaction Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/102—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 개시의 일 실시예에 따라, 블록체인 네트워크를 구성하는 제 1 노드에 의해 수행되는 위협 모델링 방법으로서, 위협 모델링의 수행에 요구되는 데이터를 포함하는 작업 요청을 상기 블록체인 네트워크를 통해 획득하는 단계; 상기 작업 요청에 응답하여, 상기 데이터에 기초하여 수행된 위협 모델링의 결과물을 생성하는 단계; 및 상기 결과물에 대한 평가 정보 및 상기 평가 정보에 대한 검증 정보가 생성될 수 있도록, 상기 위협 모델링의 결과물을 상기 블록체인 네트워크에 전송하는 단계;를 포함하고, 상기 평가 정보는, 상기 블록체인 네트워크를 구성하는 제 2 노드에서, 사전 결정된 평가 기준에 기초하여 상기 블록체인 네트워크를 통해 획득된 상기 결과물에 대한 평가를 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고, 상기 검증 정보는, 상기 블록체인 네트워크를 구성하는 제 3 노드에서, 상기 사전 결정된 평가 기준에 기초하여 상기 블록체인 네트워크를 통해 획득된 상기 평가 정보의 생성의 유효성에 대한 검증을 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고, 그리고 상기 평가 정보의 생성에 대한 유효성이 검증된 경우, 상기 블록체인 네트워크 상에 저장된 스마트 컨트랙트(smart contract)에 의해 상기 평가 정보에 대응되는 보상을 상기 제 1 노드에 지급하도록 결정될 수 있다.According to an embodiment of the present disclosure, a threat modeling method performed by a first node constituting a blockchain network, comprising the steps of obtaining a task request containing data required to perform threat modeling through the blockchain network ; In response to the task request, generating a result of threat modeling performed based on the data; And transmitting the result of the threat modeling to the blockchain network so that evaluation information about the result and verification information about the evaluation information can be generated. The evaluation information includes, the blockchain network. In the constituting second node, it is generated through evaluation of the results obtained through the blockchain network based on predetermined evaluation criteria and transmitted to the blockchain network, and the verification information is transmitted to the blockchain network. In a third node constituting the, the evaluation information obtained through the blockchain network is generated through verification of the validity of the generation based on the predetermined evaluation criteria, and transmitted to the blockchain network, and When the validity of the generation of evaluation information is verified, it may be decided to pay compensation corresponding to the evaluation information to the first node by a smart contract stored on the blockchain network.
Description
본 개시 내용은 위협 모델링 방법에 관한 것으로, 보다 구체적으로 블록체인 기술을 이용한 위협 모델링 방법에 관한 것이다.This disclosure relates to a threat modeling method, and more specifically, to a threat modeling method using blockchain technology.
정보통신기술(Information & Communication Technology, ICT)의 발달로 인하여 다양한 사이버보안 위협이 증가하고 있다. 따라서, 정보 시스템의 보안 문제로 인한 심각한 재정적 손실이나 인명 피해가 발생할 수 있다. 이러한 보안 문제의 일부는 잘못된 설계로 인해 발생되고 있다. 대부분의 시스템은 보안 기능에 대해서 제대로 설계하지 않고, 시큐어 코딩(secure coding)이나 모의 해킹에 의존하여 보안 기능을 구현하고 있다.Due to the development of Information & Communication Technology (ICT), various cybersecurity threats are increasing. Therefore, serious financial losses or human casualties may occur due to security problems in information systems. Some of these security problems are caused by poor design. Most systems do not design security functions properly and rely on secure coding or mock hacking to implement security functions.
보안 기능을 제대로 설계하지 않은 시스템에서 보안 기능의 요구사항을 도출하여 다시 설계할 경우, 시스템의 취약점의 개수는 줄어들 수 있다. 따라서, 보안 기능의 요구사항을 분석하는 단계가 시스템의 개발 초기에 필요할 수 있다.If security function requirements are derived from a system in which the security function was not properly designed and redesigned, the number of system vulnerabilities can be reduced. Therefore, a step to analyze security function requirements may be necessary early in the development of the system.
위협 모델링 기법은 보안기능 요구사항을 도출하기 위해서 일반적으로 사용될 수 있다. 위협 모델링은 분석 대상의 자산, 발생 가능한 취약점, 잠재적 위협을 식별하고 열거하며 완화 조치의 우선순위를 지정하는 체계적인 보안성 분석 방법일 수 있다.Threat modeling techniques can generally be used to derive security function requirements. Threat modeling can be a systematic security analysis method that identifies and lists assets under analysis, possible vulnerabilities, and potential threats, and prioritizes mitigation measures.
위협 모델링은 개인이 혼자서 수행하는 것보다 여러 영역의 전문가들이 함께 수행할 때 최선의 결과가 도출될 수 있다. 따라서, 여러 영역의 전문가들이 위협 모델링에 참여하도록 적절한 평가 및 검증을 통해 보상을 지급하는 것이 중요할 수 있다.Threat modeling can produce the best results when experts from multiple fields work together rather than when an individual performs it alone. Therefore, it may be important to provide compensation through appropriate evaluation and verification to encourage experts in multiple domains to participate in threat modeling.
본 개시는 전술한 배경기술에 대응하여 안출된 것으로, 블록체인 기술을 이용한 위협 모델링 방법을 제공하고자 한다.This disclosure was created in response to the above-described background technology and seeks to provide a threat modeling method using blockchain technology.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present disclosure are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.
전술한 바와 같은 과제를 해결하기 위한 본 개시의 몇몇 실시예에 따라, 블록체인 네트워크를 구성하는 제 1 노드에 의해 수행되는 위협 모델링 방법으로서, 위협 모델링의 수행에 요구되는 데이터를 포함하는 작업 요청을 상기 블록체인 네트워크를 통해 획득하는 단계; 상기 작업 요청에 응답하여, 상기 데이터에 기초하여 수행된 위협 모델링의 결과물을 생성하는 단계; 및 상기 결과물에 대한 평가 정보 및 상기 평가 정보에 대한 검증 정보가 생성될 수 있도록, 상기 위협 모델링의 결과물을 상기 블록체인 네트워크에 전송하는 단계;를 포함하고, 상기 평가 정보는, 상기 블록체인 네트워크를 구성하는 제 2 노드에서, 사전 결정된 평가 기준에 기초하여 상기 블록체인 네트워크를 통해 획득된 상기 결과물에 대한 평가를 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고, 상기 검증 정보는, 상기 블록체인 네트워크를 구성하는 제 3 노드에서, 상기 사전 결정된 평가 기준에 기초하여 상기 블록체인 네트워크를 통해 획득된 상기 평가 정보의 생성의 유효성에 대한 검증을 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고, 그리고 상기 평가 정보의 생성에 대한 유효성이 검증된 경우, 상기 블록체인 네트워크 상에 저장된 스마트 컨트랙트(smart contract)에 의해 상기 평가 정보에 대응되는 보상을 상기 제 1 노드에 지급하도록 결정될 수 있다.According to some embodiments of the present disclosure to solve the above-mentioned problems, a threat modeling method performed by a first node constituting a blockchain network includes a task request containing data required for performing threat modeling. Obtaining through the blockchain network; In response to the task request, generating a result of threat modeling performed based on the data; And transmitting the result of the threat modeling to the blockchain network so that evaluation information about the result and verification information about the evaluation information can be generated. The evaluation information includes, the blockchain network. In the constituting second node, it is generated through evaluation of the results obtained through the blockchain network based on predetermined evaluation criteria and transmitted to the blockchain network, and the verification information is transmitted to the blockchain network. In a third node constituting the, the evaluation information obtained through the blockchain network is generated through verification of the validity of the generation based on the predetermined evaluation criteria, and transmitted to the blockchain network, and When the validity of the generation of evaluation information is verified, it may be decided to pay compensation corresponding to the evaluation information to the first node by a smart contract stored on the blockchain network.
대안적으로, 상기 데이터는, 데이터 흐름도(data flow diagram, DFD)를 포함하는 시스템 모델의 데이터 또는 아키텍처(architecture)의 데이터 중 적어도 하나를 포함할 수 있다.Alternatively, the data may include at least one of system model data including a data flow diagram (DFD) or architecture data.
대안적으로, 상기 위협 모델링의 결과물은, 시스템 모델의 작성에 관한 작업 정보, 공격 라이브러리의 수집에 관한 작업 정보, 위협의 식별에 관한 작업 정보, 공격 시나리오의 작성에 관한 작업 정보, 위험도의 평가에 관한 작업 정보 및 완화대책 마련에 관한 작업 정보 중 적어도 하나를 포함할 수 있다.Alternatively, the results of the threat modeling may be included in work information on creating a system model, work information on collection of attack libraries, work information on identification of threats, work information on creation of attack scenarios, and risk assessment. It may include at least one of work information related to work information and work information related to preparation of mitigation measures.
대안적으로, 상기 평가 정보는, 상기 위협 모델링의 결과물에 포함된 작업 정보별로 각각 평가되어 산출된 점수(point)를 포함할 수 있다.Alternatively, the evaluation information may include points calculated by evaluating each task information included in the result of the threat modeling.
대안적으로, 상기 사전 결정된 평가 기준은, 상기 위협 모델링의 결과물에 포함된 시스템 모델의 작성에 관한 작업 정보의 경우, 상기 시스템 모델의 수준, 상기 시스템 모델의 객체 작성 여부 및 상기 시스템 모델의 데이터 흐름 작성 여부를 기준으로 할 수 있다.Alternatively, the predetermined evaluation criteria may include, in the case of work information regarding the creation of the system model included in the output of the threat modeling, the level of the system model, whether objects of the system model are created, and the data flow of the system model. It can be based on whether it is written or not.
대안적으로, 상기 사전 결정된 평가 기준은, 상기 위협 모델링의 결과물에 포함된 공격 라이브러리의 수집에 관한 작업 정보의 경우, 상기 공격 라이브러리의 공통 취약점 등급 시스템(common vulnerability scoring system) 점수 및 상기 공격 라이브러리의 사용처를 기준으로 할 수 있다.Alternatively, the predetermined evaluation criteria may include, in the case of operational information regarding the collection of attack libraries included in the output of the threat modeling, the common vulnerability scoring system score of the attack library and the It can be based on the place of use.
대안적으로, 상기 사전 결정된 평가 기준은, 상기 위협 모델링의 결과물에 포함된 위협의 식별에 관한 작업 정보의 경우, 타겟에 대한 위협 정도를 기준으로 할 수 있다.Alternatively, the predetermined evaluation criteria may be based on the degree of threat to the target in the case of operational information regarding the identification of threats included in the result of the threat modeling.
대안적으로, 상기 사전 결정된 평가 기준은, 상기 위협 모델링의 결과물에 포함된 공격 시나리오의 작성에 관한 작업 정보의 경우, 공격 트리 각 항목의 개수 및 유효 공격 시나리오 작성 여부를 기준으로 할 수 있다.Alternatively, the predetermined evaluation criteria may be based on the number of each attack tree item and whether or not a valid attack scenario is created, in the case of work information related to the creation of an attack scenario included in the result of the threat modeling.
대안적으로, 상기 사전 결정된 평가 기준은, 상기 위협 모델링의 결과물에 포함된 위험도의 평가에 관한 작업 정보의 경우, 상기 블록체인 네트워크에 포함된 복수의 노드들의 투표 결과를 기준으로 할 수 있다.Alternatively, the predetermined evaluation criteria may be based on voting results of a plurality of nodes included in the blockchain network in the case of work information regarding risk assessment included in the result of the threat modeling.
대안적으로, 상기 사전 결정된 평가 기준은, 상기 위협 모델링의 결과물에 포함된 완화대책 마련에 관한 작업 정보의 경우, 상기 블록체인 네트워크에 포함된 복수의 노드들의 투표 결과를 기준으로 할 수 있다.Alternatively, the predetermined evaluation criteria may be based on the voting results of a plurality of nodes included in the blockchain network in the case of work information regarding the preparation of mitigation measures included in the result of the threat modeling.
전술한 바와 같은 과제를 해결하기 위한 본 개시의 몇몇 다른 실시예에 따라, 블록체인 네트워크를 구성하는 제 2 노드에 의해 수행되는 위협 모델링 방법으로서, 데이터에 기초하여 수행된 위협 모델링의 결과물을 상기 블록체인 네트워크를 통해 획득하는 단계; 사전 결정된 평가 기준에 기초하여 상기 결과물에 대한 평가를 통해 평가 정보를 생성하는 단계; 및 상기 평가 정보에 대한 검증 정보가 생성될 수 있도록, 상기 평가 정보를 상기 블록체인 네트워크에 전송하는 단계;를 포함하고, 상기 위협 모델링의 결과물은, 상기 블록체인 네트워크를 구성하는 제 1 노드에서, 상기 블록체인 네트워크를 통해 획득된 상기 데이터를 포함하는 작업 요청에 응답하여, 상기 데이터에 기초한 수행을 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고, 상기 검증 정보는, 상기 블록체인 네트워크를 구성하는 제 3 노드에서, 상기 사전 결정된 평가 기준에 기초하여 상기 블록체인 네트워크를 통해 획득된 상기 평가 정보의 생성의 유효성에 대한 검증을 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고, 그리고 상기 평가 정보의 생성에 대한 유효성이 검증된 경우, 상기 블록체인 네트워크 상에 저장된 스마트 컨트랙트(smart contract)에 의해 상기 평가 정보에 대응되는 보상을 상기 제 1 노드에 지급하도록 결정될 수 있다.According to several other embodiments of the present disclosure to solve the problems described above, a threat modeling method is performed by a second node constituting a blockchain network, and the result of threat modeling performed based on data is transmitted to the block. Obtaining through a chain network; Generating evaluation information through evaluation of the results based on predetermined evaluation criteria; And transmitting the evaluation information to the blockchain network so that verification information for the evaluation information can be generated, wherein the result of the threat modeling is, in a first node constituting the blockchain network, In response to a task request containing the data obtained through the blockchain network, generated through execution based on the data, and transmitted to the blockchain network, the verification information constitutes the blockchain network. In a third node, the evaluation information obtained through the blockchain network is generated through verification of the validity of the generation based on the predetermined evaluation criteria, and transmitted to the blockchain network, and the evaluation information is When the validity of creation is verified, it may be decided to pay compensation corresponding to the evaluation information to the first node by a smart contract stored on the blockchain network.
전술한 바와 같은 과제를 해결하기 위한 본 개시의 몇몇 또 다른 실시예에 따라, 블록체인 네트워크를 구성하는 제 3 노드에 의해 수행되는 위협 모델링 방법으로서, 사전 결정된 평가 기준에 기초하여, 위협 모델링의 결과물에 대한 평가를 통해 생성된 평가 정보를 상기 블록체인 네트워크를 통해 획득하는 단계; 상기 사전 결정된 평가 기준에 기초하여 상기 평가 정보의 생성의 유효성에 대한 검증을 통해 검증 정보를 생성하는 단계; 및 상기 검증 정보를 상기 블록체인 네트워크에 전송하는 단계;를 포함하고, 상기 위협 모델링의 결과물은, 상기 블록체인 네트워크를 구성하는 제 1 노드에서, 상기 블록체인 네트워크를 통해 획득된 데이터를 포함하는 작업 요청에 응답하여, 상기 데이터에 기초한 수행을 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고, 상기 평가 정보는, 상기 블록체인 네트워크를 구성하는 제 2 노드에서, 상기 사전 결정된 평가 기준에 기초하여 상기 블록체인 네트워크를 통해 획득된 상기 결과물에 대한 평가를 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고, 그리고 상기 평가 정보의 생성에 대한 유효성이 검증된 경우, 상기 블록체인 네트워크 상에 저장된 스마트 컨트랙트(smart contract)에 의해 상기 평가 정보에 대응되는 보상을 상기 제 1 노드에 지급하도록 결정될 수 있다.According to several further embodiments of the present disclosure for solving the above-described problems, a threat modeling method performed by a third node constituting a blockchain network, based on predetermined evaluation criteria, results of threat modeling Obtaining evaluation information generated through evaluation of through the blockchain network; generating verification information through verification of the validity of the generation of the assessment information based on the predetermined evaluation criteria; and transmitting the verification information to the blockchain network, wherein the result of the threat modeling includes data obtained through the blockchain network at a first node constituting the blockchain network. In response to a request, the evaluation information is generated through execution based on the data and transmitted to the blockchain network, and the evaluation information is, at a second node constituting the blockchain network, based on the predetermined evaluation criteria. A smart contract ( It may be decided to pay compensation corresponding to the evaluation information to the first node through a smart contract.
본 개시는 블록체인 기술을 이용하여 위협 모델링을 원활하게 수행할 수 있다.This disclosure can smoothly perform threat modeling using blockchain technology.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects that can be obtained from the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below. .
다양한 양상들이 이제 도면들을 참조로 기재되며, 여기서 유사한 참조 번호들은 총괄적으로 유사한 구성요소들을 지칭하는데 이용된다. 이하의 실시예에서, 설명 목적을 위해, 다수의 특정 세부사항들이 하나 이상의 양상들의 총체적 이해를 제공하기 위해 제시된다. 그러나, 그러한 양상(들)이 이러한 구체적인 세부사항들 없이 실시될 수 있음은 명백할 것이다.
도 1은 본 개시의 몇몇 실시예에 따른 블록체인 기술을 이용한 위협 모델링 방법을 제공하기 위한 시스템의 블록 구성도이다.
도 2는 본 개시의 몇몇 실시예에 따른 블록체인 기술을 이용한 위협 모델링을 수행하기 위한 아키텍처 계층(architecture layer) 구조를 나타내는 도면이다.
도 3은 본 개시의 몇몇 실시예에 따른 블록체인 네트워크를 구성하는 제 1 노드에 의해 수행되는 위협 모델링 방법을 나타낸 흐름도이다.
도 4는 본 개시의 몇몇 실시예에 따른 블록체인 네트워크를 구성하는 제 2 노드에 의해 수행되는 위협 모델링 방법을 나타낸 흐름도이다.
도 5는 본 개시의 몇몇 실시예에 따른 블록체인 네트워크를 구성하는 제 3 노드에 의해 수행되는 위협 모델링 방법을 나타낸 흐름도이다.
도 6은 본 개시의 몇몇 실시예에 따른 블록체인 기술을 이용한 위협 모델링 방법의 순서도이다.
도 7은 본 개시의 내용의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 일반적인 개략도이다.Various aspects will now be described with reference to the drawings, where like reference numerals are used to collectively refer to like elements. In the following examples, for purposes of explanation, numerous specific details are set forth to provide a comprehensive understanding of one or more aspects. However, it will be clear that such aspect(s) may be practiced without these specific details.
1 is a block diagram of a system for providing a threat modeling method using blockchain technology according to some embodiments of the present disclosure.
FIG. 2 is a diagram illustrating an architecture layer structure for performing threat modeling using blockchain technology according to some embodiments of the present disclosure.
Figure 3 is a flowchart showing a threat modeling method performed by a first node constituting a blockchain network according to some embodiments of the present disclosure.
Figure 4 is a flowchart showing a threat modeling method performed by a second node constituting a blockchain network according to some embodiments of the present disclosure.
Figure 5 is a flowchart showing a threat modeling method performed by a third node constituting a blockchain network according to some embodiments of the present disclosure.
Figure 6 is a flowchart of a threat modeling method using blockchain technology according to some embodiments of the present disclosure.
7 is a general schematic diagram of an example computing environment in which embodiments of the subject matter of the present disclosure may be implemented.
다양한 실시예들이 이제 도면을 참조하여 설명된다. 본 명세서에서, 다양한 설명들이 본 개시의 이해를 제공하기 위해서 제시된다. 그러나, 이러한 실시예들은 이러한 구체적인 설명 없이도 실행될 수 있음이 명백하다.Various embodiments are now described with reference to the drawings. In this specification, various descriptions are presented to provide an understanding of the disclosure. However, it is clear that these embodiments may be practiced without these specific descriptions.
본 명세서에서 사용되는 용어 "컴포넌트", "모듈", "시스템" 등은 컴퓨터-관련 엔티티, 하드웨어, 펌웨어, 소프트웨어, 소프트웨어 및 하드웨어의 조합, 또는 소프트웨어의 실행을 지칭한다. 예를 들어, 컴포넌트는 프로세서상에서 실행되는 처리과정(procedure), 프로세서, 객체, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이들로 제한되는 것은 아니다. 예를 들어, 컴퓨팅 장치에서 실행되는 애플리케이션 및 컴퓨팅 장치 모두 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세서 및/또는 실행 스레드 내에 상주할 수 있다. 일 컴포넌트는 하나의 컴퓨터 내에 로컬화 될 수 있다. 일 컴포넌트는 2개 이상의 컴퓨터들 사이에 분배될 수 있다. 또한, 이러한 컴포넌트들은 그 내부에 저장된 다양한 데이터 구조들을 갖는 다양한 컴퓨터 판독가능한 매체로부터 실행할 수 있다. 컴포넌트들은 예를 들어 하나 이상의 데이터 패킷들을 갖는 신호(예를 들면, 로컬 시스템, 분산 시스템에서 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 데이터 및/또는 신호를 통해 다른 시스템과 인터넷과 같은 네트워크를 통해 전송되는 데이터)에 따라 로컬 및/또는 원격 처리들을 통해 통신할 수 있다.As used herein, the terms “component,” “module,” “system,” and the like refer to a computer-related entity, hardware, firmware, software, a combination of software and hardware, or an implementation of software. For example, a component may be, but is not limited to, a process running on a processor, a processor, an object, a thread of execution, a program, and/or a computer. For example, both an application running on a computing device and the computing device can be a component. One or more components may reside within a processor and/or thread of execution. A component may be localized within one computer. A component may be distributed between two or more computers. Additionally, these components can execute from various computer-readable media having various data structures stored thereon. Components can transmit signals, for example, with one or more data packets (e.g., data and/or signals from one component interacting with other components in a local system, a distributed system, to other systems and over a network such as the Internet). Depending on the data being transmitted, they may communicate through local and/or remote processes.
더불어, 용어 "또는"은 배타적 "또는"이 아니라 내포적 "또는"을 의미하는 것으로 의도된다. 즉, 달리 특정되지 않거나 문맥상 명확하지 않은 경우에, "X는 A 또는 B를 이용한다"는 자연적인 내포적 치환 중 하나를 의미하는 것으로 의도된다. 즉, X가 A를 이용하거나; X가 B를 이용하거나; 또는 X가 A 및 B 모두를 이용하는 경우, "X는 A 또는 B를 이용한다"가 이들 경우들 어느 것으로도 적용될 수 있다. 또한, 본 명세서에 사용된 "및/또는"이라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다.Additionally, the term “or” is intended to mean an inclusive “or” and not an exclusive “or.” That is, unless otherwise specified or clear from context, “X utilizes A or B” is intended to mean one of the natural implicit substitutions. That is, either X uses A; X uses B; Or, if X uses both A and B, “X uses A or B” can apply to either of these cases. Additionally, the term “and/or” as used herein should be understood to refer to and include all possible combinations of one or more of the related listed items.
또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하는 것으로 이해되어야 한다. 다만, "포함한다" 및/또는 "포함하는"이라는 용어는, 하나 이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다. 또한, 달리 특정되지 않거나 단수 형태를 지시하는 것으로 문맥상 명확하지 않은 경우에, 본 명세서와 청구범위에서 단수는 일반적으로 "하나 또는 그 이상"을 의미하는 것으로 해석되어야 한다.Additionally, the terms “comprise” and/or “comprising” should be understood to mean that the corresponding feature and/or element is present. However, the terms “comprise” and/or “comprising” should be understood as not excluding the presence or addition of one or more other features, elements and/or groups thereof. Additionally, unless otherwise specified or the context is clear to indicate a singular form, the singular terms herein and in the claims should generally be construed to mean “one or more.”
그리고, "A 또는 B 중 적어도 하나"이라는 용어는, "A만을 포함하는 경우", "B 만을 포함하는 경우", "A와 B의 구성으로 조합된 경우"를 의미하는 것으로 해석되어야 한다. And, the term “at least one of A or B” should be interpreted to mean “a case containing only A,” “a case containing only B,” and “a case of combining A and B.”
당업자들은 추가적으로 여기서 개시된 실시예들과 관련되어 설명된 다양한 예시적 논리적 블록들, 구성들, 모듈들, 회로들, 수단들, 로직들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양쪽 모두의 조합들로 구현될 수 있음을 인식해야 한다. 하드웨어 및 소프트웨어의 상호교환성을 명백하게 예시하기 위해, 다양한 예시적 컴포넌트들, 블록들, 구성들, 수단들, 로직들, 모듈들, 회로들, 및 단계들은 그들의 기능성 측면에서 일반적으로 위에서 설명되었다. 그러한 기능성이 하드웨어로 또는 소프트웨어로서 구현되는지 여부는 전반적인 시스템에 부과된 특정 어플리케이션(application) 및 설계 제한들에 달려 있다. 숙련된 기술자들은 각각의 특정 어플리케이션들을 위해 다양한 방법들로 설명된 기능성을 구현할 수 있다. 다만, 그러한 구현의 결정들이 본 개시내용의 영역을 벗어나게 하는 것으로 해석되어서는 안된다.Those skilled in the art will additionally recognize that the various illustrative logical blocks, components, modules, circuits, means, logic, and algorithm steps described in connection with the embodiments disclosed herein may be implemented using electronic hardware, computer software, or a combination of both. It must be recognized that it can be implemented with To clearly illustrate the interchangeability of hardware and software, various illustrative components, blocks, configurations, means, logics, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented in hardware or software will depend on the specific application and design constraints imposed on the overall system. A skilled technician can implement the described functionality in a variety of ways for each specific application. However, such implementation decisions should not be construed as causing a departure from the scope of the present disclosure.
제시된 실시예들에 대한 설명은 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다. 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예 들로 한정되는 것이 아니다. 본 발명은 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.The description of the presented embodiments is provided to enable anyone skilled in the art to use or practice the present invention. Various modifications to these embodiments will be apparent to those skilled in the art. The general principles defined herein may be applied to other embodiments without departing from the scope of the disclosure. Therefore, the present invention is not limited to the embodiments presented herein. The present invention is to be interpreted in the broadest scope consistent with the principles and novel features presented herein.
본 개시내용에서의 제 1, 제 2, 또는 제 3 과 같이 제 N 으로 표현되는 용어들은 적어도 하나의 엔티티들을 구분하기 위해 사용된다. 예를 들어, 제 1 과 제 2로 표현된 엔티티들은 서로 동일하거나 또는 상이할 수 있다.In the present disclosure, terms represented by N, such as first, second, or third, are used to distinguish at least one entity. For example, the entities expressed as first and second may be the same or different from each other.
도 1은 본 개시의 몇몇 실시예에 따른 블록체인 기술을 이용한 위협 모델링 방법을 제공하기 위한 시스템의 블록 구성도이다.1 is a block diagram of a system for providing a threat modeling method using blockchain technology according to some embodiments of the present disclosure.
도 1에 도시된 블록체인 기술을 이용한 위협 모델링 방법을 제공하기 위한 시스템의 구성은 간략화 하여 나타낸 예시일 뿐이다. 본 개시의 일 실시예에서 블록체인 기술을 이용한 위협 모델링 방법을 제공하기 위한 시스템은 위협 모델링 방법을 제공하기 위한 다른 구성들이 포함될 수 있고, 개시된 구성들 중 일부만이 컴퓨팅 장치를 구성할 수도 있다.The configuration of the system for providing a threat modeling method using blockchain technology shown in Figure 1 is only a simplified example. In one embodiment of the present disclosure, a system for providing a threat modeling method using blockchain technology may include different configurations for providing a threat modeling method, and only some of the disclosed configurations may configure a computing device.
도 1을 참조하면, 블록체인 기술을 이용한 위협 모델링 방법을 제공하기 위한 시스템은 제 1 노드(100), 제 2 노드(200), 제 3 노드(300), 블록체인 네트워크(400) 및/또는 통신 네트워크(500) 중 적어도 하나를 포함할 수 있다. 제 1 노드(100), 제 2 노드(200) 및/또는 제 3 노드(300) 중 적어도 하나는 블록체인 네트워크(400)를 구성하는 노드일 수 있다. 예를 들어, 제 1 노드(100), 제 2 노드(200) 및 제 3 노드(300)는 각각 블록체인 네트워크(400)를 구성하는 노드일 수 있다.Referring to Figure 1, a system for providing a threat modeling method using blockchain technology includes a
본 개시의 몇몇 실시예에 따른 제 1 노드(100)는 보상을 받기 위해 블록체인 네트워크(400)에 참여한 노드일 수 있다. 제 1 노드(100)는 예를 들어, 마이크로프로세서, 메인프레임 컴퓨터, 디지털 프로세서, 휴대용 디바이스 및 디바이스 제어기 등과 같은 임의의 타입의 컴퓨터 시스템 또는 컴퓨터 디바이스를 포함할 수 있다. 다만, 이에 한정되는 것은 아니다. 제 1 노드(100)는 블록체인 네트워크(400)를 구성하는 노드일 수 있다. 제 1 노드(100)는 적어도 하나일 수 있고, 복수로 구성될 수도 있다.The
제 1 노드(100)는 프로세서(110), 메모리(130), 네트워크부(150)를 포함할 수 있다. 프로세서(110)는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 데이터 분석을 위한 프로세서를 포함할 수 있다. 프로세서(110)는 통상적으로 제 1 노드(100)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(110)는 제 1 노드(100)에 포함된 구성요소들을 통해 입력 또는 출력되는 신호, 데이터 정보 등을 처리할 수 있다. 다른 예를 들어, 프로세서(110)는 메모리(130)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 데이터 처리를 수행할 수 있다.The
본 개시의 몇몇 실시예에 따르면, 메모리(130)는 프로세서(110)가 생성하거나 결정한 임의의 형태의 정보 및 네트워크부(150)가 수신한 임의의 형태의 정보를 저장할 수 있다.According to some embodiments of the present disclosure, the
본 개시의 몇몇 실시예에 따르면, 메모리(130)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(ReadOnly Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 제 1 노드(100)는 인터넷(internet) 상에서 상기 메모리(130)의 저장 기능을 수행하는 웹 스토리지(web storage)와 관련되어 동작할 수도 있다. 전술한 메모리에 대한 기재는 예시일 뿐, 본 개시는 이에 제한되지 않는다. 본 개시의 몇몇 실시예에 따른 네트워크부(150)는 임의의 형태의 데이터 및 신호 등을 송수신할 수 있는 임의의 유무선 통신 네트워크를 포함할 수 있다. 본 명세서에서 설명된 기술들은 위에서 언급된 네트워크들뿐만 아니라, 다른 네트워크들에서도 사용될 수 있다.According to some embodiments of the present disclosure, the
제 1 노드(100)는 위협 모델링을 수행하는 노드인 위협 모델링 수행자 노드(threat modeling performer node)일 수 있다. 제 1 노드(100)의 프로세서(110)는 위협 모델링의 수행에 요구되는 데이터를 포함하는 작업 요청을 블록체인 네트워크(400)를 통해 획득할 수 있다.The
위협 모델링은 분석 대상의 자산, 발생 가능한 취약점 및/또는 잠재적 위협 중 적어도 하나를 식별하고 열거하며 완화 조치의 우선순위를 지정하는 체계적인 보안성 분석 방법일 수 있다.Threat modeling may be a systematic security analysis method that identifies and lists at least one of the assets under analysis, possible vulnerabilities, and/or potential threats, and prioritizes mitigation measures.
프로세서(110)는 위협 모델링을 수행하는 과정에서 시스템 모델을 작성할 수 있다. 시스템 모델은 시스템의 설계를 위한 구조, 구성 등을 포함하는 도면, 3D 모델 등을 포함할 수 있다. 예를 들어, 시스템 모델은 데이터 흐름도(data flow diagram, DFD), 공정 흐름도(process flow diagram) 및/또는 통합 모델링 언어 다이어그램(unified modeling language diagram) 중 적어도 하나를 포함할 수 있다. 따라서, 프로세서(110)는 시스템의 구조에 대한 분석을 통해 주요 구성요소에 기반한 데이터 흐름도를 작성할 수 있다.The
데이터 흐름도는 시스템의 내부 데이터 흐름을 도식적으로 표현한 것을 의미할 수 있다. 데이터 흐름도는 세부 기능 및/또는 세부 기능 간의 관계 중 적어도 하나를 표현한 도면일 수 있다.A data flow diagram may mean a schematic representation of the internal data flow of a system. A data flow diagram may be a diagram expressing at least one of detailed functions and/or relationships between detailed functions.
공정 흐름도는 원료에서 제품 완성에 이르기까지의 공정 전체에 대해서 표시한 도면일 수 있다. 예를 들어, 공정 흐름도는 물질의 장치 간의 이동 관계를 표시한 도면, 공정에 대한 물질, 열수지 등을 표시한 도면 및/또는 장치 사이의 배관 관계를 나타낸 도면 중 적어도 하나를 포함할 수 있다.A process flow chart may be a drawing showing the entire process from raw materials to product completion. For example, the process flow diagram may include at least one of a drawing showing the movement relationship between materials and devices, a drawing showing materials for the process, heat balance, etc., and/or a drawing showing a piping relationship between devices.
통합 모델링 언어 다이어그램은 통합 모델링 언어(unified modeling language, UML)를 사용하여 시스템 상호 작용, 업무 흐름, 객체 간의 메시지 전달, 시스템의 구조, 컴포넌트 관계 등을 그린 도면일 수 있다. 예를 들어, 통합 모델링 언어 다이어그램은 요구 분석 과정에서 시스템과 외부와의 상호 작용을 묘사하는 유스케이스(use case) 다이어그램, 업무의 흐름을 모델링하거나 객체의 생명 주기를 표현하는 활성도(activity) 다이어그램, 객체 간의 메시지 전달을 시간적 흐름에서 분석하는 시퀀스(sequence) 다이어그램, 객체와 객체가 주고받는 메시지 중심의 다이어그램인 협력도(collaboration diagram), 시스템의 구조적인 모습을 그리는 Class 다이어그램, 소프트웨어 구조를 그리는 컴포넌트(component) 다이어그램 및/또는 기업 환경의 구성과 컴포넌트들 간의 관계를 그린 배치(deployment) 다이어그램 중 적어도 하나를 포함할 수 있다.A unified modeling language diagram may be a drawing that depicts system interaction, work flow, message passing between objects, system structure, component relationships, etc. using the unified modeling language (UML). For example, integrated modeling language diagrams include use case diagrams that depict interactions between the system and the outside during the requirements analysis process, activity diagrams that model the flow of work or express the life cycle of objects, and Sequence diagram, which analyzes message transfer between objects in time flow, collaboration diagram, which is a diagram centered on messages exchanged between objects, Class diagram, which depicts the structural appearance of the system, and component diagram, which depicts the software structure ( component) diagram and/or a deployment diagram depicting the configuration of the corporate environment and the relationships between components.
데이터는 위협 모델링의 수행에 요구되는 데이터일 수 있다. 예를 들어, 데이터는 시스템 모델의 데이터 및/또는 아키텍처(architecture)의 데이터 중 적어도 하나를 포함할 수 있다. 시스템 모델의 데이터는 데이터 흐름도(data flow diagram, DFD), 공정 흐름도(process flow diagram) 및/또는 통합 모델링 언어 다이어그램(unified modeling language diagram) 중 적어도 하나의 데이터를 포함할 수 있다.The data may be data required to perform threat modeling. For example, the data may include at least one of system model data and/or architecture data. The data of the system model may include at least one of a data flow diagram (DFD), a process flow diagram, and/or a unified modeling language diagram.
아키텍처의 데이터는 하드웨어 및/또는 소프트웨어 중 적어도 하나를 포함한 컴퓨터 시스템 전체의 설계 방식 중 적어도 일부의 데이터일 수 있다. 프로세서(110)는 아키텍처의 데이터에 기초하여 시스템 모델의 데이터를 생성할 수 있다. The architecture data may be data of at least some of the design method of the entire computer system including at least one of hardware and/or software. The
작업 요청은 블록체인 네트워크(400)에 포함 또는 포함되지 않은 고객(customer) 노드에서 생성될 수 있다. 즉, 고객 노드는 개인 또는 회사의 노드로서 위협 모델링의 수행에 요구되는 데이터를 포함하는 작업 요청을 생성할 수 있다. 생성된 작업 요청은 고객 노드에서 블록체인 네트워크(400)로 전송될 수 있다. 즉, 고객 노드는 생성된 작업 요청을 블록체인 네트워크(400)로 전송할 수 있다.Work requests may be generated from customer nodes included or not included in the
고객 노드는 프로세서, 메모리, 네트워크부를 포함할 수 있다. 고객 노드의 프로세서는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 데이터 분석을 위한 프로세서를 포함할 수 있다. 고객 노드의 프로세서는 통상적으로 고객 노드의 전반적인 동작을 제어할 수 있다. 예를 들어, 고객 노드의 프로세서는 고객 노드에 포함된 구성요소들을 통해 입력 또는 출력되는 신호, 데이터 정보 등을 처리할 수 있다. 다른 예를 들어, 고객 노드의 프로세서는 고객 노드의 메모리에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 데이터 처리를 수행할 수 있다.A customer node may include a processor, memory, and network unit. The processor of the customer node may consist of one or more cores, including the computing device's central processing unit (CPU), general purpose graphics processing unit (GPGPU), and tensor processing unit (TPU). unit) may include a processor for data analysis. The customer node's processor can typically control the overall operation of the customer node. For example, the processor of the customer node can process signals, data information, etc. that are input or output through components included in the customer node. For another example, the processor of the customer node may read a computer program stored in the memory of the customer node and perform data processing according to an embodiment of the present disclosure.
본 개시의 몇몇 실시예에 따르면, 고객 노드의 메모리는 고객 노드의 프로세서가 생성하거나 결정한 임의의 형태의 정보 및 고객 노드의 네트워크부가 수신한 임의의 형태의 정보를 저장할 수 있다.According to some embodiments of the present disclosure, the memory of the customer node may store any type of information generated or determined by the processor of the customer node and any type of information received by the network unit of the customer node.
본 개시의 몇몇 실시예에 따르면, 고객 노드의 메모리는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(ReadOnly Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 고객 노드는 인터넷(internet) 상에서 고객 노드의 메모리의 저장 기능을 수행하는 웹 스토리지(web storage)와 관련되어 동작할 수도 있다. 전술한 고객 노드의 메모리에 대한 기재는 예시일 뿐, 본 개시는 이에 제한되지 않는다. 본 개시의 몇몇 실시예에 따른 고객 노드의 네트워크부는 임의의 형태의 데이터 및 신호 등을 송수신할 수 있는 임의의 유무선 통신 네트워크를 포함할 수 있다.According to some embodiments of the present disclosure, the memory of the customer node may be a flash memory type, a hard disk type, a multimedia card micro type, or a card type of memory (e.g. (e.g. SD or Memory), magnetic memory, magnetic disk, and optical disk may include at least one type of storage medium. The customer node may operate in relation to web storage, which performs a storage function of the customer node's memory on the Internet. The description of the memory of the customer node described above is only an example, and the present disclosure is not limited thereto. The network unit of the customer node according to some embodiments of the present disclosure may include any wired or wireless communication network capable of transmitting and receiving any type of data and signal.
프로세서(110)는 분석 대상(예를 들어, 시스템 모델 등)의 오동작을 일으킬 수 있는 자산(예를 들어, 데이터, 관련 장치(예를 들어, 하드웨어, 소프트웨어 등), 전송 매체, 시스템 등)을 식별할 수 있다.The
프로세서(110)는 위협 모델링을 수행하는 과정에서 공격 라이브러리의 수집을 수행할 수 있다. 예를 들어, 프로세서(110)는 복수의 자료에 기초하여 설계 대상인 시스템 모델의 취약점 및/또는 설계 대상인 시스템 모델에 대한 공격 방법 중 적어도 하나와 관련된 공격 라이브러리의 수집을 수행할 수 있다.The
복수의 자료는 논문, 컨퍼런스, 기술문서, CVE(Common Vulnerabilities and Exposures) 및/또는 CWE(Common Weakness Enumeration) 중 적어도 하나를 통해 수집되는 자료들을 포함할 수 있다.The plurality of data may include data collected through at least one of papers, conferences, technical documents, Common Vulnerabilities and Exposures (CVE), and/or Common Weakness Enumeration (CWE).
공격 라이브러리에 포함된 CVE는 대응되는 공통 취약점 등급 시스템(common vulnerability scoring system, CVSS)의 점수(score)를 포함할 수 있다. 점수는 사전 결정된 범위(예를 들어, 범위 0~10, 최소단위 0.1 등) 내에 존재할 수 있다. 프로세서(110)는 점수에 기초하여 적어도 하나의 CVE 각각에 대응되는 위험군(예를 들어, 저위험군, 중위험군, 고위험군, 치명적 위험군 등)을 결정할 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에 포함된 제 1 CVE의 점수가 0.1이상 3.9이하인 경우, 제 1 CVE를 저위험군으로 판단할 수 있다. 다른 예를 들어, 프로세서(110)는 공격 라이브러리에 포함된 제 2 CVE의 점수가 4.0이상 6.9이하인 경우, 제 2 CVE를 중위험군으로 판단할 수 있다. 또 다른 예를 들어, 프로세서(110)는 공격 라이브러리에 포함된 제 3 CVE의 점수가 7.0이상 8.9이하인 경우, 제 3 CVE를 고위험군으로 판단할 수 있다. 또 다른 예를 들어, 프로세서(110)는 공격 라이브러리에 포함된 제 4 CVE의 점수가 9.0이상 10.0이하인 경우, 제 4 CVE를 치명적 위험군으로 판단할 수 있다. A CVE included in an attack library may include a corresponding score from the common vulnerability scoring system (CVSS). The score may be within a predetermined range (e.g., range 0 to 10, minimum 0.1, etc.). The
공격 라이브러리에 포함되는 요소(예를 들어, CVE, CWE 등)는 위협의 식별 과정 및/또는 공격 시나리오의 작성 과정 중 적어도 하나의 과정에 사용될 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에 포함되는 제 1 CVE를 위협의 식별 과정 또는 공격 시나리오의 작성 과정에서 사용할 수 있다.Elements included in the attack library (e.g., CVE, CWE, etc.) may be used in at least one of the process of identifying threats and/or creating attack scenarios. For example, the
프로세서(110)는 위협 모델링을 수행하는 과정에서 위협의 식별을 수행할 수 있다. 예를 들어, 프로세서(110)는 사전 설정된 보안 속성에 기초하여, 공격 라이브러리에서 설계 대상인 시스템 모델에 대한 위협의 식별 및/또는 분류를 수행할 수 있다. 사전 설정된 보안 속성은 STRIDE(스푸핑(spoofing), 템퍼링(tampering), 부인(repudiation), 정보 공개(information disclosure), 서비스 거부(denial of service), 권한 상승(elevation of privilege))를 포함할 수 있다. The
스푸핑은 보안 속성 중 인증과 관련된 것일 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에서 가짜 계정을 이용하여 시스템 권한을 획득하는 위협을 식별하고, 해당 위협을 스푸핑에 대응되는 것으로 분류할 수 있다.Spoofing may be related to authentication among the security attributes. For example, the
템퍼링은 보안 속성 중 무결성과 관련된 것일 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에서 불법적으로 데이터를 변경하는 위협을 식별하고, 해당 위협을 템퍼링에 대응되는 것으로 분류할 수 있다.Tampering may be related to integrity among the security properties. For example, the
부인은 보안 속성 중 부인방지와 관련된 것일 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에서 특정 서비스를 수행하지 않았다고 부인하거나 책임이 없다고 부인하는 위협 등을 식별하고, 해당 위협들을 부인으로 분류할 수 있다.Repudiation may be related to non-repudiation among the security properties. For example, the
정보 공개는 보안 속성 중 기밀성과 관련된 것일 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에서 발생할 수 있는 접근 권한이 없는 누군가에게 정보를 제공하는 위협을 식별하고, 해당 위협을 정보 공개로 분류할 수 있다.Information disclosure may be related to confidentiality as a security attribute. For example,
서비스 거부는 보안 속성 중 가용성과 관련된 것일 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에서 서비스 또는 애플리케이션(application)의 정상 수행을 방해하는 위협을 식별하고, 해당 위협을 서비스 거부로 분류할 수 있다.Denial of service may be related to availability among the security properties. For example, the
권한 상승은 보안 속성 중 권한 부여와 관련된 것일 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에서 사전에 부여되지 않은 특정 서비스를 수행하는 권한을 특정 노드에 부여하는 위협을 식별하고, 해당 위협을 권한 상승으로 분류할 수 있다.Privilege escalation may be related to granting privileges among the security attributes. For example, the
프로세서(110)는 위협 모델링을 수행하는 과정에서 공격 시나리오의 작성을 수행할 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리 및 식별된 위협에 기초하여 공격 트리 및/또는 공격 시나리오를 생성할 수 있다.The
공격 시나리오는 공격자(공격 노드)가 최종 목표를 달성하기 위해 수행되는 세부적인 프로세스를 표현한 데이터일 수 있다. 예를 들어, 공격 시나리오는 공격자가 특정 권한을 가지고 있는 노드를 해킹하여 특정 권한을 사용하는 것일 수 있다.An attack scenario may be data expressing the detailed process performed by an attacker (attack node) to achieve the final goal. For example, an attack scenario could be that an attacker hacks a node with specific permissions and uses specific permissions.
공격 트리는 최종 공격 목표에 대한 정보를 포함할 수 있다. 예를 들어, 공격 트리는 공격 트리의 최상위 노드에 최종 공격 목표가 배치되고, 최상위 노드와 연관된 적어도 하나의 하위 노드에 최종 공격 목표와 관련된 적어도 하나의 위협이 배치될 수 있다.The attack tree may include information about the final attack target. For example, in an attack tree, a final attack target may be placed at the top node of the attack tree, and at least one threat related to the final attack target may be placed at at least one child node associated with the top node.
프로세서(110)는 위협 모델링을 수행하는 과정에서 위험도의 평가를 수행할 수 있다. 프로세서(110)는 식별된 위협에 대한 위험도의 평가를 수행할 수 있다. 예를 들어, 프로세서(110)는 손상 가능성(damage potential) 정보, 재현성(reproducibility) 정보, 악용 가능성 (exploitability) 정보, 사용자(affected users) 정보 및 발견 가능성 정보(discoverability)에 기초하여 점수를 책정하고 위험도를 도출할 수 있다. 여기서, 위험도는 식별된 위협의 위험한 정도 또는 식별된 위협으로 인하여 위험성의 발생 정도를 정량적으로 나타낸 것일 수 있다. 손상 가능성 정보는 위협이 발생한 경우에 손상의 정도를 나타내는 정보를 포함할 수 있다. 예를 들어, 프로세서(110)는 위협이 발생한 경우에, 식별 문제로 인해 발생되는 손상의 정도에 기초하여 점수를 책정하고 위험도를 도출할 수 있다.The
재현성 정보는 위협을 재현하기 위한 난이도를 나타내는 정보를 포함할 수 있다. 예를 들어, 프로세서(110)는 위협을 재현하기 위한 난이도에 기초하여 점수를 책정하고 위험도를 도출할 수 있다. Reproducibility information may include information indicating the difficulty of reproducing the threat. For example, the
악용 가능성 정보는 위협을 발생시키기 위한 지식의 필요성을 나타내는 정보를 포함할 수 있다. 예를 들어, 프로세서(110)는 위협을 발생시키기 위한 지식의 필요성에 기초하여 점수를 책정하고 위험도를 도출할 수 있다.Exploitability information may include information indicating the need for knowledge to create a threat. For example, the
사용자 정보는 위협이 발생한 경우에 영향을 받는 사용자의 수(노드의 수)에 대한 정보를 포함할 수 있다. 예를 들어, 프로세서(110)는 위협이 발생한 경우에 영향을 받는 사용자의 수에 기초하여 점수를 책정하고 위험도를 도출할 수 있다.User information may include information about the number of users (number of nodes) affected when a threat occurs. For example, the
발견 가능성 정보는 위협을 발견하기 위한 난이도에 대한 정보를 포함할 수 있다. 예를 들어, 프로세서(110)는 위협을 발견하기 위한 난이도에 기초하여 점수를 책정하고 위험도를 도출할 수 있다. 다만, 위험도를 평가하기 위한 평가 방법은 이에 한정되지 않는다. 따라서, 프로세서(110)는 위험도를 평가하기 위해서 다양한 평가 기법들을 사용할 수 있다.Discoverability information may include information about the difficulty in discovering a threat. For example, the
프로세서(110)는 위협 모델링을 수행하는 과정에서 완화대책 마련을 수행할 수 있다. 프로세서(110)는 식별된 적어도 하나의 위협 각각으로 인해 발생되는 악영향을 완화시키기 위한 완화대책 정보를 생성할 수 있다.The
프로세서(110)는 위험도에 기초하여 적어도 하나의 위협 각각에 대응되는 등급을 결정할 수 있다. 프로세서(110)는 제 1 위협의 위험도가 1이상 4이하인 경우, 제 1 위협은 로우(low) 등급에 대응되는 것으로 결정할 수 있다. 프로세서(110)는 제 2 위협의 위험도가 5이상 8이하인 경우, 제 2 위협은 미들(middle) 등급에 대응되는 것으로 결정할 수 있다. 프로세서(110)는 제 3 위협의 위험도가 9이상 12이하인 경우, 제 3 위협은 하이(high) 등급에 대응되는 것으로 결정할 수 있다.The
프로세서(110)는 작업 요청에 응답하여, 작업 요청에 포함된 위협 모델링의 수행에 요구되는 데이터에 기초하여 수행된 위협 모델링의 결과물을 생성할 수 있다. 위협 모델링의 결과물은 전술한 시스템 모델의 작성에 관한 작업 정보, 공격 라이브러리의 수집에 관한 작업 정보, 위협의 식별에 관한 작업 정보, 공격 시나리오의 작성에 관한 작업 정보, 위험도의 평가에 관한 작업 정보 및/또는 완화대책 마련에 관한 작업 정보 중 적어도 하나를 포함할 수 있다.In response to the task request, the
프로세서(110)는 결과물에 대한 평가 정보 및 평가 정보에 대한 검증 정보가 생성될 수 있도록 위협 모델링의 결과물을 블록체인 네트워크(400)에 전송할 수 있다.The
평가 정보는 블록체인 네트워크(400)를 구성하는 제 2 노드(200)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크를 통해 획득된 결과물에 대한 평가를 통해 생성될 수 있다. 평가 정보는 제 2 노드(200)에서 블록체인 네트워크(400)에 전송될 수 있다.Evaluation information may be generated in the
평가 정보는 위협 모델링의 결과물에 포함된 작업 정보별로 각각 평가되어 산출된 점수(point)를 포함할 수 있다.The evaluation information may include points calculated by evaluating each task information included in the result of threat modeling.
사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 시스템 모델의 작성에 관한 작업 정보의 경우, 시스템 모델의 수준, 시스템 모델의 객체 작성 여부 및 시스템 모델의 데이터 흐름 작성 여부를 기준으로 할 수 있다.In the case of work information related to the creation of the system model included in the output of the threat modeling, the predetermined evaluation criteria may be based on the level of the system model, whether objects of the system model are created, and whether or not the data flow of the system model is created.
시스템 모델의 수준은 시스템 모델의 프로세스의 세분화 정도에 기초하여 결정될 수 있다. 예를 들어, 시스템 모델에 포함된 데이터 흐름도의 수준은 레벨 0, 레벨 1 및/또는 레벨 2 중 적어도 하나를 포함할 수 있다. 레벨 0은 컨텍스트 다이어그램(context diagram)일 수 있다. 레벨 0은 시스템을 외부 엔티티(entity)와의 관계와 함께 단일 상위 수준의 프로세스로 표시한 데이터 흐름도일 수 있다. 레벨 1은 레벨 0의 데이터 흐름도에서 단일 상위 수준의 프로세스에 대한 분류를 표시한 데이터 흐름도일 수 있다. 레벨 2는 레벨 1의 데이터 흐름도에서 표시한 분류에 대한 세부 분류를 표시한 데이터 흐름도일 수 있다.The level of the system model may be determined based on the degree of granularity of the process of the system model. For example, the level of the data flow diagram included in the system model may include at least one of level 0, level 1, and/or level 2. Level 0 may be a context diagram. Level 0 may be a data flow diagram that represents the system as a single high-level process with relationships to external entities. Level 1 may be a data flow diagram showing the classification of a single higher-level process in the data flow diagram of level 0. Level 2 may be a data flow diagram showing detailed classification of the classification shown in the data flow diagram of Level 1.
시스템 모델의 객체 작성은 시스템 모델에 포함되는 객체를 시스템 모델에 입력하는 것을 의미할 수 있다.Creating objects in the system model may mean inputting objects included in the system model into the system model.
시스템 모델의 데이터 흐름 작성은 시스템 모델에 포함되는 객체 간에 발생되는 데이터의 이동과 관련된 표시를 시스템 모델에 입력하는 것을 의미할 수 있다.Creating a data flow in a system model may mean entering into the system model a representation related to the movement of data that occurs between objects included in the system model.
위협 모델링의 결과물에 포함된 시스템 모델의 작성에 관한 작업 정보의 점수(point)에 대한 예시는 아래의 [표 1]에 대응될 수 있다.An example of the points of work information related to the creation of a system model included in the result of threat modeling can correspond to [Table 1] below.
[표 1]을 참조하면, DFD 수준, 객체 최종 작성 및 데이터 흐름 최종 작성에 따라 점수가 결정될 수 있다. 객체 최종 작성 및 데이터 흐름 최종 작성은 개수별로 점수가 누적되어 결정될 수 있다. 예를 들어, 제 1 노드(100) 또는 제 2 노드(200)는 레벨 0 수준의 객체 최종 작성이 2건인 경우, 4점으로 결정할 수 있다. 제 1 노드(100) 또는 제 2 노드(200)는 레벨 0 수준의 데이터 흐름 최종 작성이 10건인 경우, 10점으로 결정할 수 있다. 제 1 노드(100) 또는 제 2 노드(200)는 사전 결정된 평가 기준에 기초하여 위협 모델링의 결과물에 포함된 시스템 모델의 작성에 관한 작업 정보를 평가하여 점수를 산출할 수 있다. 제 1 노드(100) 또는 제 2 노드(200)는 산출된 점수를 포함하는 평가 정보를 생성할 수 있다. 평가 정보는 작업 정보에 포함된 각 항목에 대해서 참여 횟수, 참여 시기, 시스템 모델의 수준에 기초하여 점수가 측정될 수 있다. 보상은 점수에 비례하여 결정될 수 있다.본 개시의 몇몇 실시예에 따르면, 제 1 노드(100)는 생성된 시스템 모델을 고객 노드에 전송할 수 있다. 제 1 노드(100)는 고객 노드로부터 시스템 모델의 작성에 관한 보상을 수신할 수 있다. 고객 노드는 생성된 시스템 모델에 대한 평가를 수행하고, 평가에 대응되는 보상을 제 1 노드(100)에 전송할 수 있다. 시스템 모델의 작성에 대한 보상은 고객 노드와 제 1 노드(100) 간의 합의에 따라 이루어질 수 있다.Referring to [Table 1], the score can be determined according to the DFD level, object final creation, and data flow final creation. Object final creation and data flow final creation can be determined by accumulating scores for each number. For example, if there are two final creations of level 0 objects, the
사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 공격 라이브러리의 수집에 관한 작업 정보의 경우, 공격 라이브러리의 공통 취약점 등급 시스템(common vulnerability scoring system) 점수 및 공격 라이브러리의 사용처를 기준으로 할 수 있다. 공격 라이브러리의 사용처는 위협의 식별 과정 및 공격 시나리오의 작성 과정을 포함할 수 있다.Predetermined evaluation criteria may be based on the common vulnerability scoring system score of the attack library and the usage of the attack library, in the case of operational information regarding the collection of attack libraries included in the output of threat modeling. Uses of the attack library may include the process of identifying threats and creating attack scenarios.
공격 라이브러리의 공통 취약점 등급 시스템 점수는 공격 라이브러리에 포함된 CVE에 대응되어 결정될 수 있다. The common vulnerability rating system score of the attack library can be determined in response to the CVEs included in the attack library.
공격 라이브러리의 사용처는 위협의 식별 과정 및/또는 공격 시나리오의 작성 과정 중 적어도 하나를 포함할 수 있다.The use of the attack library may include at least one of a threat identification process and/or an attack scenario creation process.
위협 모델링의 결과물에 포함된 공격 라이브러리의 수집에 관한 작업 정보의 점수에 대한 예시는 아래의 [표 2]에 대응될 수 있다.An example of the score of the task information related to the collection of the attack library included in the result of threat modeling can correspond to [Table 2] below.
[표 2]를 참조하면, 수집된 공격 라이브러리의 공통 취약점 등급 시스템 점수 및 공격 라이브러리의 사용처에 따라 점수가 결정될 수 있다. 수집된 공격 라이브러리의 공통 취약점 등급 시스템 점수 및 공격 라이브러리의 사용처는 개수별로 점수가 누적되어 결정될 수 있다. 예를 들어, 제 2 노드(200)는 0.2의 CVE, 0.3의 CVE가 존재하는 경우, 0.2점으로 결정할 수 있다. 제 2 노드(200)는 사전 결정된 평가 기준에 기초하여 위협 모델링의 결과물에 포함된 공격 라이브러리의 수집에 관한 작업 정보를 평가하여 점수를 산출할 수 있다. 제 2 노드(200)는 산출된 점수를 포함하는 평가 정보를 생성할 수 있다.Referring to [Table 2], the score can be determined according to the common vulnerability rating system score of the collected attack library and the use of the attack library. The common vulnerability rating system score of the collected attack library and the use of the attack library can be determined by accumulating scores for each number. For example, the
[표 2]의 구체적인 수치는 복수의 제 2 노드들의 투표 결과에 기초하여 변경될 수 있다. The specific numbers in [Table 2] may be changed based on the voting results of a plurality of second nodes.
사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 위협의 식별에 관한 작업 정보의 경우, 타겟에 대한 위협 정도를 기준으로 할 수 있다. 예를 들어, 위협이 타겟에 직접적으로 공격을 하는 경우, 제 2 노드(200)는 해당 위협을 타겟에 대한 직접적인 위협으로 결정할 수 있다. 다른 예를 들어, 위협이 타겟에 직접 공격을 하는 것이 아니 우회하여 간접적으로 공격을 하는 경우, 제 2 노드(200)는 해당 위협을 타겟에 대한 간접적인 위협으로 결정할 수 있다.The predetermined evaluation criteria may be based on the degree of threat to the target in the case of work information regarding the identification of threats included in the results of threat modeling. For example, when a threat directly attacks the target, the
위협 모델링의 결과물에 포함된 위협의 식별에 관한 작업 정보의 점수에 대한 예시는 STRIDE 위협 모델링 기법을 기준으로 아래의 [표 3]에 대응될 수 있다.An example of the score of work information related to the identification of threats included in the result of threat modeling can be corresponded to [Table 3] below based on the STRIDE threat modeling technique.
[표 3]을 참조하면, 수집된 공격 라이브러리의 공통 취약점 등급 시스템 점수 및 공격 라이브러리의 사용처에 따라 점수가 결정될 수 있다. 수집된 공격 라이브러리의 공통 취약점 등급 시스템 점수 및 공격 라이브러리의 사용처는 개수별로 점수가 누적되어 결정될 수 있다. 예를 들어, 제 2 노드(200)는 0.2의 CVE, 0.3의 CVE가 존재하는 경우, 0.2점으로 결정할 수 있다. 제 2 노드(200)는 사전 결정된 평가 기준에 기초하여 위협 모델링의 결과물에 포함된 공격 라이브러리의 수집에 관한 작업 정보를 평가하여 점수를 산출할 수 있다. 제 2 노드(200)는 산출된 점수를 포함하는 평가 정보를 생성할 수 있다.Referring to [Table 3], the score can be determined according to the common vulnerability rating system score of the collected attack library and the use of the attack library. The common vulnerability rating system score of the collected attack library and the use of the attack library can be determined by accumulating scores for each number. For example, the
[표 3]의 구체적인 수치는 복수의 제 2 노드들의 투표 결과에 기초하여 변경될 수 있다. The specific numbers in [Table 3] may be changed based on the voting results of a plurality of second nodes.
사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 공격 시나리오의 작성에 관한 작업 정보의 경우, 공격 트리 각 항목의 개수 및 유효 공격 시나리오 작성 여부를 기준으로 할 수 있다.In the case of work information related to the creation of attack scenarios included in the results of threat modeling, the predetermined evaluation criteria may be based on the number of each attack tree item and whether or not an effective attack scenario has been created.
위협 모델링의 결과물에 포함된 공격 시나리오의 작성에 관한 작업 정보의 점수에 대한 예시는 아래의 [표 4]에 대응될 수 있다.An example of the score of the work information related to the creation of the attack scenario included in the result of threat modeling can correspond to [Table 4] below.
[표 4]를 참조하면, 공격 트리 각 항목의 개수 및 유효 공격 시나리오 최종 작성 여부에 따라 점수가 결정될 수 있다. 공격 트리 각 항목의 개수 및 유효 공격 시나리오 최종 작성 여부는 개수별로 점수가 누적되어 결정될 수 있다. 예를 들어, 제 2 노드(200)는 공격 트리의 각 항목이 2개 작성된 경우, 0.2점으로 결정할 수 있다. 제 2 노드(200)는 사전 결정된 평가 기준에 기초하여 위협 모델링의 결과물에 포함된 공격 시나리오의 작성에 관한 작업 정보를 평가하여 점수를 산출할 수 있다. 제 2 노드(200)는 산출된 점수를 포함하는 평가 정보를 생성할 수 있다.[표 4]의 구체적인 수치는 복수의 제 2 노드들의 투표 결과에 기초하여 변경될 수 있다.Referring to [Table 4], the score can be determined depending on the number of each item in the attack tree and whether or not the final effective attack scenario is created. The number of each item in the attack tree and whether or not to finalize an effective attack scenario can be determined by accumulating scores for each number. For example, if two items of each attack tree are created, the
사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 위험도의 평가에 관한 작업 정보의 경우, 블록체인 네트워크(400)에 포함된 복수의 노드들의 투표 결과를 기준으로 할 수 있다. 예를 들어, 제 2 노드(200)는 제 1 노드(100) 및 제 2 노드(200)가 참여한 전체 투표 결과와 제 1 노드(100)의 투표 결과를 비교하여 투표 결과의 오차를 산출할 수 있다. 제 2 노드(200)는 투표 결과의 오차에 기초하여 점수를 결정할 수 있다.The predetermined evaluation criteria may be based on the voting results of a plurality of nodes included in the
위협 모델링의 결과물에 포함된 위험도의 평가에 관한 작업 정보의 점수에 대한 예시는 아래의 [표 5]에 대응될 수 있다.An example of the score of work information related to risk assessment included in the result of threat modeling can be provided in [Table 5] below.
[표 5]를 참조하면, 위험도 평가 투표 참여 여부 및 투표 결과 오차에 따라 점수가 결정될 수 있다. 제 2 노드(200)는 사전 결정된 평가 기준에 기초하여 위협 모델링의 결과물에 포함된 위험도의 평가에 관한 작업 정보를 평가하여 점수를 산출할 수 있다. 제 2 노드(200)는 산출된 점수를 포함하는 평가 정보를 생성할 수 있다.Referring to [Table 5], the score can be determined depending on participation in the risk assessment vote and the error in the voting result. The
[표 5]의 구체적인 점수는 복수의 제 2 노드들의 투표 결과에 기초하여 변경될 수 있다.The specific scores in [Table 5] may be changed based on the voting results of a plurality of second nodes.
사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 완화대책 마련에 관한 작업 정보의 경우, 블록체인 네트워크(400)에 포함된 복수의 노드들의 투표 결과를 기준으로 할 수 있다.The predetermined evaluation criteria may be based on the voting results of a plurality of nodes included in the
식별된 적어도 하나의 위협 각각에 대응되는 위험도는 블록체인 네트워크(400)에 포함된 복수의 노드들의 투표 결과를 기준으로 결정될 수 있다. 식별된 적어도 하나의 위협 각각에 대응되는 등급은 위험도에 기초하여 결정될 수 있다. 따라서, 제 2 노드(200)는 블록체인 네트워크(400)에 포함된 복수의 노드들의 투표 결과를 기준으로 결정된 위협의 등급에 기초하여 점수를 결정할 수 있다.The risk level corresponding to each of the at least one identified threat may be determined based on the voting results of a plurality of nodes included in the
위협 모델링의 결과물에 포함된 완화대책 마련에 관한 작업 정보의 점수에 대한 예시는 아래의 [표 6]에 대응될 수 있다.An example of the score of work information on mitigating measures included in the results of threat modeling can be provided in [Table 6] below.
[표 6]을 참조하면, 위협의 등급에 따라 점수가 결정될 수 있다. 제 2 노드(200)는 사전 결정된 평가 기준에 기초하여 위협 모델링의 결과물에 포함된 완화대책 마련에 관한 작업 정보를 평가하여 점수를 산출할 수 있다. 제 2 노드(200)는 산출된 점수를 포함하는 평가 정보를 생성할 수 있다.Referring to [Table 6], the score can be determined depending on the level of the threat. The
[표 6]의 구체적인 점수 수치는 복수의 제 2 노드들의 투표 결과에 기초하여 변경될 수 있다.The specific score values in [Table 6] may be changed based on the voting results of a plurality of second nodes.
검증 정보는 블록체인 네트워크(400)를 구성하는 제 3 노드(300)에서 사전 결정된 평가 기준에 기초하여 블록체인 네트워크를 통해 획득된 평가 정보의 생성의 유효성에 대한 검증을 통해 생성될 수 있다. 검증 정보는 제 3 노드(300)에서 블록체인 네트워크(400)에 전송될 수 있다.Verification information may be generated through verification of the validity of the generation of evaluation information obtained through the blockchain network based on predetermined evaluation criteria in the
평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400)에서, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트(smart contract)에 의해 평가 정보에 대응되는 보상을 제 1 노드에 지급하도록 결정될 수 있다.When the validity of the generation of evaluation information is verified, the
본 개시내용의 일 실시예에 따른 스마트 컨트랙트는 임의의 형태의 계약 또는 협상을 디지털적으로 증명하고 실행시키기 위한 컴퓨터 프로토콜이다. 스마트 컨트랙트는 디지털 언어로 작성되고 임의의 컴퓨팅 장치에서 실행될 수 있다. 스마트 컨트랙트에 포함된 코드 및/또는 함수가 실행되는 경우, 그 코드 및/또는 함수에 기재된 형태의 동작들이 수행될 수 있다.A smart contract according to one embodiment of the present disclosure is a computer protocol for digitally verifying and executing any type of contract or negotiation. Smart contracts are written in digital language and can be executed on any computing device. When code and/or functions included in a smart contract are executed, operations described in the code and/or function may be performed.
본 개시내용의 실시예들에 따른 스마트 컨트랙트는, 새로운 스마트 컨트랙트를 생성하는 방식, 특정 스마트 컨트랙트상의 함수를 실행하는 방식, 및/또는 블록체인 네트워크에서 동작가능한 코인/토큰을 전송하는 방식 중 적어도 하나에 의해 실행될 수 있다. 또한, 스마트 컨트랙트는 외부 소유 어카운트에 의해서 발생한 트랜잭션이나 다른 컨트랙트에 의해서 실행될 수 있다.A smart contract according to embodiments of the present disclosure is at least one of a method of creating a new smart contract, a method of executing a function on a specific smart contract, and/or a method of transmitting a coin/token operable in a blockchain network. It can be executed by . Additionally, smart contracts can be executed by transactions initiated by externally owned accounts or by other contracts.
본 개시내용의 실시예들에 따른 보상을 지급하기 위한 스마트 컨트랙트는 예를 들어, 무한 반복같은 악의적인 코드를 막고 보상의 지급과 관련된 데이터의 무결성를 지키기 위해, 트랜잭션을 실행할 때 특정한 실행 비용을 지급하도록 규정할 수도 있다. 여기에서의 실행 비용이란 블록체인 네트워크(400)서 거래가능한 임의의 형태의 코인 또는 코인과 연동될 수 있는 별도의 다른 형태의 매개체(예컨대, 가스(gas) 등)을 의미할 수 있다. 비-제한적인 예시로서, 트랜잭션의 기본 실행 비용은 21,000 가스로 설정될 수 있다. 예를 들어, 이와 같은 실행 비용에는 트랜잭션 발행자의 어카운트 주소에 대한 ECDSA(Elliptic Curve Digital Signature Algorithm)를 처리하기 위한 비용, 트랜잭션 저장을 위한 스토리지 비용, 네트워크 대역폭 비용이 포함될 수 있다. 이와 같이 스마트 컨트랙트 실행 시 특정 비용을 지불하도록 정의되는 경우, 의도적인 디도스 공격과 같은 무한 실행과 같은 악의적인 공격이 방지될 수 있다.A smart contract for paying rewards according to embodiments of the present disclosure may require payment of a specific execution cost when executing a transaction, for example, to prevent malicious code such as infinite repetition and to protect the integrity of data related to the payment of rewards. It can also be stipulated. The execution cost here may refer to any type of coin tradable in the
스마트 컨트랙트를 생성하거나 또는 실행시키고자 하는 엔티티가 특정한 재화(코인, 토큰 등)를 블록체인 네트워크(400)에 스테이킹(staking)시킨 후, 추가 수수료의 지급 없이 스마트 컨트랙트를 실행시키는 방식의 실행 비용 정책이 사용될 수도 있다. 이러한 경우, 스테이킹이 종료되는 경우, 해당 스마트 컨트랙트의 실행이 허용되지 않게 된다.The execution cost of an entity that wants to create or execute a smart contract staking a specific good (coin, token, etc.) on the
본 개시내용의 실시예들에 따른 보상을 지급하기 위한 스마트 컨트랙트들 간의 호출은 메시지라는 구조체를 사용하여 구현될 수 있다. 예를 들어, 이러한 메시지는 컨트랙트 어카운트에 의해 생성될 수 있으며, 함수 호출시에 다른 컨트랙트로 전달될 수 있다. 이러한 경우의 메시지는 외부 소유 어카운트에서 발생되는 트랜잭션과는 달리, 블록체인 네트워크(400)의 내부에서 생성되어 처리되기 때문에, 가스와 같은 별도의 실행 비용이 발생되지 않을 수도 있다.A call between smart contracts to pay compensation according to embodiments of the present disclosure may be implemented using a structure called a message. For example, these messages can be generated by a contract account and passed to other contracts when calling a function. In this case, unlike transactions that occur in externally owned accounts, messages are created and processed inside the
본 개시내용의 실시예들에 따른 보상의 지급을 구현하는데 있어서, 스마트 컨트랙트의 함수를 컴파일된 코드 형태로 트랜잭션에 포함하여 블록체인을 통해 동기화할 때, 트랜잭션에 포함된 정보를 함수의 입력으로 하여 코드로 표현된 함수를 실행한 후 그 결과를 별도의 상태로 보관하는 방식으로 스마트 컨트랙트가 구현될 수 있다.In implementing the payment of compensation according to the embodiments of the present disclosure, when the function of the smart contract is included in the transaction in the form of compiled code and synchronized through the blockchain, the information included in the transaction is used as the input of the function. A smart contract can be implemented by executing a function expressed in code and then storing the result in a separate state.
본 개시내용의 일 실시예에 따른 스마트 컨트랙트는 등록 컨트랙트(register contract, RC), 프로필 컨트랙트(profile contract, PC) 및/또는 작업 컨트랙트(task contract, TC) 중 적어도 하나를 포함할 수 있다.A smart contract according to an embodiment of the present disclosure may include at least one of a registration contract (RC), a profile contract (PC), and/or a task contract (TC).
등록 컨트랙트는 최초에 사용자를 등록을 위한 컨트랙트일 수 있다. 예를 들어, 등록 컨트랙트는 사용자(사용자 노드)가 자신의 계정을 새롭게 블록체인 네트워크(400)에 등록하는 경우에 사용되는 컨트랙트일 수 있다. 등록 컨트랙트는 사용자(사용자 노드)에게 할당된 임의의 ID(identification number), 블록체인 해시 주소 및/또는 프로필 컨트랙트의 주소 중 적어도 하나를 포함할 수 있다.The registration contract may be a contract for initially registering a user. For example, the registration contract may be a contract used when a user (user node) newly registers his or her account in the
프로필 컨트랙트는 사용자(사용자 노드)의 정보, 수행 중인 위협 모델링의 목록을 보여주기 위한 컨트랙트일 수 있다. 프로필 컨트랙트는 블록체인 주소, 사용자의 프로필, 사용자가 중재자(arbiter)인지 여부를 알려주는 중재자 상태 정보 및/또는 작업 컨트랙트들의 블록체인 주소 중 적어도 하나를 포함할 수 있다.The profile contract may be a contract that shows the user (user node) information and a list of threat modeling being performed. The profile contract may include at least one of a blockchain address, a user's profile, arbiter status information indicating whether the user is an arbiter, and/or blockchain addresses of working contracts.
작업 컨트랙트는 작업과 관련된 정보를 포함하는 컨트랙트일 수 있다. 작업 컨트랙트는 사용자의 평판과 사용자가 수행중인 위협 모델링에 대한 내용을 포함할 수 있다. 예를 들어, 작업 컨트랙트는 블록체인 주소, 현재 작업의 상태, 예치금과 현재 작업에 대한 평가, 블록체인 네트워크(400)의 저장소에 저장된 자료에 대한 접근을 위한 작업 ID 및 작업 포인터, 및/또는 자격이 있는 사용자만 개인키로 서명된 내용에 접근할 수 있도록 새로 발급된 공개키를 반환해주는 컨트랙트 중 적어도 하나를 포함할 수 있다.A work contract may be a contract containing information related to work. The work contract may include information about the user's reputation and the threat modeling the user is performing. For example, a task contract may include a blockchain address, status of the current task, deposits and evaluation of the current task, a task ID and task pointer, and/or entitlements for access to material stored in storage in the
사용자 노드는 블록체인 네트워크(400)에 포함 또는 포함되지 않는 노드일 수 있다. 사용자 노드는 프로세서, 메모리, 네트워크부를 포함할 수 있다.A user node may be a node included or not included in the
사용자 노드의 프로세서는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 데이터 분석을 위한 프로세서를 포함할 수 있다. 사용자 노드의 프로세서는 통상적으로 사용자 노드의 전반적인 동작을 제어할 수 있다. 예를 들어, 사용자 노드의 프로세서는 사용자 노드에 포함된 구성요소들을 통해 입력 또는 출력되는 신호, 데이터 정보 등을 처리할 수 있다. 다른 예를 들어, 사용자 노드의 프로세서는 사용자 노드의 메모리에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 데이터 처리를 수행할 수 있다.The processor of the user node may consist of one or more cores, and the computing device's central processing unit (CPU: central processing unit), general purpose graphics processing unit (GPGPU), and tensor processing unit (TPU) unit) may include a processor for data analysis. The processor of the user node can typically control the overall operation of the user node. For example, the processor of the user node can process signals, data information, etc. that are input or output through components included in the user node. For another example, the processor of the user node may read a computer program stored in the memory of the user node and perform data processing according to an embodiment of the present disclosure.
본 개시의 몇몇 실시예에 따르면, 사용자 노드의 메모리는 사용자 노드의 프로세서가 생성하거나 결정한 임의의 형태의 정보 및 사용자 노드의 네트워크부가 수신한 임의의 형태의 정보를 저장할 수 있다.According to some embodiments of the present disclosure, the memory of the user node may store any type of information generated or determined by the processor of the user node and any type of information received by the network unit of the user node.
본 개시의 몇몇 실시예에 따르면, 사용자 노드의 메모리는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(ReadOnly Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 사용자 노드는 인터넷(internet) 상에서 사용자 노드의 메모리의 저장 기능을 수행하는 웹 스토리지(web storage)와 관련되어 동작할 수도 있다. 전술한 메모리에 대한 기재는 예시일 뿐, 본 개시는 이에 제한되지 않는다. 본 개시의 몇몇 실시예에 따른 사용자 노드의 네트워크부는 임의의 형태의 데이터 및 신호 등을 송수신할 수 있는 임의의 유무선 통신 네트워크를 포함할 수 있다.According to some embodiments of the present disclosure, the memory of the user node may be a flash memory type, a hard disk type, a multimedia card micro type, or a card type memory (e.g. (e.g. SD or Memory), magnetic memory, magnetic disk, and optical disk may include at least one type of storage medium. The user node may operate in relation to web storage, which performs a storage function of the user node's memory on the Internet. The description of the memory described above is merely an example, and the present disclosure is not limited thereto. The network unit of the user node according to some embodiments of the present disclosure may include any wired or wireless communication network capable of transmitting and receiving any type of data and signal.
제 2 노드(200)는 제 1 노드(100)에서 생성된 위협 모델링의 결과물을 평가하는 평가자 노드(evaluator node)일 수 있다. 제 2 노드(200)는 예를 들어, 마이크로프로세서, 메인프레임 컴퓨터, 디지털 프로세서, 휴대용 디바이스 및 디바이스 제어기 등과 같은 임의의 타입의 컴퓨터 시스템 또는 컴퓨터 디바이스를 포함할 수 있다. 다만, 이에 한정되는 것은 아니다. 제 2 노드(200)는 블록체인 네트워크(400)를 구성하는 노드일 수 있다. 제 2 노드(200)는 적어도 하나일 수 있고, 복수로 구성될 수도 있다.The
제 2 노드(200)는 프로세서(210), 메모리(230), 네트워크부(250)를 포함할 수 있다. 제 2 노드(200)의 각 구성들은 제 1 노드(100)의 구성과 대응될 수 있다. 따라서, 제 2 노드(200)의 각 구성들에 대한 구체적인 설명은 대응되는 제 1 노드(100)의 각 구성들에 대한 구체적인 설명으로 대체될 수 있다. 제 2 노드(200)를 설명하는 과정에서 전술한 내용과 중복되는 내용은 생략될 수 있다.The
프로세서(210)는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 데이터 분석을 위한 프로세서를 포함할 수 있다. 프로세서(210)는 통상적으로 제 2 노드(200)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(210)는 제 2 노드(200)에 포함된 구성요소들을 통해 입력 또는 출력되는 신호, 데이터 정보 등을 처리할 수 있다. 다른 예를 들어, 프로세서(210)는 메모리(230)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 데이터 처리를 수행할 수 있다.The
본 개시의 몇몇 실시예에 따르면, 메모리(230)는 프로세서(210)가 생성하거나 결정한 임의의 형태의 정보 및 네트워크부(250)가 수신한 임의의 형태의 정보를 저장할 수 있다.According to some embodiments of the present disclosure, the
본 개시의 몇몇 실시예에 따르면, 메모리(230)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(ReadOnly Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 제 2 노드(200)는 인터넷(internet) 상에서 상기 메모리(230)의 저장 기능을 수행하는 웹 스토리지(web storage)와 관련되어 동작할 수도 있다. 전술한 메모리에 대한 기재는 예시일 뿐, 본 개시는 이에 제한되지 않는다. 본 개시의 몇몇 실시예에 따른 네트워크부(250)는 임의의 형태의 데이터 및 신호 등을 송수신할 수 있는 임의의 유무선 통신 네트워크를 포함할 수 있다.According to some embodiments of the present disclosure, the
제 2 노드(200)는 데이터에 기초하여 수행된 위협 모델링의 결과물을 블록체인 네트워크(400)를 통해 획득할 수 있다.The
제 2 노드(200)는 사전 결정된 평가 기준에 기초하여 결과물에 대한 평가를 통해 평가 정보를 생성할 수 있다.The
제 2 노드(200)는 평가 정보에 대한 검증 정보가 생성될 수 있도록, 평가 정보를 블록체인 네트워크(400)에 전송할 수 있다.The
위협 모델링의 결과물은 블록체인 네트워크(400)를 구성하는 제 1 노드(100)에서, 블록체인 네트워크(400)를 통해 획득된 데이터를 포함하는 작업 요청에 응답하여, 데이터에 기초한 수행을 통해 생성될 수 있다. 위협 모델링의 결과물은 제 1 노드(100)에서 블록체인 네트워크(400)에 전송될 수 있다.The result of threat modeling is generated by the
검증 정보는 블록체인 네트워크(400)를 구성하는 제 3 노드(300)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크(400)를 통해 획득된 평가 정보의 생성의 유효성에 대한 검증을 통해 생성될 수 있다. 검증 정보는 제 3 노드(300)에서 블록체인 네트워크(400)에 전송될 수 있다.Verification information is generated by the
평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400)에서, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트에 의해 평가 정보에 대응되는 보상을 제 1 노드에 지급하도록 결정될 수 있다.When the validity of the generation of evaluation information is verified, the
제 2 노드(200)는 검토 정보를 블록체인 네트워크(400)를 통해 획득할 수 있다. 제 2 노드(200)는 검토 정보와 평가 정보를 비교하여 블록체인 네트워크(400)에 이의를 제기하기 위한 재심사 요청을 전송할 수 있다.The
제 3 노드(300)는 복수의 제 2 노드들 중에서 투표를 통해 선출된 중재자 노드(arbiter node)일 수 있다. 제 3 노드(300)는 제 2 노드(200)에서 생성된 평가 정보에 대한 검증을 수행할 수 있다. 제 3 노드(300)는 위협 모델링 과정에서 발생할 수 있는 악의적인 행동을 방지하는 것을 목적으로 하는 개인 또는 회사일 수 있다.The
제 3 노드(300)는 복수의 제 2 노드들 중에서 결정된 후보자 노드들 중에서 결정될 수 있다. 후보자 노드들은 보유한 토큰의 수에 기초하여 결정될 수 있다. 예를 들어, 후보자 노드들은 블록체인 네트워크(400) 상의 토큰 유통물량 중 3% 이상의 토큰을 보유하고 있는 참가자일 수 있다. 제 3 노드(300)는 후보자들 중 상위 10명의 득표자일 수 있다. 제 3 노드(300)는 제 2 노드(200)가 제출한 위협 모델링 평가 내용을 확인하여 정당한 작업 내용에 대해 보상을 적게 주기 위해 의도적으로 낮게 평가하는 부당한 행위가 있었는지 검토할 수 있다. 제 3 노드(300)는 제 1 노드(100)와 담합하여 올바르지 않은 작업 내용에 대해 보상을 높게 주는 등의 부당한 행위가 있었는지 검토할 수 있다.The
제 3 노드(300)는 예를 들어, 마이크로프로세서, 메인프레임 컴퓨터, 디지털 프로세서, 휴대용 디바이스 및 디바이스 제어기 등과 같은 임의의 타입의 컴퓨터 시스템 또는 컴퓨터 디바이스를 포함할 수 있다. 다만, 이에 한정되는 것은 아니다. 제 3 노드(300)는 블록체인 네트워크(400)를 구성하는 노드일 수 있다. 제 3 노드(300)는 적어도 하나일 수 있고, 복수로 구성될 수도 있다.
제 3 노드(300)는 프로세서(310), 메모리(330), 네트워크부(350)를 포함할 수 있다. 제 3 노드(300)의 각 구성들은 제 1 노드(100) 또는 제 2 노드(200)의 구성과 대응될 수 있다. 따라서, 제 3 노드(300)의 각 구성들에 대한 구체적인 설명은 대응되는 제 1 노드(100) 또는 제 2 노드(200)의 각 구성들에 대한 구체적인 설명으로 대체될 수 있다. 제 3 노드(300)를 설명하는 과정에서 전술한 내용과 중복되는 내용은 생략될 수 있다.The
프로세서(310)는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 데이터 분석을 위한 프로세서를 포함할 수 있다. 프로세서(310)는 통상적으로 제 3 노드(300)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(310)는 제 3 노드(300)에 포함된 구성요소들을 통해 입력 또는 출력되는 신호, 데이터 정보 등을 처리할 수 있다. 다른 예를 들어, 프로세서(310)는 메모리(330)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 데이터 처리를 수행할 수 있다.The
본 개시의 몇몇 실시예에 따르면, 메모리(330)는 프로세서(310)가 생성하거나 결정한 임의의 형태의 정보 및 네트워크부(350)가 수신한 임의의 형태의 정보를 저장할 수 있다.According to some embodiments of the present disclosure, the memory 330 may store any type of information generated or determined by the
본 개시의 몇몇 실시예에 따르면, 메모리(330)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(ReadOnly Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 제 3 노드(300)는 인터넷(internet) 상에서 상기 메모리(330)의 저장 기능을 수행하는 웹 스토리지(web storage)와 관련되어 동작할 수도 있다. 전술한 메모리에 대한 기재는 예시일 뿐, 본 개시는 이에 제한되지 않는다. 본 개시의 몇몇 실시예에 따른 네트워크부(350)는 임의의 형태의 데이터 및 신호 등을 송수신할 수 있는 임의의 유무선 통신 네트워크를 포함할 수 있다.According to some embodiments of the present disclosure, the memory 330 may be a flash memory type, hard disk type, multimedia card micro type, or card type memory (e.g. (e.g. SD or Memory), magnetic memory, magnetic disk, and optical disk may include at least one type of storage medium. The
제 3 노드(300)는 사전 결정된 평가 기준에 기초하여, 위협 모델링의 결과물에 대한 평가를 통해 생성된 평가 정보를 블록체인 네트워크(400)를 통해 획득할 수 있다.The
제 3 노드(300)는 사전 결정된 평가 기준에 기초하여 평가 정보의 생성의 유효성에 대한 검증을 통해 검증 정보를 생성할 수 있다.The
제 3 노드(300)는 검증 정보를 블록체인 네트워크(400)에 전송할 수 있다.The
위협 모델링의 결과물은 블록체인 네트워크(400)를 구성하는 제 1 노드(100)에서, 블록체인 네트워크(400)를 통해 획득된 데이터를 포함하는 작업 요청에 응답하여, 데이터에 기초한 수행을 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.The result of threat modeling is generated by the
평가 정보는 블록체인 네트워크(400)를 구성하는 제 2 노드(200)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크(400)를 통해 획득된 결과물에 대한 평가를 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.Evaluation information is generated in the
평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400)에서, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트에 의해 평가 정보에 대응되는 보상을 상기 제 1 노드에 지급하도록 결정될 수 있다.When the validity of the generation of evaluation information is verified, the
제 3 노드(300)는 공격 라이브러리의 수집에 관한 평가 정보의 경우, 공격 라이브러리의 수집에 대해 합의된 점수 시스템(예를 들어, [표 2] 등)에 기초하여 점수 및/또는 보상 지급 내역 중 적어도 하나를 검증할 수 있다.In the case of evaluation information regarding the collection of the attack library, the
제 3 노드(300)는 위협의 식별에 관한 평가 정보의 경우, 위협의 식별에 대해 합의된 점수 시스템(예를 들어, [표 3] 등)에 기초하여 점수 및/또는 보상 지급 내역 중 적어도 하나를 검증할 수 있다.In the case of evaluation information regarding the identification of a threat, the
제 3 노드(300)는 공격 시나리오의 작성에 관한 평가 정보의 경우, 공격 시나리오의 작성에 대해 합의된 점수 시스템(예를 들어, [표 4] 등)에 기초하여 점수 및/또는 보상 지급 내역 중 적어도 하나를 검증할 수 있다.In the case of evaluation information regarding the creation of an attack scenario, the
제 3 노드(300)는 위험도의 평가에 관한 평가 정보의 경우, 블록체인 네트워크(400)에 포함된 복수의 노드들의 투표 결과를 기준으로 검증할 수 있다.The
제 3 노드(300)는 완화대책 마련에 관한 평가 정보의 경우, 블록체인 네트워크(400)에 포함된 복수의 노드들의 투표 결과를 기준으로 검증할 수 있다.The
블록체인 네트워크(400)는 블록체인 기술에 기반하여 동작하는 복수의 노드들(예를 들어, 제 1 노드(100), 제 2 노드(200), 제 3 노드(300) 등)을 포함할 수 있다. 블록체인 기술은 블록들 또는 이벤트들이 서로 연결된 저장 구조 또는 트랜잭션들이 서로 연결된 저장 구조를 사용하여, 관리 대상인 데이터를 복수의 노드들에 분산 저장하는 임의의 형태의 분산 원장(distributed ledger) 기술일 수 있다. 본 개시내용의 일 실시예에 따른 블록체인 네트워크는 DAG(Directed Acyclic Graph) 기술을 기반한 임의의 형태의 분산 원장 기술들에 따라서 동작할 수도 있다.The
본 개시내용의 일 실시예에서, 블록체인 네트워크에서의 노드들은 아키텍처 계층(architecture layer) 구조에 따른 블록체인 코어 패키지에 의해 동작할 수 있다. 아키텍처 계층 구조는 애플리케이션 계층, 블록체인 계층 및/또는 저장 계층 중 적어도 하나를 포함할 수 있다.In one embodiment of the present disclosure, nodes in a blockchain network may operate by a blockchain core package according to an architecture layer structure. The architectural hierarchy may include at least one of an application layer, a blockchain layer, and/or a storage layer.
애플리케이션 계층은 클라이언트(client), 모듈, 프로그램 컴파일러 등을 포함할 수 있다. The application layer may include clients, modules, program compilers, etc.
클라이언트는 사용자(예를 들어, 제 1 노드(100)의 사용자, 제 2 노드(200)의 사용자, 제 3 노드(300)의 사용자, 고객 노드의 사용자 등)가 위협 모델링을 수행할 수 있게 해주는 인터페이스(interface)(예를 들어, 사용자 인터페이스 등)일 수 있다. 클라이언트는 중앙 서버에 의존하지 않고 실행될 수 있다.The client allows users (e.g., users of the
모듈은 사용자 관리 모듈(user management module), 작업 관리 모듈(work management module) 및/또는 투표 모듈(voting module) 중 적어도 하나를 포함할 수 있다.The module may include at least one of a user management module, a work management module, and/or a voting module.
사용자 관리 모듈은 사용자를 관리하기 위한 모듈일 수 있다. 사용자 관리 모듈은 블록체인 상에 사용자들의 등록을 수행하고, 사용자의 프로필을 조회할 수 있다.The user management module may be a module for managing users. The user management module can register users on the blockchain and view the user's profile.
작업 관리 모듈은 작업을 관리하기 위한 모듈일 수 있다. 작업 관리 모듈은 위협 모델링에 관한 사용자들의 작업의 관리, 수행, 제출 및/또는 평가 중 적어도 하나를 할 수 있다.The task management module may be a module for managing tasks. The work management module may at least one of manage, perform, submit and/or evaluate users' work related to threat modeling.
투표 모듈은 투표를 진행하기 위한 모듈일 수 있다. 투표 모듈은 블록체인 네트워크(400) 내에서 블록체인 네트워크(400)를 구성하는 노드들 간에 투표를 수행할 수 있다. 투표 모듈은 수행된 투표에 대한 결과를 생성할 수도 있다.The voting module may be a module for conducting voting. The voting module can perform voting between nodes constituting the
블록체인 계층은 중간 계층으로서 블록체인 네트워크(400)에서 합의를 제공하고 상태 머신(state machine)을 실행할 수 있다. 애플리케이션 계층의 프로그램은 컴파일 된 후 블록체인 계층으로 전송될 수 있다. 블록체인 계층에 포함된 적어도 하나의 마이너(miner)는 애플리케이션 계층으로부터 수신한 프로그램을 확인할 수 있다. 마이너들을 통해 확인된 프로그램은 블록체인에 작성될 수 있다. 마이너는 개인의 최대 이익 추구를 위해 블록체인 네트워크에 참여하는 개인 또는 회사의 노드일 수 있다. 마이너는 이익 추구 과정에서 블록체인 네트워크(400)를 안정화시키고 시빌 공격(sybil attack)을 방지할 수 있다.The blockchain layer is an intermediate layer that can provide consensus and run a state machine in the
저장 계층은 작업의 실제 데이터 값을 저장할 수 있다. 저장 계층에 사용되는 저장 공간은 특정되지 않을 수 있다. 실제 데이터 값들은 소유자의 개인키로 서명되어 저장될 수 있다.The storage layer can store the actual data values of the operation. The storage space used for the storage layer may not be specified. Actual data values can be signed and stored with the owner's private key.
본 개시내용에서의 일 실시예에 따른 블록체인 네트워크(400)는 구현 형태에 따라서, 임의의 노드들이 합의 동작을 수행할 수 있는 Public 블록체인 네트워크, 또는 사전결정된 노드만이 합의 동작을 수행할 수 있는 Private 또는 Consortium 블록체인 네트워크를 포함할 수 있다. 다만, 블록체인 네트워크(400)는 이에 한정되지 않는다.Depending on the implementation type, the
본 개시내용에서의 블록체인 네트워크에서 수행되는 합의 알고리즘은 PoW(Proof of Work) 알고리즘, PoS(Proof of Stake) 알고리즘, DPoS(Delegated Proof of Stake) 알고리즘, PBFT(Practical Byzantine Fault Tolerance) 알고리즘, DBFT(Delegated Byzantine Fault Tolerance) 알고리즘, RBFT(Redundant Byzantine Fault Tolerance) 알고리즘, Sieve 알고리즘, Tendermint 알고리즘, Paxos 알고리즘, Raft 알고리즘, PoA(Proof of Authority) 알고리즘, PoET(Proof of Elapsed Time) 알고리즘, Tangle 네트워크 합의 알고리즘 및/또는 Hedera Hashgraph 합의 알고리즘 중 적어도 하나를 포함할 수 있다.The consensus algorithms performed in the blockchain network in this disclosure include Proof of Work (PoW) algorithm, Proof of Stake (PoS) algorithm, Delegated Proof of Stake (DPoS) algorithm, Practical Byzantine Fault Tolerance (PBFT) algorithm, and DBFT ( Delegated Byzantine Fault Tolerance (RBFT) algorithm, Redundant Byzantine Fault Tolerance (RBFT) algorithm, Sieve algorithm, Tendermint algorithm, Paxos algorithm, Raft algorithm, PoA (Proof of Authority) algorithm, PoET (Proof of Elapsed Time) algorithm, Tangle network consensus algorithm, and /or may include at least one of the Hedera Hashgraph consensus algorithms.
통신 네트워크(500)는 임의의 형태의 데이터, 신호 및/또는 정보 중 적어도 하나를 송수신할 수 있는 임의의 유무선 통신 네트워크를 포함할 수 있다. 예를 들어, 네트워크(300)는 제 1 노드(100), 제 2 노드(200), 제 3 노드(300) 및 블록체인 네트워크(400) 간에 작업 요청, 위협 모델링의 결과물, 평가 정보, 검증 정보 등을 송수신할 수 있는 유무선 통신 네트워크를 포함할 수 있다. The
도 2는 본 개시의 몇몇 실시예에 따른 블록체인 기술을 이용한 위협 모델링을 수행하기 위한 아키텍처 계층(architecture layer) 구조를 나타내는 도면이다.FIG. 2 is a diagram illustrating an architecture layer structure for performing threat modeling using blockchain technology according to some embodiments of the present disclosure.
도 2를 참조하면, 아키텍처 계층 구조는 애플리케이션 계층(10), 블록체인 계층(20) 및/또는 저장 계층(30) 중 적어도 하나를 포함할 수 있다.Referring to Figure 2, the architectural hierarchy may include at least one of an
애플리케이션 계층(10)은 클라이언트(client), 모듈, 프로그램 컴파일러(program compiler) 등을 포함할 수 있다. The
블록체인 계층(20)은 중간 계층으로서 네트워크(예를 들어, 블록체인 네트워크(400))에서 합의 알고리즘(합의 프로토콜(consensus protocol))을 통해 합의를 제공하고, 트랜잭션(transaction)을 통해 상태 머신(state machine)을 실행할 수 있다. 애플리케이션 계층(10)의 프로그램은 컴파일 된 후 블록체인 계층(20)으로 전송될 수 있다. 블록체인 계층(20)에 포함된 적어도 하나의 마이너(miner)는 애플리케이션 계층(10)으로부터 수신한 프로그램을 확인할 수 있다. 마이너들을 통해 확인된 프로그램은 블록체인에 작성될 수 있다. 마이너는 개인의 최대 이익 추구를 위해 블록체인 네트워크에 참여하는 개인 또는 회사의 노드일 수 있다. 마이너는 이익 추구 과정에서 블록체인 네트워크(400)를 안정화시키고 시빌 공격(sybil attack)을 방지할 수 있다.The
저장 계층(30)은 작업의 실제 데이터 값을 저장할 수 있다. 저장 계층(30)에 사용되는 저장 공간(storage)은 특정되지 않을 수 있다. 실제 데이터 값들은 소유자의 개인키로 서명되어 저장될 수 있다. 도 2를 통해서 설명되지 않은 아키텍처 계층 구조의 상세한 설명은 도 1을 통해서 전술한 아키텍처 계층 구조의 내용으로 대체될 수 있다.The
도 3은 본 개시의 몇몇 실시예에 따른 블록체인 네트워크를 구성하는 제 1 노드에 의해 수행되는 위협 모델링 방법을 나타낸 흐름도이다.Figure 3 is a flowchart showing a threat modeling method performed by a first node constituting a blockchain network according to some embodiments of the present disclosure.
도 3을 참조하면, 제 1 노드(100)는 위협 모델링의 수행에 요구되는 데이터를 포함하는 작업 요청을 블록체인 네트워크(400)를 통해 획득할 수 있다(S110).Referring to FIG. 3, the
데이터는 데이터 흐름도를 포함하는 시스템 모델의 데이터 또는 아키텍처의 데이터 중 적어도 하나를 포함할 수 있다.The data may include at least one of data of a system model including a data flow diagram or data of an architecture.
제 1 노드(100)는 작업 요청에 응답하여, 데이터에 기초하여 수행된 위협 모델링의 결과물을 생성할 수 있다(S120).In response to the task request, the
위협 모델링의 결과물은 시스템 모델의 작성에 관한 작업 정보, 공격 라이브러리의 수집에 관한 작업 정보, 위협의 식별에 관한 작업 정보, 공격 시나리오의 작성에 관한 작업 정보, 위험도의 평가에 관한 작업 정보 및 완화대책 마련에 관한 작업 정보 중 적어도 하나를 포함할 수 있다.The results of threat modeling include work information on creating a system model, work information on collection of attack libraries, work information on identification of threats, work information on creation of attack scenarios, work information on risk assessment, and mitigation measures. It may contain at least one piece of operational information about the arrangement.
평가 정보는 위협 모델링의 결과물에 포함된 작업 정보별로 각각 평가되어 산출된 점수(point)를 포함할 수 있다.The evaluation information may include points calculated by evaluating each task information included in the result of threat modeling.
제 1 노드(100)는 결과물에 대한 평가 정보 및 평가 정보에 대한 검증 정보가 생성될 수 있도록, 위협 모델링의 결과물을 블록체인 네트워크(400)에 전송할 수 있다(S130).The
평가 정보는 블록체인 네트워크(400)를 구성하는 제 2 노드(200)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크(400)를 통해 획득된 결과물에 대한 평가를 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.Evaluation information is generated in the
사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 시스템 모델의 작성에 관한 작업 정보의 경우, 시스템 모델의 수준, 시스템 모델의 객체 작성 여부 및 시스템 모델의 데이터 흐름 작성 여부를 기준으로 할 수 있다.The predetermined evaluation criteria may be based on the level of the system model, whether objects of the system model are created, and whether data flows of the system model are created, in the case of work information related to the creation of the system model included in the output of the threat modeling.
사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 공격 라이브러리의 수집에 관한 작업 정보의 경우, 공격 라이브러리의 공통 취약점 등급 시스템(common vulnerability scoring system) 점수 및 공격 라이브러리의 사용처를 기준으로 할 수 있다.Predetermined evaluation criteria may be based on the common vulnerability scoring system score of the attack library and the usage of the attack library, in the case of operational information regarding the collection of attack libraries included in the output of threat modeling.
사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 위협의 식별에 관한 작업 정보의 경우, 타겟에 대한 위협 정도를 기준으로 할 수 있다.The predetermined evaluation criteria may be based on the degree of threat to the target in the case of work information regarding the identification of threats included in the results of threat modeling.
사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 공격 시나리오의 작성에 관한 작업 정보의 경우, 공격 트리 각 항목의 개수 및 유효 공격 시나리오 작성 여부를 기준으로 할 수 있다.In the case of work information related to the creation of attack scenarios included in the results of threat modeling, the predetermined evaluation criteria may be based on the number of each attack tree item and whether or not an effective attack scenario has been created.
사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 위험도의 평가에 관한 작업 정보의 경우, 블록체인 네트워크(400)에 포함된 복수의 노드들의 투표 결과를 기준으로 할 수 있다.The predetermined evaluation criteria may be based on the voting results of a plurality of nodes included in the
사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 완화대책 마련에 관한 작업 정보의 경우, 블록체인 네트워크(400)에 포함된 복수의 노드들의 투표 결과를 기준으로 할 수 있다.The predetermined evaluation criteria may be based on the voting results of a plurality of nodes included in the
검증 정보는 블록체인 네트워크(400)를 구성하는 제 3 노드(300)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크(400)를 통해 획득된 평가 정보의 생성의 유효성에 대한 검증을 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.Verification information is generated by the
평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트에 의해 평가 정보에 대응되는 보상을 제 1 노드에 지급하도록 결정될 수 있다.When the validity of the generation of evaluation information is verified, a smart contract stored on the
도 4는 본 개시의 몇몇 실시예에 따른 블록체인 네트워크를 구성하는 제 2 노드에 의해 수행되는 위협 모델링 방법을 나타낸 흐름도이다.Figure 4 is a flowchart showing a threat modeling method performed by a second node constituting a blockchain network according to some embodiments of the present disclosure.
제 2 노드(200)는 데이터에 기초하여 수행된 위협 모델링의 결과물을 상기 블록체인 네트워크를 통해 획득할 수 있다(S210).The
위협 모델링의 결과물은 블록체인 네트워크(400)를 구성하는 제 1 노드(100)에서, 블록체인 네트워크(400)를 통해 획득된 데이터를 포함하는 작업 요청에 응답하여, 데이터에 기초한 수행을 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.The result of threat modeling is generated by the
제 2 노드(200)는 사전 결정된 평가 기준에 기초하여 결과물에 대한 평가를 통해 평가 정보를 생성할 수 있다(S220).The
제 2 노드(200)는 평가 정보에 대한 검증 정보가 생성될 수 있도록, 평가 정보를 블록체인 네트워크(400)에 전송할 수 있다(S230). The
검증 정보는 블록체인 네트워크(400)를 구성하는 제 3 노드(300)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크(400)를 통해 획득된 평가 정보의 생성의 유효성에 대한 검증을 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.Verification information is generated by the
평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트에 의해 평가 정보에 대응되는 보상을 제 1 노드(100)에 지급하도록 결정될 수 있다.When the validity of the generation of the evaluation information is verified, a smart contract stored on the
도 5는 본 개시의 몇몇 실시예에 따른 블록체인 네트워크를 구성하는 제 3 노드에 의해 수행되는 위협 모델링 방법을 나타낸 흐름도이다.Figure 5 is a flowchart showing a threat modeling method performed by a third node constituting a blockchain network according to some embodiments of the present disclosure.
제 3 노드(300)는 사전 결정된 평가 기준에 기초하여, 위협 모델링의 결과물에 대한 평가를 통해 생성된 평가 정보를 블록체인 네트워크(400)를 통해 획득할 수 있다(S310).The
위협 모델링의 결과물은 블록체인 네트워크(400)를 구성하는 제 1 노드(100)에서, 블록체인 네트워크(400)를 통해 획득된 데이터를 포함하는 작업 요청에 응답하여, 데이터에 기초한 수행을 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.The result of threat modeling is generated by the
제 3 노드(300)는 사전 결정된 평가 기준에 기초하여 평가 정보의 생성의 유효성에 대한 검증을 통해 검증 정보를 생성할 수 있다(S320).The
평가 정보는 블록체인 네트워크(400)를 구성하는 제 2 노드(200)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크(400)를 통해 획득된 결과물에 대한 평가를 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.Evaluation information is generated in the
제 3 노드(300)는 검증 정보를 블록체인 네트워크(400)에 전송할 수 있다(S330).The
평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트에 의해 평가 정보에 대응되는 보상을 제 1 노드(100)에 지급하도록 결정될 수 있다.When the validity of the generation of the evaluation information is verified, a smart contract stored on the
도 6은 본 개시의 몇몇 실시예에 따른 블록체인 기술을 이용한 위협 모델링 방법의 순서도이다.Figure 6 is a flowchart of a threat modeling method using blockchain technology according to some embodiments of the present disclosure.
도 6을 참조하면, 블록체인 네트워크(400)는 고객 노드로부터 위협 모델링의 수행에 요구되는 데이터를 포함하는 작업 요청을 수신할 수 있다. 따라서, 작업요청은 블록체인 네트워크(400) 상에 게시될 수도 있다.Referring to FIG. 6, the
제 1 노드(100)는 블록체인 네트워크(400)를 통해 작업 요청을 획득할 수 있다(S411).The
제 1 노드(100)는 작업 요청에 응답하여, 위협 모델링의 결과물을 생성할 수 있다(S412).The
제 1 노드(100)는 위협 모델링의 결과물을 블록체인 네트워크(400)에 전송할 수 있다(S413). 예를 들어, 제 1 노드(100)는 사전 결정된 마감 기한 내에 위협 모델링의 결과물을 블록체인 네트워크(400)에 전송할 수 있다. 따라서, 위협 모델링의 결과물은 블록체인 네트워크(400) 상에 게시될 수도 있다.The
제 2 노드(200)는 위협 모델링의 결과물을 블록체인 네트워크(400)를 통해 획득할 수 있다(S421).The
제 2 노드(200)는 사전 결정된 평가 기준에 기초하여 결과물에 대한 평가를 통해 평가 정보를 생성할 수 있다(S422).The
제 2 노드(200)는 평가 정보를 블록체인 네트워크(423)에 전송할 수 있다. 따라서, 평가 정보는 블록체인 네트워크(400) 상에 게시될 수도 있다.The
제 3 노드(300)는 평가 정보를 블록체인 네트워크(400)를 통해 획득할 수 있다(S431).The
제 3 노드(300)는 사전 결정된 평가 기준에 기초하여 평가 정보의 생성의 유효성에 대한 검증을 통해 검증 정보를 생성할 수 있다(S432).The
제 3 노드(300)는 검증 정보를 블록체인 네트워크(400)에 전송할 수 있다(S433). 따라서, 검증 정보는 블록체인 네트워크(400) 상에 게시될 수도 있다.The
블록체인 네트워크(400)는 검증 정보에 기초하여 평가 정보의 생성에 대한 유효성 검증을 확인할 수 있다(S441).The
블록체인 네트워크(400)는 평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트에 의해 평가 정보에 대응되는 보상을 제 1 노드(100)에 지급할 수 있다(S442).When the validity of the generation of evaluation information is verified, the
도 3 내지 도 6에 도시되는 단계들은 예시적인 단계들이다. 따라서, 본 개시 내용의 사상 범위를 벗어나지 않는 한도에서 도 2 내지 도 6의 단계들 중 일부가 생략되거나 추가적인 단계들이 존재할 수 있다는 점 또한 당업자에게 명백할 것이다. 또한, 도 2 내지 도 6에 기재된 구성들(예를 들어, 제 1 노드(100), 제 2 노드(200), 제 3 노드(300), 블록체인 네트워크(400) 등)에 관한 구체적인 내용은 앞서 도 1 및 도 2를 통해 설명한 내용으로 대체될 수 있다.The steps shown in FIGS. 3 to 6 are exemplary steps. Accordingly, it will also be apparent to those skilled in the art that some of the steps in FIGS. 2 to 6 may be omitted or additional steps may be present without departing from the scope of the present disclosure. In addition, specific details regarding the configurations depicted in FIGS. 2 to 6 (e.g., the
도 1 내지 도 6을 참조하여 상술한 바와 같이, 본 개시의 몇몇 실시예에 따른 블록체인 네트워크(400)를 구성하는 노드들(예를 들어, 제 1 노드(100), 제 2 노드(200), 제 3 노드(300))은 블록체인과 스마트 컨트랙트를 활용한 공평한 보상 시스템을 통해 참여 노드들의 참여도에 따라 보상을 지급하기 때문에 각 분야의 전문가들의 위협 모델링의 참여도를 높일 수 있다. 또한, 본 개시의 몇몇 실시예에 따른 블록체인 네트워크(400)를 구성하는 노드들(예를 들어, 제 1 노드(100), 제 2 노드(200), 제 3 노드(300))은 보상을 통해 복수의 노드들의 참여를 유도하여 최선의 결과를 도출할 수 있다.As described above with reference to FIGS. 1 to 6, nodes constituting the
도 7은 본 개시의 내용의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 일반적인 개략도이다.7 is a general schematic diagram of an example computing environment in which embodiments of the subject matter of the present disclosure may be implemented.
본 개시가 일반적으로 컴퓨팅 장치에 의해 구현될 수 있는 것으로 전술되었지만, 당업자라면 본 개시가 하나 이상의 컴퓨터 상에서 실행될 수 있는 컴퓨터 실행가능 명령어 및/또는 기타 프로그램 모듈들과 결합되어 및/또는 하드웨어와 소프트웨어의 조합으로써 구현될 수 있다는 것을 잘 알 것이다.Although the present disclosure has generally been described above as being capable of being implemented by a computing device, those skilled in the art will understand that the present disclosure can be implemented in combination with computer-executable instructions and/or other program modules that can be executed on one or more computers and/or in hardware and software. It will be well known that it can be implemented as a combination.
일반적으로, 프로그램 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 또한, 당업자라면 본 개시의 방법이 단일-프로세서 또는 멀티프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터는 물론 퍼스널 컴퓨터, 핸드헬드(handheld) 컴퓨팅 장치, 마이크로프로세서-기반 또는 프로그램가능 가전 제품, 기타 등등(이들 각각은 하나 이상의 연관된 장치와 연결되어 동작할 수 있음)을 비롯한 다른 컴퓨터 시스템 구성으로 실시될 수 있다는 것을 잘 알 것이다.Typically, program modules include routines, programs, components, data structures, etc. that perform specific tasks or implement specific abstract data types. Additionally, those skilled in the art will understand that the methods of the present disclosure are applicable to single-processor or multiprocessor computer systems, minicomputers, mainframe computers, as well as personal computers, handheld computing devices, microprocessor-based or programmable consumer electronics, etc. It will be appreciated that each of these may be implemented in other computer system configurations, including those capable of operating in conjunction with one or more associated devices.
본 개시의 설명된 실시예들은 또한 어떤 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.The described embodiments of the disclosure can also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
컴퓨터는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 일시적(transitory) 및 비일시적(non-transitory) 매체, 이동식 및 비-이동식 매체를 포함한다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체 및 컴퓨터 판독가능 전송 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성 매체, 일시적 및 비-일시적 매체, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital video disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만, 이에 한정되지 않는다.Computers typically include a variety of computer-readable media. Computer-readable media can be any medium that can be accessed by a computer, and such computer-readable media includes volatile and non-volatile media, transitory and non-transitory media, removable and non-transitory media. Includes removable media. By way of example, and not limitation, computer-readable media may include computer-readable storage media and computer-readable transmission media. Computer-readable storage media refers to volatile and non-volatile media, transient and non-transitory media, removable and non-removable, implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Includes media. Computer readable storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital video disk (DVD) or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage. This includes, but is not limited to, a device, or any other medium that can be accessed by a computer and used to store desired information.
컴퓨터 판독가능 전송 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. 피변조 데이터 신호라는 용어는 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 제한이 아닌 예로서, 컴퓨터 판독가능 전송 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들 중 임의의 것의 조합도 역시 컴퓨터 판독가능 전송 매체의 범위 안에 포함되는 것으로 한다.A computer-readable transmission medium typically implements computer-readable instructions, data structures, program modules, or other data on a modulated data signal, such as a carrier wave or other transport mechanism. Includes all information delivery media. The term modulated data signal refers to a signal in which one or more of the characteristics of the signal have been set or changed to encode information within the signal. By way of example, and not limitation, computer-readable transmission media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above are also intended to be included within the scope of computer-readable transmission media.
컴퓨터(1102)를 포함하는 본 개시의 여러가지 측면들을 구현하는 예시적인 환경(1100)이 나타내어져 있으며, 컴퓨터(1102)는 처리 장치(1104), 시스템 메모리(1106) 및 시스템 버스(1108)를 포함한다. 시스템 버스(1108)는 시스템 메모리(1106)(이에 한정되지 않음)를 비롯한 시스템 컴포넌트들을 처리 장치(1104)에 연결시킨다. 처리 장치(1104)는 다양한 상용 프로세서들 중 임의의 프로세서일 수 있다. 듀얼 프로세서 및 기타 멀티프로세서 아키텍처도 역시 처리 장치(1104)로서 이용될 수 있다.An example environment 1100 is shown that implements various aspects of the present disclosure, including a
시스템 버스(1108)는 메모리 버스, 주변장치 버스, 및 다양한 상용 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스에 추가적으로 상호 연결될 수 있는 몇 가지 유형의 버스 구조 중 임의의 것일 수 있다. 시스템 메모리(1106)는 판독 전용 메모리(ROM)(1110) 및 랜덤 액세스 메모리(RAM)(1112)를 포함한다. 기본 입/출력 시스템(BIOS)은 ROM, EPROM, EEPROM 등의 비휘발성 메모리(1110)에 저장되며, 이 BIOS는 시동 중과 같은 때에 컴퓨터(1102) 내의 구성요소들 간에 정보를 전송하는 일을 돕는 기본적인 루틴을 포함한다. RAM(1112)은 또한 데이터를 캐싱하기 위한 정적 RAM 등의 고속 RAM을 포함할 수 있다.
컴퓨터(1102)는 또한 내장형 하드 디스크 드라이브(HDD)(1114)(예를 들어, EIDE, SATA)-이 내장형 하드 디스크 드라이브(1114)는 또한 적당한 섀시(도시 생략) 내에서 외장형 용도로 구성될 수 있음-, 자기 플로피 디스크 드라이브(FDD)(1116)(예를 들어, 이동식 디스켓(1118)으로부터 판독을 하거나 그에 기록을 하기 위한 것임), 및 광 디스크 드라이브(1120)(예를 들어, CD-ROM 디스크(1122)를 판독하거나 DVD 등의 기타 고용량 광 매체로부터 판독을 하거나 그에 기록을 하기 위한 것임)를 포함한다. 하드 디스크 드라이브(1114), 자기 디스크 드라이브(1116) 및 광 디스크 드라이브(1120)는 각각 하드 디스크 드라이브 인터페이스(1124), 자기 디스크 드라이브 인터페이스(1126) 및 광 드라이브 인터페이스(1128)에 의해 시스템 버스(1108)에 연결될 수 있다. 외장형 드라이브 구현을 위한 인터페이스(1124)는 USB(Universal Serial Bus) 및 IEEE 1394 인터페이스 기술 중 적어도 하나 또는 그 둘 다를 포함한다.
이들 드라이브 및 그와 연관된 컴퓨터 판독가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어, 기타 등등의 비휘발성 저장을 제공한다. 컴퓨터(1102)의 경우, 드라이브 및 매체는 임의의 데이터를 적당한 디지털 형식으로 저장하는 것에 대응한다. 상기에서의 컴퓨터 판독가능 매체에 대한 설명이 HDD, 이동식 자기 디스크, 및 CD 또는 DVD 등의 이동식 광 매체를 언급하고 있지만, 당업자라면 집 드라이브(zip drive), 자기 카세트, 플래쉬 메모리 카드, 카트리지, 기타 등등의 컴퓨터에 의해 판독가능한 다른 유형의 매체도 역시 예시적인 운영 환경에서 사용될 수 있으며 또 임의의 이러한 매체가 본 개시의 방법들을 수행하기 위한 컴퓨터 실행가능 명령어를 포함할 수 있다는 것을 잘 알 것이다.These drives and their associated computer-readable media provide non-volatile storage of data, data structures, computer-executable instructions, and the like. For
운영 체제(1130), 하나 이상의 애플리케이션 프로그램(1132), 기타 프로그램 모듈(1134) 및 프로그램 데이터(1136)를 비롯한 다수의 프로그램 모듈이 드라이브 및 RAM(1112)에 저장될 수 있다. 운영 체제, 애플리케이션, 모듈 및/또는 데이터의 전부 또는 그 일부분이 또한 RAM(1112)에 캐싱될 수 있다. 본 개시가 여러가지 상업적으로 이용가능한 운영 체제 또는 운영 체제들의 조합에서 구현될 수 있다는 것을 잘 알 것이다.A number of program modules may be stored in drives and
사용자는 하나 이상의 유선/무선 입력 장치, 예를 들어, 키보드(1138) 및 마우스(1140) 등의 포인팅 장치를 통해 컴퓨터(1102)에 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시 생략)로는 마이크, IR 리모콘, 조이스틱, 게임 패드, 스타일러스 펜, 터치 스크린, 기타 등등이 있을 수 있다. 이들 및 기타 입력 장치가 종종 시스템 버스(1108)에 연결되어 있는 입력 장치 인터페이스(1142)를 통해 처리 장치(1104)에 연결되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스, 기타 등등의 기타 인터페이스에 의해 연결될 수 있다.A user may enter commands and information into
모니터(1144) 또는 다른 유형의 디스플레이 장치도 역시 비디오 어댑터(1146) 등의 인터페이스를 통해 시스템 버스(1108)에 연결된다. 모니터(1144)에 부가하여, 컴퓨터는 일반적으로 스피커, 프린터, 기타 등등의 기타 주변 출력 장치(도시 생략)를 포함한다.A
컴퓨터(1102)는 유선 및/또는 무선 통신을 통한 원격 컴퓨터(들)(1148) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(들)(1148)는 워크스테이션, 컴퓨팅 디바이스 컴퓨터, 라우터, 퍼스널 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 오락 기기, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있으며, 일반적으로 컴퓨터(1102)에 대해 기술된 구성요소들 중 다수 또는 그 전부를 포함하지만, 간략함을 위해, 메모리 저장 장치(1150)만이 도시되어 있다. 도시되어 있는 논리적 연결은 근거리 통신망(LAN)(1152) 및/또는 더 큰 네트워크, 예를 들어, 원거리 통신망(WAN)(1154)에의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 일반적인 것이며, 인트라넷 등의 전사적 컴퓨터 네트워크(enterprise-wide computer network)를 용이하게 해주며, 이들 모두는 전세계 컴퓨터 네트워크, 예를 들어, 인터넷에 연결될 수 있다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1156)를 통해 로컬 네트워크(1152)에 연결된다. 어댑터(1156)는 LAN(1152)에의 유선 또는 무선 통신을 용이하게 해줄 수 있으며, 이 LAN(1152)은 또한 무선 어댑터(1156)와 통신하기 위해 그에 설치되어 있는 무선 액세스 포인트를 포함하고 있다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 모뎀(1158)을 포함할 수 있거나, WAN(1154) 상의 통신 컴퓨팅 디바이스에 연결되거나, 또는 인터넷을 통하는 등, WAN(1154)을 통해 통신을 설정하는 기타 수단을 갖는다. 내장형 또는 외장형 및 유선 또는 무선 장치일 수 있는 모뎀(1158)은 직렬 포트 인터페이스(1142)를 통해 시스템 버스(1108)에 연결된다. 네트워크화된 환경에서, 컴퓨터(1102)에 대해 설명된 프로그램 모듈들 또는 그의 일부분이 원격 메모리/저장 장치(1150)에 저장될 수 있다. 도시된 네트워크 연결이 예시적인 것이며 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 잘 알 것이다.When used in a LAN networking environment,
컴퓨터(1102)는 무선 통신으로 배치되어 동작하는 임의의 무선 장치 또는 개체, 예를 들어, 프린터, 스캐너, 데스크톱 및/또는 휴대용 컴퓨터, PDA(portable data assistant), 통신 위성, 무선 검출가능 태그와 연관된 임의의 장비 또는 장소, 및 전화와 통신을 하는 동작을 한다. 이것은 적어도 Wi-Fi 및 블루투스 무선 기술을 포함한다. 따라서, 통신은 종래의 네트워크에서와 같이 미리 정의된 구조이거나 단순하게 적어도 2개의 장치 사이의 애드혹 통신(ad hoc communication)일 수 있다.
Wi-Fi(Wireless Fidelity)는 유선 없이도 인터넷 등으로의 연결을 가능하게 해준다. Wi-Fi는 이러한 장치, 예를 들어, 컴퓨터가 실내에서 및 실외에서, 즉 기지국의 통화권 내의 아무 곳에서나 데이터를 전송 및 수신할 수 있게 해주는 셀 전화와 같은 무선 기술이다. Wi-Fi 네트워크는 안전하고 신뢰성 있으며 고속인 무선 연결을 제공하기 위해 IEEE 802.11(a, b, g, 기타)이라고 하는 무선 기술을 사용한다. 컴퓨터를 서로에, 인터넷에 및 유선 네트워크(IEEE 802.3 또는 이더넷을 사용함)에 연결시키기 위해 Wi-Fi가 사용될 수 있다. Wi-Fi 네트워크는 비인가 2.4 및 5GHz 무선 대역에서, 예를 들어, 11Mbps(802.11a) 또는 54 Mbps(802.11b) 데이터 레이트로 동작하거나, 양 대역(듀얼 대역)을 포함하는 제품에서 동작할 수 있다.Wi-Fi (Wireless Fidelity) allows connection to the Internet, etc. without wires. Wi-Fi is a wireless technology, like cell phones, that allows these devices, such as computers, to send and receive data indoors and outdoors, anywhere within the coverage area of a base station. Wi-Fi networks use wireless technology called IEEE 802.11 (a, b, g, etc.) to provide secure, reliable, and high-speed wireless connections. Wi-Fi can be used to connect computers to each other, the Internet, and wired networks (using IEEE 802.3 or Ethernet). Wi-Fi networks can operate in the unlicensed 2.4 and 5 GHz wireless bands, for example, at data rates of 11 Mbps (802.11a) or 54 Mbps (802.11b), or in products that include both bands (dual band). .
본 개시의 기술 분야에서 통상의 지식을 가진 자는 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 이용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 위의 설명에서 참조될 수 있는 데이터, 지시들, 명령들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광학장들 또는 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.Those skilled in the art will understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols and chips that may be referenced in the above description include voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields. It can be expressed by particles or particles, or any combination thereof.
본 개시의 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 프로세서들, 수단들, 회로들 및 알고리즘 단계들이 전자 하드웨어, (편의를 위해, 여기에서 소프트웨어로 지칭되는) 다양한 형태들의 프로그램 또는 설계 코드 또는 이들 모두의 결합에 의해 구현될 수 있다는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 호환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 이들의 기능과 관련하여 위에서 일반적으로 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 특정한 애플리케이션 및 전체 시스템에 대하여 부과되는 설계 제약들에 따라 좌우된다. 본 개시의 기술 분야에서 통상의 지식을 가진 자는 각각의 특정한 애플리케이션에 대하여 다양한 방식들로 설명된 기능을 구현할 수 있으나, 이러한 구현 결정들은 본 개시의 범위를 벗어나는 것으로 해석되어서는 안 될 것이다.Those skilled in the art will understand that the various illustrative logical blocks, modules, processors, means, circuits and algorithm steps described in connection with the embodiments disclosed herein may be used in electronic hardware, (for convenience) It will be understood that it may be implemented by various forms of program or design code (referred to herein as software) or a combination of both. To clearly illustrate this interoperability of hardware and software, various illustrative components, blocks, modules, circuits and steps have been described above generally with respect to their functionality. Whether this functionality is implemented as hardware or software depends on the specific application and design constraints imposed on the overall system. A person skilled in the art of this disclosure may implement the described functionality in various ways for each specific application, but such implementation decisions should not be construed as departing from the scope of this disclosure.
여기서 제시된 다양한 실시예들은 방법, 장치, 또는 표준 프로그래밍 및/또는 엔지니어링 기술을 사용한 제조 물품(article)으로 구현될 수 있다. 용어 제조 물품은 임의의 컴퓨터-판독가능 저장장치로부터 액세스 가능한 컴퓨터 프로그램, 캐리어, 또는 매체(media)를 포함한다. 예를 들어, 컴퓨터-판독가능 저장매체는 자기 저장 장치(예를 들면, 하드 디스크, 플로피 디스크, 자기 스트립, 등), 광학 디스크(예를 들면, CD, DVD, 등), 스마트 카드, 및 플래쉬 메모리 장치(예를 들면, EEPROM, 카드, 스틱, 키 드라이브, 등)를 포함하지만, 이들로 제한되는 것은 아니다. 또한, 여기서 제시되는 다양한 저장 매체는 정보를 저장하기 위한 하나 이상의 장치 및/또는 다른 기계-판독가능한 매체를 포함한다.The various embodiments presented herein may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques. The term article of manufacture includes a computer program, carrier, or media accessible from any computer-readable storage device. For example, computer-readable storage media include magnetic storage devices (e.g., hard disks, floppy disks, magnetic strips, etc.), optical disks (e.g., CDs, DVDs, etc.), smart cards, and flash. Includes, but is not limited to, memory devices (e.g., EEPROM, cards, sticks, key drives, etc.). Additionally, various storage media presented herein include one or more devices and/or other machine-readable media for storing information.
제시된 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조는 예시적인 접근들의 일례임을 이해하도록 한다. 설계 우선순위들에 기반하여, 본 개시의 범위 내에서 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조가 재배열될 수 있다는 것을 이해하도록 한다. 첨부된 방법 청구항들은 샘플 순서로 다양한 단계들의 엘리먼트들을 제공하지만 제시된 특정한 순서 또는 계층 구조에 한정되는 것을 의미하지는 않는다.It is to be understood that the specific order or hierarchy of steps in the processes presented is an example of illustrative approaches. It is to be understood that the specific order or hierarchy of steps in processes may be rearranged within the scope of the present disclosure, based on design priorities. The appended method claims present elements of the various steps in a sample order but are not meant to be limited to the particular order or hierarchy presented.
제시된 실시예들에 대한 설명은 임의의 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 개시는 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.The description of the presented embodiments is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments without departing from the scope of the disclosure. Thus, the present disclosure is not limited to the embodiments presented herein but is to be interpreted in the broadest scope consistent with the principles and novel features presented herein.
Claims (12)
위협 모델링의 수행에 요구되는 데이터를 포함하는 작업 요청을 상기 블록체인 네트워크를 통해 획득하는 단계;
상기 작업 요청에 응답하여, 상기 데이터에 기초하여 수행된 위협 모델링의 결과물을 생성하는 단계; 및
상기 결과물에 대한 평가 정보 및 상기 평가 정보에 대한 검증 정보가 생성될 수 있도록, 상기 위협 모델링의 결과물을 상기 블록체인 네트워크에 전송하는 단계;
를 포함하고,
상기 평가 정보는,
상기 블록체인 네트워크를 구성하는 제 2 노드에서, 사전 결정된 평가 기준에 기초하여 상기 블록체인 네트워크를 통해 획득된 상기 결과물에 대한 평가를 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고,
상기 검증 정보는,
상기 블록체인 네트워크를 구성하는 제 3 노드에서, 상기 사전 결정된 평가 기준에 기초하여 상기 블록체인 네트워크를 통해 획득된 상기 평가 정보의 생성의 유효성에 대한 검증을 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고,
상기 평가 정보의 생성에 대한 유효성이 검증된 경우, 상기 블록체인 네트워크 상에 저장된 스마트 컨트랙트(smart contract)에 의해 상기 평가 정보에 대응되는 보상을 상기 제 1 노드에 지급하도록 결정되고, 그리고
상기 사전 결정된 평가 기준은,
상기 위협 모델링의 결과물에 포함된 완화대책 마련에 관한 작업 정보의 경우, 상기 블록체인 네트워크에 포함된 복수의 노드들의 투표 결과를 기준으로 하는,
방법.
As a threat modeling method performed by the first node constituting the blockchain network,
Obtaining a task request containing data required to perform threat modeling through the blockchain network;
In response to the task request, generating a result of threat modeling performed based on the data; and
Transmitting the result of the threat modeling to the blockchain network so that evaluation information about the result and verification information about the evaluation information can be generated;
Including,
The above evaluation information is,
In a second node constituting the blockchain network, it is generated through evaluation of the results obtained through the blockchain network based on predetermined evaluation criteria, and transmitted to the blockchain network,
The above verification information is,
In a third node constituting the blockchain network, it is generated through verification of the validity of the generation of the evaluation information obtained through the blockchain network based on the predetermined evaluation criteria, and transmitted to the blockchain network. become,
When the validity of the generation of the evaluation information is verified, it is decided to pay compensation corresponding to the evaluation information to the first node by a smart contract stored on the blockchain network, and
The predetermined evaluation criteria are,
In the case of work information regarding the preparation of mitigation measures included in the results of the threat modeling, it is based on the voting results of a plurality of nodes included in the blockchain network,
method.
상기 데이터는,
데이터 흐름도(data flow diagram, DFD)를 포함하는 시스템 모델의 데이터 또는 아키텍처(architecture)의 데이터 중 적어도 하나를 포함하는,
방법.
According to claim 1,
The above data is,
Containing at least one of data of a system model including a data flow diagram (DFD) or data of an architecture,
method.
상기 위협 모델링의 결과물은,
시스템 모델의 작성에 관한 작업 정보, 공격 라이브러리의 수집에 관한 작업 정보, 위협의 식별에 관한 작업 정보, 공격 시나리오의 작성에 관한 작업 정보, 위험도의 평가에 관한 작업 정보 및 완화대책 마련에 관한 작업 정보 중 적어도 하나를 포함하는,
방법.
According to claim 1,
The result of the above threat modeling is,
Work information on creating a system model, work information on collection of attack libraries, work information on identification of threats, work information on creation of attack scenarios, work information on risk assessment, and work information on preparation of mitigation measures. Containing at least one of
method.
상기 평가 정보는,
상기 위협 모델링의 결과물에 포함된 작업 정보별로 각각 평가되어 산출된 점수(point)를 포함하는,
방법.
According to claim 1,
The above evaluation information is,
Containing points calculated by evaluating each task information included in the result of the threat modeling,
method.
상기 사전 결정된 평가 기준은,
상기 위협 모델링의 결과물에 포함된 시스템 모델의 작성에 관한 작업 정보의 경우, 상기 시스템 모델의 수준, 상기 시스템 모델의 객체 작성 여부 및 상기 시스템 모델의 데이터 흐름 작성 여부를 기준으로 하는,
방법.
According to claim 1,
The predetermined evaluation criteria are,
In the case of work information regarding the creation of a system model included in the result of the threat modeling, based on the level of the system model, whether an object of the system model is created, and whether the data flow of the system model is created,
method.
상기 사전 결정된 평가 기준은,
상기 위협 모델링의 결과물에 포함된 공격 라이브러리의 수집에 관한 작업 정보의 경우, 상기 공격 라이브러리의 공통 취약점 등급 시스템(common vulnerability scoring system) 점수 및 상기 공격 라이브러리의 사용처를 기준으로 하는,
방법.
According to claim 1,
The predetermined evaluation criteria are,
In the case of work information regarding the collection of attack libraries included in the result of the threat modeling, based on the common vulnerability scoring system score of the attack library and the use of the attack library,
method.
상기 사전 결정된 평가 기준은,
상기 위협 모델링의 결과물에 포함된 위협의 식별에 관한 작업 정보의 경우, 타겟에 대한 위협 정도를 기준으로 하는,
방법.
According to claim 1,
The predetermined evaluation criteria are,
In the case of work information regarding the identification of threats included in the results of the threat modeling, based on the degree of threat to the target,
method.
상기 사전 결정된 평가 기준은,
상기 위협 모델링의 결과물에 포함된 공격 시나리오의 작성에 관한 작업 정보의 경우, 공격 트리 각 항목의 개수 및 유효 공격 시나리오 작성 여부를 기준으로 하는,
방법.
According to claim 1,
The predetermined evaluation criteria are,
In the case of work information regarding the creation of attack scenarios included in the results of the above threat modeling, based on the number of each attack tree item and whether or not an effective attack scenario is created,
method.
상기 사전 결정된 평가 기준은,
상기 위협 모델링의 결과물에 포함된 위험도의 평가에 관한 작업 정보의 경우, 상기 블록체인 네트워크에 포함된 복수의 노드들의 투표 결과를 기준으로 하는,
방법.
According to claim 1,
The predetermined evaluation criteria are,
In the case of work information regarding the assessment of risk included in the result of the threat modeling, it is based on the voting results of a plurality of nodes included in the blockchain network,
method.
데이터에 기초하여 수행된 위협 모델링의 결과물을 상기 블록체인 네트워크를 통해 획득하는 단계;
사전 결정된 평가 기준에 기초하여 상기 결과물에 대한 평가를 통해 평가 정보를 생성하는 단계; 및
상기 평가 정보에 대한 검증 정보가 생성될 수 있도록, 상기 평가 정보를 상기 블록체인 네트워크에 전송하는 단계;
를 포함하고,
상기 위협 모델링의 결과물은,
상기 블록체인 네트워크를 구성하는 제 1 노드에서, 상기 블록체인 네트워크를 통해 획득된 상기 데이터를 포함하는 작업 요청에 응답하여, 상기 데이터에 기초한 수행을 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고,
상기 검증 정보는,
상기 블록체인 네트워크를 구성하는 제 3 노드에서, 상기 사전 결정된 평가 기준에 기초하여 상기 블록체인 네트워크를 통해 획득된 상기 평가 정보의 생성의 유효성에 대한 검증을 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고,
상기 평가 정보의 생성에 대한 유효성이 검증된 경우, 상기 블록체인 네트워크 상에 저장된 스마트 컨트랙트(smart contract)에 의해 상기 평가 정보에 대응되는 보상을 상기 제 1 노드에 지급하도록 결정되고, 그리고
상기 사전 결정된 평가 기준은,
상기 위협 모델링의 결과물에 포함된 완화대책 마련에 관한 작업 정보의 경우, 상기 블록체인 네트워크에 포함된 복수의 노드들의 투표 결과를 기준으로 하는,
방법.
A threat modeling method performed by a second node constituting a blockchain network,
Obtaining the results of threat modeling performed based on data through the blockchain network;
Generating evaluation information through evaluation of the results based on predetermined evaluation criteria; and
Transmitting the evaluation information to the blockchain network so that verification information for the evaluation information can be generated;
Including,
The result of the above threat modeling is,
In a first node constituting the blockchain network, in response to a task request containing the data obtained through the blockchain network, generated through execution based on the data, and transmitted to the blockchain network,
The above verification information is,
In a third node constituting the blockchain network, it is generated through verification of the validity of the generation of the evaluation information obtained through the blockchain network based on the predetermined evaluation criteria, and transmitted to the blockchain network. become,
When the validity of the generation of the evaluation information is verified, it is decided to pay compensation corresponding to the evaluation information to the first node by a smart contract stored on the blockchain network, and
The predetermined evaluation criteria are,
In the case of work information regarding the preparation of mitigation measures included in the results of the threat modeling, it is based on the voting results of a plurality of nodes included in the blockchain network,
method.
사전 결정된 평가 기준에 기초하여, 위협 모델링의 결과물에 대한 평가를 통해 생성된 평가 정보를 상기 블록체인 네트워크를 통해 획득하는 단계;
상기 사전 결정된 평가 기준에 기초하여 상기 평가 정보의 생성의 유효성에 대한 검증을 통해 검증 정보를 생성하는 단계; 및
상기 검증 정보를 상기 블록체인 네트워크에 전송하는 단계;
를 포함하고,
상기 위협 모델링의 결과물은,
상기 블록체인 네트워크를 구성하는 제 1 노드에서, 상기 블록체인 네트워크를 통해 획득된 데이터를 포함하는 작업 요청에 응답하여, 상기 데이터에 기초한 수행을 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고,
상기 평가 정보는,
상기 블록체인 네트워크를 구성하는 제 2 노드에서, 상기 사전 결정된 평가 기준에 기초하여 상기 블록체인 네트워크를 통해 획득된 상기 결과물에 대한 평가를 통해 생성되고, 그리고 상기 블록체인 네트워크에 전송되고,
상기 평가 정보의 생성에 대한 유효성이 검증된 경우, 상기 블록체인 네트워크 상에 저장된 스마트 컨트랙트(smart contract)에 의해 상기 평가 정보에 대응되는 보상을 상기 제 1 노드에 지급하도록 결정되고, 그리고
상기 사전 결정된 평가 기준은,
상기 위협 모델링의 결과물에 포함된 완화대책 마련에 관한 작업 정보의 경우, 상기 블록체인 네트워크에 포함된 복수의 노드들의 투표 결과를 기준으로 하는,
방법.A threat modeling method performed by a third node constituting a blockchain network,
Obtaining evaluation information generated through evaluation of the results of threat modeling based on predetermined evaluation criteria through the blockchain network;
generating verification information through verification of the validity of the generation of the assessment information based on the predetermined evaluation criteria; and
Transmitting the verification information to the blockchain network;
Including,
The result of the above threat modeling is,
In a first node constituting the blockchain network, in response to a task request containing data obtained through the blockchain network, generated through execution based on the data, and transmitted to the blockchain network,
The above evaluation information is,
In a second node constituting the blockchain network, it is generated through evaluation of the results obtained through the blockchain network based on the predetermined evaluation criteria, and transmitted to the blockchain network,
When the validity of the generation of the evaluation information is verified, it is decided to pay compensation corresponding to the evaluation information to the first node by a smart contract stored on the blockchain network, and
The predetermined evaluation criteria are,
In the case of work information regarding the preparation of mitigation measures included in the results of the threat modeling, it is based on the voting results of a plurality of nodes included in the blockchain network,
method.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210114588 | 2021-08-30 | ||
KR20210114588 | 2021-08-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230032897A KR20230032897A (en) | 2023-03-07 |
KR102635720B1 true KR102635720B1 (en) | 2024-02-13 |
Family
ID=85512682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220098296A KR102635720B1 (en) | 2021-08-30 | 2022-08-08 | Method for threat modeling using blockchain technology |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102635720B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200372154A1 (en) * | 2019-05-21 | 2020-11-26 | Jaroona Chain Ou | Blockchain security |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100862187B1 (en) | 2006-10-27 | 2008-10-09 | 한국전자통신연구원 | A Method and a Device for Network-Based Internet Worm Detection With The Vulnerability Analysis and Attack Modeling |
-
2022
- 2022-08-08 KR KR1020220098296A patent/KR102635720B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200372154A1 (en) * | 2019-05-21 | 2020-11-26 | Jaroona Chain Ou | Blockchain security |
Also Published As
Publication number | Publication date |
---|---|
KR20230032897A (en) | 2023-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gupta et al. | Smart contract privacy protection using AI in cyber-physical systems: tools, techniques and challenges | |
Hewa et al. | Survey on blockchain-based smart contracts: Technical aspects and future research | |
US11651082B2 (en) | Blockchain applicability framework | |
Niranjanamurthy et al. | Analysis of Blockchain technology: pros, cons and SWOT | |
Dwivedi et al. | Blockchain‐based internet of things and industrial IoT: a comprehensive survey | |
US20230394469A1 (en) | Systems and Methods for Instant NFTs and Protection Structure, Detection of Malicious Code within Blockchain Smart Contracts, Tokens with Transfer Limitations, Mirror Tokens and Parallel Addresses, Smart Contract Risk Scoring Method, and Cross-Device Digital Rights Management | |
US20230006976A1 (en) | Systems and Method for Providing Security Against Deception and Abuse in Distributed and Tokenized Environments | |
US20240048582A1 (en) | Blockchain data breach security and cyberattack prevention | |
US20230100422A1 (en) | Systems and Methods for Transaction Management in NFT-Directed Environments | |
Dash et al. | Artificial intelligence models for blockchain-based intelligent networks systems: Concepts, methodologies, tools, and applications | |
Chaudhry et al. | Zero‐trust‐based security model against data breaches in the banking sector: A blockchain consensus algorithm | |
Barati et al. | Privacy‐aware cloud ecosystems: Architecture and performance | |
WO2023015312A1 (en) | Methods for securely adding data to a blockchain using dynamic time quanta and version authentication | |
Ehioghae et al. | Enhanced drug anti-counterfeiting and verification system for the pharmaceutical drug supply chain using blockchain | |
US12067559B2 (en) | Methods and systems for forensic investigations in contract networks | |
KR20210101869A (en) | Credit evaluation techniques based on zero-knowledge proof | |
Mansoor et al. | A review of blockchain approaches for kyc | |
KR20230156129A (en) | Blockchain-based responsible distributed computing system | |
Wu et al. | Dependable public ledger for policy compliance, a blockchain based approach | |
Hamdi et al. | Vulnerabilities and attacks assessments in blockchain 1.0, 2.0 and 3.0: tools, analysis and countermeasures | |
KR102635720B1 (en) | Method for threat modeling using blockchain technology | |
Attia et al. | Securing federated learning with blockchain: A systematic literature review | |
CN110751483A (en) | Financial accounting and sales rushing method and device based on block chain and electronic equipment | |
Ri et al. | Blockchain-based RBAC Model with Separation of Duties constraint in Cloud Environment | |
Benaich et al. | Securing Big Data-Based Smart Applications Using Blockchain Technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |