KR102635720B1 - Method for threat modeling using blockchain technology - Google Patents

Method for threat modeling using blockchain technology Download PDF

Info

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
Application number
KR1020220098296A
Other languages
Korean (ko)
Other versions
KR20230032897A (en
Inventor
김승주
박신철
홍바울
김예준
조광수
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Publication of KR20230032897A publication Critical patent/KR20230032897A/en
Application granted granted Critical
Publication of KR102635720B1 publication Critical patent/KR102635720B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional 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

블록체인 기술을 이용한 위협 모델링 방법{METHOD FOR THREAT MODELING USING BLOCKCHAIN TECHNOLOGY}Threat modeling method using blockchain technology{METHOD FOR THREAT MODELING USING BLOCKCHAIN TECHNOLOGY}

본 개시 내용은 위협 모델링 방법에 관한 것으로, 보다 구체적으로 블록체인 기술을 이용한 위협 모델링 방법에 관한 것이다.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.

대한민국 등록특허 제10-0862187호(2008.10.01. 등록)Republic of Korea Patent No. 10-0862187 (registered on October 1, 2008)

본 개시는 전술한 배경기술에 대응하여 안출된 것으로, 블록체인 기술을 이용한 위협 모델링 방법을 제공하고자 한다.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 first node 100, a second node 200, a third node 300, a blockchain network 400, and/or It may include at least one of the communication networks 500. At least one of the first node 100, the second node 200, and/or the third node 300 may be a node constituting the blockchain network 400. For example, the first node 100, the second node 200, and the third node 300 may each be nodes constituting the blockchain network 400.

본 개시의 몇몇 실시예에 따른 제 1 노드(100)는 보상을 받기 위해 블록체인 네트워크(400)에 참여한 노드일 수 있다. 제 1 노드(100)는 예를 들어, 마이크로프로세서, 메인프레임 컴퓨터, 디지털 프로세서, 휴대용 디바이스 및 디바이스 제어기 등과 같은 임의의 타입의 컴퓨터 시스템 또는 컴퓨터 디바이스를 포함할 수 있다. 다만, 이에 한정되는 것은 아니다. 제 1 노드(100)는 블록체인 네트워크(400)를 구성하는 노드일 수 있다. 제 1 노드(100)는 적어도 하나일 수 있고, 복수로 구성될 수도 있다.The first node 100 according to some embodiments of the present disclosure may be a node that participates in the blockchain network 400 to receive compensation. First node 100 may include any type of computer system or computer device, such as, for example, microprocessors, mainframe computers, digital processors, portable devices, and device controllers. However, it is not limited to this. The first node 100 may be a node constituting the blockchain network 400. There may be at least one first node 100, or it may be comprised of multiple nodes.

제 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 first node 100 may include a processor 110, a memory 130, and a network unit 150. The processor 110 may be composed of one or more cores, and may include a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), and a tensor processing unit (TPU) of a computing device. unit) may include a processor for data analysis. The processor 110 can typically control the overall operation of the first node 100. For example, the processor 110 may process signals, data information, etc. that are input or output through components included in the first node 100. For another example, the processor 110 may read a computer program stored in the memory 130 and perform data processing according to an embodiment of the present disclosure.

본 개시의 몇몇 실시예에 따르면, 메모리(130)는 프로세서(110)가 생성하거나 결정한 임의의 형태의 정보 및 네트워크부(150)가 수신한 임의의 형태의 정보를 저장할 수 있다.According to some embodiments of the present disclosure, the memory 130 may store any type of information generated or determined by the processor 110 and any type of information received by the network unit 150.

본 개시의 몇몇 실시예에 따르면, 메모리(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 memory 130 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 first node 100 may operate in relation to web storage that performs a storage function of the memory 130 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 150 according to some embodiments of the present disclosure may include any wired or wireless communication network capable of transmitting and receiving arbitrary types of data and signals. The techniques described herein can be used in the networks mentioned above, as well as other networks.

제 1 노드(100)는 위협 모델링을 수행하는 노드인 위협 모델링 수행자 노드(threat modeling performer node)일 수 있다. 제 1 노드(100)의 프로세서(110)는 위협 모델링의 수행에 요구되는 데이터를 포함하는 작업 요청을 블록체인 네트워크(400)를 통해 획득할 수 있다.The first node 100 may be a threat modeling performer node, which is a node that performs threat modeling. The processor 110 of the first node 100 may obtain a task request containing data required to perform threat modeling through the blockchain network 400.

위협 모델링은 분석 대상의 자산, 발생 가능한 취약점 및/또는 잠재적 위협 중 적어도 하나를 식별하고 열거하며 완화 조치의 우선순위를 지정하는 체계적인 보안성 분석 방법일 수 있다.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 processor 110 may create a system model in the process of performing threat modeling. The system model may include drawings, 3D models, etc. including structure and configuration for system design. For example, 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. Accordingly, the processor 110 can create a data flow diagram based on major components through analysis of the structure of the system.

데이터 흐름도는 시스템의 내부 데이터 흐름을 도식적으로 표현한 것을 의미할 수 있다. 데이터 흐름도는 세부 기능 및/또는 세부 기능 간의 관계 중 적어도 하나를 표현한 도면일 수 있다.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 processor 110 may generate system model data based on architecture data.

작업 요청은 블록체인 네트워크(400)에 포함 또는 포함되지 않은 고객(customer) 노드에서 생성될 수 있다. 즉, 고객 노드는 개인 또는 회사의 노드로서 위협 모델링의 수행에 요구되는 데이터를 포함하는 작업 요청을 생성할 수 있다. 생성된 작업 요청은 고객 노드에서 블록체인 네트워크(400)로 전송될 수 있다. 즉, 고객 노드는 생성된 작업 요청을 블록체인 네트워크(400)로 전송할 수 있다.Work requests may be generated from customer nodes included or not included in the blockchain network 400. In other words, the customer node is an individual or company node that can generate a task request containing data required to perform threat modeling. The generated work request may be transmitted from the customer node to the blockchain network 400. That is, the customer node can transmit the generated work request to the blockchain network 400.

고객 노드는 프로세서, 메모리, 네트워크부를 포함할 수 있다. 고객 노드의 프로세서는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(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 processor 110 analyzes assets (e.g., data, related devices (e.g., hardware, software, etc.), transmission media, systems, etc.) that may cause malfunction of the analysis target (e.g., system model, etc.). can be identified.

프로세서(110)는 위협 모델링을 수행하는 과정에서 공격 라이브러리의 수집을 수행할 수 있다. 예를 들어, 프로세서(110)는 복수의 자료에 기초하여 설계 대상인 시스템 모델의 취약점 및/또는 설계 대상인 시스템 모델에 대한 공격 방법 중 적어도 하나와 관련된 공격 라이브러리의 수집을 수행할 수 있다.The processor 110 may collect attack libraries in the process of performing threat modeling. For example, the processor 110 may collect an attack library related to at least one of vulnerabilities in the system model to be designed and/or attack methods to the system model to be designed, based on a plurality of data.

복수의 자료는 논문, 컨퍼런스, 기술문서, 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 processor 110 may determine a risk group (eg, low risk group, medium risk group, high risk group, critical risk group, etc.) corresponding to each of at least one CVE based on the score. For example, if the score of the first CVE included in the attack library is 0.1 or more and 3.9 or less, the processor 110 may determine the first CVE to be a low-risk group. For another example, if the score of the second CVE included in the attack library is 4.0 or more and 6.9 or less, the processor 110 may determine the second CVE to be a medium risk group. For another example, the processor 110 may determine the third CVE included in the attack library as a high-risk group if the score of the third CVE is 7.0 or more and 8.9 or less. As another example, the processor 110 may determine that the fourth CVE included in the attack library is a critical risk group if the score of the fourth CVE is 9.0 or more and 10.0 or less.

공격 라이브러리에 포함되는 요소(예를 들어, 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 processor 110 may use the first CVE included in the attack library in the process of identifying a threat or creating an attack scenario.

프로세서(110)는 위협 모델링을 수행하는 과정에서 위협의 식별을 수행할 수 있다. 예를 들어, 프로세서(110)는 사전 설정된 보안 속성에 기초하여, 공격 라이브러리에서 설계 대상인 시스템 모델에 대한 위협의 식별 및/또는 분류를 수행할 수 있다. 사전 설정된 보안 속성은 STRIDE(스푸핑(spoofing), 템퍼링(tampering), 부인(repudiation), 정보 공개(information disclosure), 서비스 거부(denial of service), 권한 상승(elevation of privilege))를 포함할 수 있다. The processor 110 may identify threats while performing threat modeling. For example, the processor 110 may identify and/or classify threats to the system model being designed in an attack library based on preset security properties. Preset security properties may include STRIDE (spoofing, tampering, repudiation, information disclosure, denial of service, elevation of privilege). .

스푸핑은 보안 속성 중 인증과 관련된 것일 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에서 가짜 계정을 이용하여 시스템 권한을 획득하는 위협을 식별하고, 해당 위협을 스푸핑에 대응되는 것으로 분류할 수 있다.Spoofing may be related to authentication among the security attributes. For example, the processor 110 may identify a threat that obtains system privileges using a fake account in an attack library and classify the threat as corresponding to spoofing.

템퍼링은 보안 속성 중 무결성과 관련된 것일 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에서 불법적으로 데이터를 변경하는 위협을 식별하고, 해당 위협을 템퍼링에 대응되는 것으로 분류할 수 있다.Tampering may be related to integrity among the security properties. For example, the processor 110 may identify a threat that illegally changes data in an attack library and classify the threat as corresponding to tampering.

부인은 보안 속성 중 부인방지와 관련된 것일 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에서 특정 서비스를 수행하지 않았다고 부인하거나 책임이 없다고 부인하는 위협 등을 식별하고, 해당 위협들을 부인으로 분류할 수 있다.Repudiation may be related to non-repudiation among the security properties. For example, the processor 110 may identify threats in the attack library that deny not performing a specific service or deny responsibility, and classify the threats as denials.

정보 공개는 보안 속성 중 기밀성과 관련된 것일 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에서 발생할 수 있는 접근 권한이 없는 누군가에게 정보를 제공하는 위협을 식별하고, 해당 위협을 정보 공개로 분류할 수 있다.Information disclosure may be related to confidentiality as a security attribute. For example, processor 110 may identify a threat that provides information to someone who does not have access, which may occur in an attack library, and classify the threat as information disclosure.

서비스 거부는 보안 속성 중 가용성과 관련된 것일 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에서 서비스 또는 애플리케이션(application)의 정상 수행을 방해하는 위협을 식별하고, 해당 위협을 서비스 거부로 분류할 수 있다.Denial of service may be related to availability among the security properties. For example, the processor 110 may identify a threat that interferes with the normal performance of a service or application from an attack library and classify the threat as a denial of service.

권한 상승은 보안 속성 중 권한 부여와 관련된 것일 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리에서 사전에 부여되지 않은 특정 서비스를 수행하는 권한을 특정 노드에 부여하는 위협을 식별하고, 해당 위협을 권한 상승으로 분류할 수 있다.Privilege escalation may be related to granting privileges among the security attributes. For example, the processor 110 may identify a threat in an attack library that grants a specific node permission to perform a specific service that was not previously granted, and classify the threat as privilege escalation.

프로세서(110)는 위협 모델링을 수행하는 과정에서 공격 시나리오의 작성을 수행할 수 있다. 예를 들어, 프로세서(110)는 공격 라이브러리 및 식별된 위협에 기초하여 공격 트리 및/또는 공격 시나리오를 생성할 수 있다.The processor 110 may create an attack scenario while performing threat modeling. For example, processor 110 may generate attack trees and/or attack scenarios based on attack libraries and identified threats.

공격 시나리오는 공격자(공격 노드)가 최종 목표를 달성하기 위해 수행되는 세부적인 프로세스를 표현한 데이터일 수 있다. 예를 들어, 공격 시나리오는 공격자가 특정 권한을 가지고 있는 노드를 해킹하여 특정 권한을 사용하는 것일 수 있다.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 processor 110 may perform a risk assessment in the process of performing threat modeling. The processor 110 may perform a risk assessment of the identified threat. For example, the processor 110 sets a score based on damage potential information, reproducibility information, exploitability information, affected users information, and discoverability, and The risk level can be derived. Here, the risk level may quantitatively represent the dangerous degree of the identified threat or the degree of risk occurrence due to the identified threat. Damage potential information may include information indicating the degree of damage if a threat occurs. For example, when a threat occurs, the processor 110 can set a score and derive a risk level based on the degree of damage caused by an identification problem.

재현성 정보는 위협을 재현하기 위한 난이도를 나타내는 정보를 포함할 수 있다. 예를 들어, 프로세서(110)는 위협을 재현하기 위한 난이도에 기초하여 점수를 책정하고 위험도를 도출할 수 있다. Reproducibility information may include information indicating the difficulty of reproducing the threat. For example, the processor 110 may set a score and derive a risk level based on the difficulty of reproducing the threat.

악용 가능성 정보는 위협을 발생시키기 위한 지식의 필요성을 나타내는 정보를 포함할 수 있다. 예를 들어, 프로세서(110)는 위협을 발생시키기 위한 지식의 필요성에 기초하여 점수를 책정하고 위험도를 도출할 수 있다.Exploitability information may include information indicating the need for knowledge to create a threat. For example, the processor 110 may set a score and derive a risk level based on the need for knowledge to generate a threat.

사용자 정보는 위협이 발생한 경우에 영향을 받는 사용자의 수(노드의 수)에 대한 정보를 포함할 수 있다. 예를 들어, 프로세서(110)는 위협이 발생한 경우에 영향을 받는 사용자의 수에 기초하여 점수를 책정하고 위험도를 도출할 수 있다.User information may include information about the number of users (number of nodes) affected when a threat occurs. For example, the processor 110 may set a score and derive a risk level based on the number of users affected when a threat occurs.

발견 가능성 정보는 위협을 발견하기 위한 난이도에 대한 정보를 포함할 수 있다. 예를 들어, 프로세서(110)는 위협을 발견하기 위한 난이도에 기초하여 점수를 책정하고 위험도를 도출할 수 있다. 다만, 위험도를 평가하기 위한 평가 방법은 이에 한정되지 않는다. 따라서, 프로세서(110)는 위험도를 평가하기 위해서 다양한 평가 기법들을 사용할 수 있다.Discoverability information may include information about the difficulty in discovering a threat. For example, the processor 110 may set a score and derive a risk level based on the difficulty level for detecting a threat. However, the evaluation method for assessing risk is not limited to this. Accordingly, the processor 110 may use various evaluation techniques to evaluate risk.

프로세서(110)는 위협 모델링을 수행하는 과정에서 완화대책 마련을 수행할 수 있다. 프로세서(110)는 식별된 적어도 하나의 위협 각각으로 인해 발생되는 악영향을 완화시키기 위한 완화대책 정보를 생성할 수 있다.The processor 110 may prepare mitigation measures in the process of performing threat modeling. The processor 110 may generate mitigation information to mitigate adverse effects caused by each of the at least one identified threat.

프로세서(110)는 위험도에 기초하여 적어도 하나의 위협 각각에 대응되는 등급을 결정할 수 있다. 프로세서(110)는 제 1 위협의 위험도가 1이상 4이하인 경우, 제 1 위협은 로우(low) 등급에 대응되는 것으로 결정할 수 있다. 프로세서(110)는 제 2 위협의 위험도가 5이상 8이하인 경우, 제 2 위협은 미들(middle) 등급에 대응되는 것으로 결정할 수 있다. 프로세서(110)는 제 3 위협의 위험도가 9이상 12이하인 경우, 제 3 위협은 하이(high) 등급에 대응되는 것으로 결정할 수 있다.The processor 110 may determine a level corresponding to each at least one threat based on the level of risk. If the risk level of the first threat is 1 or more and 4 or less, the processor 110 may determine that the first threat corresponds to a low level. If the risk level of the second threat is 5 or more and 8 or less, the processor 110 may determine that the second threat corresponds to a middle level. If the risk level of the third threat is 9 or more and 12 or less, the processor 110 may determine that the third threat corresponds to a high level.

프로세서(110)는 작업 요청에 응답하여, 작업 요청에 포함된 위협 모델링의 수행에 요구되는 데이터에 기초하여 수행된 위협 모델링의 결과물을 생성할 수 있다. 위협 모델링의 결과물은 전술한 시스템 모델의 작성에 관한 작업 정보, 공격 라이브러리의 수집에 관한 작업 정보, 위협의 식별에 관한 작업 정보, 공격 시나리오의 작성에 관한 작업 정보, 위험도의 평가에 관한 작업 정보 및/또는 완화대책 마련에 관한 작업 정보 중 적어도 하나를 포함할 수 있다.In response to the task request, the processor 110 may generate a result of threat modeling performed based on data required to perform threat modeling included in the task request. The results of threat modeling include work information on creating the above-mentioned 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 /Or it may include at least one piece of work information regarding the preparation of mitigation measures.

프로세서(110)는 결과물에 대한 평가 정보 및 평가 정보에 대한 검증 정보가 생성될 수 있도록 위협 모델링의 결과물을 블록체인 네트워크(400)에 전송할 수 있다.The processor 110 may transmit the result of threat modeling to the blockchain network 400 so that evaluation information about the result and verification information about the evaluation information can be generated.

평가 정보는 블록체인 네트워크(400)를 구성하는 제 2 노드(200)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크를 통해 획득된 결과물에 대한 평가를 통해 생성될 수 있다. 평가 정보는 제 2 노드(200)에서 블록체인 네트워크(400)에 전송될 수 있다.Evaluation information may be generated in the second node 200 constituting the blockchain network 400 through evaluation of the results obtained through the blockchain network based on predetermined evaluation criteria. Evaluation information may be transmitted from the second node 200 to the blockchain network 400.

평가 정보는 위협 모델링의 결과물에 포함된 작업 정보별로 각각 평가되어 산출된 점수(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.

DFD 수준DFD level 객체 최종 작성Object final creation 데이터 흐름 최종 작성Create final data flow 레벨 0level 0 2점2 points 1점1 point 레벨 1level 1 4점4 points 1.5점1.5 points 레벨 2level 2 6점6 points 2점2 points

[표 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 first node 100 or the second node 200 may determine a score of 4. The first node 100 or the second node 200 may determine a score of 10 when the final level 0 data flow creation is 10 cases. The first node 100 or the second node 200 may calculate a score by evaluating work information related to the creation of a system model included in the result of threat modeling based on predetermined evaluation criteria. The first node 100 or the second node 200 may generate evaluation information including the calculated score. Evaluation information can be scored based on the number of participation, participation period, and level of the system model for each item included in the work information. The reward may be determined in proportion to the score. According to some embodiments of the present disclosure, the first node 100 may transmit the generated system model to the customer node. The first node 100 may receive compensation for creating a system model from the customer node. The customer node may perform evaluation on the generated system model and transmit compensation corresponding to the evaluation to the first node 100. Compensation for creating a system model may be made according to an agreement between the customer node and the first node 100.

사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 공격 라이브러리의 수집에 관한 작업 정보의 경우, 공격 라이브러리의 공통 취약점 등급 시스템(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.

항목item 세부항목Details 점수score 수집된 공격 라이브러리의 공통 취약점 등급 시스템 점수Common vulnerability rating system scores for collected attack libraries 0.1~3.90.1~3.9 0.1점0.1 point 4.0~6.94.0~6.9 0.2점0.2 points 7.0~8.97.0~8.9 0.3점0.3 points 9.0~10.09.0~10.0 0.4점0.4 points 공격 라이브러리attack library 위협 식별에 사용Used for threat identification 1점1 point 공격 시나리오 작성에 사용Used to create attack scenarios 5점5 points

[표 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 second node 200 may determine a score of 0.2 if there is a CVE of 0.2 and a CVE of 0.3. The second node 200 may calculate a score by evaluating work information regarding the collection of attack libraries included in the result of threat modeling based on predetermined evaluation criteria. The second node 200 may generate evaluation information including the calculated score.

[표 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 second node 200 may determine the threat to be a direct threat to the target. For another example, if the threat does not attack the target directly but indirectly attacks the target, the second node 200 may determine the threat to be an indirect threat to the target.

위협 모델링의 결과물에 포함된 위협의 식별에 관한 작업 정보의 점수에 대한 예시는 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.

항목item 세부 항목Details 점수score 위협 식별Threat identification 타겟에 대한 간접적인 위협Indirect threat to target 1점1 point 타겟에 대한 직접적인 위협Direct threat to target 2점2 points

[표 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 second node 200 may determine a score of 0.2 if there is a CVE of 0.2 and a CVE of 0.3. The second node 200 may calculate a score by evaluating work information regarding the collection of attack libraries included in the result of threat modeling based on predetermined evaluation criteria. The second node 200 may generate evaluation information including the calculated score.

[표 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.

항목item 점수score 작성된 공격 트리 각 항목의 작성Creation of each item in the created attack tree 0.1점0.1 point 유효 공격 시나리오 최종 작성Final creation of effective attack scenario 5점5 points

[표 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 second node 200 may determine a score of 0.2. The second node 200 may calculate a score by evaluating work information regarding the creation of an attack scenario included in the result of threat modeling based on predetermined evaluation criteria. The second node 200 may generate evaluation information including the calculated score. The specific values in [Table 4] may be changed based on the voting results of a plurality of second nodes.

사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 위험도의 평가에 관한 작업 정보의 경우, 블록체인 네트워크(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 blockchain network 400 in the case of work information regarding risk assessment included in the result of threat modeling. For example, the second node 200 can calculate the error in the voting result by comparing the total voting results in which the first node 100 and the second node 200 participated with the voting results of the first node 100. there is. The second node 200 may determine the score based on the error in the voting result.

위협 모델링의 결과물에 포함된 위험도의 평가에 관한 작업 정보의 점수에 대한 예시는 아래의 [표 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.

항목item 점수score 위험도 평가 투표 참여시When participating in risk assessment voting 1점1 point 투표 결과 오차 0.5 미만Voting result error less than 0.5 5점5 points 투표 결과 오차 0.5 이상 1 미만Voting result error 0.5 or more and less than 1 3점3 points 투표 결과 오차 1 이상 1.5 미만Voting result error 1 or more but less than 1.5 1점1 point 투표 결과 오차 1.5 이상Voting result error more than 1.5 0점0 points

[표 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 second node 200 may calculate a score by evaluating work information related to risk assessment included in the result of threat modeling based on predetermined evaluation criteria. The second node 200 may generate evaluation information including the calculated score.

[표 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 blockchain network 400 in the case of work information regarding the preparation of mitigation measures included in the results of threat modeling.

식별된 적어도 하나의 위협 각각에 대응되는 위험도는 블록체인 네트워크(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 blockchain network 400. The level corresponding to each of the at least one identified threat may be determined based on the risk level. Accordingly, the second node 200 may determine a score based on the threat level determined based on the voting results of a plurality of nodes included in the blockchain network 400.

위협 모델링의 결과물에 포함된 완화대책 마련에 관한 작업 정보의 점수에 대한 예시는 아래의 [표 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.

평가 결과Evaluation results 점수score 로우(low) 등급의 위협에 대한 완화대책 마련Establish mitigation measures for low-level threats 2.5점2.5 points 미들(middle) 등급의 위협에 대한 완화대책 마련Establish mitigation measures for middle-grade threats 5점5 points 하이(high) 등급의 위협에 대한 완화대책 마련Establish mitigation measures for high-level threats 10점10 points

[표 6]을 참조하면, 위협의 등급에 따라 점수가 결정될 수 있다. 제 2 노드(200)는 사전 결정된 평가 기준에 기초하여 위협 모델링의 결과물에 포함된 완화대책 마련에 관한 작업 정보를 평가하여 점수를 산출할 수 있다. 제 2 노드(200)는 산출된 점수를 포함하는 평가 정보를 생성할 수 있다.Referring to [Table 6], the score can be determined depending on the level of the threat. The second node 200 may calculate a score by evaluating work information on preparing mitigation measures included in the result of threat modeling based on predetermined evaluation criteria. The second node 200 may generate evaluation information including the calculated score.

[표 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 third node 300 constituting the blockchain network 400. Verification information may be transmitted from the third node 300 to the blockchain network 400.

평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400)에서, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트(smart contract)에 의해 평가 정보에 대응되는 보상을 제 1 노드에 지급하도록 결정될 수 있다.When the validity of the generation of evaluation information is verified, the blockchain network 400 pays compensation corresponding to the evaluation information to the first node by a smart contract stored on the blockchain network 400. can be decided.

본 개시내용의 일 실시예에 따른 스마트 컨트랙트는 임의의 형태의 계약 또는 협상을 디지털적으로 증명하고 실행시키기 위한 컴퓨터 프로토콜이다. 스마트 컨트랙트는 디지털 언어로 작성되고 임의의 컴퓨팅 장치에서 실행될 수 있다. 스마트 컨트랙트에 포함된 코드 및/또는 함수가 실행되는 경우, 그 코드 및/또는 함수에 기재된 형태의 동작들이 수행될 수 있다.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 blockchain network 400 or a separate form of medium (e.g., gas, etc.) that can be linked to the coin. As a non-limiting example, the default execution cost of a transaction may be set to 21,000 gas. For example, such execution costs may include the cost of processing the Elliptic Curve Digital Signature Algorithm (ECDSA) for the transaction issuer's account address, storage costs for storing transactions, and network bandwidth costs. In this way, if a specific cost is defined to be paid when executing a smart contract, malicious attacks such as infinite execution such as intentional DDoS attacks can be prevented.

스마트 컨트랙트를 생성하거나 또는 실행시키고자 하는 엔티티가 특정한 재화(코인, 토큰 등)를 블록체인 네트워크(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 blockchain network 400 and then executing the smart contract without paying additional fees. Policies may also be used. In this case, when staking ends, execution of the smart contract is not permitted.

본 개시내용의 실시예들에 따른 보상을 지급하기 위한 스마트 컨트랙트들 간의 호출은 메시지라는 구조체를 사용하여 구현될 수 있다. 예를 들어, 이러한 메시지는 컨트랙트 어카운트에 의해 생성될 수 있으며, 함수 호출시에 다른 컨트랙트로 전달될 수 있다. 이러한 경우의 메시지는 외부 소유 어카운트에서 발생되는 트랜잭션과는 달리, 블록체인 네트워크(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 blockchain network 400, so separate execution costs such as gas may not be incurred.

본 개시내용의 실시예들에 따른 보상의 지급을 구현하는데 있어서, 스마트 컨트랙트의 함수를 컴파일된 코드 형태로 트랜잭션에 포함하여 블록체인을 통해 동기화할 때, 트랜잭션에 포함된 정보를 함수의 입력으로 하여 코드로 표현된 함수를 실행한 후 그 결과를 별도의 상태로 보관하는 방식으로 스마트 컨트랙트가 구현될 수 있다.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 blockchain network 400. The registration contract may include at least one of an arbitrary identification number (ID) assigned to the user (user node), a blockchain hash address, and/or the address of a profile contract.

프로필 컨트랙트는 사용자(사용자 노드)의 정보, 수행 중인 위협 모델링의 목록을 보여주기 위한 컨트랙트일 수 있다. 프로필 컨트랙트는 블록체인 주소, 사용자의 프로필, 사용자가 중재자(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 blockchain network 400. It can include at least one contract that returns the newly issued public key so that only users with the contract can access content signed with the private key.

사용자 노드는 블록체인 네트워크(400)에 포함 또는 포함되지 않는 노드일 수 있다. 사용자 노드는 프로세서, 메모리, 네트워크부를 포함할 수 있다.A user node may be a node included or not included in the blockchain network 400. A user node may include a processor, memory, and network unit.

사용자 노드의 프로세서는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(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 second node 200 may be an evaluator node that evaluates the results of threat modeling generated by the first node 100. Second node 200 may include any type of computer system or computer device, such as, for example, microprocessors, mainframe computers, digital processors, portable devices, and device controllers. However, it is not limited to this. The second node 200 may be a node constituting the blockchain network 400. There may be at least one second node 200, or it may be comprised of multiple nodes.

제 2 노드(200)는 프로세서(210), 메모리(230), 네트워크부(250)를 포함할 수 있다. 제 2 노드(200)의 각 구성들은 제 1 노드(100)의 구성과 대응될 수 있다. 따라서, 제 2 노드(200)의 각 구성들에 대한 구체적인 설명은 대응되는 제 1 노드(100)의 각 구성들에 대한 구체적인 설명으로 대체될 수 있다. 제 2 노드(200)를 설명하는 과정에서 전술한 내용과 중복되는 내용은 생략될 수 있다.The second node 200 may include a processor 210, a memory 230, and a network unit 250. Each configuration of the second node 200 may correspond to the configuration of the first node 100. Accordingly, a detailed description of each component of the second node 200 may be replaced with a detailed description of each component of the corresponding first node 100. In the process of explaining the second node 200, content that overlaps with the above-described content may be omitted.

프로세서(210)는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 데이터 분석을 위한 프로세서를 포함할 수 있다. 프로세서(210)는 통상적으로 제 2 노드(200)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(210)는 제 2 노드(200)에 포함된 구성요소들을 통해 입력 또는 출력되는 신호, 데이터 정보 등을 처리할 수 있다. 다른 예를 들어, 프로세서(210)는 메모리(230)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 데이터 처리를 수행할 수 있다.The processor 210 may be composed of one or more cores, and may include a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), and a tensor processing unit (TPU) of the computing device. unit) may include a processor for data analysis. The processor 210 can typically control the overall operation of the second node 200. For example, the processor 210 may process signals, data information, etc. that are input or output through components included in the second node 200. For another example, the processor 210 may read a computer program stored in the memory 230 and perform data processing according to an embodiment of the present disclosure.

본 개시의 몇몇 실시예에 따르면, 메모리(230)는 프로세서(210)가 생성하거나 결정한 임의의 형태의 정보 및 네트워크부(250)가 수신한 임의의 형태의 정보를 저장할 수 있다.According to some embodiments of the present disclosure, the memory 230 may store any type of information generated or determined by the processor 210 and any type of information received by the network unit 250.

본 개시의 몇몇 실시예에 따르면, 메모리(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 memory 230 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 second node 200 may operate in relation to web storage that performs a storage function of the memory 230 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 250 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)는 데이터에 기초하여 수행된 위협 모델링의 결과물을 블록체인 네트워크(400)를 통해 획득할 수 있다.The second node 200 can obtain the results of threat modeling performed based on data through the blockchain network 400.

제 2 노드(200)는 사전 결정된 평가 기준에 기초하여 결과물에 대한 평가를 통해 평가 정보를 생성할 수 있다.The second node 200 may generate evaluation information by evaluating the results based on predetermined evaluation criteria.

제 2 노드(200)는 평가 정보에 대한 검증 정보가 생성될 수 있도록, 평가 정보를 블록체인 네트워크(400)에 전송할 수 있다.The second node 200 may transmit evaluation information to the blockchain network 400 so that verification information for the evaluation information can be generated.

위협 모델링의 결과물은 블록체인 네트워크(400)를 구성하는 제 1 노드(100)에서, 블록체인 네트워크(400)를 통해 획득된 데이터를 포함하는 작업 요청에 응답하여, 데이터에 기초한 수행을 통해 생성될 수 있다. 위협 모델링의 결과물은 제 1 노드(100)에서 블록체인 네트워크(400)에 전송될 수 있다.The result of threat modeling is generated by the first node 100 constituting the blockchain network 400 through data-based performance in response to a task request containing data obtained through the blockchain network 400. You can. The result of threat modeling may be transmitted from the first node 100 to the blockchain network 400.

검증 정보는 블록체인 네트워크(400)를 구성하는 제 3 노드(300)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크(400)를 통해 획득된 평가 정보의 생성의 유효성에 대한 검증을 통해 생성될 수 있다. 검증 정보는 제 3 노드(300)에서 블록체인 네트워크(400)에 전송될 수 있다.Verification information is generated by the third node 300 constituting the blockchain network 400 through verification of the validity of the generation of evaluation information obtained through the blockchain network 400 based on predetermined evaluation criteria. You can. Verification information may be transmitted from the third node 300 to the blockchain network 400.

평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400)에서, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트에 의해 평가 정보에 대응되는 보상을 제 1 노드에 지급하도록 결정될 수 있다.When the validity of the generation of evaluation information is verified, the blockchain network 400 may decide to pay compensation corresponding to the evaluation information to the first node by a smart contract stored on the blockchain network 400.

제 2 노드(200)는 검토 정보를 블록체인 네트워크(400)를 통해 획득할 수 있다. 제 2 노드(200)는 검토 정보와 평가 정보를 비교하여 블록체인 네트워크(400)에 이의를 제기하기 위한 재심사 요청을 전송할 수 있다.The second node 200 can obtain review information through the blockchain network 400. The second node 200 may compare the review information and evaluation information and transmit a re-examination request to raise an objection to the blockchain network 400.

제 3 노드(300)는 복수의 제 2 노드들 중에서 투표를 통해 선출된 중재자 노드(arbiter node)일 수 있다. 제 3 노드(300)는 제 2 노드(200)에서 생성된 평가 정보에 대한 검증을 수행할 수 있다. 제 3 노드(300)는 위협 모델링 과정에서 발생할 수 있는 악의적인 행동을 방지하는 것을 목적으로 하는 개인 또는 회사일 수 있다.The third node 300 may be an arbiter node selected through voting among a plurality of second nodes. The third node 300 may perform verification on the evaluation information generated by the second node 200. The third node 300 may be an individual or a company whose purpose is to prevent malicious actions that may occur during the threat modeling process.

제 3 노드(300)는 복수의 제 2 노드들 중에서 결정된 후보자 노드들 중에서 결정될 수 있다. 후보자 노드들은 보유한 토큰의 수에 기초하여 결정될 수 있다. 예를 들어, 후보자 노드들은 블록체인 네트워크(400) 상의 토큰 유통물량 중 3% 이상의 토큰을 보유하고 있는 참가자일 수 있다. 제 3 노드(300)는 후보자들 중 상위 10명의 득표자일 수 있다. 제 3 노드(300)는 제 2 노드(200)가 제출한 위협 모델링 평가 내용을 확인하여 정당한 작업 내용에 대해 보상을 적게 주기 위해 의도적으로 낮게 평가하는 부당한 행위가 있었는지 검토할 수 있다. 제 3 노드(300)는 제 1 노드(100)와 담합하여 올바르지 않은 작업 내용에 대해 보상을 높게 주는 등의 부당한 행위가 있었는지 검토할 수 있다.The third node 300 may be determined from among candidate nodes determined from among the plurality of second nodes. Candidate nodes can be determined based on the number of tokens they hold. For example, candidate nodes may be participants who hold more than 3% of tokens in circulation on the blockchain network 400. The third node 300 may be the top 10 vote getters among the candidates. The third node 300 may check the threat modeling evaluation content submitted by the second node 200 to determine whether there has been an unfair act of intentionally giving low evaluation to provide less compensation for legitimate work content. The third node 300 may review whether there has been any unfair action, such as colluding with the first node 100 and providing high compensation for incorrect work content.

제 3 노드(300)는 예를 들어, 마이크로프로세서, 메인프레임 컴퓨터, 디지털 프로세서, 휴대용 디바이스 및 디바이스 제어기 등과 같은 임의의 타입의 컴퓨터 시스템 또는 컴퓨터 디바이스를 포함할 수 있다. 다만, 이에 한정되는 것은 아니다. 제 3 노드(300)는 블록체인 네트워크(400)를 구성하는 노드일 수 있다. 제 3 노드(300)는 적어도 하나일 수 있고, 복수로 구성될 수도 있다.Third node 300 may include any type of computer system or computer device, such as, for example, microprocessors, mainframe computers, digital processors, portable devices, and device controllers. However, it is not limited to this. The third node 300 may be a node constituting the blockchain network 400. There may be at least one third node 300, or it may be comprised of multiple nodes.

제 3 노드(300)는 프로세서(310), 메모리(330), 네트워크부(350)를 포함할 수 있다. 제 3 노드(300)의 각 구성들은 제 1 노드(100) 또는 제 2 노드(200)의 구성과 대응될 수 있다. 따라서, 제 3 노드(300)의 각 구성들에 대한 구체적인 설명은 대응되는 제 1 노드(100) 또는 제 2 노드(200)의 각 구성들에 대한 구체적인 설명으로 대체될 수 있다. 제 3 노드(300)를 설명하는 과정에서 전술한 내용과 중복되는 내용은 생략될 수 있다.The third node 300 may include a processor 310, a memory 330, and a network unit 350. Each configuration of the third node 300 may correspond to the configuration of the first node 100 or the second node 200. Accordingly, a detailed description of each component of the third node 300 may be replaced with a detailed description of each component of the corresponding first node 100 or second node 200. In the process of explaining the third node 300, content that overlaps with the above-described content may be omitted.

프로세서(310)는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 데이터 분석을 위한 프로세서를 포함할 수 있다. 프로세서(310)는 통상적으로 제 3 노드(300)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(310)는 제 3 노드(300)에 포함된 구성요소들을 통해 입력 또는 출력되는 신호, 데이터 정보 등을 처리할 수 있다. 다른 예를 들어, 프로세서(310)는 메모리(330)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 데이터 처리를 수행할 수 있다.The processor 310 may consist of one or more cores, and may include a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), and a tensor processing unit (TPU) of a computing device. unit) may include a processor for data analysis. The processor 310 can typically control the overall operation of the third node 300. For example, the processor 310 may process signals, data information, etc. that are input or output through components included in the third node 300. For another example, the processor 310 may read a computer program stored in the memory 330 and perform data processing according to an embodiment of the present disclosure.

본 개시의 몇몇 실시예에 따르면, 메모리(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 processor 310 and any type of information received by the network unit 350.

본 개시의 몇몇 실시예에 따르면, 메모리(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 third node 300 may operate in relation to web storage that performs a storage function of the memory 330 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 350 according to some embodiments of the present disclosure may include any wired or wireless communication network capable of transmitting and receiving arbitrary types of data and signals.

제 3 노드(300)는 사전 결정된 평가 기준에 기초하여, 위협 모델링의 결과물에 대한 평가를 통해 생성된 평가 정보를 블록체인 네트워크(400)를 통해 획득할 수 있다.The third node 300 can obtain evaluation information generated through evaluation of the results of threat modeling based on predetermined evaluation criteria through the blockchain network 400.

제 3 노드(300)는 사전 결정된 평가 기준에 기초하여 평가 정보의 생성의 유효성에 대한 검증을 통해 검증 정보를 생성할 수 있다.The third node 300 may generate verification information by verifying the validity of the generation of the evaluation information based on predetermined evaluation criteria.

제 3 노드(300)는 검증 정보를 블록체인 네트워크(400)에 전송할 수 있다.The third node 300 may transmit verification information to the blockchain network 400.

위협 모델링의 결과물은 블록체인 네트워크(400)를 구성하는 제 1 노드(100)에서, 블록체인 네트워크(400)를 통해 획득된 데이터를 포함하는 작업 요청에 응답하여, 데이터에 기초한 수행을 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.The result of threat modeling is generated by the first node 100 constituting the blockchain network 400 through data-based performance in response to a task request containing data obtained through the blockchain network 400. , and can be transmitted to the blockchain network 400.

평가 정보는 블록체인 네트워크(400)를 구성하는 제 2 노드(200)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크(400)를 통해 획득된 결과물에 대한 평가를 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.Evaluation information is generated in the second node 200 constituting the blockchain network 400 through evaluation of the results obtained through the blockchain network 400 based on predetermined evaluation criteria, and the blockchain network It can be sent to (400).

평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400)에서, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트에 의해 평가 정보에 대응되는 보상을 상기 제 1 노드에 지급하도록 결정될 수 있다.When the validity of the generation of evaluation information is verified, the blockchain network 400 may decide to pay compensation corresponding to the evaluation information to the first node by a smart contract stored on the blockchain network 400. .

제 3 노드(300)는 공격 라이브러리의 수집에 관한 평가 정보의 경우, 공격 라이브러리의 수집에 대해 합의된 점수 시스템(예를 들어, [표 2] 등)에 기초하여 점수 및/또는 보상 지급 내역 중 적어도 하나를 검증할 수 있다.In the case of evaluation information regarding the collection of the attack library, the third node 300 provides points and/or compensation payment details based on a scoring system agreed upon for the collection of the attack library (e.g., [Table 2], etc.). At least one can be verified.

제 3 노드(300)는 위협의 식별에 관한 평가 정보의 경우, 위협의 식별에 대해 합의된 점수 시스템(예를 들어, [표 3] 등)에 기초하여 점수 및/또는 보상 지급 내역 중 적어도 하나를 검증할 수 있다.In the case of evaluation information regarding the identification of a threat, the third node 300 provides at least one of points and/or compensation payment details based on a scoring system agreed upon for identification of the threat (e.g., [Table 3], etc.) can be verified.

제 3 노드(300)는 공격 시나리오의 작성에 관한 평가 정보의 경우, 공격 시나리오의 작성에 대해 합의된 점수 시스템(예를 들어, [표 4] 등)에 기초하여 점수 및/또는 보상 지급 내역 중 적어도 하나를 검증할 수 있다.In the case of evaluation information regarding the creation of an attack scenario, the third node 300 provides points and/or compensation payment details based on a scoring system agreed upon for the creation of the attack scenario (e.g., [Table 4], etc.). At least one can be verified.

제 3 노드(300)는 위험도의 평가에 관한 평가 정보의 경우, 블록체인 네트워크(400)에 포함된 복수의 노드들의 투표 결과를 기준으로 검증할 수 있다.The third node 300 can verify evaluation information regarding risk assessment based on the voting results of a plurality of nodes included in the blockchain network 400.

제 3 노드(300)는 완화대책 마련에 관한 평가 정보의 경우, 블록체인 네트워크(400)에 포함된 복수의 노드들의 투표 결과를 기준으로 검증할 수 있다.The third node 300 can verify evaluation information regarding the preparation of mitigation measures based on the voting results of a plurality of nodes included in the blockchain network 400.

블록체인 네트워크(400)는 블록체인 기술에 기반하여 동작하는 복수의 노드들(예를 들어, 제 1 노드(100), 제 2 노드(200), 제 3 노드(300) 등)을 포함할 수 있다. 블록체인 기술은 블록들 또는 이벤트들이 서로 연결된 저장 구조 또는 트랜잭션들이 서로 연결된 저장 구조를 사용하여, 관리 대상인 데이터를 복수의 노드들에 분산 저장하는 임의의 형태의 분산 원장(distributed ledger) 기술일 수 있다. 본 개시내용의 일 실시예에 따른 블록체인 네트워크는 DAG(Directed Acyclic Graph) 기술을 기반한 임의의 형태의 분산 원장 기술들에 따라서 동작할 수도 있다.The blockchain network 400 may include a plurality of nodes (e.g., first node 100, second node 200, third node 300, etc.) operating based on blockchain technology. there is. Blockchain technology can be any form of distributed ledger technology that distributes and stores data subject to management across multiple nodes using a storage structure in which blocks or events are connected to each other, or a storage structure in which transactions are connected to each other. . A blockchain network according to an embodiment of the present disclosure may operate according to any form of distributed ledger technologies based on Directed Acyclic Graph (DAG) technology.

본 개시내용의 일 실시예에서, 블록체인 네트워크에서의 노드들은 아키텍처 계층(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 first node 100, users of the second node 200, users of the third node 300, users of the customer node, etc.) to perform threat modeling. It may be an interface (eg, user interface, etc.). Clients can run without relying on a central server.

모듈은 사용자 관리 모듈(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 blockchain network 400 within the blockchain network 400. The voting module may generate results for votes performed.

블록체인 계층은 중간 계층으로서 블록체인 네트워크(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 blockchain network 400. Programs in the application layer can be compiled and then transmitted to the blockchain layer. At least one miner included in the blockchain layer can check the program received from the application layer. Programs verified by miners can be written on the blockchain. A miner may be an individual or company node that participates in the blockchain network to pursue maximum personal benefit. Miners can stabilize the blockchain network 400 and prevent sybil attacks in the process of pursuing profits.

저장 계층은 작업의 실제 데이터 값을 저장할 수 있다. 저장 계층에 사용되는 저장 공간은 특정되지 않을 수 있다. 실제 데이터 값들은 소유자의 개인키로 서명되어 저장될 수 있다.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 blockchain network 400 according to an embodiment in the present disclosure is a public blockchain network in which arbitrary nodes can perform consensus operations, or only predetermined nodes can perform consensus operations. It can include private or consortium blockchain networks. However, the blockchain network 400 is not limited to this.

본 개시내용에서의 블록체인 네트워크에서 수행되는 합의 알고리즘은 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 communication network 500 may include any wired or wireless communication network capable of transmitting and receiving at least one of any form of data, signal, and/or information. For example, the network 300 transmits task requests, results of threat modeling, evaluation information, and verification information between the first node 100, the second node 200, the third node 300, and the blockchain network 400. It may include a wired or wireless communication network capable of transmitting and receiving, etc.

도 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 application layer 10, a blockchain layer 20, and/or a storage layer 30.

애플리케이션 계층(10)은 클라이언트(client), 모듈, 프로그램 컴파일러(program compiler) 등을 포함할 수 있다. The application layer 10 may include a client, a module, a program compiler, etc.

블록체인 계층(20)은 중간 계층으로서 네트워크(예를 들어, 블록체인 네트워크(400))에서 합의 알고리즘(합의 프로토콜(consensus protocol))을 통해 합의를 제공하고, 트랜잭션(transaction)을 통해 상태 머신(state machine)을 실행할 수 있다. 애플리케이션 계층(10)의 프로그램은 컴파일 된 후 블록체인 계층(20)으로 전송될 수 있다. 블록체인 계층(20)에 포함된 적어도 하나의 마이너(miner)는 애플리케이션 계층(10)으로부터 수신한 프로그램을 확인할 수 있다. 마이너들을 통해 확인된 프로그램은 블록체인에 작성될 수 있다. 마이너는 개인의 최대 이익 추구를 위해 블록체인 네트워크에 참여하는 개인 또는 회사의 노드일 수 있다. 마이너는 이익 추구 과정에서 블록체인 네트워크(400)를 안정화시키고 시빌 공격(sybil attack)을 방지할 수 있다.The blockchain layer 20 is an intermediate layer that provides consensus through a consensus algorithm (consensus protocol) in a network (e.g., blockchain network 400) and operates a state machine ( state machine) can be executed. The program of the application layer 10 may be compiled and then transmitted to the blockchain layer 20. At least one miner included in the blockchain layer 20 can check the program received from the application layer 10. Programs verified by miners can be written on the blockchain. A miner may be an individual or company node that participates in the blockchain network to pursue maximum personal benefit. Miners can stabilize the blockchain network 400 and prevent sybil attacks in the process of pursuing profits.

저장 계층(30)은 작업의 실제 데이터 값을 저장할 수 있다. 저장 계층(30)에 사용되는 저장 공간(storage)은 특정되지 않을 수 있다. 실제 데이터 값들은 소유자의 개인키로 서명되어 저장될 수 있다. 도 2를 통해서 설명되지 않은 아키텍처 계층 구조의 상세한 설명은 도 1을 통해서 전술한 아키텍처 계층 구조의 내용으로 대체될 수 있다.The storage layer 30 may store the actual data values of the task. The storage space used for the storage layer 30 may not be specified. Actual data values can be signed and stored with the owner's private key. A detailed description of the architectural hierarchy not explained in FIG. 2 can be replaced with the contents of the architectural hierarchy described above in FIG. 1 .

도 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 first node 100 may obtain a task request including data required to perform threat modeling through the blockchain network 400 (S110).

데이터는 데이터 흐름도를 포함하는 시스템 모델의 데이터 또는 아키텍처의 데이터 중 적어도 하나를 포함할 수 있다.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 first node 100 may generate a result of threat modeling performed based on data (S120).

위협 모델링의 결과물은 시스템 모델의 작성에 관한 작업 정보, 공격 라이브러리의 수집에 관한 작업 정보, 위협의 식별에 관한 작업 정보, 공격 시나리오의 작성에 관한 작업 정보, 위험도의 평가에 관한 작업 정보 및 완화대책 마련에 관한 작업 정보 중 적어도 하나를 포함할 수 있다.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 first node 100 may transmit the result of threat modeling to the blockchain network 400 so that evaluation information about the result and verification information about the evaluation information can be generated (S130).

평가 정보는 블록체인 네트워크(400)를 구성하는 제 2 노드(200)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크(400)를 통해 획득된 결과물에 대한 평가를 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.Evaluation information is generated in the second node 200 constituting the blockchain network 400 through evaluation of the results obtained through the blockchain network 400 based on predetermined evaluation criteria, and the blockchain network It can be sent to (400).

사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 시스템 모델의 작성에 관한 작업 정보의 경우, 시스템 모델의 수준, 시스템 모델의 객체 작성 여부 및 시스템 모델의 데이터 흐름 작성 여부를 기준으로 할 수 있다.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 blockchain network 400 in the case of work information regarding risk assessment included in the result of threat modeling.

사전 결정된 평가 기준은 위협 모델링의 결과물에 포함된 완화대책 마련에 관한 작업 정보의 경우, 블록체인 네트워크(400)에 포함된 복수의 노드들의 투표 결과를 기준으로 할 수 있다.The predetermined evaluation criteria may be based on the voting results of a plurality of nodes included in the blockchain network 400 in the case of work information regarding the preparation of mitigation measures included in the results of threat modeling.

검증 정보는 블록체인 네트워크(400)를 구성하는 제 3 노드(300)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크(400)를 통해 획득된 평가 정보의 생성의 유효성에 대한 검증을 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.Verification information is generated by the third node 300 constituting the blockchain network 400 through verification of the validity of the generation of evaluation information obtained through the blockchain network 400 based on predetermined evaluation criteria. , and can be transmitted to the blockchain network 400.

평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트에 의해 평가 정보에 대응되는 보상을 제 1 노드에 지급하도록 결정될 수 있다.When the validity of the generation of evaluation information is verified, a smart contract stored on the blockchain network 400 may determine to pay compensation corresponding to the evaluation information to the first node.

도 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 second node 200 can obtain the results of threat modeling performed based on data through the blockchain network (S210).

위협 모델링의 결과물은 블록체인 네트워크(400)를 구성하는 제 1 노드(100)에서, 블록체인 네트워크(400)를 통해 획득된 데이터를 포함하는 작업 요청에 응답하여, 데이터에 기초한 수행을 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.The result of threat modeling is generated by the first node 100 constituting the blockchain network 400 through data-based performance in response to a task request containing data obtained through the blockchain network 400. , and can be transmitted to the blockchain network 400.

제 2 노드(200)는 사전 결정된 평가 기준에 기초하여 결과물에 대한 평가를 통해 평가 정보를 생성할 수 있다(S220).The second node 200 may generate evaluation information by evaluating the results based on predetermined evaluation criteria (S220).

제 2 노드(200)는 평가 정보에 대한 검증 정보가 생성될 수 있도록, 평가 정보를 블록체인 네트워크(400)에 전송할 수 있다(S230). The second node 200 may transmit the evaluation information to the blockchain network 400 so that verification information for the evaluation information can be generated (S230).

검증 정보는 블록체인 네트워크(400)를 구성하는 제 3 노드(300)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크(400)를 통해 획득된 평가 정보의 생성의 유효성에 대한 검증을 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.Verification information is generated by the third node 300 constituting the blockchain network 400 through verification of the validity of the generation of evaluation information obtained through the blockchain network 400 based on predetermined evaluation criteria. , and can be transmitted to the blockchain network 400.

평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트에 의해 평가 정보에 대응되는 보상을 제 1 노드(100)에 지급하도록 결정될 수 있다.When the validity of the generation of the evaluation information is verified, a smart contract stored on the blockchain network 400 may determine to pay compensation corresponding to the evaluation information to the first node 100.

도 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 third node 300 can obtain evaluation information generated through evaluation of the results of threat modeling based on predetermined evaluation criteria through the blockchain network 400 (S310).

위협 모델링의 결과물은 블록체인 네트워크(400)를 구성하는 제 1 노드(100)에서, 블록체인 네트워크(400)를 통해 획득된 데이터를 포함하는 작업 요청에 응답하여, 데이터에 기초한 수행을 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.The result of threat modeling is generated by the first node 100 constituting the blockchain network 400 through data-based performance in response to a task request containing data obtained through the blockchain network 400. , and can be transmitted to the blockchain network 400.

제 3 노드(300)는 사전 결정된 평가 기준에 기초하여 평가 정보의 생성의 유효성에 대한 검증을 통해 검증 정보를 생성할 수 있다(S320).The third node 300 may generate verification information by verifying the validity of the generation of the evaluation information based on predetermined evaluation criteria (S320).

평가 정보는 블록체인 네트워크(400)를 구성하는 제 2 노드(200)에서, 사전 결정된 평가 기준에 기초하여 블록체인 네트워크(400)를 통해 획득된 결과물에 대한 평가를 통해 생성되고, 그리고 블록체인 네트워크(400)에 전송될 수 있다.Evaluation information is generated in the second node 200 constituting the blockchain network 400 through evaluation of the results obtained through the blockchain network 400 based on predetermined evaluation criteria, and the blockchain network It can be sent to (400).

제 3 노드(300)는 검증 정보를 블록체인 네트워크(400)에 전송할 수 있다(S330).The third node 300 may transmit verification information to the blockchain network 400 (S330).

평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트에 의해 평가 정보에 대응되는 보상을 제 1 노드(100)에 지급하도록 결정될 수 있다.When the validity of the generation of the evaluation information is verified, a smart contract stored on the blockchain network 400 may determine to pay compensation corresponding to the evaluation information to the first node 100.

도 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 blockchain network 400 may receive a task request containing data required to perform threat modeling from a customer node. Accordingly, work requests may be posted on the blockchain network 400.

제 1 노드(100)는 블록체인 네트워크(400)를 통해 작업 요청을 획득할 수 있다(S411).The first node 100 may obtain a work request through the blockchain network 400 (S411).

제 1 노드(100)는 작업 요청에 응답하여, 위협 모델링의 결과물을 생성할 수 있다(S412).The first node 100 may respond to the task request and generate a threat modeling result (S412).

제 1 노드(100)는 위협 모델링의 결과물을 블록체인 네트워크(400)에 전송할 수 있다(S413). 예를 들어, 제 1 노드(100)는 사전 결정된 마감 기한 내에 위협 모델링의 결과물을 블록체인 네트워크(400)에 전송할 수 있다. 따라서, 위협 모델링의 결과물은 블록체인 네트워크(400) 상에 게시될 수도 있다.The first node 100 may transmit the result of threat modeling to the blockchain network 400 (S413). For example, the first node 100 may transmit the results of threat modeling to the blockchain network 400 within a predetermined deadline. Accordingly, the results of threat modeling may be posted on the blockchain network 400.

제 2 노드(200)는 위협 모델링의 결과물을 블록체인 네트워크(400)를 통해 획득할 수 있다(S421).The second node 200 can obtain the results of threat modeling through the blockchain network 400 (S421).

제 2 노드(200)는 사전 결정된 평가 기준에 기초하여 결과물에 대한 평가를 통해 평가 정보를 생성할 수 있다(S422).The second node 200 may generate evaluation information by evaluating the results based on predetermined evaluation criteria (S422).

제 2 노드(200)는 평가 정보를 블록체인 네트워크(423)에 전송할 수 있다. 따라서, 평가 정보는 블록체인 네트워크(400) 상에 게시될 수도 있다.The second node 200 may transmit evaluation information to the blockchain network 423. Accordingly, evaluation information may be posted on the blockchain network 400.

제 3 노드(300)는 평가 정보를 블록체인 네트워크(400)를 통해 획득할 수 있다(S431).The third node 300 can obtain evaluation information through the blockchain network 400 (S431).

제 3 노드(300)는 사전 결정된 평가 기준에 기초하여 평가 정보의 생성의 유효성에 대한 검증을 통해 검증 정보를 생성할 수 있다(S432).The third node 300 may generate verification information by verifying the validity of the generation of the evaluation information based on predetermined evaluation criteria (S432).

제 3 노드(300)는 검증 정보를 블록체인 네트워크(400)에 전송할 수 있다(S433). 따라서, 검증 정보는 블록체인 네트워크(400) 상에 게시될 수도 있다.The third node 300 may transmit verification information to the blockchain network 400 (S433). Accordingly, verification information may be posted on the blockchain network 400.

블록체인 네트워크(400)는 검증 정보에 기초하여 평가 정보의 생성에 대한 유효성 검증을 확인할 수 있다(S441).The blockchain network 400 can confirm the validity of the generation of evaluation information based on the verification information (S441).

블록체인 네트워크(400)는 평가 정보의 생성에 대한 유효성이 검증된 경우, 블록체인 네트워크(400) 상에 저장된 스마트 컨트랙트에 의해 평가 정보에 대응되는 보상을 제 1 노드(100)에 지급할 수 있다(S442).When the validity of the generation of evaluation information is verified, the blockchain network 400 can pay compensation corresponding to the evaluation information to the first node 100 by a smart contract stored on the blockchain network 400. (S442).

도 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 first node 100, the second node 200, the third node 300, the blockchain network 400, etc.) It can be replaced with the content previously described with reference to FIGS. 1 and 2.

도 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 blockchain network 400 according to some embodiments of the present disclosure (e.g., the first node 100, the second node 200) , the third node 300) pays compensation according to the participation of participating nodes through a fair compensation system using blockchain and smart contracts, thereby increasing the participation of experts in each field in threat modeling. In addition, the nodes constituting the blockchain network 400 according to some embodiments of the present disclosure (e.g., the first node 100, the second node 200, and the third node 300) receive compensation. By encouraging the participation of multiple nodes, the best results can be achieved.

도 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 computer 1102, which includes a processing unit 1104, a system memory 1106, and a system bus 1108. do. System bus 1108 couples system components, including but not limited to system memory 1106, to processing unit 1104. Processing unit 1104 may be any of a variety of commercially available processors. Dual processors and other multiprocessor architectures may also be used as processing unit 1104.

시스템 버스(1108)는 메모리 버스, 주변장치 버스, 및 다양한 상용 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스에 추가적으로 상호 연결될 수 있는 몇 가지 유형의 버스 구조 중 임의의 것일 수 있다. 시스템 메모리(1106)는 판독 전용 메모리(ROM)(1110) 및 랜덤 액세스 메모리(RAM)(1112)를 포함한다. 기본 입/출력 시스템(BIOS)은 ROM, EPROM, EEPROM 등의 비휘발성 메모리(1110)에 저장되며, 이 BIOS는 시동 중과 같은 때에 컴퓨터(1102) 내의 구성요소들 간에 정보를 전송하는 일을 돕는 기본적인 루틴을 포함한다. RAM(1112)은 또한 데이터를 캐싱하기 위한 정적 RAM 등의 고속 RAM을 포함할 수 있다.System bus 1108 may be any of several types of bus structures that may further be interconnected to a memory bus, peripheral bus, and local bus using any of a variety of commercial bus architectures. System memory 1106 includes read only memory (ROM) 1110 and random access memory (RAM) 1112. The basic input/output system (BIOS) is stored in non-volatile memory 1110, such as ROM, EPROM, and EEPROM, and is a basic input/output system that helps transfer information between components within the computer 1102, such as during startup. Contains routines. RAM 1112 may also include high-speed RAM, such as static RAM, for caching data.

컴퓨터(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 인터페이스 기술 중 적어도 하나 또는 그 둘 다를 포함한다.Computer 1102 may also include an internal hard disk drive (HDD) 1114 (e.g., EIDE, SATA)—the internal hard disk drive 1114 may also be configured for external use within a suitable chassis (not shown). Yes - a magnetic floppy disk drive (FDD) 1116 (e.g., for reading from or writing to a removable diskette 1118), and an optical disk drive 1120 (e.g., a CD-ROM for reading the disk 1122 or reading from or writing to other high-capacity optical media such as DVDs). Hard disk drive 1114, magnetic disk drive 1116, and optical disk drive 1120 are connected to system bus 1108 by hard disk drive interface 1124, magnetic disk drive interface 1126, and optical drive interface 1128, respectively. ) can be connected to. The interface 1124 for implementing an external drive includes at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.

이들 드라이브 및 그와 연관된 컴퓨터 판독가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어, 기타 등등의 비휘발성 저장을 제공한다. 컴퓨터(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 computer 1102, drive and media correspond to storing any data in a suitable digital format. Although the description of computer-readable media above refers to removable optical media such as HDDs, removable magnetic disks, and CDs or DVDs, those skilled in the art will also recognize removable optical media such as zip drives, magnetic cassettes, flash memory cards, cartridges, etc. It will be appreciated that other types of computer-readable media, such as the like, may also be used in the example operating environment and that any such media may contain computer-executable instructions for performing the methods of the present disclosure.

운영 체제(1130), 하나 이상의 애플리케이션 프로그램(1132), 기타 프로그램 모듈(1134) 및 프로그램 데이터(1136)를 비롯한 다수의 프로그램 모듈이 드라이브 및 RAM(1112)에 저장될 수 있다. 운영 체제, 애플리케이션, 모듈 및/또는 데이터의 전부 또는 그 일부분이 또한 RAM(1112)에 캐싱될 수 있다. 본 개시가 여러가지 상업적으로 이용가능한 운영 체제 또는 운영 체제들의 조합에서 구현될 수 있다는 것을 잘 알 것이다.A number of program modules may be stored in drives and RAM 1112, including an operating system 1130, one or more application programs 1132, other program modules 1134, and program data 1136. All or portions of the operating system, applications, modules and/or data may also be cached in RAM 1112. It will be appreciated that the present disclosure may be implemented on various commercially available operating systems or combinations of operating systems.

사용자는 하나 이상의 유선/무선 입력 장치, 예를 들어, 키보드(1138) 및 마우스(1140) 등의 포인팅 장치를 통해 컴퓨터(1102)에 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시 생략)로는 마이크, IR 리모콘, 조이스틱, 게임 패드, 스타일러스 펜, 터치 스크린, 기타 등등이 있을 수 있다. 이들 및 기타 입력 장치가 종종 시스템 버스(1108)에 연결되어 있는 입력 장치 인터페이스(1142)를 통해 처리 장치(1104)에 연결되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스, 기타 등등의 기타 인터페이스에 의해 연결될 수 있다.A user may enter commands and information into computer 1102 through one or more wired/wireless input devices, such as a keyboard 1138 and a pointing device such as mouse 1140. Other input devices (not shown) may include microphones, IR remote controls, joysticks, game pads, stylus pens, touch screens, etc. These and other input devices are connected to the processing unit 1104 through an input device interface 1142, which is often connected to the system bus 1108, but may also include a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, It can be connected by other interfaces, etc.

모니터(1144) 또는 다른 유형의 디스플레이 장치도 역시 비디오 어댑터(1146) 등의 인터페이스를 통해 시스템 버스(1108)에 연결된다. 모니터(1144)에 부가하여, 컴퓨터는 일반적으로 스피커, 프린터, 기타 등등의 기타 주변 출력 장치(도시 생략)를 포함한다.A monitor 1144 or other type of display device is also connected to system bus 1108 through an interface, such as a video adapter 1146. In addition to monitor 1144, computers typically include other peripheral output devices (not shown) such as speakers, printers, etc.

컴퓨터(1102)는 유선 및/또는 무선 통신을 통한 원격 컴퓨터(들)(1148) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(들)(1148)는 워크스테이션, 컴퓨팅 디바이스 컴퓨터, 라우터, 퍼스널 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 오락 기기, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있으며, 일반적으로 컴퓨터(1102)에 대해 기술된 구성요소들 중 다수 또는 그 전부를 포함하지만, 간략함을 위해, 메모리 저장 장치(1150)만이 도시되어 있다. 도시되어 있는 논리적 연결은 근거리 통신망(LAN)(1152) 및/또는 더 큰 네트워크, 예를 들어, 원거리 통신망(WAN)(1154)에의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 일반적인 것이며, 인트라넷 등의 전사적 컴퓨터 네트워크(enterprise-wide computer network)를 용이하게 해주며, 이들 모두는 전세계 컴퓨터 네트워크, 예를 들어, 인터넷에 연결될 수 있다.Computer 1102 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 1148, via wired and/or wireless communications. Remote computer(s) 1148 may be a workstation, computing device computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other conventional network node, and is generally connected to computer 1102. For simplicity, only memory storage device 1150 is shown, although it includes many or all of the components described. The logical connections depicted include wired/wireless connections to a local area network (LAN) 1152 and/or a larger network, such as a wide area network (WAN) 1154. These LAN and WAN networking environments are common in offices and companies and facilitate enterprise-wide computer networks, such as intranets, all of which can be connected to a worldwide computer network, such as the Internet.

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, computer 1102 is connected to local network 1152 through wired and/or wireless communication network interfaces or adapters 1156. Adapter 1156 may facilitate wired or wireless communication to LAN 1152, which also includes a wireless access point installed thereon for communicating with wireless adapter 1156. When used in a WAN networking environment, the computer 1102 may include a modem 1158 or be connected to a communicating computing device on the WAN 1154 or to establish communications over the WAN 1154, such as via the Internet. Have other means. Modem 1158, which may be internal or external and a wired or wireless device, is coupled to system bus 1108 via serial port interface 1142. In a networked environment, program modules described for computer 1102, or portions thereof, may be stored in remote memory/storage device 1150. It will be appreciated that the network connections shown are exemplary and that other means of establishing a communications link between computers may be used.

컴퓨터(1102)는 무선 통신으로 배치되어 동작하는 임의의 무선 장치 또는 개체, 예를 들어, 프린터, 스캐너, 데스크톱 및/또는 휴대용 컴퓨터, PDA(portable data assistant), 통신 위성, 무선 검출가능 태그와 연관된 임의의 장비 또는 장소, 및 전화와 통신을 하는 동작을 한다. 이것은 적어도 Wi-Fi 및 블루투스 무선 기술을 포함한다. 따라서, 통신은 종래의 네트워크에서와 같이 미리 정의된 구조이거나 단순하게 적어도 2개의 장치 사이의 애드혹 통신(ad hoc communication)일 수 있다.Computer 1102 may be associated with any wireless device or object deployed and operating in wireless communications, such as a printer, scanner, desktop and/or portable computer, portable data assistant (PDA), communications satellite, wirelessly detectable tag. Performs actions to communicate with any device or location and telephone. This includes at least Wi-Fi and Bluetooth wireless technologies. Accordingly, communication may be a predefined structure as in a conventional network or may simply be ad hoc communication between at least two devices.

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)

블록체인 네트워크를 구성하는 제 1 노드에 의해 수행되는 위협 모델링 방법으로서,
위협 모델링의 수행에 요구되는 데이터를 포함하는 작업 요청을 상기 블록체인 네트워크를 통해 획득하는 단계;
상기 작업 요청에 응답하여, 상기 데이터에 기초하여 수행된 위협 모델링의 결과물을 생성하는 단계; 및
상기 결과물에 대한 평가 정보 및 상기 평가 정보에 대한 검증 정보가 생성될 수 있도록, 상기 위협 모델링의 결과물을 상기 블록체인 네트워크에 전송하는 단계;
를 포함하고,
상기 평가 정보는,
상기 블록체인 네트워크를 구성하는 제 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.
제 1 항에 있어서,
상기 데이터는,
데이터 흐름도(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.
제 1 항에 있어서,
상기 위협 모델링의 결과물은,
시스템 모델의 작성에 관한 작업 정보, 공격 라이브러리의 수집에 관한 작업 정보, 위협의 식별에 관한 작업 정보, 공격 시나리오의 작성에 관한 작업 정보, 위험도의 평가에 관한 작업 정보 및 완화대책 마련에 관한 작업 정보 중 적어도 하나를 포함하는,
방법.
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.
제 1 항에 있어서,
상기 평가 정보는,
상기 위협 모델링의 결과물에 포함된 작업 정보별로 각각 평가되어 산출된 점수(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.
제 1 항에 있어서,
상기 사전 결정된 평가 기준은,
상기 위협 모델링의 결과물에 포함된 시스템 모델의 작성에 관한 작업 정보의 경우, 상기 시스템 모델의 수준, 상기 시스템 모델의 객체 작성 여부 및 상기 시스템 모델의 데이터 흐름 작성 여부를 기준으로 하는,
방법.
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.
제 1 항에 있어서,
상기 사전 결정된 평가 기준은,
상기 위협 모델링의 결과물에 포함된 공격 라이브러리의 수집에 관한 작업 정보의 경우, 상기 공격 라이브러리의 공통 취약점 등급 시스템(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.
제 1 항에 있어서,
상기 사전 결정된 평가 기준은,
상기 위협 모델링의 결과물에 포함된 위협의 식별에 관한 작업 정보의 경우, 타겟에 대한 위협 정도를 기준으로 하는,
방법.
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.
제 1 항에 있어서,
상기 사전 결정된 평가 기준은,
상기 위협 모델링의 결과물에 포함된 공격 시나리오의 작성에 관한 작업 정보의 경우, 공격 트리 각 항목의 개수 및 유효 공격 시나리오 작성 여부를 기준으로 하는,
방법.
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.
제 1 항에 있어서,
상기 사전 결정된 평가 기준은,
상기 위협 모델링의 결과물에 포함된 위험도의 평가에 관한 작업 정보의 경우, 상기 블록체인 네트워크에 포함된 복수의 노드들의 투표 결과를 기준으로 하는,
방법.
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.
삭제delete 블록체인 네트워크를 구성하는 제 2 노드에 의해 수행되는 위협 모델링 방법으로서,
데이터에 기초하여 수행된 위협 모델링의 결과물을 상기 블록체인 네트워크를 통해 획득하는 단계;
사전 결정된 평가 기준에 기초하여 상기 결과물에 대한 평가를 통해 평가 정보를 생성하는 단계; 및
상기 평가 정보에 대한 검증 정보가 생성될 수 있도록, 상기 평가 정보를 상기 블록체인 네트워크에 전송하는 단계;
를 포함하고,
상기 위협 모델링의 결과물은,
상기 블록체인 네트워크를 구성하는 제 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.
블록체인 네트워크를 구성하는 제 3 노드에 의해 수행되는 위협 모델링 방법으로서,
사전 결정된 평가 기준에 기초하여, 위협 모델링의 결과물에 대한 평가를 통해 생성된 평가 정보를 상기 블록체인 네트워크를 통해 획득하는 단계;
상기 사전 결정된 평가 기준에 기초하여 상기 평가 정보의 생성의 유효성에 대한 검증을 통해 검증 정보를 생성하는 단계; 및
상기 검증 정보를 상기 블록체인 네트워크에 전송하는 단계;
를 포함하고,
상기 위협 모델링의 결과물은,
상기 블록체인 네트워크를 구성하는 제 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.
KR1020220098296A 2021-08-30 2022-08-08 Method for threat modeling using blockchain technology KR102635720B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210114588 2021-08-30
KR1020210114588 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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
Dwivedi et al. Blockchain‐based internet of things and industrial IoT: a comprehensive survey
Alblooshi et al. Blockchain-based ownership management for medical IoT (MIoT) devices
Andrew et al. Blockchain for healthcare systems: Architecture, security challenges, trends and future directions
US20230006976A1 (en) Systems and Method for Providing Security Against Deception and Abuse in Distributed and Tokenized Environments
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
US20230100422A1 (en) Systems and Methods for Transaction Management in NFT-Directed Environments
US20240048582A1 (en) Blockchain data breach security and cyberattack prevention
Dash et al. Artificial intelligence models for blockchain-based intelligent networks systems: Concepts, methodologies, tools, and applications
Barati et al. Privacy‐aware cloud ecosystems: Architecture and performance
Ehioghae et al. Enhanced drug anti-counterfeiting and verification system for the pharmaceutical drug supply chain using blockchain
Chaudhry et al. Zero‐trust‐based security model against data breaches in the banking sector: A blockchain consensus algorithm
Wu et al. Dependable public ledger for policy compliance, a blockchain based approach
Mansoor et al. A Review of Blockchain Approaches for KYC
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
KR20230156129A (en) Blockchain-based responsible distributed computing system
Lisi et al. Automated responsible disclosure of security vulnerabilities
Stampernas Blockchain technologies and smart contracts in the context of the Internet of Things
KR20210101869A (en) Credit evaluation techniques based on zero-knowledge proof
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

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