KR100990688B1 - Method and Apparatus for Analyzing Security of Software - Google Patents

Method and Apparatus for Analyzing Security of Software Download PDF

Info

Publication number
KR100990688B1
KR100990688B1 KR1020090017163A KR20090017163A KR100990688B1 KR 100990688 B1 KR100990688 B1 KR 100990688B1 KR 1020090017163 A KR1020090017163 A KR 1020090017163A KR 20090017163 A KR20090017163 A KR 20090017163A KR 100990688 B1 KR100990688 B1 KR 100990688B1
Authority
KR
South Korea
Prior art keywords
node
attack
software
software model
state
Prior art date
Application number
KR1020090017163A
Other languages
Korean (ko)
Other versions
KR20100098141A (en
Inventor
윤현상
이준훈
조병일
이은석
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020090017163A priority Critical patent/KR100990688B1/en
Publication of KR20100098141A publication Critical patent/KR20100098141A/en
Application granted granted Critical
Publication of KR100990688B1 publication Critical patent/KR100990688B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/22Design optimisation, verification or simulation using Petri net models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Stored Programmes (AREA)

Abstract

소프트웨어 보안 분석 방법 및 장치가 개시된다. 본 발명의 일 실시 예에 따르는 HCPN(계층형 페트리 네트, Hierarchically Combined Petri Net) 형태의 제1 소프트웨어 모델을 이용하는 소프트웨어 보안 분석 방법은, HCPN 형태의 제1 소프트웨어 모델을 MRM(마르코프 보상 모형, Markov Reward Model) 형태의 제2 소프트웨어 모델로 변환하는 단계 및 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 단계를 포함할 수 있다. 본 발명의 일 실시 예에 따르면 소프트웨어 보안을 설계 단계에서 정량적으로 분석 및 검증할 수 있는 방법 및 장치를 제공할 수 있다.A method and apparatus for analyzing software security are disclosed. Software security analysis method using a first software model in the form of HCPN (Hierarchically Combined Petri Net) according to an embodiment of the present invention, the first software model in the form of HCPN MRM (Markov Reward, Markov Reward) The method may include converting into a second software model in the form of Model) and extracting quantitative security performance using the second software model. According to an embodiment of the present invention, a method and apparatus for quantitatively analyzing and verifying software security at the design stage may be provided.

보안, 공격 트리, 마르코프 보상 모형, HCPN, HQPN, 공격 시나리오 Security, Attack Tree, Markov Reward Model, HCPN, HQPN, Attack Scenario

Description

소프트웨어 보안 분석 방법 및 장치{Method and Apparatus for Analyzing Security of Software}Method and Apparatus for Software Security Analysis {Method and Apparatus for Analyzing Security of Software}

본 발명은 소프트웨어 보안 분석 방법 및 장치에 관한 것으로, 더욱 상세하게는 소프트웨어의 보안을 정량적으로 분석하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for analyzing software security, and more particularly, to a method and apparatus for quantitatively analyzing security of software.

최근 컴퓨터 관련 산업이 크게 발전하면서, 소프트웨어 산업이 양적으로, 질적으로 성장하고 있다.With the recent development of the computer-related industry, the software industry is growing quantitatively and qualitatively.

소프트웨어 산업이 질적으로 발전하면서, 소프트웨어의 복잡도가 많이 증가하였다. 이에 따라 소프트웨어의 기능적 요구사항(예를 들면, MS Word의 경우 문서 편집이 가능해야 함)뿐만 아니라, 비기능적 요구사항을 만족시키는 것도 중요한 문제가 되고 있다.As the software industry develops qualitatively, the complexity of the software has increased greatly. Accordingly, satisfying not only the functional requirements of the software (for example, document editing in the case of MS Word) but also the non-functional requirements has become an important problem.

소프트웨어는 기능적 요구사항을 당연히 만족하면서 비기능적인 요구사항들도 만족시켜야 한다. 소프트웨어의 비기능적인 요소들 중에는 보안(security) 문제도 있다.Software must meet both functional requirements as well as non-functional requirements. Among the non-functional elements of software are security issues.

소프트웨어의 보안 요구사항은 시스템 개발 라이프 사이클에서 초기에 확정 된다. 하지만, 종래의 소프트웨어 엔지니어링에서 보안 요구사항과 같은 비기능적 요구사항은 시스템 적용 시점에서야 검증될 수 있었다.Software security requirements are established early in the system development life cycle. However, in conventional software engineering, non-functional requirements such as security requirements could only be verified at the time of system application.

그러나 시스템 적용 시점에 소프트웨어가 보안 요구사항을 만족시키지 못한다는 것을 발견하게 되면, 그 보안 요구사항을 만족시키기 위해 소프트웨어의 개발 기간을 추가로 소모하게 되어 개발 기간을 맞추지 못할 수도 있다. 이것은 소프트웨어의 개발 비용을 기하급수적으로 증가시키는 원인이 된다.However, if the software finds that it does not meet the security requirements at the time of system application, it may not be able to meet the development period by consuming additional development period of the software to satisfy the security requirements. This causes an exponential increase in software development costs.

잘못된 보안의 함정에서 벗어나기 위해, 소프트웨어 개발 라이프 사이클의 초기에 보안 요구사항의 만족 여부를 확인할 수 있어야 한다.To escape the pitfalls of false security, it must be possible to ensure that security requirements have been met early in the software development life cycle.

본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로, 소프트웨어 보안을 설계 단계에서 정량적으로 분석 및 검증할 수 있는 방법 및 장치를 제공하는 데 그 목적이 있다.The present invention has been proposed to solve the above problems, and an object thereof is to provide a method and apparatus for quantitatively analyzing and verifying software security at the design stage.

본 발명의 일 측면에 따르면, 소프트웨어 보안 분석 방법이 제공된다.According to one aspect of the invention, a software security analysis method is provided.

본 발명의 일 실시 예에 따르는 HCPN(계층형 페트리 네트, Hierarchically Combined Petri Net) 형태의 제1 소프트웨어 모델을 이용하는 소프트웨어 보안 분석 방법은 상기 HCPN 형태의 제1 소프트웨어 모델을 MRM(마르코프 보상 모형, Markov Reward Model) 형태의 제2 소프트웨어 모델로 변환하는 단계 및 상기 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 단계를 포함할 수 있다.Software security analysis method using a first software model in the form of HCPN (Hierarchically Combined Petri Net) according to an embodiment of the present invention, the first software model in the form of HCPN MRM (Markov Reward, Markov Reward) The method may include converting into a second software model in the form of Model) and extracting quantitative security performance using the second software model.

본 발명의 다른 실시 예에 따르는 공격 트리(attack tree)를 이용하는 소프트웨어 보안 분석 방법은 (a) 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 중 어느 하나가 리프 노드인 경우 상기 제1 노드 및 제2 노드를 병합하는 단계; (b) 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 모두가 OR 노드인 경우 상기 제1 노드 및 상기 제2 노드를 병합하여 OR노드인 제3 노드를 생성하고, 상기 제1 노드의 자식 노드 수와 상기 제2 노드의 자식 노드의 수를 곱한 수만큼의 노드를 상기 제3 노드의 자식 노드로서 생성하는 단계; 공격 트리 상에 AND 노드가 존재하지 않을 때까지 상기 (a) 단계 및 상기 (b) 단계를 반복하는 단계; 및 공격 트리 상에 AND 노드가 존재하지 않을 때 상기 공격 트리의 리프 노드 수를 공격 시나리오 개수로서 추출하는 단계를 포함할 수 있다.Software security analysis method using an attack tree according to another embodiment of the present invention (a) when any one of the first node and the second node which is an operand node of the AND operator on the attack tree is a leaf node Merging the first node and the second node; (b) when both the first node and the second node, which are operand nodes of the AND operator on the attack tree, are OR nodes, merge the first node and the second node to generate a third node, which is an OR node; Creating as a child node of the third node the number of nodes multiplied by the number of child nodes of one node and the number of child nodes of the second node; Repeating steps (a) and (b) until there are no AND nodes on the attack tree; And extracting the number of leaf nodes of the attack tree as the number of attack scenarios when there is no AND node on the attack tree.

또한, 본 발명의 다른 측면에 따르면, 소프트웨어 보안 분석 장치가 제공된다.In addition, according to another aspect of the present invention, a software security analysis apparatus is provided.

본 발명의 일 실시 예에 따르는 HCPN(계층형 페트리 네트, Hierarchically Combined Petri Net) 형태의 제1 소프트웨어 모델을 이용하는 소프트웨어 보안 분석 장치는 상기 HCPN 형태의 제1 소프트웨어 모델을 MRM(마르코프 보상 모형, Markov Reward Model) 형태의 제2 소프트웨어 모델로 변환하는 HCPN/MRM 변환부 및 상기 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 MRM 기반 보안 분석부를 포함할 수 있다.Software security analysis apparatus using a first software model in the form of HCPN (Hierarchically Combined Petri Net) according to an embodiment of the present invention, the first software model in the form of HCPN (Markov Reward, Markov Reward) HCPN / MRM conversion unit for converting into a second software model in the form of a model) and MRM-based security analysis unit for extracting quantitative security performance using the second software model.

본 발명의 다른 실시 예에 따르는 공격 트리(attack tree)를 이용하는 소프트웨어 보안 분석 장치는 (a) 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 중 어느 하나가 리프 노드인 경우 상기 제1 노드 및 제2 노드를 병합하는 작업을 수행하고; (b) 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 모두가 OR 노드인 경우 상기 제1 노드 및 상기 제2 노드를 병합하여 OR노드인 제3 노드를 생성하고, 상기 제1 노드의 자식 노드 수와 상기 제2 노드의 자식 노드의 수를 곱한 수만큼의 노드를 상기 제3 노드의 자식 노드로서 생성하는 작업을 수행하고; 공격 트리 상에 AND 노드가 존재하지 않을 때까지 상기 (a) 작업 및 상기 (b) 작업을 반복 수행하는 공격 트리 개량부; 및 공격 트리 상에 AND 노드가 존재하지 않을 때 상기 공격 트리의 리프 노드 수를 공격 시나리오 개수로서 추출하는 리프 노드 개수 추출부를 포함할 수 있다.Software security analysis apparatus using an attack tree according to another embodiment of the present invention (a) when any one of the first node and the second node which is an operand node of the AND operator on the attack tree is a leaf node; Perform a merging of the first node and the second node; (b) when both the first node and the second node, which are operand nodes of the AND operator on the attack tree, are OR nodes, merge the first node and the second node to generate a third node, which is an OR node; Generating as a child node of the third node the number of nodes multiplied by the number of child nodes of one node and the number of child nodes of the second node; An attack tree improvement unit which repeats the operation (a) and the operation (b) until there is no AND node on the attack tree; And a leaf node number extracting unit extracting the number of leaf nodes of the attack tree as the number of attack scenarios when there is no AND node on the attack tree.

전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features, and advantages other than those described above will become apparent from the following drawings, claims, and detailed description of the invention.

본 발명의 일 실시 예에 따르면, 소프트웨어 보안을 설계 단계에서 정량적으로 분석 및 검증할 수 있는 방법 및 장치를 제공할 수 있다.According to an embodiment of the present disclosure, a method and apparatus for quantitatively analyzing and verifying software security at the design stage may be provided.

이하, 본 발명에 따른 소프트웨어 보안 분석 방법 및 장치의 실시 예를 첨부 도면을 참조하여 상세히 설명하기로 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. Hereinafter, an embodiment of a software security analysis method and apparatus according to the present invention will be described in detail with reference to the accompanying drawings. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all transformations, equivalents, and substitutes included in the spirit and scope of the present invention. In the following description of the present invention, if it is determined that the detailed description of the related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, in the description with reference to the accompanying drawings, the same or corresponding components will be given the same reference numerals and duplicate description thereof will be omitted.

우선, 공격 트리(Attack Tree), 마르코프 보상 모형(MRM: Markov Reward Model) 및 계층형 큐잉 페트리 네트(HQPN: Hierarchically Combined Queueing Petri Net)를 설명한다.First, the Attack Tree, Markov Reward Model (MRM) and Hierarchically Combined Queued Petri Net (HQPN) will be described.

대표적 공격 시나리오 모델링 방법은 공격 트리와 공격 그래프(Attack Graph)를 기반으로 한다. 공격 트리는 공격자의 목표에 기반하여 시스템의 보안을 설명하기 위한 형식적이고 조직적인 테크닉을 제공한다. 공격 트리는 루트 노드(root node)의 위치에 위치하는 목표(goal)와 리프 노드(leaf node)에 위치하는 보조 목표(sub-goal)로 구성된다. 노드 값을 트리의 루트까지 전달하는 것이 가능하다. AND 노드의 값은 그 AND 노드의 모든 자식 노드의 불리언(Boolean) AND 연산 값이고, OR 노드의 값은 그 OR 노드의 모든 자식 노드의 불리언 OR 연산 값이다. 비용 값(cost value)이 고려된다면, AND 노드의 값은 그 AND 노드의 모든 자식 노드의 값의 합이고, OR 노드의 값은 그 OR 노드의 모든 자식 노드의 값 중 최소값이 다.Representative attack scenario modeling methods are based on attack trees and attack graphs. The attack tree provides formal and organizational techniques for describing the security of the system based on the attacker's goals. The attack tree consists of a target located at the root node and a sub-goal located at the leaf node. It is possible to pass node values up to the root of the tree. The value of an AND node is the Boolean AND operation value of all child nodes of the AND node, and the value of the OR node is the Boolean OR operation value of all child nodes of the OR node. If a cost value is taken into account, the value of the AND node is the sum of the values of all child nodes of that AND node, and the value of the OR node is the minimum of all child nodes of that OR node.

마르코프 보상 모형은 일반 추계 모형(general stochastic model)이다. 이것은 시스템의 수행도(performability)를 평가하는데 사용된다. 수행도는 시스템의 신뢰도(dependability) 및 성능(performance) 요소를 측정한 것이다.The Markov compensation model is a general stochastic model. This is used to evaluate the performance of the system. Performance is a measure of the reliability and performance of a system.

{X(t), t≥0}가 스테이트 공간 S와 생성자 행렬 Q={qij}를 가지는 균질적(homogeneous) 유한 스테이트(finite state) 연속 시간 마르코프 연쇄(CTMC: continuous time Markov chain)라고 한다. Pi(t) = P{X(t)=i}가 상기 CTMC가 시점 t에 스테이트 i에 속할 무조건적 확률을 나타낸다고 한다. 그리고 열 벡터 P(t)=[P1(t), P2(t),...,Pn(t)]가 상기 CTMC의 시점 t에서의 순간 스테이트 확률 벡터(transient state probability vector)라고 한다.{X (t), t≥0} is called a homogeneous finite state continuous time Markov chain (CTMC) with state space S and constructor matrix Q = {q ij } . P i (t) = P {X (t) = i} represents the unconditional probability that the CTMC belongs to state i at time t. And the column vector P (t) = [P 1 (t), P 2 (t), ..., P n (t)] is a transient state probability vector at the time point t of the CTMC. do.

상기 CTMC의 순간 속성은 다음 수학식 1과 같이 설명할 수 있다.The instantaneous property of the CTMC can be described as in Equation 1 below.

Figure 112009012478645-pat00001
주어진 P(0)에 대해,
Figure 112009012478645-pat00001
For a given P (0),

여기서 P(0)는 초기 확률 벡터(시점 t=0)이다. 정상 상태(steady-state) 확률 벡터

Figure 112009012478645-pat00002
는 수학식 2를 만족한다.Where P (0) is the initial probability vector (time t = 0). Steady-state probability vector
Figure 112009012478645-pat00002
Satisfies Equation 2.

Figure 112009012478645-pat00003
Figure 112009012478645-pat00003

순간 스테이트 확률뿐 아니라 누적 확률도 종종 관심의 대상이 된다.In addition to instant state probabilities, cumulative probabilities are often of interest.

L(t)를

Figure 112009012478645-pat00004
로 정의한다. 그러면 Li(t)는 기대 구간[0,t)에서 CTMC가 스테이트 i에 속하는 총 기대시간을 나타낸다. L(t)는 다음 수학식 3을 만족한다.L (t)
Figure 112009012478645-pat00004
. L i (t) then represents the total expected time that the CTMC belongs to state i in the expected interval [0, t). L (t) satisfies Equation 3 below.

Figure 112009012478645-pat00005
Figure 112009012478645-pat00005

흡수 스테이트에 도달하기까지의 시간의 측정이 문제된다.The measurement of the time to reach the absorption state is problematic.

QT이 비흡수 스테이트 간의 트랜지션에 상응하는 Q의 부분행렬이라고 한다. 그러면, 흡수 스테이트에 도달하기 전까지의 시간은 비흡수 스테이트의 집합 T에 속하는 스테이트로 제한되어

Figure 112009012478645-pat00006
이 된다. 평균 흡수 시간(MTTA: mean time to absorption)은 수학식 4와 같다.Q T is called the submatrix of Q corresponding to the transition between non-absorbing states. The time before reaching the absorbing state is then limited to states belonging to the set T of the nonabsorbing state.
Figure 112009012478645-pat00006
Becomes Mean time to absorption (MTTA) is shown in Equation 4.

Figure 112009012478645-pat00007
Figure 112009012478645-pat00007

보상율(reward rate) 할당은 보안에 관계된 관심 있는 속성에 의존하게 된 다.The reward rate assignment depends on the attributes of interest related to security.

계층형 큐잉 페트리 네트(HQPN)는 CGSPNs(Coloured Generalized Stochastic Petri Nets)와 큐잉 네트워크(QN, Queueing Network)의 조합으로, 스테이션(station)을 CGSPN의 큐잉 플레이스(Queueing Place)에 숨긴(hideing) 것이다.The hierarchical queuing petri net (HQPN) is a combination of CGSPNs (Coloured Generalized Stochastic Petri Nets) and a queuing network (QN), which hides stations in the CGSPN's queuing place.

HQPN의 엄격한 정의는 아래 표 1과 같다.The strict definition of HQPN is shown in Table 1 below.

HQPN은 9 튜플이다.
HQPN = (S,P,T,C,I+,I-,M0,Q,W) 여기서,
i. CPN = (P,T,C,I+,I-,M0)은 컬러드 페트리 네트(Colored PN)기반의 모델 구성요소
ii. S = (S1,S2,...,Sn)는 다른 HQPN을 포함할 수 있는 서브넷 플레이스(subnet place)의 집합
iii. Q = (Q1,Q2,(q1,...,q|p|)) 여기서,
- Q1은 타임드 큐잉 플레이스(timed queueing place)의 집합
- Q2는 이미디어트 큐잉 플레이스(immediate queueing place)의 집합, 여기서 Q1∩Q2= φ 이다. 그리고 q1은 C(pi)의 모든 컬러를 고려하는 큐의 디스크립션(description)을 나타낸다. 여기서 pi는 키워드 큐잉 플레이스(queueing place)이거나 일반 플레이스(ordinary place)라면 "null"에 해당한다.
iv. W = (W1, W2,(w1,...,w|T|)) 여기서,
- W1⊆T는 타임드 트랜지션(timed transition)의 집합
- W2⊆T는 이미디어트 트랜지션(immediate transition)의 집합이고, W1∩W2= φ 이다.
- W1∪W2= T 이고, ∀c ∈ C(ti)에 대해

Figure 112009012478645-pat00008
이다.
Figure 112009012478645-pat00009
는 ti∈W1인 경우 컬러 c에 따르는 파이어링 딜레이(firing delay)를 특정하는 음의 방향 지수 분포(negative exponential distribution)의 빈도(rate)이고, ti∈W2인 경우 컬러 c에 따르는 상대적 파이어링 주기(firing frequency)를 특정하는 파이어링 웨이트(firing weight)이다.HQPN is 9 tuples.
= HQPN (S, P, T, C, I +, I -, 0 M, Q, W), where
i. CPN = (P, T, C , I +, I -, M 0) is the model component of Colored Petri net (Colored PN) based
ii. S = (S 1 , S 2 , ..., S n ) is a set of subnet places that can contain other HQPNs
iii. Q = (Q 1 , Q 2 , (q 1 , ..., q | p | )) where
Q 1 is a set of timed queueing places
Q 2 is a set of immediate queueing places, where Q 1 ∩ Q 2 = φ. And q 1 represents the description of the queue taking into account all the colors of C (p i ). Where p i corresponds to "null" if the keyword is a queuing place or an ordinary place.
iv. W = (W 1 , W 2 , (w 1 , ..., w | T | )) where
W 1 ⊆T is a set of timed transitions
W 2 ⊆T is a set of immediate transitions and W 1 ∩W 2 = φ.
For W 1 ∪ W 2 = T and ∀c ∈ C (t i )
Figure 112009012478645-pat00008
to be.
Figure 112009012478645-pat00009
Is the frequency of the negative exponential distribution that specifies the firing delay according to color c for t i ∈W 1 , and for color c for t i ∈W 2 It is a firing weight that specifies a relative firing frequency.

HQPN은 종래의 큐잉 페트리 네트(QPN)를 계층적으로 모델링한다. HQPN에서 서브넷 플레이스는 QPN 모델이나 다른 서브넷 플레이스를 포함하다. 큐잉 플레이스는 큐잉 시스템과 저장소(depository)를 융합한다. 큐잉 플레이스에 의하여 표현되는 모델은 큐잉 모델 특징(queueing model characteristics)(예를 들면 G/M/∞/IS, G/M/1/FCFS)을 가져야 한다. HQPN의 토큰 컬러(token color)는 작업과 프로세스를 식별한다.HQPN hierarchically models a conventional queuing petri net (QPN). Subnet places in HQPN include QPN models or other subnet places. The queuing place fuses the queuing system and the repository. The model represented by the queuing place must have queuing model characteristics (eg G / M / ∞ / IS, G / M / 1 / FCFS). The token color of the HQPN identifies the task and the process.

도 1a는 오픈 클래스 모델(open class model) HQPN의 모식도이다.1A is a schematic diagram of an open class model HQPN.

도 1b는 클로즈드 클래스 모델(closed class model) HQPN의 모식도이다.1B is a schematic diagram of a closed class model HQPN.

도 1a의 모델은 타임드 트랜지션(timed transition) t1(110) 및 이미디어트 트랜지션(immediate transition) t2(120)을 포함한다. 트랜지션 t1(110)이 파이어되면, 트랜지션 t1(110)은 새로운 토큰 x를 생성하여 시스템 S(100)에 저장한다. 시스템 S는 도 1a에서 서브넷 플레이스를 사용하는 것으로 표현되었다. 서브넷 플레이스는 일반 QPN이 될 수 있고, 서브넷 플레이스는 복수레벨의 포함관계(nesting)를 허용한다. 파이어링 딜레이(firing delay)는 원하는 트랜잭션 유입 빈도에 따라 선택된다. 트랜잭션 t2(120)는 완료된 트랜잭션의 토큰을 파괴하기 위하여 이용된다.The model of FIG. 1A includes a timed transition t 1 110 and an intermediate transition t 2 120. If the transition t 1 110 is fired, the transition t 1 110 generates a new token x and stores it in the system S 100. System S is represented in FIG. 1A using a subnet place. The subnet place may be a regular QPN, and the subnet place allows for multiple levels of nesting. The firing delay is selected according to the desired transaction inflow frequency. Transaction t 2 120 is used to destroy the token of the completed transaction.

도 1b의 모델은 서브넷 플레이스(150) 및 이미디어트 트랜지션 t1(160)을 포함한다.The model of FIG. 1B includes a subnet place 150 and an intermediate transition t 1 160.

도 1a 및 도 1b의 두 도면의 예제는 작업의 강도가 동시에 처리되는 트랜잭션의 수에 의하여 특정되느냐 또는 트랜잭션을 시작하는 활동중인 클라이언트/터미널의 수에 의하여 특정되느냐에 기반하여 구분된다.The examples of the two figures of FIGS. 1A and 1B are distinguished based on whether the intensity of the task is specified by the number of transactions being processed simultaneously or by the number of active clients / terminals that initiate the transaction.

도 2는 본 발명의 일 실시 예에 따르는 소프트웨어 보안 분석 장치(200)의 블록 구성도이다.2 is a block diagram of a software security analysis apparatus 200 according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시 예에 따르는 소프트웨어 보안 분석 장치(200)는 HCPN 생성부(210), HCPN/MRM 변환부(220), MRM 기반 보안 분석부(230), 공격 트리 생성부(240), 공격 시나리오 식별부(250), 공격 트리 기반 보안 분석부(260) 및 결과 출력부(270)를 포함할 수 있다.Referring to FIG. 2, the software security analysis apparatus 200 according to an embodiment of the present invention may include an HCPN generation unit 210, an HCPN / MRM conversion unit 220, an MRM-based security analysis unit 230, and an attack tree generation. The unit 240 may include an attack scenario identification unit 250, an attack tree-based security analyzer 260, and a result output unit 270.

HCPN 생성부(210)는 HCPN(계층형 페트리 네트, Hierarchically Combined Petri Net) 형태의 제1 소프트웨어 모델을 생성한다.The HCPN generation unit 210 generates a first software model in the form of HCPN (Herarchically Combined Petri Net).

HCPN 생성부(210)는 소프트웨어 설계에 상응하는 HCPN 형태의 제1 소프트웨어 모델을 생성한다.The HCPN generator 210 generates a first software model of HCPN type corresponding to the software design.

HCPN은 HQPN에서 큐잉 플레이스(queueing place)를 제거하고 토큰(token)에 속성(attribute)을 더하여 신택스(syntax)를 개선한 것이다.HCPN improves the syntax by removing the queuing place from the HQPN and adding attributes to the token.

본 발명의 일 실시 예에 따르는 HCPN의 엄격한 정의는 표 2와 같다.The strict definition of HCPN according to an embodiment of the present invention is shown in Table 2.

HCPN은 8 튜플이다.
HCPN = (S,P,T,C,I+,I-,M0,W) 여기서,
i. CPN = (P,T,C,I+,I-,M0)은 컬러드 페트리 네트(Colored PN) 기반의 모델 구성 요소
- C = (C1, C2,...,Cn)는 컬러의 집합
- Ck = {attr1,attr2,...attri}는 컬러의 속성의 집합
ii. S = (S1,S2,...,Sn)는 다른 HCPN을 포함할 수 있는 서브넷 플레이스(subnet place)의 집합
iii. W = (W1, W2,(w1,...,w|T|)) 는 HQPN기반의 모델 구성 요소
HCPN is 8 tuples.
HCPN = (S, P, T , C, I +, I -, M 0, W) , where
i. CPN = (P, T, C , I +, I -, M 0) is the model component of Colored Petri net (Colored PN) based
C = (C 1 , C 2 , ..., C n ) is the set of colors
C k = {attr 1 , attr 2 , ... attr i } is a set of attributes of the color
ii. S = (S 1 , S 2 , ..., S n ) is a set of subnet places that can contain other HCPNs
iii. W = (W 1 , W 2 , (w 1 , ..., w | T | )) is an HQPN-based model component

소프트웨어 시스템의 모델링을 위해 확장된 모델링 방법을 더한다. 표 3은 본 발명의 일 실시 예에 따라 HCPN을 이용하여 통합된 소프트웨어 시스템을 모델링하기 위한 분산 컴포넌트 기반 시스템의 모델의 정의이다.Add extended modeling methods for modeling software systems. Table 3 is a definition of a model of a distributed component based system for modeling an integrated software system using HCPN according to an embodiment of the present invention.

분산 컴포넌트 기반 시스템 멤버는 다음의 4 튜플로 구성된다.

Figure 112009012478645-pat00010
여기서,
i.
Figure 112009012478645-pat00011
는 클라이언트의 집합
ii.
Figure 112009012478645-pat00012
는 서버의 집합
iii.
Figure 112009012478645-pat00013
는 배치되는 하드웨어 노드의 집합(예를 들면, 워크스테이션, 네트워크 장비 등)
iv.
Figure 112009012478645-pat00014
는 애플리케이션과 실행 환경으로 구성되는 소프트웨어 컴포넌트의 집합(예를 들면, 소프트웨어 플랫폼, 미들웨어 등)
v.
Figure 112009012478645-pat00015
Figure 112009012478645-pat00016
Figure 112009012478645-pat00017
Figure 112009012478645-pat00018
에서 실행되는 애플리케이션 소프트웨어의 집합
vi.
Figure 112009012478645-pat00019
Figure 112009012478645-pat00020
Figure 112009012478645-pat00021
Figure 112009012478645-pat00022
에서 실행되는 소프트웨어 환경의 집합(예를 들면, 소프트웨어 플랫폼, 미들웨어 등)
vii.
Figure 112009012478645-pat00023
는 다음을 만족하는 원소의 집합.
Figure 112009012478645-pat00024
,
Figure 112009012478645-pat00025
,
Figure 112009012478645-pat00026
그리고
Figure 112009012478645-pat00027

viii.
Figure 112009012478645-pat00028
는 다음을 만족하는 원소의 집합.
Figure 112009012478645-pat00029
,
Figure 112009012478645-pat00030
,
Figure 112009012478645-pat00031

ix.
Figure 112009012478645-pat00032
Figure 112009012478645-pat00033
는 서브넷 플레이스
Figure 112009012478645-pat00034
로 표현됨
x.
Figure 112009012478645-pat00035
는 서브넷 플레이스
Figure 112009012478645-pat00036
로 표현되지 않음.
- HCPN이 닫힌 네트워크 모델(closed network model)이라면
Figure 112009012478645-pat00037
는 플레이스로 표현됨
- HCPN이 열린 네트워크 모델(open network model)이라면
Figure 112009012478645-pat00038
는 타임드 트랜지션으로 특정됨Distributed component-based system members consist of four tuples:
Figure 112009012478645-pat00010
here,
i.
Figure 112009012478645-pat00011
Set of clients
ii.
Figure 112009012478645-pat00012
Set of servers
iii.
Figure 112009012478645-pat00013
Is a set of hardware nodes that are deployed (for example, workstations, network equipment, etc.)
iv.
Figure 112009012478645-pat00014
Is a set of software components (eg, software platform, middleware, etc.) consisting of an application and an execution environment.
v.
Figure 112009012478645-pat00015
sign
Figure 112009012478645-pat00016
Is
Figure 112009012478645-pat00017
sign
Figure 112009012478645-pat00018
Set of application software running on
vi.
Figure 112009012478645-pat00019
sign
Figure 112009012478645-pat00020
Is
Figure 112009012478645-pat00021
sign
Figure 112009012478645-pat00022
Set of software environments (eg, software platform, middleware, etc.) running on
vii.
Figure 112009012478645-pat00023
Is a set of elements that satisfy
Figure 112009012478645-pat00024
,
Figure 112009012478645-pat00025
,
Figure 112009012478645-pat00026
And
Figure 112009012478645-pat00027

viii.
Figure 112009012478645-pat00028
Is a set of elements that satisfy
Figure 112009012478645-pat00029
,
Figure 112009012478645-pat00030
,
Figure 112009012478645-pat00031

ix.
Figure 112009012478645-pat00032
Wow
Figure 112009012478645-pat00033
Subnet place
Figure 112009012478645-pat00034
Expressed as
x.
Figure 112009012478645-pat00035
Subnet place
Figure 112009012478645-pat00036
Not expressed as
If HCPN is a closed network model
Figure 112009012478645-pat00037
Is expressed in place
If HCPN is an open network model
Figure 112009012478645-pat00038
Is specified as a timed transition

분산 컴포넌트 기반 시스템은 애플리케이션 레이어(application layer)와 실행 환경 레이어(operation environment layer로 표현된다. 실행 환경 레이어는 소프트웨어 환경과 하드웨어 환경으로 구성된다. 모델의 레이어는 HCPN의 서브넷 플레이스로 표현된다. 서브넷 플레이스는 애플리케이션, 소프트웨어 환경 또는 하드웨어 환경을 나타낸다. 이러한 매핑은 재활용 가능한 서브-모델(sub-model)을 제공한다. 입력 토큰과 출력 토큰을 변경하면 서브-모델을 재활용할 수 있다.A distributed component-based system is represented by an application layer and an operation environment layer, which consists of a software environment and a hardware environment, and a layer of the model is represented by a subnet place in HCPN. Represents an application, software environment, or hardware environment This mapping provides a recyclable sub-model, which can be changed by changing the input and output tokens.

소프트웨어 시스템의 취약성 분석은 그 시스템의 보안 요구사항에 기반을 둔다. 취약점 식별은 HCPN 모델로부터의 보안 요구사항의 확인이다. 확인은 모순으로의 변화에 기반을 둔다. 예를 들어 요구사항이 "A"라면, HCPN 모델에서 "NOT A"를 추적한다. "NOT A"의 잠재성이 발견되면, HCPN 모델은 보안 요구사항을 만족하지 못한다.Vulnerability analysis of a software system is based on the security requirements of that system. Vulnerability identification is the identification of security requirements from the HCPN model. Confirmation is based on a change to contradiction. For example, if the requirement is "A", then track "NOT A" in the HCPN model. If the potential of "NOT A" is found, the HCPN model does not meet the security requirements.

식별된 취약점은 HCPN의 토큰으로 식별된다. HCPN 모델을 통해서 검증된 요구사항은 승인된 토큰(authorized token)으로 식별되고 검증되지 않은 요구사항은 승인되지 않은 토큰(Non-authorized token)으로 식별된다. The identified vulnerability is identified by the token of the HCPN. Requirements verified through the HCPN model are identified as authorized tokens and requirements not verified as non-authorized tokens.

사용자는 GUI 또는 텍스트 인터페이스를 통해 HCPN 형태의 제1 소프트웨어 모델을 생성하거나 수정, 편집할 수 있다.The user can create, modify, and edit the first software model in the form of HCPN through the GUI or the text interface.

HCPN/MRM 변환부(220)는 HCPN 형태의 제1 소프트웨어 모델을 MRM 형태의 제2 소프트웨어 모델로 변환한다.The HCPN / MRM conversion unit 220 converts the first software model of the HCPN type into the second software model of the MRM type.

도 3은 본 발명의 일 실시 예에 따르는 HQPN/MRM 변환부(220)의 블록 구성도이다.3 is a block diagram of an HQPN / MRM conversion unit 220 according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시 예에 따르는 HQPN/MRM 변환부(220)는 HQPN/MC 변환부(310) 및 MC/MRM 변환부(350)를 포함한다.Referring to FIG. 3, the HQPN / MRM converter 220 according to an embodiment of the present invention includes an HQPN / MC converter 310 and an MC / MRM converter 350.

HQPN/MC 변환부(310)는 HCPN 형태의 제1 소프트웨어 모델을 마르코프 연쇄(MC: Markov Chain) 형태의 제3 소프트웨어 모델로 변환한다.The HQPN / MC converter 310 converts the first software model of the HCPN type into the third software model of the Markov Chain (MC) type.

MC/MRM 변환부(350)는 HQPN/MC 변환부(310)가 변환하여 생성한 MC 형태의 제3 소프트웨어 모델을 MRM 형태의 제2 소프트웨어 모델로 변환한다.The MC / MRM converter 350 converts the MC-type third software model generated by the HQPN / MC converter 310 to MRM-type second software model.

HQPN/MC 변환부(310)는 스테이트 생성부(320), 에지 생성부(330) 및 변화 확률 추출부(340)를 포함할 수 있다.The HQPN / MC converter 310 may include a state generator 320, an edge generator 330, and a change probability extractor 340.

스테이트 생성부(320)는 HCPN형태의 제1 소프트웨어 모델에 포함되는 토큰(token)의 마킹(marking)에 따라 식별되는 스테이트(state)를 생성한다.The state generator 320 generates a state identified according to marking of a token included in the first software model of the HCPN type.

MC형태의 제3 소프트웨어 모델을 생성하기 위한 스테이트 공간(state space) S는 HCPN형태의 제1 소프트웨어 모델의 마킹 M에 의하여 다음과 같이 생성될 수 있다.The state space S for generating the third software model of the MC type may be generated by the marking M of the first software model of the HCPN type as follows.

Figure 112009012478645-pat00039
가 MC형태의 제3 소프트웨어 모델의 스테이트 공간이고,
Figure 112009012478645-pat00040
가 HCPN 형태의 제1 소프트웨어 모델의 마킹(marking)이라고 한다.
Figure 112009012478645-pat00039
Is the state space of the third software model of the MC type,
Figure 112009012478645-pat00040
Is the marking of the first software model in HCPN form.

여기서 마킹은 토큰이 HCPN의 플레이스에 분포되는 것을 말한다.Marking here means that the token is distributed in the place of the HCPN.

MC형태의 제3 소프트웨어 모델의 스테이트 공간과 HCPN 형태의 제1 소프트웨어 모델의 마킹 사이의 매핑은

Figure 112009012478645-pat00041
와 같이 표현할 수 있다.The mapping between the state space of the third software model of the MC type and the marking of the first software model of the HCPN type
Figure 112009012478645-pat00041
It can be expressed as

도 4는 본 발명의 일 실시 예에 따르는 HCPN 형태의 모델을 MC 형태로 변환하는 과정의 모식도이다.4 is a schematic diagram of a process of converting an HCPN type model into an MC type according to an embodiment of the present invention.

스테이트 생성부(320)는 상기 HCPN 형태의 제1 소프트웨어 모델에 포함되는 토큰(token)의 마킹(marking)에 따라 식별되는 스테이트(state)를 생성한다.The state generator 320 generates a state identified according to marking of a token included in the HCPN type first software model.

도 4를 참조하면, 변환 전의 HCPN 형태의 제1 소프트웨어 모델(400)은 MC 형태인 제3 소프트웨어 모델(440)로 변환된다.Referring to FIG. 4, the first software model 400 in the HCPN form before conversion is converted to the third software model 440 in the MC form.

도 4를 참조하면, 제1 소프트웨어 모델(400)은 제1 일반 플레이스(410), 제1 트랜지션(420) 및 제1 서브넷 플레이스(430)를 포함한다.Referring to FIG. 4, the first software model 400 includes a first general place 410, a first transition 420, and a first subnet place 430.

제1 서브넷 플레이스(430)는 상술한 바와 같이 제1 서브넷 플레이스(430) 내부에 HCPN을 포함할 수 있다.As described above, the first subnet place 430 may include the HCPN in the first subnet place 430.

제1 일반 플레이스(410)는 A, B의 두 토큰(token)을 보유하고 있으며, 제1 트랜지션이 파이어(fire)되면 두 토큰 A, B 중 어느 한 토큰이 소비(consume)되어 제1 서브넷 플레이스(430)로 전달될 수 있다.The first general place 410 holds two tokens A and B, and when the first transition is fired, one token of the two tokens A and B is consumed to consume the first subnet place. May be passed to 430.

토큰(token)의 마킹(marking)은 토큰이 플레이스에 배치/분배된 상태를 말한다.The marking of a token refers to the state in which the token is placed / distributed in the place.

도 4의 제1 소프트웨어 모델(400)에서 마킹(marking)의 경우의 수를 표로 나타내면 표 4와 같다.Table 4 shows the number of cases of marking in the first software model 400 of FIG. 4.

제1 일반 플레이스(410)First General Place (410) 제1 서브넷 플레이스(430)First Subnet Place (430) 제1 스테이트(M0, 450)First state (M0, 450) A, BA, B -- 제2 스테이트(M1, 451)Second state (M1, 451) BB AA 제3 스테이트(M2, 452)Third state (M2, 452) AA BB 제4 스테이트(M3, 453)4th state (M3, 453) -- A, BA, B

먼저, 초기 상태에서 A, B 두 토큰 모두 제1 일반 플레이스(410)에 위치하는 경우 제1 일반 플레이스(410)는 A, B 두 토큰을 보유하고, 제1 서브넷 플레이스(430)는 토큰을 하나도 보유하지 못한다. 스테이트 생성부(320)는 이와 같은 마킹에 상응하는 제1 스테이트(M0,450)를 생성할 수 있다.First, when both tokens A and B are located in the first general place 410 in the initial state, the first general place 410 holds both A and B tokens, and the first subnet place 430 does not have any tokens. Cannot hold The state generator 320 may generate a first state M0, 450 corresponding to the marking.

스테이트 생성부(320)는 마찬가지로 토큰 A, B의 위치에 따라 제2 스테이트(M1, 451), 제3 스테이트(M2, 452), 제4 스테이트(M3, 453)를 생성할 수 있다.The state generator 320 may similarly generate the second states M1 and 451, the third states M2 and 452, and the fourth states M3 and 453 according to the positions of the tokens A and B. FIG.

에지 생성부(330)는 상기 제1 소프트웨어 모델에 포함되는 트랜지션(transition)의 파이어(fire)에 따르는 스테이트 변화에 상응하는 에지(edge)를 생성한다.The edge generator 330 generates an edge corresponding to a state change according to a fire of a transition included in the first software model.

도 4를 참조하면, 제1 트랜지션(420)이 파이어(fire)되는 경우 토큰 A 또는 토큰 B 중 어느 하나가 소비(consume)되어 제1 서브넷 플레이스(430)에 전달된다.Referring to FIG. 4, when the first transition 420 is fired, either token A or token B is consumed and delivered to the first subnet place 430.

토큰 A, B 가 모두 제1 일반 플레이스(410)에 위치하는 상황에서 제1 트랜지션(420)이 파이어(fire)되어 토큰 A가 소비(consume)되어 제1 서브넷 플레이스로 전달된 경우를 가정한다. 이 경우 제1 스테이트(M0, 450)에서 제2 스테이트(M1, 451)로 스테이트가 변동된다.Assume that the first transition 420 is fired and the token A is consumed and transferred to the first subnet place in the situation where the tokens A and B are both located in the first general place 410. In this case, the state changes from the first states M0 and 450 to the second states M1 and 451.

에지 생성부(330)는 위와 같은 스테이트 변화에 상응하는 에지를 생성한다. 즉, 에지 생성부(330)는, 제1 트랜지션(420)에 의한 토큰 A의 소비에 상응하는 제1 에지(461)를 생성할 수 있다. 마찬가지 방식으로 제2 에지(462), 제3 에지(463) 및 제4 에지(464)도 생성할 수 있다.The edge generator 330 generates an edge corresponding to the state change as described above. That is, the edge generator 330 may generate a first edge 461 corresponding to the consumption of the token A by the first transition 420. Similarly, second edge 462, third edge 463, and fourth edge 464 may be created.

제1 스테이트(M0, 450)에서 제1 에지(461)의 조건인 토큰 A의 소비(consume)가 수행되면, 소프트웨어 모델의 스테이트는 제2 스테이트(M1, 451)로 변경된다.When the consumption of token A, which is a condition of the first edge 461 in the first state M0 and 450, is performed, the state of the software model is changed to the second state M1 and 451.

제1 스테이트(M0, 450)에서 제2 에지(462)의 조건인 토큰 B의 소비(consume)가 수행되면, 소프트웨어 모델의 스테이트는 제3 스테이트(M2, 452)로 변경된다.When the consumption of token B, the condition of the second edge 462, is performed in the first state M0, 450, the state of the software model is changed to the third state M2, 452.

제2 스테이트(M1, 451)에서 제4 에지(464)의 조건인 토큰 B의 소비(consume)가 수행되면, 소프트웨어 모델의 스테이트는 제4 스테이트(M3, 453)로 변경된다.When the consumption of token B, the condition of the fourth edge 464, is performed in the second state M1, 451, the state of the software model is changed to the fourth state M3, 453.

제3 스테이트(M2, 452)에서 제3 에지(463)의 조건인 토큰 A의 소비(consume)가 수행되면, 소프트웨어 모델의 스테이트는 제4 스테이트(M3, 453)로 변경된다.When the consumption of token A, which is a condition of the third edge 463 in the third state M2 and 452, is performed, the state of the software model is changed to the fourth state M 3 and 453.

변화 확률 추출부(340)는 트랜지션의 파이어(fire) 확률에 상응하여 스테이트 변화 확률을 추출한다.The change probability extractor 340 extracts the state change probability in accordance with the fire probability of the transition.

예를 들어 도 4의 제1 소프트웨어 모델(400)에서 토큰 A 및 토큰 B가 모두 제1 일반 플레이스에 위치하고 있을 때, 제1 트랜지션이 파이어되어, 제1 일반 플레이스로부터 토큰 A가 소비되어 제1 서브넷 플레이스(430)로 이동할 확률이

Figure 112009012478645-pat00042
라면, 제1 스테이트(M0, 450)로부터 제2 스테이트(M1, 451)로 향하는 제1 에지(461)에 상응하는 확률도
Figure 112009012478645-pat00043
가 된다. 이와 같은 방식으로 모든 에지에 확률을 부여할 수 있다.For example, in the first software model 400 of FIG. 4, when both token A and token B are located in the first general place, the first transition is fired, so that token A is consumed from the first general place and the first subnet is consumed. Chance to move to Place 430
Figure 112009012478645-pat00042
If it is, the probability diagram corresponding to the first edge 461 from the first state (M0, 450) to the second state (M1, 451)
Figure 112009012478645-pat00043
Becomes In this way, probabilities can be assigned to all edges.

스테이트를 생성하고, 에지를 생성하고, 에지에 확률을 부여하는 작업까지 완료되면, HCPN 형태의 제1 소프트웨어 모델이 MC 형태의 제3 소프트웨어 모델로 변환된다.When the operation of generating a state, generating an edge, and assigning a probability to the edge is completed, the first software model in the form of HCPN is converted into the third software model in the form of MC.

도 3을 참조하면, MC/MRM 변환부(350)는 보상율 할당부(360)를 포함할 수 있다.Referring to FIG. 3, the MC / MRM converter 350 may include a compensation rate allocator 360.

보상율 할당부(360)는 스테이트에 상응하는 HCPN의 플레이스 중 어느 하나 이상이 승인되지 않은 토큰을 하나 이상 보유하는 경우 보상율 0을 할당하고, 그 외의 경우는 소프트웨어가 보안 문제의 잠재 위험이 없어서 보상율 1을 할당한다.The reward rate allocator 360 assigns a reward rate 0 when at least one of the HCPN's places corresponding to the state holds one or more unauthorized tokens. Otherwise, the software does not have a potential risk of a security problem. Allocate

보안 분석을 위하여 MC 형태의 제2 소프트웨어 모델에 보상율(0 또는 1)을 할당하기 위해서는 스테이트를 어퍼 스테이트(upper state)와 다운 스테이트(down state)의 두 가지 타입으로 분류한다. 다운 스테이트에는 제1 보상율을 할당하고, 어퍼 스테이트에는 제2 보상율을 할당할 수 있다. 예를 들어 다운 스테이트에는 보상율 0을 할당하고 어퍼 스테이트에는 보상율 1을 할당할 수 있다. 이하 편의상 다운 스테이트에는 보상율 0을 할당하고 어퍼 스테이트에는 보상율 1을 할당하는 것으로 가정한다. 마킹

Figure 112009012478645-pat00044
의 부분집합
Figure 112009012478645-pat00045
은 컬러(
Figure 112009012478645-pat00046
)의 조합의 스테이트이다.In order to assign a compensation rate (0 or 1) to the second software model of the MC type for security analysis, the state is classified into two types, an upper state and a down state. A first compensation rate can be assigned to the down state, and a second compensation rate can be assigned to the upper state. For example, a compensation rate of 0 can be assigned to the down state and a compensation rate of 1 can be assigned to the upper state. Hereinafter, for convenience, it is assumed that a compensation rate 0 is assigned to the down state and a compensation rate 1 is assigned to the upper state. marking
Figure 112009012478645-pat00044
Subset of
Figure 112009012478645-pat00045
Silver color (
Figure 112009012478645-pat00046
) Is a combination state.

보안 분석을 위한 HCPN에서 토큰의 타입은 승인된 토큰(authorized token)과 승인되지 않은 토큰(non-authorized token)을 포함한다. 상술한 바와 같이 취약점에 기반하여 승인되지 않은 토큰을 식별할 수 있다. 따라서,

Figure 112009012478645-pat00047
는 아래 표 5와 같이 표현할 수 있다.In HCPN for security analysis, the types of tokens include authorized tokens and non-authorized tokens. As described above, unauthorized tokens can be identified based on the vulnerability. therefore,
Figure 112009012478645-pat00047
Can be expressed as shown in Table 5 below.

Figure 112009012478645-pat00048
여기서,
Figure 112009012478645-pat00049
Figure 112009012478645-pat00048
here,
Figure 112009012478645-pat00049

Figure 112009012478645-pat00050
는 승인된 토큰의 집합이고,
Figure 112009012478645-pat00051
는 승인되지 않은 토큰의 집합이다.
Figure 112009012478645-pat00050
Is a set of approved tokens,
Figure 112009012478645-pat00051
Is a set of unauthorized tokens.

본 발명의 일 실시 예에 따르는 소프트웨어 보안을 위한 보상율 할당은 표 6과 같다.Compensation rate allocation for software security according to an embodiment of the present invention is shown in Table 6.

Figure 112009012478645-pat00052
Figure 112009012478645-pat00053
이라고 한다. ,
Figure 112009012478645-pat00054
는 승인되지 않은 토큰의 집합이다.
Figure 112009012478645-pat00055
이고,
Figure 112009012478645-pat00056
는 HCPN 형태의 제1 소프트웨어 모델의 마킹(marking)이다.
Figure 112009012478645-pat00057
는 스테이트 j의 플레이스 i에서의 마킹이고,
Figure 112009012478645-pat00058
이다.
Figure 112009012478645-pat00059
이다.
Figure 112009012478645-pat00060
는 MC형태의 제3 소프트웨어 모델의 스테이트 공간이다.
만약
Figure 112009012478645-pat00061
이면,
Figure 112009012478645-pat00062
는 다운 스테이트이다(보상율은 0이다.).
그 외의 경우
Figure 112009012478645-pat00063
는 어퍼 스테이트이다(보상율은 1이다.).
Figure 112009012478645-pat00052
end
Figure 112009012478645-pat00053
It is called. ,
Figure 112009012478645-pat00054
Is a set of unauthorized tokens.
Figure 112009012478645-pat00055
ego,
Figure 112009012478645-pat00056
Is the marking of the first software model in HCPN form.
Figure 112009012478645-pat00057
Is the marking at place i of state j,
Figure 112009012478645-pat00058
to be.
Figure 112009012478645-pat00059
to be.
Figure 112009012478645-pat00060
Is the state space of the third software model of the MC type.
if
Figure 112009012478645-pat00061
If so,
Figure 112009012478645-pat00062
Is the down state (compensation rate is 0).
Otherwise
Figure 112009012478645-pat00063
Is the upper state (compensation rate is 1).

Figure 112009012478645-pat00064
는 플레이스 i가
Figure 112009012478645-pat00065
에 포함된 플레이스가 아니라는 의미이다. 따라서 플레이스 i는 클라이언트이다(표 3 참조). 승인되지 않은 토큰은 보안 요구사항을 만족시킬 수 없게 한다. 따라서, 클라이언트의 플레이스를 제외한 HCPN의 어느 하나의 플레이스에라도 적어도 하나의 승인되지 않은 토큰을 보유한 경우 소프트웨어는 보안 문제의 잠재위험을 가진다.
Figure 112009012478645-pat00064
Place i
Figure 112009012478645-pat00065
It does not mean it is a place. Place i is thus a client (see Table 3). Unauthorized tokens may not meet security requirements. Thus, if there is at least one unauthorized token in any one place of the HCPN except the place of the client, the software has the potential risk of security issues.

풀어서 설명하면, 스테이트에 상응하는 HCPN의 플레이스 중 어느 하나 이상이 승인되지 않은 토큰을 하나 이상 보유하는 경우, 즉 스테이트에 상응하는 마킹에 승인되지 않은 토큰이 존재하는 경우 소프트웨어는 보안 문제의 잠재 위험을 가지므로 그 스테이트의 보상율을 0으로 할당하고, 그 외의 경우는 소프트웨어가 보안 문제의 잠재 위험이 없어서 그 스테이트의 보상율을 1로 할당한다.In short, if any one or more of the places in the HCPN corresponding to the state holds one or more unauthorized tokens, i.e. if an unauthorized token exists in the marking corresponding to the state, then the software is at risk of a security problem. As a result, the compensation rate of the state is assigned to 0. Otherwise, the software assigns the compensation rate of the state to 1 because there is no potential risk of security problems.

MRM 기반 보안 분석부(230)는 MRM 형태의 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출한다.The MRM-based security analysis unit 230 extracts quantitative security performance using a software model in the form of MRM.

도 5a는 본 발명의 일 실시 예에 따르는 MRM 기반 보안 분석부(230)의 블록 구성도이다.5A is a block diagram of an MRM-based security analyzer 230 according to an embodiment of the present invention.

도 5a를 참조하면 MRM 기반 보안 분석부(230)는 MTTI 추출부(510) 및 MTTB 추출부(520)를 포함할 수 있다.Referring to FIG. 5A, the MRM-based security analyzer 230 may include an MTTI extractor 510 and an MTTB extractor 520.

MTTI 추출부(510)는 첫 번째 공격까지 걸리는 평균 시간(MTTI: Mean Time To Intrusion)을 추출한다.The MTTI extractor 510 extracts a mean time to intrusion (MTTI) to the first attack.

MTTB 추출부(520)는 첫 번째 공격 시점에서 공격 성공까지 걸리는 평균 시간(MTTB: Mean Time To Breaches)을 추출한다.The MTTB extractor 520 extracts an average time to breach (MTTB) from the first attack time to the successful attack.

도 5b는 MTTI와 MTTB를 나타낸 도면이다.5B is a diagram illustrating MTTI and MTTB.

시점 0(600)에 소프트웨어의 수행이 시작되고, 시점 t1(610)에 첫 번째 공격이 시작되었으며, 시점 t2(620)에 첫 번째 공격이 성공하였다.The execution of the software begins at time 0 600, the first attack at time t1 610, and the first attack succeeds at time t2 620.

시점 0(600)부터 시점 t1(610) 사이의 평균 시간이 MTTI(650)이고, 시점 t1(610)부터 시점 t2(620) 사이의 평균 시간이 MTTB(660)이다.The average time between time point 0 600 and time point t1 610 is MTTI 650, and the average time between time point t1 610 and time point t2 620 is MTTB 660.

Li(t)가 CTMC가 구간 [0,t)에서 스테이트 i에 속하는 총 기대시간이고, Uj가 보상율이 1인 어퍼 스테이트의 집합, 즉 보안 요구사항을 만족하는 스테이트의 집합일 때 MTTI는 수학식 5와 같이 구할 수 있다.When L i (t) is the total expected time that CTMC belongs to state i in the interval [0, t), and U j is a set of upper states with a compensation factor of 1, that is, a set of states that satisfy the security requirements, MTTI It can be obtained as shown in Equation 5.

Figure 112009012478645-pat00066
Figure 112009012478645-pat00066

MTTI는 최초 공격시까지의 평균 시간이다. MRM에서의 어퍼 스테이트는 시스템의 정상 동작을 말한다. 따라서 MTTI는 시스템이 다운 스테이트에 도달하기 전에 어퍼 스테이트에 속하는 시간의 총합이다.MTTI is the average time to first attack. The upper state in MRM refers to the normal operation of the system. The MTTI is therefore the sum of the times belonging to the upper state before the system reaches the down state.

Li(t)가 CTMC가 구간 [0,t)에서 스테이트 i에 속하는 총 기대시간이고, Dj가 보상율이 0인 다운 스테이트의 집합, 즉 보안 요구사항을 만족하지 않는 비흡수 스테이트의 집합일 때 MTTB는 수학식 6과 같이 구할 수 있다.L i (t) is the total expected time that the CTMC belongs to state i in the interval [0, t), and D j is the set of down states with zero compensation, that is, the set of non-absorbing states that do not meet security requirements. MTTB can be obtained as shown in Equation 6.

Figure 112009012478645-pat00067
Figure 112009012478645-pat00067

MTTB는 첫 번째 공격 시점으로부터 공격 성공에까지 걸리는 평균 시간이고, 다운 스테이트는 시스템이 공격을 받는 상황을 나타낸다. 따라서 MTTB는 시스템이 흡수 스테이트에 도달하기 전에 다운 스테이트에 속하는 시간의 총합이다.The MTTB is the average time from the first attack time to the successful attack, and the down state indicates the system under attack. MTTB is therefore the sum of the times that the system belongs to the down state before reaching the absorption state.

공격 트리 생성부(240)는 공격 트리를 생성한다.The attack tree generator 240 generates an attack tree.

식별된 취약점은 공격 트리의 공격 목표에 대응된다. 따라서 공격 트리의 루트 목표(G0)는

Figure 112009012478645-pat00068
이 n번째 보안 취약점일 때,
Figure 112009012478645-pat00069
와 같이 표현할 수 있다. 공격 트리의 생성 방법은 아래 표 7과 같다.The identified vulnerability corresponds to the attack target of the attack tree. Therefore, the root target (G 0 ) of the attack tree is
Figure 112009012478645-pat00068
Is the nth security vulnerability,
Figure 112009012478645-pat00069
It can be expressed as How to create an attack tree is shown in Table 7 below.

i. 보안 요구사항의 취약점에 상응하는 루트 노드

Figure 112009012478645-pat00070
를 정의한다.
ii. 상위 레이어를 하나 또는 여러 노드로 분해한다.
iii. 분해된 노드를 OR/AND 논리 관계로 연관시킨다.
iv. 리프 노드에 위치한 공격이 독립적으로 시작될 수 있을 때까지 모든 브랜치(branch)에 대해 ii, iii 단계를 반복한다.
v. 리프 노드에 값을 할당한다. 할당되는 값은 명사적 값(nominal)이 될 수도 있고(예를 들면, 가능/불가능, 특별한 장비 요함/요하지 않음), 숫자적 값(ordinal)이 될 수도 있다(예를 들면, 공격 시간, 공격 가능성, 금전적 비용). 복수의 값이 하나의 노드에 할당될 수 있다.i. Root node corresponding to vulnerability in security requirements
Figure 112009012478645-pat00070
Define.
ii. Break up the upper layer into one or more nodes.
iii. Associate resolved nodes in OR / AND logical relationships.
iv. Repeat steps ii and iii for all branches until the attack located on the leaf node can be started independently.
v. Assign a value to the leaf node. The value assigned can be a nominal value (e.g. possible / disabled, no special equipment required / needed) or a numeric value (e.g. attack time, attack Possibility, monetary costs). Multiple values can be assigned to one node.

첫 번째 단계에서, 루트 노드

Figure 112009012478645-pat00071
는 요구사항 검증에 의하여 식별된 공격자의 목표를 의미한다. 두 번째 및 세 번째 단계에서 보조 목표를 이끌어내기 위해서 공격자의 패턴이 사용된다. 공격 패턴은 소프트웨어 취약점을 이용하기 위한 청사진이다. 공격 패턴은 몇몇 치명적 취약점의 특징을 설명하고, 목적 시스템을 이용하기 위해 필요한 지식으로 공격자를 무장시킨다. 공격 패턴은 공격자의 악의의 공격의 전체 또는 일부의 프로세스를 설명하는 참조 자료를 제공한다.In the first step, the root node
Figure 112009012478645-pat00071
Means the attacker's target identified by the requirements verification. The attacker's pattern is used to derive secondary targets in the second and third stages. Attack patterns are a blueprint for exploiting software vulnerabilities. Attack patterns describe the characteristics of some critical vulnerabilities and equip the attacker with the knowledge necessary to exploit the target system. Attack patterns provide reference material that describes the process, in whole or in part, of an attacker's malicious attack.

도 6은 본 발명의 일 실시 예에 따르는 공격 시나리오 식별부(530)의 블록 구성도이다.6 is a block diagram of an attack scenario identification unit 530 according to an embodiment of the present invention.

도 6을 참조하면 본 발명의 일 실시 예에 따르는 공격 시나리오 식별부(250)는 공격 트리 개량부(531) 및 리프 노드 개수 추출부(532)를 포함할 수 있다.Referring to FIG. 6, the attack scenario identification unit 250 according to an embodiment of the present invention may include an attack tree improvement unit 531 and a leaf node number extractor 532.

공격 트리 개량부(531)는 공격 시나리오 개수를 세기 편하도록 공격 트리를 개량한다.The attack tree improvement unit 531 improves the attack tree so as to increase the number of attack scenarios.

공격 트리는 공격 시나리오에 기반하여 계산 척도를 제공한다. 공격 트리에서 공격 시나리오는 공격 목표에 도달하는 공격 경로를 의미한다. 따라서, 하나의 공격 목표에 도달하기 위한 하나 이상의 공격 시나리오가 존재할 수 있다.The attack tree provides a computational measure based on the attack scenario. In the attack tree, an attack scenario means an attack path that reaches an attack target. Thus, there may be more than one attack scenario for reaching one attack target.

표 8은 공격 시나리오를 식별하기 위한 방법을 설명한다.Table 8 describes the methods for identifying attack scenarios.

Figure 112009012478645-pat00072
Figure 112009012478645-pat00073
가 공격 트리의 레벨 n의 i번째 노드(목표)이고,
Figure 112009012478645-pat00074
가 공격 트리의 루트 목표라고 가정한다. 공격 시나리오는
Figure 112009012478645-pat00075
로부터 모든 리프 노드로의 공격 경로에 의하여 식별된다.
Figure 112009012478645-pat00072
sign
Figure 112009012478645-pat00073
Is the i th node (target) at level n of the attack tree,
Figure 112009012478645-pat00074
Suppose is the root target of the attack tree. Attack scenario
Figure 112009012478645-pat00075
Identified by the attack path from all nodes to the leaf node.

만족되지 못한 보안 요구사항은 공격 트리에서의 악의적 공격을 위한 루트 목표(루트 노드)에 상응한다. 따라서 요구사항의 숫자는 루트 목표의 숫자와 같다. 소프트웨어 시스템에 대한 많은 수의 공격 시나리오가 있다면, 많은 수의 악의적 공격 가능성에 노출될 수 있다. 따라서 잠재 공격 시나리오의 수는 보안 분석에 중요한 척도이다.Unsatisfied security requirements correspond to the root target (root node) for malicious attacks in the attack tree. Therefore, the number of requirements is equal to the number of root targets. If there are a large number of attack scenarios against a software system, you may be exposed to a large number of malicious attacks. Therefore, the number of potential attack scenarios is an important measure for security analysis.

표 9는 공격 트리에서 공격 시나리오의 개수를 계산하기 위한 방법을 설명한다.Table 9 describes a method for calculating the number of attack scenarios in the attack tree.

Figure 112009012478645-pat00076
Figure 112009012478645-pat00076

Figure 112009012478645-pat00077
가 공격 트리의 레벨 n의 j번째 노드(목표)이고, path(
Figure 112009012478645-pat00078
)인
Figure 112009012478645-pat00079
으로부터
Figure 112009012478645-pat00080
로의 공격 경로의 숫자라고 한다.
Figure 112009012478645-pat00081
인 레벨 n의 노드의 집합
Figure 112009012478645-pat00082
Figure 112009012478645-pat00083
로의 공격 경로이고, 각 노드
Figure 112009012478645-pat00084
의 관계가 'AND'인 경우 path(
Figure 112009012478645-pat00085
)=1.
Figure 112009012478645-pat00086
인 레벨 n의 노드의 집합
Figure 112009012478645-pat00087
Figure 112009012478645-pat00088
로의 공격 경로이고, 각 노드
Figure 112009012478645-pat00089
의 관계가 'OR'인 경우 path(
Figure 112009012478645-pat00090
)=k.sign
Figure 112009012478645-pat00077
Is the j th node (target) at level n of the attack tree, and path (
Figure 112009012478645-pat00078
)sign
Figure 112009012478645-pat00079
From
Figure 112009012478645-pat00080
It is called the number of attack paths to the furnace.
Figure 112009012478645-pat00081
Set of nodes at level n
Figure 112009012478645-pat00082
this
Figure 112009012478645-pat00083
Path of attack to each node, and each node
Figure 112009012478645-pat00084
If the relationship of 'AND' is path (
Figure 112009012478645-pat00085
) = 1.
Figure 112009012478645-pat00086
Set of nodes at level n
Figure 112009012478645-pat00087
this
Figure 112009012478645-pat00088
Path of attack to each node, and each node
Figure 112009012478645-pat00089
If the relationship of 'OR' is path (
Figure 112009012478645-pat00090
) = k.

도 7은 본 발명의 일 실시 예에 따르는 공격 트리 개량 방법의 의사 코드이다.7 is a pseudo code of a method for improving an attack tree according to an embodiment of the present invention.

공격 트리가 거대한 경우 공격 경로를 기반으로 하여 공격 시나리오의 개수를 세는 것은 복잡하다. 도 7의 알고리즘은 공격 트리의 공격 경로의 수를 단순히 트리를 개량함으로써 셀 수 있도록 한다. 원래의 공격 트리의 공격 경로의 수는 개량된 트리의 리프 노드의 수와 같다. 도 7의 알고리즘은 기본적으로 모든 노드를 검색하여 AND 연산으로 관계된 노드들을 병합한다.If the attack tree is huge, the number of attack scenarios based on the attack path is complex. The algorithm of FIG. 7 allows the number of attack paths of the attack tree to be counted by simply modifying the tree. The number of attack paths in the original attack tree is equal to the number of leaf nodes in the improved tree. The algorithm of FIG. 7 basically searches all nodes and merges nodes involved in an AND operation.

도 7에서, count_AND_operation(level) 함수는 지정된 레벨(level)에서 AND 연산자의 수를 센다. find(AND_operation, level) 함수는 AND 연산자의 집합을 반환한다. 10번째 줄의 sizeof(and_operation_set) 함수는 and_operation_set 변수의 크기를 반환한다. find_child_nodes(and_operation_set, operation_pointer) 함수는 지정된 operation_pointer에 and_operator_set에 관계된 자식 노드의 집합을 반환한다. 13째 줄의 refine_node(child_set, size_of(child_set)) 함수는 공격 트리를 개량한다. 이 함수는 child_set에서 현재 목표(노드)에 도달하기 위한 바이너리 연산자 and와 or를 찾는다. AND 노드가 있는 경우 refine_node 함수는 현재 노드의 자식 노드를 찾고, 리프 노드가 발견될 때까지 자식 노드의 연산자를 찾는다. refine_node 함수는 AND 연산자에 의해 연산되는 노드를 하나의 노드로 통합한다. 하지만, AND 연산자를 가지는 노드가 자식 노드를 가지고 그 자식 노드가 OR 연산자를 가질 때, refine_node 함수는 두 자식 노드의 자식 노드의 수를 곱한다.In FIG. 7, the count_AND_operation (level) function counts the number of AND operators at a specified level. find (AND_operation, level) returns a set of AND operators. The sizeof (and_operation_set) function on line 10 returns the size of the and_operation_set variable. The find_child_nodes (and_operation_set, operation_pointer) function returns a set of child nodes related to and_operator_set at the specified operation_pointer. The refine_node (child_set, size_of (child_set)) function in line 13 refines the attack tree. This function finds the binary operators and and or in child_set to reach the current target (node). If there is an AND node, the refine_node function looks for the child node of the current node and finds the child node's operator until a leaf node is found. The refine_node function consolidates the nodes computed by the AND operator into one node. However, when a node with an AND operator has child nodes and that child node has an OR operator, the refine_node function multiplies the number of child nodes of the two child nodes.

도 8a, 도 8b 및 도 9는 본 발명의 일 실시 예에 따르는 공격 트리 개량의 모식도이다.8A, 8B and 9 are schematic diagrams of an attack tree improvement according to an embodiment of the present invention.

도 8a를 참조하면, 원본 공격 트리(800)에서 개량 공격 트리(850)로 개량(refine)이 이루어진다.Referring to FIG. 8A, refinement is made from the original attack tree 800 to the improved attack tree 850.

도 8a에서, 노드

Figure 112009012478645-pat00091
(822)는 AND 노드이고, 노드
Figure 112009012478645-pat00092
(831), 노드
Figure 112009012478645-pat00093
(832), 노드
Figure 112009012478645-pat00094
(833)은 노드
Figure 112009012478645-pat00095
(822)의 자식 노드이다. AND 노드인 노드
Figure 112009012478645-pat00096
(822)의 자식 노드가 모두 리프 노드이므로, 세 노드를 하나의 노드
Figure 112009012478645-pat00097
(834)로 병합한다. AND(1:3)은 1∧2∧3을 의미한다. 노드
Figure 112009012478645-pat00098
(822)에 도달하기 위해서는 노드
Figure 112009012478645-pat00099
(831), 노드
Figure 112009012478645-pat00100
(832), 노드
Figure 112009012478645-pat00101
(833)의 조건을 모두 만족시켜야 하므로 실제로 하나의 경로이고, 따라서 하나의 리프 노드로 병합한 것이다. 또한 노드
Figure 112009012478645-pat00102
(834)의 부모 노드는 하나의 자식만을 가지고, 노드
Figure 112009012478645-pat00103
(834)와 노드
Figure 112009012478645-pat00104
(834)의 부모 노드를 병합하여도 경로 개수에는 영향이 없으므로 노드
Figure 112009012478645-pat00105
(834)와 노드
Figure 112009012478645-pat00106
(834)의 부모 노드를 병합할 수 있다.In FIG. 8A, the node
Figure 112009012478645-pat00091
822 is an AND node, the node
Figure 112009012478645-pat00092
(831), nodes
Figure 112009012478645-pat00093
832, nodes
Figure 112009012478645-pat00094
(833) nodes
Figure 112009012478645-pat00095
Is a child node of 822; Nodes that are AND nodes
Figure 112009012478645-pat00096
Since all child nodes of 822 are leaf nodes, three nodes
Figure 112009012478645-pat00097
Merge to (834). AND (1: 3) means 1∧2∧3. Node
Figure 112009012478645-pat00098
Node to reach 822
Figure 112009012478645-pat00099
(831), nodes
Figure 112009012478645-pat00100
832, nodes
Figure 112009012478645-pat00101
Since all the conditions of (833) must be satisfied, it is actually one path, and thus merged into one leaf node. Node
Figure 112009012478645-pat00102
The parent node of 834 has only one child, the node
Figure 112009012478645-pat00103
Node with 834
Figure 112009012478645-pat00104
Merging the parent nodes of (834) does not affect the number of paths, so nodes
Figure 112009012478645-pat00105
Node with 834
Figure 112009012478645-pat00106
The parent node of 834 may be merged.

도 8b를 참조하면, 원본 공격 트리(801)에서 개량 공격 트리(851)로 개량(refine)이 이루어진다.Referring to FIG. 8B, refinement is made from the original attack tree 801 to the improved attack tree 851.

도 8b에서, 노드

Figure 112009012478645-pat00107
(810)은 AND 노드이고 따라서 노드
Figure 112009012478645-pat00108
(810)의 자식 노드인 노드
Figure 112009012478645-pat00109
(823) 및 노드
Figure 112009012478645-pat00110
(824)는 AND 연산관계이다. 또한, 노드
Figure 112009012478645-pat00111
(823)는 리프 노드이므로 노드
Figure 112009012478645-pat00112
(823) 및 노드
Figure 112009012478645-pat00113
(824)는 노드
Figure 112009012478645-pat00114
(825)로 병합할 수 있다. 노드
Figure 112009012478645-pat00115
(824)의 자식 노드는 노드
Figure 112009012478645-pat00116
(825)로서 잔존한다. AND(3,4)는 3∧4를 의미한다.In Figure 8b, the node
Figure 112009012478645-pat00107
810 is an AND node and thus
Figure 112009012478645-pat00108
A node that is a child of (810)
Figure 112009012478645-pat00109
(823) and nodes
Figure 112009012478645-pat00110
824 denotes an AND operation relationship. Also, node
Figure 112009012478645-pat00111
Node
823 is a leaf node, so node
Figure 112009012478645-pat00112
(823) and nodes
Figure 112009012478645-pat00113
824 nodes
Figure 112009012478645-pat00114
Merge to (825). Node
Figure 112009012478645-pat00115
Child nodes of 824 are nodes
Figure 112009012478645-pat00116
It remains as 825. AND (3,4) means 3∧4.

즉, AND 노드의 두 자식 노드 중 어느 하나가 리프 노드인 경우 두 자식 노드를 병합할 수 있다.That is, when one of the two child nodes of the AND node is a leaf node, the two child nodes can be merged.

도 9를 참조하면, 원본 공격 트리(900)에서 개량 공격 트리(950)로 개량이 이루어진다.9, an improvement is made from the original attack tree 900 to the improved attack tree 950.

도 9에서 노드

Figure 112009012478645-pat00117
(911)과 노드
Figure 112009012478645-pat00118
(912)는 서로 AND 연산관계이고, 각각은 OR 노드이다. 노드
Figure 112009012478645-pat00119
(911)는 노드
Figure 112009012478645-pat00120
(921)과 노드
Figure 112009012478645-pat00121
(922)를 자식 노드로 가진다. 노드
Figure 112009012478645-pat00122
(912)는 노드
Figure 112009012478645-pat00123
(923), 노드
Figure 112009012478645-pat00124
(924)과 노드
Figure 112009012478645-pat00125
(925)를 자식 노드로 가진다. 노드
Figure 112009012478645-pat00126
(911)과 노드
Figure 112009012478645-pat00127
(912)는 서로 AND 연산관계이므로 노드
Figure 112009012478645-pat00128
(913)으로 병합할 수 있다. 여기서 AND(1,2)는 1∧2를 의미한다. 다만, 병합되는 노드가 모드 OR 노드이므로, 노드
Figure 112009012478645-pat00129
(911)의 자식 노드의 수인 2와 노드
Figure 112009012478645-pat00130
(912)의 자식 노드의 수인 3을 곱한 6개의 노드
Figure 112009012478645-pat00131
(931) 내지 노드
Figure 112009012478645-pat00132
(936)를 노드
Figure 112009012478645-pat00133
(913)의 자식 노드로 만든다. 공격 경로의 개수는 노드
Figure 112009012478645-pat00134
(921)과 노드
Figure 112009012478645-pat00135
(922) 중 어느 하나와 노드
Figure 112009012478645-pat00136
(923), 노드
Figure 112009012478645-pat00137
(924)과 노드
Figure 112009012478645-pat00138
(925) 중 어느 하나를 선택하여 조합한 것이 되므로 2 x 3 = 6개가 된다.Node in FIG.
Figure 112009012478645-pat00117
Node with 911
Figure 112009012478645-pat00118
912 are AND arithmetic relations with each other, and each is an OR node. Node
Figure 112009012478645-pat00119
911 nodes
Figure 112009012478645-pat00120
Node with 921
Figure 112009012478645-pat00121
Has 922 as a child node. Node
Figure 112009012478645-pat00122
912 nodes
Figure 112009012478645-pat00123
(923), nodes
Figure 112009012478645-pat00124
924 and nodes
Figure 112009012478645-pat00125
Has 925 as a child node. Node
Figure 112009012478645-pat00126
Node with 911
Figure 112009012478645-pat00127
912 is an AND arithmetic relationship
Figure 112009012478645-pat00128
Merge to 913. Here, AND (1, 2) means 1∧2. However, because the node to be merged is the mode OR node,
Figure 112009012478645-pat00129
2 and the number of child nodes of (911)
Figure 112009012478645-pat00130
6 nodes multiplied by 3, the number of child nodes of (912)
Figure 112009012478645-pat00131
(931) to node
Figure 112009012478645-pat00132
Node
936
Figure 112009012478645-pat00133
Make it a child node of (913). The number of attack paths is node
Figure 112009012478645-pat00134
Node with 921
Figure 112009012478645-pat00135
Node with any one of 922
Figure 112009012478645-pat00136
(923), nodes
Figure 112009012478645-pat00137
924 and nodes
Figure 112009012478645-pat00138
Since any one of 925 is selected and combined, 2 x 3 = 6 pieces.

즉, AND 노드의 두 자식 노드가 모두 OR 노드이고, 두 자식 노드의 자식 노드(손자 노드)가 모두 리프 노드인 경우(손자 노드로부터 리프 노드로의 경로가 하나뿐인 경우 포함) 두 자식 노드를 병합하고, 두 자식 노드의 자식 노드의 수를 서로 곱한 결과값의 수만큼의 노드를 병합한 두 자식 노드의 자식 노드로서 만든다.That is, if two child nodes of an AND node are both OR nodes, and both child nodes (grandchild nodes) are leaf nodes (including when there is only one path from the grandchild node to the leaf node), merge the two child nodes Then, the number of child nodes of the two child nodes are multiplied with each other to make as many nodes as the child nodes of the merged two child nodes.

공격 트리 개량부(531)는 도 8a, 도 8b 및 도 9와 같은 병합 작업을 공격 트리 상에 AND 노드가 존재하지 않을 때까지 반복한다. 여기서 AND 노드의 자식들 간의 병합으로 그 자식이 하나가 되는 경우 더 이상 AND 노드가 아닌 것으로 본다.The attack tree improvement unit 531 repeats the merging operation as shown in FIGS. 8A, 8B, and 9 until there are no AND nodes on the attack tree. Here, when the children become one by merging between the children of the AND nodes, it is no longer considered an AND node.

공격 시나리오의 총 개수는 보안 요구사항을 만족시키지 못한 것으로 식별된 모든 루트 노드(

Figure 112009012478645-pat00139
)로의 경로의 수와 같다. 수학식 7은 이를 수식으로 나타낸 것이다.The total number of attack scenarios is determined by all root nodes (identified as not meeting security requirements).
Figure 112009012478645-pat00139
Equal to the number of paths to). Equation 7 shows this as an expression.

Figure 112009012478645-pat00140
공격 시나리오의 총 개수 = 공격 시나리오의 개수()
Figure 112009012478645-pat00140
Total number of attack scenarios = number of attack scenarios ()

리프 노드 개수 추출부(532)는 개량된 공격 트리의 리프 노드의 개수를 공격 시나리오의 개수로서 추출한다.The leaf node number extractor 532 extracts the number of leaf nodes of the improved attack tree as the number of attack scenarios.

공격 트리 기반 보안 분석부(260)는 소프트웨어 시스템의 생존성(survivability), 침입 확률(Intrusion Probability) 또는 고 위험 공격 시나리오 중 하나 이상을 추출한다.The attack tree based security analyzer 260 extracts one or more of survivability, intrusion probability, or high risk attack scenario of the software system.

공격 트리 기반 보안 분석부(260)는 공격 트리 개량부(531)가 트리를 개량하기 전의 원본 트리를 이용하여 보안 성능을 추출한다. 따라서 공격 트리 기반 보안 분석부(260)가 수행하는 작업은 공격 트리 개량부(531)의 수행작업 이전에 수행될 수 있다. 다만, 공격 트리 개량부(531)의 트리 개량 작업 시 원본 트리를 복사하고, 복사된 후의 두 공격 트리 중 하나는 공격 트리 개량부(531)에서 개량하여 공격 경로 개수 계산에 사용하고, 나머지 하나는 공격 트리 기반 보안 분석부(260)에서 이용한다면 순서에 구애받지 않을 것이다.The attack tree-based security analyzer 260 extracts security performance by using the original tree before the attack tree refiner 531 refines the tree. Therefore, the operation performed by the attack tree-based security analyzer 260 may be performed before the operation of the attack tree improvement unit 531. However, the original tree is copied during the tree improvement operation of the attack tree improvement unit 531, and one of the two attack trees after the copy is improved by the attack tree improvement unit 531 and used to calculate the number of attack paths, and the other one is the attack tree. If used in the base security analysis unit 260 will not be in order.

공격 트리 기반 보안 분석부(260)는 생존성을 추출할 수 있다.The attack tree-based security analyzer 260 may extract survivability.

생존성(survivability)은 악의적인 공격으로부터 소프트웨어가 자기 자신을 보호하는 능력을 의미한다. 생존성은 공격자의 관점에서, 악의적인 공격이 성공하 는 데 필요한 최소 비용으로 정의될 수 있다. 공격 트리에서, 공격 비용은 리프 노드로부터 루트 노드에 도달하는데 필요한 비용이다. 이는 바이너리 연산 (AND, OR)로 계산될 수 있다. 따라서 정량적으로 측정된 생존성은 수학식 8과 같이 F로 표시될 수 있다.Survivability is the ability of software to protect itself from malicious attacks. Survivability can be defined from the attacker's point of view as the minimum cost for a malicious attack to succeed. In the attack tree, the attack cost is the cost required to reach the root node from the leaf node. This can be calculated with binary operations (AND, OR). Therefore, quantitatively measured survivability may be represented by F as shown in Equation (8).

F = MIN(CTree)F = MIN (C Tree )

여기서 CTree는 공격 트리의 리프 노드에 할당된 공격 비용의 집합이다.Where C Tree is the set of attack costs assigned to the leaf nodes of the attack tree.

공격 트리에서 AND 노드의 값은 그 AND 노드의 자식 노드의 값의 합이고, OR 노드의 값은 그 OR 노드의 자식 노드의 값 중 최소값이다.The value of an AND node in the attack tree is the sum of the values of the child nodes of the AND node, and the value of the OR node is the minimum of the values of the child nodes of the OR node.

공격 트리 기반 보안 분석부(260)는 침입 확률(Intrusion probability)을 추출할 수 있다.The attack tree based security analyzer 260 may extract an intrusion probability.

침입 확률은 공격 시나리오에서 악의적 공격을 시도할 확률을 말한다. 따라서 침입 확률(A)은 수학식 9와 같이 생존성으로 표현될 수 있다.Intrusion probability is the probability of attempting a malicious attack in an attack scenario. Therefore, the invasion probability A may be expressed as survivability as shown in Equation (9).

Figure 112009012478645-pat00141
Figure 112009012478645-pat00141

여기서 total cost는 CTree의 원소의 총합이다.Where total cost is the sum of the elements of the C Tree .

공격 트리 기반 보안 분석부(260)는 고 위험 공격 시나리오를 추출할 수 있 다.The attack tree based security analysis unit 260 may extract a high risk attack scenario.

공격 시나리오의 보안 위험은 다음의 두 요소의 곱으로 정의할 수 있다.The security risk of an attack scenario can be defined as the product of two factors:

- 공격 트리 기반 보안 분석부(260)에 의하여 측정되는, 시스템이 요구되는 보안 목표를 만족시키는 데 실패할 확률(침입 확률 A)The probability that the system fails to meet the required security target, as measured by the attack tree based security analysis unit 260 (intrusion probability A).

- 공격 시나리오에서 시스템 보안 실패에 따르는 심각도 severity-Severity severity following system security failure in attack scenarios

위험 인자(R)는 수학식 10과 같이 위의 침입 확률과 심각도의 곱으로 계산된다.Risk factor (R) is calculated as the product of the above probability of invasion and the severity as shown in equation (10).

Rk = A × severityR k = A × severity

고 위험 공격 시나리오 (Critical)은 Rk (여기서 k = (1,2,3,...,n))의 최대값에 의하여 다음 수학식 11과 같이 결정된다.The high risk attack scenario (Critical) is determined by the following equation (11) by the maximum value of R k (where k = (1, 2, 3, ..., n)).

Critical = MAX(Rk)Critical = MAX (R k )

심각도는 공격 시나리오에 따라 데이터베이스 등에 저장되어 미리 설정된 값이 될 수도 있다. 다른 실시 예에 따르면 공격 시나리오를 분석하여 심각도가 정해질 수도 있다.The severity may be a preset value stored in a database according to the attack scenario. According to another embodiment, the severity may be determined by analyzing the attack scenario.

심각도의 분석은 여러 방법이 제안되어 있는 공지 기술이므로 자세한 설명은 생략한다.Analysis of the severity is a well-known technique in which several methods have been proposed, and thus detailed description thereof will be omitted.

결과 출력부(270)는 MRM 기반 보안 분석부(230)가 추출한 MTTI 나 MTTB, 공 격 시나리오 식별부(250)가 추출한 공격 시나리오 개수, 공격 트리 기반 보안 분석부(260)가 추출한 생존성, 침입 확률, 고 위험 공격 시나리오 중 하나 이상을 출력할 수 있다.The result output unit 270 is the MTTI or MTTB extracted by the MRM-based security analyzer 230, the number of attack scenarios extracted by the attack scenario identifier 250, the survivability extracted by the attack tree-based security analyzer 260, and the intrusion. Can output one or more of probable, high-risk attack scenarios.

도 10은 본 발명의 일 실시 예에 따르는 보안 분석 방법의 순서도이다.10 is a flowchart illustrating a security analysis method according to an embodiment of the present invention.

단계 S1010에서 HCPN 생성부(210)는 HCPN 형태의 제1 소프트웨어 모델을 생성한다. HCPN 생성부(210)의 제1 소프트웨어 모델 생성 작업에 대해서는 도 2를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1010, the HCPN generation unit 210 generates a first software model of the HCPN type. Since the first software model generation operation of the HCPN generation unit 210 has been described in detail with reference to FIG. 2, a detailed description thereof will be omitted.

단계 S1020에서 HCPN/MRM 변환부(210)는 HCPN 형태의 제1 소프트웨어 모델을 MRM 형태의 제2 소프트웨어 모델로 변환한다.In step S1020, the HCPN / MRM conversion unit 210 converts the first software model of the HCPN type into the second software model of the MRM type.

도 11은 본 발명의 일 실시 예에 따르는 도 10의 단계 S1020의 상세 순서도이다.11 is a detailed flowchart of step S1020 of FIG. 10 according to an embodiment of the present invention.

도 11을 참조하면, 단계 S1110에서 HCPN 형태의 제1 소프트웨어 모델을 MC 형태의 제 3 소프트웨어 모델로 변환한다.Referring to FIG. 11, in operation S1110, the first software model in the form of HCPN is converted into the third software model in the form of MC.

도 12는 본 발명의 일 실시 예에 따르는 도 11의 단계 S1110의 상세 순서도이다.12 is a detailed flowchart of step S1110 of FIG. 11 according to an embodiment of the present invention.

단계 S1210에서 스테이트 생성부(320)는 HCPN 형태의 제1 소프트웨어 모델에 포함되는 토큰의 마킹에 다라 식별되는 스테이트를 생성한다. 스테이트 생성부(320)의 스테이트 생성 작업에 대해서는 도 3 및 도 4를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1210, the state generating unit 320 generates a state identified according to the marking of the token included in the first software model of the HCPN type. Since the state generating operation of the state generating unit 320 has been described in detail with reference to FIGS. 3 and 4, a detailed description thereof will be omitted.

단계 S1220에서 에지 생성부(330)는 HCPN 형태의 제1 소프트웨어 모델에 포 함되는 트랜지션의 파이어에 따르는 스테이트 변화에 상응하는 에지를 생성한다. 에지 생성부(330)의 에지 생성 작업에 대해서는 도 3 및 도 4를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1220, the edge generator 330 generates an edge corresponding to the state change according to the fire of the transition included in the first software model of the HCPN type. An edge generation operation of the edge generator 330 has been described in detail with reference to FIGS. 3 and 4, and thus a detailed description thereof will be omitted.

단계 S1230에서 변화 확률 추출부(340)는 트랜지션의 파이어 확률에 상응하여 스테이트 변화 확률을 추출한다. 변화 확률 추출부(340)의 스테이트 변화 확률 추출 작업에 대해서는 도 3 및 도 4를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In operation S1230, the change probability extractor 340 extracts the state change probability according to the fire probability of the transition. Since the state change probability extraction operation of the change probability extractor 340 has been described in detail with reference to FIGS. 3 and 4, a detailed description thereof will be omitted.

단계 S1120에서 MC/MRM 변환부(350)는 MC 형태의 제3 소프트웨어 모델을 MRM 형태의 제2 소프트웨어 모델로 변환한다. MC/MRM 변환부(350)의 변환 작업에 대해서는 도 3을 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In operation S1120, the MC / MRM converter 350 converts the third software model in the MC form into the second software model in the MRM form. Since the conversion operation of the MC / MRM conversion unit 350 has been described in detail with reference to FIG. 3, a detailed description thereof will be omitted.

단계 S1030에서 MRM 형태의 제2 소프트웨어 모델을 기반으로 정량적 보안 성능을 추출한다.In operation S1030, a quantitative security performance is extracted based on the second software model in the form of an MRM.

도 13은 본 발명의 일 실시 예에 따르는 도 10의 단계 S1030의 상세 순서도이다.13 is a detailed flowchart of step S1030 of FIG. 10 according to an embodiment of the present invention.

단계 S1310에서 MTTI 추출부(510)가 MTTI를 추출한다. MTTI의 추출 방법에 대해서는 도 5a 및 도 5b를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1310, the MTTI extractor 510 extracts the MTTI. Since the MTTI extraction method has been described in detail with reference to FIGS. 5A and 5B, a detailed description thereof will be omitted.

단계 S1320에서 MTTB 추출부(520)가 MTTB를 추출한다. MTTB의 추출 방법에 대해서는 도 5a 및 도 5b를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1320, the MTTB extractor 520 extracts the MTTB. Since the extraction method of MTTB has been described in detail with reference to FIGS. 5A and 5B, a detailed description thereof will be omitted.

단계 S1040에서 공격 트리 생성부(240)는 공격 트리를 생성한다. 공격 트리 생성부(240)의 공격 트리 생성에 대해서는 도 2를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In operation S1040, the attack tree generation unit 240 generates an attack tree. Since the attack tree generation of the attack tree generator 240 has been described in detail with reference to FIG. 2, a detailed description thereof will be omitted.

단계 S1050에서 공격 시나리오 식별부(250)는 공격 시나리오의 개수를 추출한다.In step S1050, the attack scenario identification unit 250 extracts the number of attack scenarios.

도 14는 본 발명의 일 실시 예에 따르는 도 10의 단계 S1050의 상세 순서도이다.14 is a detailed flowchart of step S1050 of FIG. 10 in accordance with an embodiment of the present invention.

단계 S1410에서 공격 트리 개량부(531)는 AND 노드의 자식 노드를 통합하여 트리를 개량한다. 공격 트리 개량부(531)의 트리 개량 작업은 도 6 내지 도 9를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1410, the attack tree refinement unit 531 refines the tree by integrating child nodes of the AND node. Since the tree improvement operation of the attack tree improvement unit 531 has been described in detail with reference to FIGS. 6 to 9, a detailed description thereof will be omitted.

단계 S1420에서 공격 리프 노드 개수 추출부(532)는 공격 트리 상에 AND 노드가 존재하지 않을 때 상기 공격 트리의 리프 노드 수를 공격 시나리오 개수로서 추출한다. 공격 리프 노드 개수 추출부(532)의 공격 시나리오 개수 추출 작업은 도 6 내지 도 9를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1420, the attack leaf node number extractor 532 extracts the leaf node number of the attack tree as the attack scenario number when there is no AND node on the attack tree. The attack scenario number extracting operation of the attack leaf node number extracting unit 532 has been described in detail with reference to FIGS. 6 to 9, and thus a detailed description thereof will be omitted.

단계 S1060에서 공격 트리 기반 보안 분석부(260)는 생존성, 침입 확률, 고 위험 공격 시나리오 중 하나 이상의 보안 성능을 추출한다.In step S1060, the attack tree-based security analysis unit 260 extracts one or more security capabilities of survivability, intrusion probability, and high risk attack scenario.

도 15는 본 발명의 일 실시 예에 따르는 도 10의 단계 S1060의 상세 순서도이다.15 is a detailed flowchart of step S1060 of FIG. 10 according to an embodiment of the present invention.

단계 S1510에서 공격 트리 기반 보안 분석부(260)는 리프 노드에 할당된 공격 비용을 이용하여 생존성을 추출한다. 생존성 추출 방법에 대해서는 도 2를 참조 하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1510 the attack tree-based security analysis unit 260 extracts survivability using the attack cost assigned to the leaf node. Since the viability extraction method has been described in detail with reference to FIG. 2, a detailed description thereof will be omitted.

단계 S1520에서 공격 트리 기반 보안 분석부(260)는 단계 S1510에서 추출한 생존성을 이용하여 침입 확률을 추출한다. 침입 확률 추출 방법에 대해서는 도 2를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1520 the attack tree-based security analysis unit 260 extracts the intrusion probability using the survivability extracted in step S1510. Since the intrusion probability extraction method has been described in detail with reference to FIG. 2, a detailed description thereof will be omitted.

단계 S1530에서 공격 트리 기반 보안 분석부(260)는 단계 S1520에서 추출한 침입 확률과 심각도의 곱이 가장 큰 공격 시나리오를 고 위험 공격 시나리오로서 추출한다. 고 위험 공격 시나리오의 추출 방법에 대해서는 도 2를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1530, the attack tree-based security analysis unit 260 extracts an attack scenario having the greatest product of the intrusion probability and the severity extracted in step S1520 as a high risk attack scenario. Since the extraction method of the high risk attack scenario has been described in detail with reference to FIG. 2, a detailed description thereof will be omitted.

단계 S1070에서 결과 출력부(270)는 MRM 기반 보안 분석부(230)가 추출한 MTTI 나 MTTB, 공격 시나리오 식별부(250)가 추출한 공격 시나리오 개수, 공격 트리 기반 보안 분석부(260)가 추출한 생존성, 침입 확률, 고 위험 공격 시나리오 중 하나 이상을 출력할 수 있다.In step S1070, the result output unit 270 is the MTTI or MTTB extracted by the MRM-based security analyzer 230, the number of attack scenarios extracted by the attack scenario identifier 250, and the survivability extracted by the attack tree-based security analyzer 260. One or more of the following scenarios: intrusion probability, and high risk attack scenarios.

본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the invention. Singular expressions include plural expressions unless the context clearly indicates otherwise.

본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것 으로 이해되어야 한다.In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility or the possibility of additions or numbers, steps, operations, components, components, or combinations thereof.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

본 발명의 실시 예는 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. An embodiment of the present invention may include a computer readable medium including program instructions for performing various computer-implemented operations. The computer readable medium may include program instructions, local data files, local data structures, or the like, alone or in combination. The media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.

또한, 도 2, 도 3, 도 5a에 도시된 구성요소들은 반드시 하드웨어 구성을 가질 필요는 없으며, 일부 구성요소는 동일 또는 유사한 기능을 수행하는 응용 프로그램의 형태로 구현될 수 있다. 또한, 각 구성요소들은 발명의 사상 범위 내에서 결합하거나 분리될 수도 있음은 물론이다. In addition, the components illustrated in FIGS. 2, 3, and 5A do not necessarily have hardware configurations, and some components may be implemented in the form of an application program that performs the same or similar functions. In addition, each component may be combined or separated within the scope of the invention.

이제까지 본 발명에 대하여 그 실시 예를 중심으로 살펴보았다. 전술한 실시 예 외의 많은 실시 예들이 본 발명의 특허청구범위 내에 존재한다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으 며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the embodiment for the present invention. Many embodiments other than the above-described embodiments are within the claims of the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. The disclosed embodiments should, therefore, be considered in an illustrative rather than a restrictive sense. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

도 1a는 오픈 클래스 모델(open class model) HQPN의 모식도이다.1A is a schematic diagram of an open class model HQPN.

도 1b는 클로즈드 클래스 모델(closed class model) HQPN의 모식도이다.1B is a schematic diagram of a closed class model HQPN.

도 2는 본 발명의 일 실시 예에 따르는 소프트웨어 보안 분석 장치(200)의 블록 구성도이다.2 is a block diagram of a software security analysis apparatus 200 according to an embodiment of the present invention.

도 3은 본 발명의 일 실시 예에 따르는 HQPN/MRM 변환부(220)의 블록 구성도이다.3 is a block diagram of an HQPN / MRM conversion unit 220 according to an embodiment of the present invention.

도 4는 본 발명의 일 실시 예에 따르는 HCPN 형태의 모델을 MC 형태로 변환하는 과정의 모식도이다.4 is a schematic diagram of a process of converting an HCPN type model into an MC type according to an embodiment of the present invention.

도 5a는 본 발명의 일 실시 예에 따르는 MRM 기반 보안 분석부(230)의 블록 구성도이다.5A is a block diagram of an MRM-based security analyzer 230 according to an embodiment of the present invention.

도 5b는 MTTI와 MTTB를 나타낸 도면이다.5B is a diagram illustrating MTTI and MTTB.

도 6은 본 발명의 일 실시 예에 따르는 공격 시나리오 식별부(530)의 블록 구성도이다.6 is a block diagram of an attack scenario identification unit 530 according to an embodiment of the present invention.

도 7은 본 발명의 일 실시 예에 따르는 공격 트리 개량 방법의 의사 코드이다.7 is a pseudo code of a method for improving an attack tree according to an embodiment of the present invention.

도 8a, 도 8b 및 도 9는 본 발명의 일 실시 예에 따르는 공격 트리 개량의 모식도이다.8A, 8B and 9 are schematic diagrams of an attack tree improvement according to an embodiment of the present invention.

도 10은 본 발명의 일 실시 예에 따르는 보안 분석 방법의 순서도이다.10 is a flowchart illustrating a security analysis method according to an embodiment of the present invention.

도 11은 본 발명의 일 실시 예에 따르는 도 10의 단계 S1020의 상세 순서도 이다.11 is a detailed flowchart of step S1020 of FIG. 10 according to an embodiment of the present invention.

도 12는 본 발명의 일 실시 예에 따르는 도 11의 단계 S1110의 상세 순서도이다.12 is a detailed flowchart of step S1110 of FIG. 11 according to an embodiment of the present invention.

도 13은 본 발명의 일 실시 예에 따르는 도 10의 단계 S1030의 상세 순서도이다.13 is a detailed flowchart of step S1030 of FIG. 10 according to an embodiment of the present invention.

도 14는 본 발명의 일 실시 예에 따르는 도 10의 단계 S1050의 상세 순서도이다.14 is a detailed flowchart of step S1050 of FIG. 10 in accordance with an embodiment of the present invention.

도 15는 본 발명의 일 실시 예에 따르는 도 10의 단계 S1060의 상세 순서도이다.15 is a detailed flowchart of step S1060 of FIG. 10 according to an embodiment of the present invention.

Claims (24)

HCPN(계층형 페트리 네트, Hierarchically Combined Petri Net) 형태의 제1 소프트웨어 모델을 이용하는 소프트웨어 보안 분석 방법에 있어서,In the software security analysis method using a first software model in the form of Hierarchically Combined Petri Net (HCPN), 상기 HCPN 형태의 제1 소프트웨어 모델을 MRM(마르코프 보상 모형, Markov Reward Model) 형태의 제2 소프트웨어 모델로 변환하는 단계; 및Converting the first software model in the form of HCPN into a second software model in the form of a Markov Reward Model (MRM); And 상기 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 단계를 포함하는 소프트웨어 보안 분석 방법.Extracting quantitative security performance using the second software model. 제1항에 있어서,The method of claim 1, 상기 제1 소프트웨어 모델의 컬러는 속성(attribute)을 가지는 것을 특징으로 하는 소프트웨어 보안 분석 방법.And the color of the first software model has an attribute. 제1항에 있어서,The method of claim 1, 상기 HCPN 형태의 제1 소프트웨어 모델을 MRM 형태의 제2 소프트웨어 모델로 변환하는 단계는,Converting the first software model of the HCPN type to the second software model of the MRM type, 상기 제1 소프트웨어 모델을 MC(마르코프 연쇄, Markov Chain) 형태의 제3 소프트웨어 모델로 변환하는 단계; 및Converting the first software model into a third software model in the form of an MC (Markov Chain); And 상기 제3 소프트웨어 모델을 상기 MRM 형태의 제2 소프트웨어 모델로 변환하는 단계를 포함하는 소프트웨어 보안 분석 방법.Converting the third software model to a second software model in the form of an MRM. 제3항에 있어서,The method of claim 3, 상기 제1 소프트웨어 모델을 MC형태의 제3 소프트웨어 모델로 변환하는 단계는,Converting the first software model into a third software model of the MC form, 상기 제1 소프트웨어 모델에 포함되는 토큰(token)의 마킹(marking)에 따라 식별되는 스테이트(state)를 생성하는 단계;Generating a state identified according to marking of a token included in the first software model; 상기 제1 소프트웨어 모델에 포함되는 트랜지션(transition)의 파이어(fire)에 따르는 스테이트 변화에 상응하는 에지(edge)를 생성하는 단계; 및Generating an edge corresponding to a state change according to a fire of a transition included in the first software model; And 상기 트랜지션의 파이어(fire) 확률에 상응하여 스테이트 변화 확률을 추출하는 단계를 포함하는 소프트웨어 보안 분석 방법.Extracting a state change probability corresponding to a fire probability of the transition. 제3항에 있어서,The method of claim 3, 상기 제3 소프트웨어 모델을 상기 MRM 형태의 제2 소프트웨어 모델로 변환하는 단계는,Converting the third software model to the second software model of the MRM type, 상기 제3 소프트웨어 모델에 포함되는 스테이트(state)에 상응하는 제1 소프트웨어 모델의 마킹에 승인되지 않은 토큰(non-authorized token)이 존재하지 않는 스테이트에 제1 보상율(reward rate)을 할당하고, 상기 제3 소프트웨어 모델에 포함되는 스테이트(state)에 상응하는 제1 소프트웨어 모델의 마킹에 승인되지 않은 토큰(non-authorized token)이 존재하는 스테이트에 제2 보상율(reward rate)을 할당하는 단계를 포함하는 소프트웨어 보안 분석 방법.Assigning a first reward rate to a state in which a non-authorized token does not exist in the marking of the first software model corresponding to a state included in the third software model, and Assigning a second reward rate to a state in which a non-authorized token exists in the marking of the first software model corresponding to a state included in the third software model; Software security analysis method. 제1항에 있어서,The method of claim 1, 상기 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 단계는,Extracting quantitative security performance using the second software model, Li(t)가 상기 제2 소프트웨어 모델에 상응하는 연속 시간 마르코프 연쇄(CTMC: continuous time Markov chain) 모델이 구간 [0,t)에서 스테이트 i에 머무는 총 기대시간이고, Uj는 보안 요구사항을 만족하는 스테이트의 집합일 때, 다음 수식을 이용하여 평균 공격 시작 시간(MTTI: Mean Time to Intrusion)을 추출하는 단계를 포함하는 소프트웨어 보안 분석 방법.L i (t) is the total expected time that the continuous time Markov chain (CTMC) model corresponding to the second software model stays in state i in the interval [0, t), and U j is the security requirement. And extracting a mean time to intrusion (MTTI) using the following formula when the set of states satisfies.
Figure 112009012478645-pat00142
Figure 112009012478645-pat00142
제2항에 있어서,The method of claim 2, 상기 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 단계는,Extracting quantitative security performance using the second software model, Li(t)가 상기 제2 소프트웨어 모델에 상응하는 연속 시간 마르코프 연쇄(CTMC: continuous time Markov chain) 모델이 구간 [0,t)에서 스테이트 i에 머무는 총 기대시간이고, Dj는 보안 요구사항을 만족하지 않는 비흡수 스테이트의 집합일 때, 다음 수식을 이용하여 평균 공격 소요 시간(MTTB: Mean Time to Breaches)을 추출하는 단계를 포함하는 소프트웨어 보안 분석 방법.L i (t) is the total expected time that the continuous time Markov chain (CTMC) model corresponding to the second software model stays in state i in the interval [0, t), and D j is the security requirement. When the set of non-absorbing state does not satisfy the method, software security analysis method comprising the step of extracting the mean attack time (MTTB) using the following formula.
Figure 112009012478645-pat00143
Figure 112009012478645-pat00143
제1항 내지 제7항 중 어느 한 항에 기재된 소프트웨어 보안 분석 방법을 수행하기 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램이 기록된 기록매체.A program of instructions, which can be executed by a digital processing apparatus for performing the software security analysis method according to any one of claims 1 to 7, is tangibly embodied and can be read by the digital processing apparatus. The recorded recording medium. HCPN(계층형 페트리 네트, Hierarchically Combined Petri Net) 형태의 제1 소프트웨어 모델을 이용하는 소프트웨어 보안 분석 장치에 있어서,In the software security analysis device using a first software model in the form of a hierarchically combined petri net (HCPN), 상기 HCPN 형태의 제1 소프트웨어 모델을 MRM(마르코프 보상 모형, Markov Reward Model) 형태의 제2 소프트웨어 모델로 변환하는 HCPN/MRM 변환부; 및An HCPN / MRM conversion unit for converting the first software model in the form of an HCPN into a second software model in the form of a Markov Reward Model (MRM); And 상기 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 MRM 기반 보안 분석부를 포함하는 소프트웨어 보안 분석 장치.Software security analysis device comprising an MRM-based security analysis unit for extracting a quantitative security performance using the second software model. 제9항에 있어서,10. The method of claim 9, 상기 제1 소프트웨어 모델의 컬러는 속성(attribute)을 가지는 것을 특징으로 하는 소프트웨어 보안 분석 장치.And the color of the first software model has an attribute. 제9항에 있어서,10. The method of claim 9, 상기 HCPN/MRM 변환부는,The HCPN / MRM conversion unit, 상기 제1 소프트웨어 모델을 MC(마르코프 연쇄, Markov Chain) 형태의 제3 소프트웨어 모델로 변환하는 HCPN/MC 변환부; 및An HCPN / MC converter converting the first software model into a third software model in the form of an MC (Markov Chain); And 상기 제3 소프트웨어 모델을 상기 MRM 형태의 제2 소프트웨어 모델로 변환하는 MC/MRM 변환부를 포함하는 소프트웨어 보안 분석 장치.And an MC / MRM converter configured to convert the third software model into a second software model in the MRM form. 제11항에 있어서,The method of claim 11, 상기 HCPN/MC 변환부는,The HCPN / MC converter, 상기 제1 소프트웨어 모델에 포함되는 토큰(token)의 마킹(marking)에 따라 식별되는 스테이트(state)를 생성하는 스테이트 생성부;A state generating unit generating a state identified according to marking of a token included in the first software model; 상기 제1 소프트웨어 모델에 포함되는 트랜지션(transition)의 파이어(fire)에 따르는 스테이트 변화에 상응하는 에지(edge)를 생성하는 에지 생성부; 및An edge generator for generating an edge corresponding to a state change according to a fire of a transition included in the first software model; And 상기 트랜지션의 파이어(fire) 확률에 상응하여 스테이트 변화 확률을 추출하는 변화 확률 추출부를 포함하는 소프트웨어 보안 분석 장치.And a change probability extracting unit configured to extract a state change probability in accordance with a fire probability of the transition. 제11항에 있어서,The method of claim 11, 상기 MC/MRM 변환부는,The MC / MRM conversion unit, 상기 제3 소프트웨어 모델에 포함되는 스테이트(state)에 상응하는 제1 소프트웨어 모델의 마킹에 승인되지 않은 토큰(non-authorized token)이 존재하지 않는 스테이트에 제1 보상율(reward rate)을 할당하고, 상기 제3 소프트웨어 모델에 포함되는 스테이트(state)에 상응하는 제1 소프트웨어 모델의 마킹에 승인되지 않은 토큰(non-authorized token)이 존재하는 스테이트에 제2 보상율(reward rate)을 할당하는 보상율 할당부를 포함하는 소프트웨어 보안 분석 장치.Assigning a first reward rate to a state in which a non-authorized token does not exist in the marking of the first software model corresponding to a state included in the third software model, and Compensation rate allocating unit for allocating a second reward rate to a state in which a non-authorized token exists in the marking of the first software model corresponding to a state included in the third software model. Software security analysis device. 제9항에 있어서,10. The method of claim 9, 상기 MRM 기반 보안 분석부는,The MRM based security analysis unit, Li(t)가 상기 제2 소프트웨어 모델에 상응하는 연속 시간 마르코프 연쇄(CTMC: continuous time Markov chain) 모델이 구간 [0,t)에서 스테이트 i에 머무는 총 기대시간이고, Uj는 보안 요구사항을 만족하는 스테이트의 집합일 때, 다음 수식을 이용하여 평균 공격 시작 시간(MTTI: Mean Time to Intrusion)을 추출하는 MTTI 추출부를 포함하는 소프트웨어 보안 분석 장치.L i (t) is the total expected time that the continuous time Markov chain (CTMC) model corresponding to the second software model stays in state i in the interval [0, t), and U j is the security requirement. And a MTTI extracting unit for extracting a mean time to intrusion (MTTI) using a following formula when the set of states satisfies.
Figure 112009012478645-pat00144
Figure 112009012478645-pat00144
제9항에 있어서,10. The method of claim 9, 상기 MRM 기반보안 분석부는,The MRM-based security analysis unit, Li(t)가 상기 제2 소프트웨어 모델에 상응하는 연속 시간 마르코프 연쇄(CTMC: continuous time Markov chain) 모델이 구간 [0,t)에서 스테이트 i에 머무는 총 기대시간이고, Dj는 보안 요구사항을 만족하지 않는 비흡수 스테이트의 집합일 때, 다음 수식을 이용하여 평균 공격 소요 시간(MTTB: Mean Time to Breaches)을 추출하는 MTTB 추출부를 포함하는 소프트웨어 보안 분석 장치.L i (t) is the total expected time that the continuous time Markov chain (CTMC) model corresponding to the second software model stays in state i in the interval [0, t), and D j is the security requirement. When the set of non-absorbing state does not satisfy the software security analysis apparatus including an MTTB extractor for extracting the mean attack time (MTTB) using the following formula.
Figure 112009012478645-pat00145
Figure 112009012478645-pat00145
공격 트리(attack tree)를 이용하는 소프트웨어 보안 분석 방법에 있어서,In the software security analysis method using an attack tree, (a) 상기 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 중 어느 하나가 리프 노드인 경우 상기 제1 노드 및 제2 노드를 병합하는 단계;(a) merging the first node and the second node when any one of a first node and a second node which are operand nodes of an AND operator on the attack tree is a leaf node; (b) 상기 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 모두가 OR 노드인 경우 상기 제1 노드 및 상기 제2 노드를 병합하여 OR노드인 제3 노드를 생성하고, 상기 제1 노드의 자식 노드 수와 상기 제2 노드의 자식 노드의 수를 곱한 수만큼의 노드를 상기 제3 노드의 자식 노드로서 생성하는 단계;(b) when both the first node and the second node which are operand nodes of the AND operator on the attack tree are OR nodes, merge the first node and the second node to generate a third node which is an OR node; Generating as many nodes as child nodes of the third node, the number of nodes multiplied by the number of child nodes of the first node and the number of child nodes of the second node; 상기 공격 트리 상에 AND 노드가 존재하지 않을 때까지 상기 (a) 단계 및 상기 (b) 단계를 반복하는 단계; 및Repeating steps (a) and (b) until there is no AND node on the attack tree; And 상기 공격 트리 상에 AND 노드가 존재하지 않을 때 상기 공격 트리의 리프 노드 수를 공격 시나리오 개수로서 추출하는 단계를 포함하는 소프트웨어 보안 분석 방법.And extracting the number of leaf nodes of the attack tree as the number of attack scenarios when there is no AND node on the attack tree. 제16항에 있어서,The method of claim 16, CTree는 상기 공격 트리의 리프 노드에 할당된 공격 비용의 집합일 때, 생존성(survivability) F를 아래 수식에 의하여 추출하는 단계를 더 포함하는 소프트웨 어 보안 분석 방법.And when the C Tree is a set of attack costs assigned to the leaf nodes of the attack tree, extracting survivability F by the following formula. F = MIN(CTree)F = MIN (C Tree ) 제17항에 있어서,The method of claim 17, F가 생존성이고, total cost는 상기 공격 트리의 리프 노드에 할당된 공격 비용의 총합일 때 아래 수식에 의하여 침입 확률 A를 추출하는 단계를 더 포함하는 소프트웨어 보안 분석 방법.And extracting the intrusion probability A according to the following formula when F is survivability and the total cost is the sum of the attack costs assigned to the leaf nodes of the attack tree.
Figure 112009012478645-pat00146
Figure 112009012478645-pat00146
제18항에 있어서,The method of claim 18, 상기 침입 확률과 심각도(severity)의 곱이 가장 큰 공격 시나리오를 고 위험 공격 시나리오로서 추출하는 단계를 더 포함하는 소프트웨어 보안 분석 방법.And extracting an attack scenario having the greatest product of the intrusion probability and the severity as a high risk attack scenario. 제16항 내지 제19항 중 어느 한 항에 기재된 소프트웨어 보안 분석 방법을 수행하기 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램이 기록된 기록매체.20. A program of instructions, which can be executed by a digital processing apparatus, is tangibly implemented to perform the software security analysis method according to any one of claims 16 to 19, and the program can be read by the digital processing apparatus. The recorded recording medium. 공격 트리(attack tree)를 이용하는 소프트웨어 보안 분석 장치에 있어서,In a software security analysis device using an attack tree, (a) 상기 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 중 어느 하나가 리프 노드인 경우 상기 제1 노드 및 제2 노드를 병합하는 작업을 수행하고;(a) merging the first node and the second node when any one of a first node and a second node which are operand nodes of an AND operator on the attack tree is a leaf node; (b) 상기 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 모두가 OR 노드인 경우 상기 제1 노드 및 상기 제2 노드를 병합하여 OR노드인 제3 노드를 생성하고, 상기 제1 노드의 자식 노드 수와 상기 제2 노드의 자식 노드의 수를 곱한 수만큼의 노드를 상기 제3 노드의 자식 노드로서 생성하는 작업을 수행하고;(b) when both the first node and the second node which are operand nodes of the AND operator on the attack tree are OR nodes, merge the first node and the second node to generate a third node which is an OR node; Generate as a child node of the third node the number of nodes multiplied by the number of child nodes of the first node and the number of child nodes of the second node; 상기 공격 트리 상에 AND 노드가 존재하지 않을 때까지 상기 (a) 작업 및 상기 (b) 작업을 반복 수행하는 공격 트리 개량부; 및An attack tree improvement unit which repeats the operation (a) and the operation (b) until there is no AND node on the attack tree; And 상기 공격 트리 상에 AND 노드가 존재하지 않을 때 상기 공격 트리의 리프 노드 수를 공격 시나리오 개수로서 추출하는 리프 노드 개수 추출부를 포함하는 소프트웨어 보안 분석 장치.And a leaf node number extracting unit which extracts the leaf node number of the attack tree as the number of attack scenarios when there is no AND node on the attack tree. 제21항에 있어서,The method of claim 21, CTree는 상기 공격 트리의 리프 노드에 할당된 공격 비용의 집합일 때, 생존성(survivability) F를 아래 수식에 의하여 추출하는 공격 트리 기반 보안 분석부를 더 포함하는 소프트웨어 보안 분석 장치.The C Tree further comprises an attack tree based security analysis unit for extracting the survivability (F) by the following formula when the attack cost assigned to the leaf node of the attack tree. F = MIN(CTree)F = MIN (C Tree ) 제22항에 있어서,The method of claim 22, 상기 공격 트리 기반 보안 분석부는 F가 생존성이고, total cost는 상기 공격 트리의 리프 노드에 할당된 공격 비용의 총합일 때 아래 수식에 의하여 침입 확률 A를 추출하는 기능을 더 수행하는 소프트웨어 보안 분석 장치.The attack tree-based security analysis unit further performs a function of extracting the intrusion probability A according to the following formula when F is survivability and the total cost is the sum of the attack costs allocated to the leaf nodes of the attack tree. .
Figure 112009012478645-pat00147
Figure 112009012478645-pat00147
제23항에 있어서,24. The method of claim 23, 상기 공격 트리 기반 보안 분석부는 상기 침입 확률과 심각도(severity)의 곱이 가장 큰 공격 시나리오를 고 위험 공격 시나리오로서 추출하는 기능을 더 수행하는 소프트웨어 보안 분석 장치.And the attack tree based security analyzer extracts an attack scenario having the greatest product of the intrusion probability and the severity as a high risk attack scenario.
KR1020090017163A 2009-02-27 2009-02-27 Method and Apparatus for Analyzing Security of Software KR100990688B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090017163A KR100990688B1 (en) 2009-02-27 2009-02-27 Method and Apparatus for Analyzing Security of Software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090017163A KR100990688B1 (en) 2009-02-27 2009-02-27 Method and Apparatus for Analyzing Security of Software

Publications (2)

Publication Number Publication Date
KR20100098141A KR20100098141A (en) 2010-09-06
KR100990688B1 true KR100990688B1 (en) 2010-10-29

Family

ID=43005156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090017163A KR100990688B1 (en) 2009-02-27 2009-02-27 Method and Apparatus for Analyzing Security of Software

Country Status (1)

Country Link
KR (1) KR100990688B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104184632A (en) * 2014-09-03 2014-12-03 重庆大学 Method for analyzing performance of communication protocol router
KR20180068268A (en) * 2016-12-13 2018-06-21 경희대학교 산학협력단 Method and apparatus for security investment based on evaluating security risks
KR20180069657A (en) * 2016-12-15 2018-06-25 경희대학교 산학협력단 Method, apparatus and computer program for security investment considering characteristics of cloud service
KR102050230B1 (en) * 2018-06-29 2019-11-29 순천향대학교 산학협력단 A method for verifying drones in Industrial Internet of Things using Petri net modeling

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
천금재 외 2명,"계층형 큐잉 페트리 넷을 이용한 가용성 분석 방법론", 한국정보과학회 2008 가을 학술발표논문집 제35권 제2호(B), 2008. 10

Also Published As

Publication number Publication date
KR20100098141A (en) 2010-09-06

Similar Documents

Publication Publication Date Title
Johnson et al. A meta language for threat modeling and attack simulations
Khairi et al. Detection and classification of conflict flows in SDN using machine learning algorithms
US20210357508A1 (en) Method and a system for testing machine learning and deep learning models for robustness, and durability against adversarial bias and privacy attacks
Dalton et al. Analyzing attack trees using generalized stochastic petri nets
Doynikova et al. CVSS-based probabilistic risk assessment for cyber situational awareness and countermeasure selection
KR102295654B1 (en) Method and apparatus for predicting attack target based on attack graph
US11483354B2 (en) System and method for reasoning about the optimality of a configuration parameter of a distributed system
RU2017141988A (en) METHOD AND DEVICE FOR MANAGING SECURITY IN A COMPUTER NETWORK
Kotenko et al. The CAPEC based generator of attack scenarios for network security evaluation
CN111522746B (en) Data processing method, device, equipment and computer readable storage medium
CN110704846B (en) Intelligent human-in-loop security vulnerability discovery method
CN111917793B (en) Attack chain information analysis method, system and storage medium
KR100990688B1 (en) Method and Apparatus for Analyzing Security of Software
Alserhani Alert correlation and aggregation techniques for reduction of security alerts and detection of multistage attack
Berdibayev et al. A concept of the architecture and creation for siem system in critical infrastructure
Mauri et al. Stride-ai: An approach to identifying vulnerabilities of machine learning assets
Li et al. An approach to model network exploitations using exploitation graphs
Kotenko et al. Data analytics for security management of complex heterogeneous systems: event correlation and security assessment tasks
Tripathi et al. Towards standardization of vulnerability taxonomy
Priyansh et al. Durbin: A comprehensive approach to analysis and detection of emerging threats due to network intrusion
CN110995747A (en) Distributed storage security analysis method
Nabi et al. Classification of Logical Vulnerability Based on Group Attack Method.
Majhi et al. Placement of security devices in cloud data centre network: analysis and implementation
Zhang et al. An Efficient Smart Contract Vulnerability Detector Based on Semantic Contract Graphs Using Approximate Graph Matching
Dalton II et al. Analysing security risks in computer and radio frequency identification (RFID) networks using attack and protection trees

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131007

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140923

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee