KR100990688B1 - Method and Apparatus for Analyzing Security of Software - Google Patents
Method and Apparatus for Analyzing Security of Software Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/22—Design optimisation, verification or simulation using Petri net models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements 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
본 발명은 소프트웨어 보안 분석 방법 및 장치에 관한 것으로, 더욱 상세하게는 소프트웨어의 보안을 정량적으로 분석하는 방법 및 장치에 관한 것이다.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
여기서 P(0)는 초기 확률 벡터(시점 t=0)이다. 정상 상태(steady-state) 확률 벡터 는 수학식 2를 만족한다.Where P (0) is the initial probability vector (time t = 0). Steady-state probability vector Satisfies
순간 스테이트 확률뿐 아니라 누적 확률도 종종 관심의 대상이 된다.In addition to instant state probabilities, cumulative probabilities are often of interest.
L(t)를 로 정의한다. 그러면 Li(t)는 기대 구간[0,t)에서 CTMC가 스테이트 i에 속하는 총 기대시간을 나타낸다. L(t)는 다음 수학식 3을 만족한다.L (t) . 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
흡수 스테이트에 도달하기까지의 시간의 측정이 문제된다.The measurement of the time to reach the absorption state is problematic.
QT이 비흡수 스테이트 간의 트랜지션에 상응하는 Q의 부분행렬이라고 한다. 그러면, 흡수 스테이트에 도달하기 전까지의 시간은 비흡수 스테이트의 집합 T에 속하는 스테이트로 제한되어 이 된다. 평균 흡수 시간(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. Becomes Mean time to absorption (MTTA) is shown in
보상율(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 = (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)에 대해 이다. 는 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 ) to be. 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
도 1b의 모델은 서브넷 플레이스(150) 및 이미디어트 트랜지션 t1(160)을 포함한다.The model of FIG. 1B includes a
도 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
도 2를 참조하면, 본 발명의 일 실시 예에 따르는 소프트웨어 보안 분석 장치(200)는 HCPN 생성부(210), HCPN/MRM 변환부(220), MRM 기반 보안 분석부(230), 공격 트리 생성부(240), 공격 시나리오 식별부(250), 공격 트리 기반 보안 분석부(260) 및 결과 출력부(270)를 포함할 수 있다.Referring to FIG. 2, the software
HCPN 생성부(210)는 HCPN(계층형 페트리 네트, Hierarchically Combined Petri Net) 형태의 제1 소프트웨어 모델을 생성한다.The
HCPN 생성부(210)는 소프트웨어 설계에 상응하는 HCPN 형태의 제1 소프트웨어 모델을 생성한다.The
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 = (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 -,
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.
여기서,
i. 는 클라이언트의 집합
ii. 는 서버의 집합
iii. 는 배치되는 하드웨어 노드의 집합(예를 들면, 워크스테이션, 네트워크 장비 등)
iv. 는 애플리케이션과 실행 환경으로 구성되는 소프트웨어 컴포넌트의 집합(예를 들면, 소프트웨어 플랫폼, 미들웨어 등)
v. 인 는 인 에서 실행되는 애플리케이션 소프트웨어의 집합
vi. 인 는 인 에서 실행되는 소프트웨어 환경의 집합(예를 들면, 소프트웨어 플랫폼, 미들웨어 등)
vii. 는 다음을 만족하는 원소의 집합. , , 그리고
viii. 는 다음을 만족하는 원소의 집합. , ,
ix. 와 는 서브넷 플레이스 로 표현됨
x. 는 서브넷 플레이스 로 표현되지 않음.
- HCPN이 닫힌 네트워크 모델(closed network model)이라면 는 플레이스로 표현됨
- HCPN이 열린 네트워크 모델(open network model)이라면 는 타임드 트랜지션으로 특정됨Distributed component-based system members consist of four tuples:
here,
i. Set of clients
ii. Set of servers
iii. Is a set of hardware nodes that are deployed (for example, workstations, network equipment, etc.)
iv. Is a set of software components (eg, software platform, middleware, etc.) consisting of an application and an execution environment.
v. sign Is sign Set of application software running on
vi. sign Is sign Set of software environments (eg, software platform, middleware, etc.) running on
vii. Is a set of elements that satisfy , , And
viii. Is a set of elements that satisfy , ,
ix. Wow Subnet place Expressed as
x. Subnet place Not expressed as
If HCPN is a closed network model Is expressed in place
If HCPN is an open network model 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 /
도 3은 본 발명의 일 실시 예에 따르는 HQPN/MRM 변환부(220)의 블록 구성도이다.3 is a block diagram of an HQPN /
도 3을 참조하면, 본 발명의 일 실시 예에 따르는 HQPN/MRM 변환부(220)는 HQPN/MC 변환부(310) 및 MC/MRM 변환부(350)를 포함한다.Referring to FIG. 3, the HQPN /
HQPN/MC 변환부(310)는 HCPN 형태의 제1 소프트웨어 모델을 마르코프 연쇄(MC: Markov Chain) 형태의 제3 소프트웨어 모델로 변환한다.The HQPN /
MC/MRM 변환부(350)는 HQPN/MC 변환부(310)가 변환하여 생성한 MC 형태의 제3 소프트웨어 모델을 MRM 형태의 제2 소프트웨어 모델로 변환한다.The MC /
HQPN/MC 변환부(310)는 스테이트 생성부(320), 에지 생성부(330) 및 변화 확률 추출부(340)를 포함할 수 있다.The HQPN /
스테이트 생성부(320)는 HCPN형태의 제1 소프트웨어 모델에 포함되는 토큰(token)의 마킹(marking)에 따라 식별되는 스테이트(state)를 생성한다.The
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.
가 MC형태의 제3 소프트웨어 모델의 스테이트 공간이고, 가 HCPN 형태의 제1 소프트웨어 모델의 마킹(marking)이라고 한다. Is the state space of the third software model of the MC type, 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 소프트웨어 모델의 마킹 사이의 매핑은 와 같이 표현할 수 있다.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 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
도 4를 참조하면, 변환 전의 HCPN 형태의 제1 소프트웨어 모델(400)은 MC 형태인 제3 소프트웨어 모델(440)로 변환된다.Referring to FIG. 4, the
도 4를 참조하면, 제1 소프트웨어 모델(400)은 제1 일반 플레이스(410), 제1 트랜지션(420) 및 제1 서브넷 플레이스(430)를 포함한다.Referring to FIG. 4, the
제1 서브넷 플레이스(430)는 상술한 바와 같이 제1 서브넷 플레이스(430) 내부에 HCPN을 포함할 수 있다.As described above, the
제1 일반 플레이스(410)는 A, B의 두 토큰(token)을 보유하고 있으며, 제1 트랜지션이 파이어(fire)되면 두 토큰 A, B 중 어느 한 토큰이 소비(consume)되어 제1 서브넷 플레이스(430)로 전달될 수 있다.The first
토큰(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
먼저, 초기 상태에서 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
스테이트 생성부(320)는 마찬가지로 토큰 A, B의 위치에 따라 제2 스테이트(M1, 451), 제3 스테이트(M2, 452), 제4 스테이트(M3, 453)를 생성할 수 있다.The
에지 생성부(330)는 상기 제1 소프트웨어 모델에 포함되는 트랜지션(transition)의 파이어(fire)에 따르는 스테이트 변화에 상응하는 에지(edge)를 생성한다.The
도 4를 참조하면, 제1 트랜지션(420)이 파이어(fire)되는 경우 토큰 A 또는 토큰 B 중 어느 하나가 소비(consume)되어 제1 서브넷 플레이스(430)에 전달된다.Referring to FIG. 4, when the
토큰 A, B 가 모두 제1 일반 플레이스(410)에 위치하는 상황에서 제1 트랜지션(420)이 파이어(fire)되어 토큰 A가 소비(consume)되어 제1 서브넷 플레이스로 전달된 경우를 가정한다. 이 경우 제1 스테이트(M0, 450)에서 제2 스테이트(M1, 451)로 스테이트가 변동된다.Assume that the
에지 생성부(330)는 위와 같은 스테이트 변화에 상응하는 에지를 생성한다. 즉, 에지 생성부(330)는, 제1 트랜지션(420)에 의한 토큰 A의 소비에 상응하는 제1 에지(461)를 생성할 수 있다. 마찬가지 방식으로 제2 에지(462), 제3 에지(463) 및 제4 에지(464)도 생성할 수 있다.The
제1 스테이트(M0, 450)에서 제1 에지(461)의 조건인 토큰 A의 소비(consume)가 수행되면, 소프트웨어 모델의 스테이트는 제2 스테이트(M1, 451)로 변경된다.When the consumption of token A, which is a condition of the
제1 스테이트(M0, 450)에서 제2 에지(462)의 조건인 토큰 B의 소비(consume)가 수행되면, 소프트웨어 모델의 스테이트는 제3 스테이트(M2, 452)로 변경된다.When the consumption of token B, the condition of the
제2 스테이트(M1, 451)에서 제4 에지(464)의 조건인 토큰 B의 소비(consume)가 수행되면, 소프트웨어 모델의 스테이트는 제4 스테이트(M3, 453)로 변경된다.When the consumption of token B, the condition of the
제3 스테이트(M2, 452)에서 제3 에지(463)의 조건인 토큰 A의 소비(consume)가 수행되면, 소프트웨어 모델의 스테이트는 제4 스테이트(M3, 453)로 변경된다.When the consumption of token A, which is a condition of the
변화 확률 추출부(340)는 트랜지션의 파이어(fire) 확률에 상응하여 스테이트 변화 확률을 추출한다.The
예를 들어 도 4의 제1 소프트웨어 모델(400)에서 토큰 A 및 토큰 B가 모두 제1 일반 플레이스에 위치하고 있을 때, 제1 트랜지션이 파이어되어, 제1 일반 플레이스로부터 토큰 A가 소비되어 제1 서브넷 플레이스(430)로 이동할 확률이 라면, 제1 스테이트(M0, 450)로부터 제2 스테이트(M1, 451)로 향하는 제1 에지(461)에 상응하는 확률도 가 된다. 이와 같은 방식으로 모든 에지에 확률을 부여할 수 있다.For example, in the
스테이트를 생성하고, 에지를 생성하고, 에지에 확률을 부여하는 작업까지 완료되면, 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 /
보상율 할당부(360)는 스테이트에 상응하는 HCPN의 플레이스 중 어느 하나 이상이 승인되지 않은 토큰을 하나 이상 보유하는 경우 보상율 0을 할당하고, 그 외의 경우는 소프트웨어가 보안 문제의 잠재 위험이 없어서 보상율 1을 할당한다.The
보안 분석을 위하여 MC 형태의 제2 소프트웨어 모델에 보상율(0 또는 1)을 할당하기 위해서는 스테이트를 어퍼 스테이트(upper state)와 다운 스테이트(down state)의 두 가지 타입으로 분류한다. 다운 스테이트에는 제1 보상율을 할당하고, 어퍼 스테이트에는 제2 보상율을 할당할 수 있다. 예를 들어 다운 스테이트에는 보상율 0을 할당하고 어퍼 스테이트에는 보상율 1을 할당할 수 있다. 이하 편의상 다운 스테이트에는 보상율 0을 할당하고 어퍼 스테이트에는 보상율 1을 할당하는 것으로 가정한다. 마킹 의 부분집합 은 컬러()의 조합의 스테이트이다.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
보안 분석을 위한 HCPN에서 토큰의 타입은 승인된 토큰(authorized token)과 승인되지 않은 토큰(non-authorized token)을 포함한다. 상술한 바와 같이 취약점에 기반하여 승인되지 않은 토큰을 식별할 수 있다. 따라서, 는 아래 표 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, Can be expressed as shown in Table 5 below.
here,
는 승인된 토큰의 집합이고, 는 승인되지 않은 토큰의 집합이다. Is a set of approved tokens, 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.
이고, 는 HCPN 형태의 제1 소프트웨어 모델의 마킹(marking)이다. 는 스테이트 j의 플레이스 i에서의 마킹이고, 이다.
이다. 는 MC형태의 제3 소프트웨어 모델의 스테이트 공간이다.
만약 이면, 는 다운 스테이트이다(보상율은 0이다.).
그 외의 경우 는 어퍼 스테이트이다(보상율은 1이다.). end It is called. , Is a set of unauthorized tokens.
ego, Is the marking of the first software model in HCPN form. Is the marking at place i of state j, to be.
to be. Is the state space of the third software model of the MC type.
if If so, Is the down state (compensation rate is 0).
Otherwise Is the upper state (compensation rate is 1).
는 플레이스 i가 에 포함된 플레이스가 아니라는 의미이다. 따라서 플레이스 i는 클라이언트이다(표 3 참조). 승인되지 않은 토큰은 보안 요구사항을 만족시킬 수 없게 한다. 따라서, 클라이언트의 플레이스를 제외한 HCPN의 어느 하나의 플레이스에라도 적어도 하나의 승인되지 않은 토큰을 보유한 경우 소프트웨어는 보안 문제의 잠재위험을 가진다. Place i 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
도 5a는 본 발명의 일 실시 예에 따르는 MRM 기반 보안 분석부(230)의 블록 구성도이다.5A is a block diagram of an MRM-based
도 5a를 참조하면 MRM 기반 보안 분석부(230)는 MTTI 추출부(510) 및 MTTB 추출부(520)를 포함할 수 있다.Referring to FIG. 5A, the MRM-based
MTTI 추출부(510)는 첫 번째 공격까지 걸리는 평균 시간(MTTI: Mean Time To Intrusion)을 추출한다.The
MTTB 추출부(520)는 첫 번째 공격 시점에서 공격 성공까지 걸리는 평균 시간(MTTB: Mean Time To Breaches)을 추출한다.The
도 5b는 MTTI와 MTTB를 나타낸 도면이다.5B is a diagram illustrating MTTI and MTTB.
시점 0(600)에 소프트웨어의 수행이 시작되고, 시점 t1(610)에 첫 번째 공격이 시작되었으며, 시점 t2(620)에 첫 번째 공격이 성공하였다.The execution of the software begins at
시점 0(600)부터 시점 t1(610) 사이의 평균 시간이 MTTI(650)이고, 시점 t1(610)부터 시점 t2(620) 사이의 평균 시간이 MTTB(660)이다.The average time between
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.
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
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
식별된 취약점은 공격 트리의 공격 목표에 대응된다. 따라서 공격 트리의 루트 목표(G0)는 이 n번째 보안 취약점일 때, 와 같이 표현할 수 있다. 공격 트리의 생성 방법은 아래 표 7과 같다.The identified vulnerability corresponds to the attack target of the attack tree. Therefore, the root target (G 0 ) of the attack tree is Is the nth security vulnerability, It can be expressed as How to create an attack tree is shown in Table 7 below.
ii. 상위 레이어를 하나 또는 여러 노드로 분해한다.
iii. 분해된 노드를 OR/AND 논리 관계로 연관시킨다.
iv. 리프 노드에 위치한 공격이 독립적으로 시작될 수 있을 때까지 모든 브랜치(branch)에 대해 ii, iii 단계를 반복한다.
v. 리프 노드에 값을 할당한다. 할당되는 값은 명사적 값(nominal)이 될 수도 있고(예를 들면, 가능/불가능, 특별한 장비 요함/요하지 않음), 숫자적 값(ordinal)이 될 수도 있다(예를 들면, 공격 시간, 공격 가능성, 금전적 비용). 복수의 값이 하나의 노드에 할당될 수 있다.i. Root node corresponding to vulnerability in security requirements 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.
첫 번째 단계에서, 루트 노드 는 요구사항 검증에 의하여 식별된 공격자의 목표를 의미한다. 두 번째 및 세 번째 단계에서 보조 목표를 이끌어내기 위해서 공격자의 패턴이 사용된다. 공격 패턴은 소프트웨어 취약점을 이용하기 위한 청사진이다. 공격 패턴은 몇몇 치명적 취약점의 특징을 설명하고, 목적 시스템을 이용하기 위해 필요한 지식으로 공격자를 무장시킨다. 공격 패턴은 공격자의 악의의 공격의 전체 또는 일부의 프로세스를 설명하는 참조 자료를 제공한다.In the first step, the root node 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
공격 트리 개량부(531)는 공격 시나리오 개수를 세기 편하도록 공격 트리를 개량한다.The attack
공격 트리는 공격 시나리오에 기반하여 계산 척도를 제공한다. 공격 트리에서 공격 시나리오는 공격 목표에 도달하는 공격 경로를 의미한다. 따라서, 하나의 공격 목표에 도달하기 위한 하나 이상의 공격 시나리오가 존재할 수 있다.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.
만족되지 못한 보안 요구사항은 공격 트리에서의 악의적 공격을 위한 루트 목표(루트 노드)에 상응한다. 따라서 요구사항의 숫자는 루트 목표의 숫자와 같다. 소프트웨어 시스템에 대한 많은 수의 공격 시나리오가 있다면, 많은 수의 악의적 공격 가능성에 노출될 수 있다. 따라서 잠재 공격 시나리오의 수는 보안 분석에 중요한 척도이다.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.
인 레벨 n의 노드의 집합 이 로의 공격 경로이고, 각 노드 의 관계가 'AND'인 경우 path()=1.
인 레벨 n의 노드의 집합 이 로의 공격 경로이고, 각 노드 의 관계가 'OR'인 경우 path()=k.sign Is the j th node (target) at level n of the attack tree, and path ( )sign From It is called the number of attack paths to the furnace.
Set of nodes at level n this Path of attack to each node, and each node If the relationship of 'AND' is path ( ) = 1.
Set of nodes at level n this Path of attack to each node, and each node If the relationship of 'OR' is path ( ) = 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
도 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
도 8a에서, 노드 (822)는 AND 노드이고, 노드 (831), 노드 (832), 노드 (833)은 노드 (822)의 자식 노드이다. AND 노드인 노드 (822)의 자식 노드가 모두 리프 노드이므로, 세 노드를 하나의 노드 (834)로 병합한다. AND(1:3)은 1∧2∧3을 의미한다. 노드 (822)에 도달하기 위해서는 노드 (831), 노드 (832), 노드 (833)의 조건을 모두 만족시켜야 하므로 실제로 하나의 경로이고, 따라서 하나의 리프 노드로 병합한 것이다. 또한 노드 (834)의 부모 노드는 하나의 자식만을 가지고, 노드 (834)와 노드 (834)의 부모 노드를 병합하여도 경로 개수에는 영향이 없으므로 노드 (834)와 노드 (834)의 부모 노드를 병합할 수 있다.In FIG. 8A, the
도 8b를 참조하면, 원본 공격 트리(801)에서 개량 공격 트리(851)로 개량(refine)이 이루어진다.Referring to FIG. 8B, refinement is made from the
도 8b에서, 노드 (810)은 AND 노드이고 따라서 노드 (810)의 자식 노드인 노드 (823) 및 노드 (824)는 AND 연산관계이다. 또한, 노드 (823)는 리프 노드이므로 노드 (823) 및 노드 (824)는 노드 (825)로 병합할 수 있다. 노드 (824)의 자식 노드는 노드 (825)로서 잔존한다. AND(3,4)는 3∧4를 의미한다.In Figure 8b, the
즉, 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
도 9에서 노드 (911)과 노드 (912)는 서로 AND 연산관계이고, 각각은 OR 노드이다. 노드 (911)는 노드 (921)과 노드 (922)를 자식 노드로 가진다. 노드 (912)는 노드(923), 노드 (924)과 노드 (925)를 자식 노드로 가진다. 노드 (911)과 노드 (912)는 서로 AND 연산관계이므로 노드 (913)으로 병합할 수 있다. 여기서 AND(1,2)는 1∧2를 의미한다. 다만, 병합되는 노드가 모드 OR 노드이므로, 노드 (911)의 자식 노드의 수인 2와 노드 (912)의 자식 노드의 수인 3을 곱한 6개의 노드 (931) 내지 노드 (936)를 노드 (913)의 자식 노드로 만든다. 공격 경로의 개수는 노드 (921)과 노드 (922) 중 어느 하나와 노드(923), 노드 (924)과 노드 (925) 중 어느 하나를 선택하여 조합한 것이 되므로 2 x 3 = 6개가 된다.Node in FIG. Node with 911 912 are AND arithmetic relations with each other, and each is an OR node.
즉, 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
공격 시나리오의 총 개수는 보안 요구사항을 만족시키지 못한 것으로 식별된 모든 루트 노드()로의 경로의 수와 같다. 수학식 7은 이를 수식으로 나타낸 것이다.The total number of attack scenarios is determined by all root nodes (identified as not meeting security requirements). Equal to the number of paths to).
리프 노드 개수 추출부(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
공격 트리 기반 보안 분석부(260)는 공격 트리 개량부(531)가 트리를 개량하기 전의 원본 트리를 이용하여 보안 성능을 추출한다. 따라서 공격 트리 기반 보안 분석부(260)가 수행하는 작업은 공격 트리 개량부(531)의 수행작업 이전에 수행될 수 있다. 다만, 공격 트리 개량부(531)의 트리 개량 작업 시 원본 트리를 복사하고, 복사된 후의 두 공격 트리 중 하나는 공격 트리 개량부(531)에서 개량하여 공격 경로 개수 계산에 사용하고, 나머지 하나는 공격 트리 기반 보안 분석부(260)에서 이용한다면 순서에 구애받지 않을 것이다.The attack tree-based
공격 트리 기반 보안 분석부(260)는 생존성을 추출할 수 있다.The attack tree-based
생존성(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).
여기서 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
침입 확률은 공격 시나리오에서 악의적 공격을 시도할 확률을 말한다. 따라서 침입 확률(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).
여기서 total cost는 CTree의 원소의 총합이다.Where total cost is the sum of the elements of the C Tree .
공격 트리 기반 보안 분석부(260)는 고 위험 공격 시나리오를 추출할 수 있 다.The attack tree based
공격 시나리오의 보안 위험은 다음의 두 요소의 곱으로 정의할 수 있다.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).
고 위험 공격 시나리오 (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)).
심각도는 공격 시나리오에 따라 데이터베이스 등에 저장되어 미리 설정된 값이 될 수도 있다. 다른 실시 예에 따르면 공격 시나리오를 분석하여 심각도가 정해질 수도 있다.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
도 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
단계 S1020에서 HCPN/MRM 변환부(210)는 HCPN 형태의 제1 소프트웨어 모델을 MRM 형태의 제2 소프트웨어 모델로 변환한다.In step S1020, the HCPN /
도 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
단계 S1220에서 에지 생성부(330)는 HCPN 형태의 제1 소프트웨어 모델에 포 함되는 트랜지션의 파이어에 따르는 스테이트 변화에 상응하는 에지를 생성한다. 에지 생성부(330)의 에지 생성 작업에 대해서는 도 3 및 도 4를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1220, the
단계 S1230에서 변화 확률 추출부(340)는 트랜지션의 파이어 확률에 상응하여 스테이트 변화 확률을 추출한다. 변화 확률 추출부(340)의 스테이트 변화 확률 추출 작업에 대해서는 도 3 및 도 4를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In operation S1230, the
단계 S1120에서 MC/MRM 변환부(350)는 MC 형태의 제3 소프트웨어 모델을 MRM 형태의 제2 소프트웨어 모델로 변환한다. MC/MRM 변환부(350)의 변환 작업에 대해서는 도 3을 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In operation S1120, the MC /
단계 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
단계 S1320에서 MTTB 추출부(520)가 MTTB를 추출한다. MTTB의 추출 방법에 대해서는 도 5a 및 도 5b를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1320, the
단계 S1040에서 공격 트리 생성부(240)는 공격 트리를 생성한다. 공격 트리 생성부(240)의 공격 트리 생성에 대해서는 도 2를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In operation S1040, the attack
단계 S1050에서 공격 시나리오 식별부(250)는 공격 시나리오의 개수를 추출한다.In step S1050, the attack
도 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
단계 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
도 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
단계 S1520에서 공격 트리 기반 보안 분석부(260)는 단계 S1510에서 추출한 생존성을 이용하여 침입 확률을 추출한다. 침입 확률 추출 방법에 대해서는 도 2를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1520 the attack tree-based
단계 S1530에서 공격 트리 기반 보안 분석부(260)는 단계 S1520에서 추출한 침입 확률과 심각도의 곱이 가장 큰 공격 시나리오를 고 위험 공격 시나리오로서 추출한다. 고 위험 공격 시나리오의 추출 방법에 대해서는 도 2를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.In step S1530, the attack tree-based
단계 S1070에서 결과 출력부(270)는 MRM 기반 보안 분석부(230)가 추출한 MTTI 나 MTTB, 공격 시나리오 식별부(250)가 추출한 공격 시나리오 개수, 공격 트리 기반 보안 분석부(260)가 추출한 생존성, 침입 확률, 고 위험 공격 시나리오 중 하나 이상을 출력할 수 있다.In step S1070, the
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 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
도 3은 본 발명의 일 실시 예에 따르는 HQPN/MRM 변환부(220)의 블록 구성도이다.3 is a block diagram of an HQPN /
도 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
도 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)
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)
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 |
-
2009
- 2009-02-27 KR KR1020090017163A patent/KR100990688B1/en not_active IP Right Cessation
Non-Patent Citations (1)
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 |