KR20100098141A - 소프트웨어 보안 분석 방법 및 장치 - Google Patents

소프트웨어 보안 분석 방법 및 장치 Download PDF

Info

Publication number
KR20100098141A
KR20100098141A KR1020090017163A KR20090017163A KR20100098141A KR 20100098141 A KR20100098141 A KR 20100098141A KR 1020090017163 A KR1020090017163 A KR 1020090017163A KR 20090017163 A KR20090017163 A KR 20090017163A KR 20100098141 A KR20100098141 A KR 20100098141A
Authority
KR
South Korea
Prior art keywords
node
attack
software
software model
state
Prior art date
Application number
KR1020090017163A
Other languages
English (en)
Other versions
KR100990688B1 (ko
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/ko
Publication of KR20100098141A publication Critical patent/KR20100098141A/ko
Application granted granted Critical
Publication of KR100990688B1 publication Critical patent/KR100990688B1/ko

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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Stored Programmes (AREA)

Abstract

소프트웨어 보안 분석 방법 및 장치가 개시된다. 본 발명의 일 실시 예에 따르는 HCPN(계층형 페트리 네트, Hierarchically Combined Petri Net) 형태의 제1 소프트웨어 모델을 이용하는 소프트웨어 보안 분석 방법은, HCPN 형태의 제1 소프트웨어 모델을 MRM(마르코프 보상 모형, Markov Reward Model) 형태의 제2 소프트웨어 모델로 변환하는 단계 및 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 단계를 포함할 수 있다. 본 발명의 일 실시 예에 따르면 소프트웨어 보안을 설계 단계에서 정량적으로 분석 및 검증할 수 있는 방법 및 장치를 제공할 수 있다.
보안, 공격 트리, 마르코프 보상 모형, HCPN, HQPN, 공격 시나리오

Description

소프트웨어 보안 분석 방법 및 장치{Method and Apparatus for Analyzing Security of Software}
본 발명은 소프트웨어 보안 분석 방법 및 장치에 관한 것으로, 더욱 상세하게는 소프트웨어의 보안을 정량적으로 분석하는 방법 및 장치에 관한 것이다.
최근 컴퓨터 관련 산업이 크게 발전하면서, 소프트웨어 산업이 양적으로, 질적으로 성장하고 있다.
소프트웨어 산업이 질적으로 발전하면서, 소프트웨어의 복잡도가 많이 증가하였다. 이에 따라 소프트웨어의 기능적 요구사항(예를 들면, MS Word의 경우 문서 편집이 가능해야 함)뿐만 아니라, 비기능적 요구사항을 만족시키는 것도 중요한 문제가 되고 있다.
소프트웨어는 기능적 요구사항을 당연히 만족하면서 비기능적인 요구사항들도 만족시켜야 한다. 소프트웨어의 비기능적인 요소들 중에는 보안(security) 문제도 있다.
소프트웨어의 보안 요구사항은 시스템 개발 라이프 사이클에서 초기에 확정 된다. 하지만, 종래의 소프트웨어 엔지니어링에서 보안 요구사항과 같은 비기능적 요구사항은 시스템 적용 시점에서야 검증될 수 있었다.
그러나 시스템 적용 시점에 소프트웨어가 보안 요구사항을 만족시키지 못한다는 것을 발견하게 되면, 그 보안 요구사항을 만족시키기 위해 소프트웨어의 개발 기간을 추가로 소모하게 되어 개발 기간을 맞추지 못할 수도 있다. 이것은 소프트웨어의 개발 비용을 기하급수적으로 증가시키는 원인이 된다.
잘못된 보안의 함정에서 벗어나기 위해, 소프트웨어 개발 라이프 사이클의 초기에 보안 요구사항의 만족 여부를 확인할 수 있어야 한다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로, 소프트웨어 보안을 설계 단계에서 정량적으로 분석 및 검증할 수 있는 방법 및 장치를 제공하는 데 그 목적이 있다.
본 발명의 일 측면에 따르면, 소프트웨어 보안 분석 방법이 제공된다.
본 발명의 일 실시 예에 따르는 HCPN(계층형 페트리 네트, Hierarchically Combined Petri Net) 형태의 제1 소프트웨어 모델을 이용하는 소프트웨어 보안 분석 방법은 상기 HCPN 형태의 제1 소프트웨어 모델을 MRM(마르코프 보상 모형, Markov Reward Model) 형태의 제2 소프트웨어 모델로 변환하는 단계 및 상기 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 단계를 포함할 수 있다.
본 발명의 다른 실시 예에 따르는 공격 트리(attack tree)를 이용하는 소프트웨어 보안 분석 방법은 (a) 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 중 어느 하나가 리프 노드인 경우 상기 제1 노드 및 제2 노드를 병합하는 단계; (b) 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 모두가 OR 노드인 경우 상기 제1 노드 및 상기 제2 노드를 병합하여 OR노드인 제3 노드를 생성하고, 상기 제1 노드의 자식 노드 수와 상기 제2 노드의 자식 노드의 수를 곱한 수만큼의 노드를 상기 제3 노드의 자식 노드로서 생성하는 단계; 공격 트리 상에 AND 노드가 존재하지 않을 때까지 상기 (a) 단계 및 상기 (b) 단계를 반복하는 단계; 및 공격 트리 상에 AND 노드가 존재하지 않을 때 상기 공격 트리의 리프 노드 수를 공격 시나리오 개수로서 추출하는 단계를 포함할 수 있다.
또한, 본 발명의 다른 측면에 따르면, 소프트웨어 보안 분석 장치가 제공된다.
본 발명의 일 실시 예에 따르는 HCPN(계층형 페트리 네트, Hierarchically Combined Petri Net) 형태의 제1 소프트웨어 모델을 이용하는 소프트웨어 보안 분석 장치는 상기 HCPN 형태의 제1 소프트웨어 모델을 MRM(마르코프 보상 모형, Markov Reward Model) 형태의 제2 소프트웨어 모델로 변환하는 HCPN/MRM 변환부 및 상기 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 MRM 기반 보안 분석부를 포함할 수 있다.
본 발명의 다른 실시 예에 따르는 공격 트리(attack tree)를 이용하는 소프트웨어 보안 분석 장치는 (a) 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 중 어느 하나가 리프 노드인 경우 상기 제1 노드 및 제2 노드를 병합하는 작업을 수행하고; (b) 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 모두가 OR 노드인 경우 상기 제1 노드 및 상기 제2 노드를 병합하여 OR노드인 제3 노드를 생성하고, 상기 제1 노드의 자식 노드 수와 상기 제2 노드의 자식 노드의 수를 곱한 수만큼의 노드를 상기 제3 노드의 자식 노드로서 생성하는 작업을 수행하고; 공격 트리 상에 AND 노드가 존재하지 않을 때까지 상기 (a) 작업 및 상기 (b) 작업을 반복 수행하는 공격 트리 개량부; 및 공격 트리 상에 AND 노드가 존재하지 않을 때 상기 공격 트리의 리프 노드 수를 공격 시나리오 개수로서 추출하는 리프 노드 개수 추출부를 포함할 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 발명의 일 실시 예에 따르면, 소프트웨어 보안을 설계 단계에서 정량적으로 분석 및 검증할 수 있는 방법 및 장치를 제공할 수 있다.
이하, 본 발명에 따른 소프트웨어 보안 분석 방법 및 장치의 실시 예를 첨부 도면을 참조하여 상세히 설명하기로 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
우선, 공격 트리(Attack Tree), 마르코프 보상 모형(MRM: Markov Reward Model) 및 계층형 큐잉 페트리 네트(HQPN: Hierarchically Combined Queueing Petri Net)를 설명한다.
대표적 공격 시나리오 모델링 방법은 공격 트리와 공격 그래프(Attack Graph)를 기반으로 한다. 공격 트리는 공격자의 목표에 기반하여 시스템의 보안을 설명하기 위한 형식적이고 조직적인 테크닉을 제공한다. 공격 트리는 루트 노드(root node)의 위치에 위치하는 목표(goal)와 리프 노드(leaf node)에 위치하는 보조 목표(sub-goal)로 구성된다. 노드 값을 트리의 루트까지 전달하는 것이 가능하다. AND 노드의 값은 그 AND 노드의 모든 자식 노드의 불리언(Boolean) AND 연산 값이고, OR 노드의 값은 그 OR 노드의 모든 자식 노드의 불리언 OR 연산 값이다. 비용 값(cost value)이 고려된다면, AND 노드의 값은 그 AND 노드의 모든 자식 노드의 값의 합이고, OR 노드의 값은 그 OR 노드의 모든 자식 노드의 값 중 최소값이 다.
마르코프 보상 모형은 일반 추계 모형(general stochastic model)이다. 이것은 시스템의 수행도(performability)를 평가하는데 사용된다. 수행도는 시스템의 신뢰도(dependability) 및 성능(performance) 요소를 측정한 것이다.
{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)라고 한다.
상기 CTMC의 순간 속성은 다음 수학식 1과 같이 설명할 수 있다.
주어진 P(0)에 대해,
여기서 P(0)는 초기 확률 벡터(시점 t=0)이다. 정상 상태(steady-state) 확률 벡터
Figure 112009012478645-PAT00002
는 수학식 2를 만족한다.
Figure 112009012478645-PAT00003
순간 스테이트 확률뿐 아니라 누적 확률도 종종 관심의 대상이 된다.
L(t)를
Figure 112009012478645-PAT00004
로 정의한다. 그러면 Li(t)는 기대 구간[0,t)에서 CTMC가 스테이트 i에 속하는 총 기대시간을 나타낸다. L(t)는 다음 수학식 3을 만족한다.
Figure 112009012478645-PAT00005
흡수 스테이트에 도달하기까지의 시간의 측정이 문제된다.
QT이 비흡수 스테이트 간의 트랜지션에 상응하는 Q의 부분행렬이라고 한다. 그러면, 흡수 스테이트에 도달하기 전까지의 시간은 비흡수 스테이트의 집합 T에 속하는 스테이트로 제한되어
Figure 112009012478645-PAT00006
이 된다. 평균 흡수 시간(MTTA: mean time to absorption)은 수학식 4와 같다.
Figure 112009012478645-PAT00007
보상율(reward rate) 할당은 보안에 관계된 관심 있는 속성에 의존하게 된 다.
계층형 큐잉 페트리 네트(HQPN)는 CGSPNs(Coloured Generalized Stochastic Petri Nets)와 큐잉 네트워크(QN, Queueing Network)의 조합으로, 스테이션(station)을 CGSPN의 큐잉 플레이스(Queueing Place)에 숨긴(hideing) 것이다.
HQPN의 엄격한 정의는 아래 표 1과 같다.
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은 종래의 큐잉 페트리 네트(QPN)를 계층적으로 모델링한다. HQPN에서 서브넷 플레이스는 QPN 모델이나 다른 서브넷 플레이스를 포함하다. 큐잉 플레이스는 큐잉 시스템과 저장소(depository)를 융합한다. 큐잉 플레이스에 의하여 표현되는 모델은 큐잉 모델 특징(queueing model characteristics)(예를 들면 G/M/∞/IS, G/M/1/FCFS)을 가져야 한다. HQPN의 토큰 컬러(token color)는 작업과 프로세스를 식별한다.
도 1a는 오픈 클래스 모델(open class model) HQPN의 모식도이다.
도 1b는 클로즈드 클래스 모델(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)는 완료된 트랜잭션의 토큰을 파괴하기 위하여 이용된다.
도 1b의 모델은 서브넷 플레이스(150) 및 이미디어트 트랜지션 t1(160)을 포함한다.
도 1a 및 도 1b의 두 도면의 예제는 작업의 강도가 동시에 처리되는 트랜잭션의 수에 의하여 특정되느냐 또는 트랜잭션을 시작하는 활동중인 클라이언트/터미널의 수에 의하여 특정되느냐에 기반하여 구분된다.
도 2는 본 발명의 일 실시 예에 따르는 소프트웨어 보안 분석 장치(200)의 블록 구성도이다.
도 2를 참조하면, 본 발명의 일 실시 예에 따르는 소프트웨어 보안 분석 장치(200)는 HCPN 생성부(210), HCPN/MRM 변환부(220), MRM 기반 보안 분석부(230), 공격 트리 생성부(240), 공격 시나리오 식별부(250), 공격 트리 기반 보안 분석부(260) 및 결과 출력부(270)를 포함할 수 있다.
HCPN 생성부(210)는 HCPN(계층형 페트리 네트, Hierarchically Combined Petri Net) 형태의 제1 소프트웨어 모델을 생성한다.
HCPN 생성부(210)는 소프트웨어 설계에 상응하는 HCPN 형태의 제1 소프트웨어 모델을 생성한다.
HCPN은 HQPN에서 큐잉 플레이스(queueing place)를 제거하고 토큰(token)에 속성(attribute)을 더하여 신택스(syntax)를 개선한 것이다.
본 발명의 일 실시 예에 따르는 HCPN의 엄격한 정의는 표 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기반의 모델 구성 요소
소프트웨어 시스템의 모델링을 위해 확장된 모델링 방법을 더한다. 표 3은 본 발명의 일 실시 예에 따라 HCPN을 이용하여 통합된 소프트웨어 시스템을 모델링하기 위한 분산 컴포넌트 기반 시스템의 모델의 정의이다.
분산 컴포넌트 기반 시스템 멤버는 다음의 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
는 타임드 트랜지션으로 특정됨
분산 컴포넌트 기반 시스템은 애플리케이션 레이어(application layer)와 실행 환경 레이어(operation environment layer로 표현된다. 실행 환경 레이어는 소프트웨어 환경과 하드웨어 환경으로 구성된다. 모델의 레이어는 HCPN의 서브넷 플레이스로 표현된다. 서브넷 플레이스는 애플리케이션, 소프트웨어 환경 또는 하드웨어 환경을 나타낸다. 이러한 매핑은 재활용 가능한 서브-모델(sub-model)을 제공한다. 입력 토큰과 출력 토큰을 변경하면 서브-모델을 재활용할 수 있다.
소프트웨어 시스템의 취약성 분석은 그 시스템의 보안 요구사항에 기반을 둔다. 취약점 식별은 HCPN 모델로부터의 보안 요구사항의 확인이다. 확인은 모순으로의 변화에 기반을 둔다. 예를 들어 요구사항이 "A"라면, HCPN 모델에서 "NOT A"를 추적한다. "NOT A"의 잠재성이 발견되면, HCPN 모델은 보안 요구사항을 만족하지 못한다.
식별된 취약점은 HCPN의 토큰으로 식별된다. HCPN 모델을 통해서 검증된 요구사항은 승인된 토큰(authorized token)으로 식별되고 검증되지 않은 요구사항은 승인되지 않은 토큰(Non-authorized token)으로 식별된다.
사용자는 GUI 또는 텍스트 인터페이스를 통해 HCPN 형태의 제1 소프트웨어 모델을 생성하거나 수정, 편집할 수 있다.
HCPN/MRM 변환부(220)는 HCPN 형태의 제1 소프트웨어 모델을 MRM 형태의 제2 소프트웨어 모델로 변환한다.
도 3은 본 발명의 일 실시 예에 따르는 HQPN/MRM 변환부(220)의 블록 구성도이다.
도 3을 참조하면, 본 발명의 일 실시 예에 따르는 HQPN/MRM 변환부(220)는 HQPN/MC 변환부(310) 및 MC/MRM 변환부(350)를 포함한다.
HQPN/MC 변환부(310)는 HCPN 형태의 제1 소프트웨어 모델을 마르코프 연쇄(MC: Markov Chain) 형태의 제3 소프트웨어 모델로 변환한다.
MC/MRM 변환부(350)는 HQPN/MC 변환부(310)가 변환하여 생성한 MC 형태의 제3 소프트웨어 모델을 MRM 형태의 제2 소프트웨어 모델로 변환한다.
HQPN/MC 변환부(310)는 스테이트 생성부(320), 에지 생성부(330) 및 변화 확률 추출부(340)를 포함할 수 있다.
스테이트 생성부(320)는 HCPN형태의 제1 소프트웨어 모델에 포함되는 토큰(token)의 마킹(marking)에 따라 식별되는 스테이트(state)를 생성한다.
MC형태의 제3 소프트웨어 모델을 생성하기 위한 스테이트 공간(state space) S는 HCPN형태의 제1 소프트웨어 모델의 마킹 M에 의하여 다음과 같이 생성될 수 있다.
Figure 112009012478645-PAT00039
가 MC형태의 제3 소프트웨어 모델의 스테이트 공간이고,
Figure 112009012478645-PAT00040
가 HCPN 형태의 제1 소프트웨어 모델의 마킹(marking)이라고 한다.
여기서 마킹은 토큰이 HCPN의 플레이스에 분포되는 것을 말한다.
MC형태의 제3 소프트웨어 모델의 스테이트 공간과 HCPN 형태의 제1 소프트웨어 모델의 마킹 사이의 매핑은
Figure 112009012478645-PAT00041
와 같이 표현할 수 있다.
도 4는 본 발명의 일 실시 예에 따르는 HCPN 형태의 모델을 MC 형태로 변환하는 과정의 모식도이다.
스테이트 생성부(320)는 상기 HCPN 형태의 제1 소프트웨어 모델에 포함되는 토큰(token)의 마킹(marking)에 따라 식별되는 스테이트(state)를 생성한다.
도 4를 참조하면, 변환 전의 HCPN 형태의 제1 소프트웨어 모델(400)은 MC 형태인 제3 소프트웨어 모델(440)로 변환된다.
도 4를 참조하면, 제1 소프트웨어 모델(400)은 제1 일반 플레이스(410), 제1 트랜지션(420) 및 제1 서브넷 플레이스(430)를 포함한다.
제1 서브넷 플레이스(430)는 상술한 바와 같이 제1 서브넷 플레이스(430) 내부에 HCPN을 포함할 수 있다.
제1 일반 플레이스(410)는 A, B의 두 토큰(token)을 보유하고 있으며, 제1 트랜지션이 파이어(fire)되면 두 토큰 A, B 중 어느 한 토큰이 소비(consume)되어 제1 서브넷 플레이스(430)로 전달될 수 있다.
토큰(token)의 마킹(marking)은 토큰이 플레이스에 배치/분배된 상태를 말한다.
도 4의 제1 소프트웨어 모델(400)에서 마킹(marking)의 경우의 수를 표로 나타내면 표 4와 같다.
제1 일반 플레이스(410) 제1 서브넷 플레이스(430)
제1 스테이트(M0, 450) A, B -
제2 스테이트(M1, 451) B A
제3 스테이트(M2, 452) A B
제4 스테이트(M3, 453) - A, B
먼저, 초기 상태에서 A, B 두 토큰 모두 제1 일반 플레이스(410)에 위치하는 경우 제1 일반 플레이스(410)는 A, B 두 토큰을 보유하고, 제1 서브넷 플레이스(430)는 토큰을 하나도 보유하지 못한다. 스테이트 생성부(320)는 이와 같은 마킹에 상응하는 제1 스테이트(M0,450)를 생성할 수 있다.
스테이트 생성부(320)는 마찬가지로 토큰 A, B의 위치에 따라 제2 스테이트(M1, 451), 제3 스테이트(M2, 452), 제4 스테이트(M3, 453)를 생성할 수 있다.
에지 생성부(330)는 상기 제1 소프트웨어 모델에 포함되는 트랜지션(transition)의 파이어(fire)에 따르는 스테이트 변화에 상응하는 에지(edge)를 생성한다.
도 4를 참조하면, 제1 트랜지션(420)이 파이어(fire)되는 경우 토큰 A 또는 토큰 B 중 어느 하나가 소비(consume)되어 제1 서브넷 플레이스(430)에 전달된다.
토큰 A, B 가 모두 제1 일반 플레이스(410)에 위치하는 상황에서 제1 트랜지션(420)이 파이어(fire)되어 토큰 A가 소비(consume)되어 제1 서브넷 플레이스로 전달된 경우를 가정한다. 이 경우 제1 스테이트(M0, 450)에서 제2 스테이트(M1, 451)로 스테이트가 변동된다.
에지 생성부(330)는 위와 같은 스테이트 변화에 상응하는 에지를 생성한다. 즉, 에지 생성부(330)는, 제1 트랜지션(420)에 의한 토큰 A의 소비에 상응하는 제1 에지(461)를 생성할 수 있다. 마찬가지 방식으로 제2 에지(462), 제3 에지(463) 및 제4 에지(464)도 생성할 수 있다.
제1 스테이트(M0, 450)에서 제1 에지(461)의 조건인 토큰 A의 소비(consume)가 수행되면, 소프트웨어 모델의 스테이트는 제2 스테이트(M1, 451)로 변경된다.
제1 스테이트(M0, 450)에서 제2 에지(462)의 조건인 토큰 B의 소비(consume)가 수행되면, 소프트웨어 모델의 스테이트는 제3 스테이트(M2, 452)로 변경된다.
제2 스테이트(M1, 451)에서 제4 에지(464)의 조건인 토큰 B의 소비(consume)가 수행되면, 소프트웨어 모델의 스테이트는 제4 스테이트(M3, 453)로 변경된다.
제3 스테이트(M2, 452)에서 제3 에지(463)의 조건인 토큰 A의 소비(consume)가 수행되면, 소프트웨어 모델의 스테이트는 제4 스테이트(M3, 453)로 변경된다.
변화 확률 추출부(340)는 트랜지션의 파이어(fire) 확률에 상응하여 스테이트 변화 확률을 추출한다.
예를 들어 도 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
가 된다. 이와 같은 방식으로 모든 에지에 확률을 부여할 수 있다.
스테이트를 생성하고, 에지를 생성하고, 에지에 확률을 부여하는 작업까지 완료되면, HCPN 형태의 제1 소프트웨어 모델이 MC 형태의 제3 소프트웨어 모델로 변환된다.
도 3을 참조하면, MC/MRM 변환부(350)는 보상율 할당부(360)를 포함할 수 있다.
보상율 할당부(360)는 스테이트에 상응하는 HCPN의 플레이스 중 어느 하나 이상이 승인되지 않은 토큰을 하나 이상 보유하는 경우 보상율 0을 할당하고, 그 외의 경우는 소프트웨어가 보안 문제의 잠재 위험이 없어서 보상율 1을 할당한다.
보안 분석을 위하여 MC 형태의 제2 소프트웨어 모델에 보상율(0 또는 1)을 할당하기 위해서는 스테이트를 어퍼 스테이트(upper state)와 다운 스테이트(down state)의 두 가지 타입으로 분류한다. 다운 스테이트에는 제1 보상율을 할당하고, 어퍼 스테이트에는 제2 보상율을 할당할 수 있다. 예를 들어 다운 스테이트에는 보상율 0을 할당하고 어퍼 스테이트에는 보상율 1을 할당할 수 있다. 이하 편의상 다운 스테이트에는 보상율 0을 할당하고 어퍼 스테이트에는 보상율 1을 할당하는 것으로 가정한다. 마킹
Figure 112009012478645-PAT00044
의 부분집합
Figure 112009012478645-PAT00045
은 컬러(
Figure 112009012478645-PAT00046
)의 조합의 스테이트이다.
보안 분석을 위한 HCPN에서 토큰의 타입은 승인된 토큰(authorized token)과 승인되지 않은 토큰(non-authorized token)을 포함한다. 상술한 바와 같이 취약점에 기반하여 승인되지 않은 토큰을 식별할 수 있다. 따라서,
Figure 112009012478645-PAT00047
는 아래 표 5와 같이 표현할 수 있다.
Figure 112009012478645-PAT00048
여기서,
Figure 112009012478645-PAT00049
Figure 112009012478645-PAT00050
는 승인된 토큰의 집합이고,
Figure 112009012478645-PAT00051
는 승인되지 않은 토큰의 집합이다.
본 발명의 일 실시 예에 따르는 소프트웨어 보안을 위한 보상율 할당은 표 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-PAT00064
는 플레이스 i가
Figure 112009012478645-PAT00065
에 포함된 플레이스가 아니라는 의미이다. 따라서 플레이스 i는 클라이언트이다(표 3 참조). 승인되지 않은 토큰은 보안 요구사항을 만족시킬 수 없게 한다. 따라서, 클라이언트의 플레이스를 제외한 HCPN의 어느 하나의 플레이스에라도 적어도 하나의 승인되지 않은 토큰을 보유한 경우 소프트웨어는 보안 문제의 잠재위험을 가진다.
풀어서 설명하면, 스테이트에 상응하는 HCPN의 플레이스 중 어느 하나 이상이 승인되지 않은 토큰을 하나 이상 보유하는 경우, 즉 스테이트에 상응하는 마킹에 승인되지 않은 토큰이 존재하는 경우 소프트웨어는 보안 문제의 잠재 위험을 가지므로 그 스테이트의 보상율을 0으로 할당하고, 그 외의 경우는 소프트웨어가 보안 문제의 잠재 위험이 없어서 그 스테이트의 보상율을 1로 할당한다.
MRM 기반 보안 분석부(230)는 MRM 형태의 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출한다.
도 5a는 본 발명의 일 실시 예에 따르는 MRM 기반 보안 분석부(230)의 블록 구성도이다.
도 5a를 참조하면 MRM 기반 보안 분석부(230)는 MTTI 추출부(510) 및 MTTB 추출부(520)를 포함할 수 있다.
MTTI 추출부(510)는 첫 번째 공격까지 걸리는 평균 시간(MTTI: Mean Time To Intrusion)을 추출한다.
MTTB 추출부(520)는 첫 번째 공격 시점에서 공격 성공까지 걸리는 평균 시간(MTTB: Mean Time To Breaches)을 추출한다.
도 5b는 MTTI와 MTTB를 나타낸 도면이다.
시점 0(600)에 소프트웨어의 수행이 시작되고, 시점 t1(610)에 첫 번째 공격이 시작되었으며, 시점 t2(620)에 첫 번째 공격이 성공하였다.
시점 0(600)부터 시점 t1(610) 사이의 평균 시간이 MTTI(650)이고, 시점 t1(610)부터 시점 t2(620) 사이의 평균 시간이 MTTB(660)이다.
Li(t)가 CTMC가 구간 [0,t)에서 스테이트 i에 속하는 총 기대시간이고, Uj가 보상율이 1인 어퍼 스테이트의 집합, 즉 보안 요구사항을 만족하는 스테이트의 집합일 때 MTTI는 수학식 5와 같이 구할 수 있다.
Figure 112009012478645-PAT00066
MTTI는 최초 공격시까지의 평균 시간이다. MRM에서의 어퍼 스테이트는 시스템의 정상 동작을 말한다. 따라서 MTTI는 시스템이 다운 스테이트에 도달하기 전에 어퍼 스테이트에 속하는 시간의 총합이다.
Li(t)가 CTMC가 구간 [0,t)에서 스테이트 i에 속하는 총 기대시간이고, Dj가 보상율이 0인 다운 스테이트의 집합, 즉 보안 요구사항을 만족하지 않는 비흡수 스테이트의 집합일 때 MTTB는 수학식 6과 같이 구할 수 있다.
Figure 112009012478645-PAT00067
MTTB는 첫 번째 공격 시점으로부터 공격 성공에까지 걸리는 평균 시간이고, 다운 스테이트는 시스템이 공격을 받는 상황을 나타낸다. 따라서 MTTB는 시스템이 흡수 스테이트에 도달하기 전에 다운 스테이트에 속하는 시간의 총합이다.
공격 트리 생성부(240)는 공격 트리를 생성한다.
식별된 취약점은 공격 트리의 공격 목표에 대응된다. 따라서 공격 트리의 루트 목표(G0)는
Figure 112009012478645-PAT00068
이 n번째 보안 취약점일 때,
Figure 112009012478645-PAT00069
와 같이 표현할 수 있다. 공격 트리의 생성 방법은 아래 표 7과 같다.
i. 보안 요구사항의 취약점에 상응하는 루트 노드
Figure 112009012478645-PAT00070
를 정의한다.
ii. 상위 레이어를 하나 또는 여러 노드로 분해한다.
iii. 분해된 노드를 OR/AND 논리 관계로 연관시킨다.
iv. 리프 노드에 위치한 공격이 독립적으로 시작될 수 있을 때까지 모든 브랜치(branch)에 대해 ii, iii 단계를 반복한다.
v. 리프 노드에 값을 할당한다. 할당되는 값은 명사적 값(nominal)이 될 수도 있고(예를 들면, 가능/불가능, 특별한 장비 요함/요하지 않음), 숫자적 값(ordinal)이 될 수도 있다(예를 들면, 공격 시간, 공격 가능성, 금전적 비용). 복수의 값이 하나의 노드에 할당될 수 있다.
첫 번째 단계에서, 루트 노드
Figure 112009012478645-PAT00071
는 요구사항 검증에 의하여 식별된 공격자의 목표를 의미한다. 두 번째 및 세 번째 단계에서 보조 목표를 이끌어내기 위해서 공격자의 패턴이 사용된다. 공격 패턴은 소프트웨어 취약점을 이용하기 위한 청사진이다. 공격 패턴은 몇몇 치명적 취약점의 특징을 설명하고, 목적 시스템을 이용하기 위해 필요한 지식으로 공격자를 무장시킨다. 공격 패턴은 공격자의 악의의 공격의 전체 또는 일부의 프로세스를 설명하는 참조 자료를 제공한다.
도 6은 본 발명의 일 실시 예에 따르는 공격 시나리오 식별부(530)의 블록 구성도이다.
도 6을 참조하면 본 발명의 일 실시 예에 따르는 공격 시나리오 식별부(250)는 공격 트리 개량부(531) 및 리프 노드 개수 추출부(532)를 포함할 수 있다.
공격 트리 개량부(531)는 공격 시나리오 개수를 세기 편하도록 공격 트리를 개량한다.
공격 트리는 공격 시나리오에 기반하여 계산 척도를 제공한다. 공격 트리에서 공격 시나리오는 공격 목표에 도달하는 공격 경로를 의미한다. 따라서, 하나의 공격 목표에 도달하기 위한 하나 이상의 공격 시나리오가 존재할 수 있다.
표 8은 공격 시나리오를 식별하기 위한 방법을 설명한다.
Figure 112009012478645-PAT00072
Figure 112009012478645-PAT00073
가 공격 트리의 레벨 n의 i번째 노드(목표)이고,
Figure 112009012478645-PAT00074
가 공격 트리의 루트 목표라고 가정한다. 공격 시나리오는
Figure 112009012478645-PAT00075
로부터 모든 리프 노드로의 공격 경로에 의하여 식별된다.
만족되지 못한 보안 요구사항은 공격 트리에서의 악의적 공격을 위한 루트 목표(루트 노드)에 상응한다. 따라서 요구사항의 숫자는 루트 목표의 숫자와 같다. 소프트웨어 시스템에 대한 많은 수의 공격 시나리오가 있다면, 많은 수의 악의적 공격 가능성에 노출될 수 있다. 따라서 잠재 공격 시나리오의 수는 보안 분석에 중요한 척도이다.
표 9는 공격 트리에서 공격 시나리오의 개수를 계산하기 위한 방법을 설명한다.
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.
도 7은 본 발명의 일 실시 예에 따르는 공격 트리 개량 방법의 의사 코드이다.
공격 트리가 거대한 경우 공격 경로를 기반으로 하여 공격 시나리오의 개수를 세는 것은 복잡하다. 도 7의 알고리즘은 공격 트리의 공격 경로의 수를 단순히 트리를 개량함으로써 셀 수 있도록 한다. 원래의 공격 트리의 공격 경로의 수는 개량된 트리의 리프 노드의 수와 같다. 도 7의 알고리즘은 기본적으로 모든 노드를 검색하여 AND 연산으로 관계된 노드들을 병합한다.
도 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 함수는 두 자식 노드의 자식 노드의 수를 곱한다.
도 8a, 도 8b 및 도 9는 본 발명의 일 실시 예에 따르는 공격 트리 개량의 모식도이다.
도 8a를 참조하면, 원본 공격 트리(800)에서 개량 공격 트리(850)로 개량(refine)이 이루어진다.
도 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)에 도달하기 위해서는 노드 (831), 노드
Figure 112009012478645-PAT00100
(832), 노드
Figure 112009012478645-PAT00101
(833)의 조건을 모두 만족시켜야 하므로 실제로 하나의 경로이고, 따라서 하나의 리프 노드로 병합한 것이다. 또한 노드 (834)의 부모 노드는 하나의 자식만을 가지고, 노드
Figure 112009012478645-PAT00103
(834)와 노드
Figure 112009012478645-PAT00104
(834)의 부모 노드를 병합하여도 경로 개수에는 영향이 없으므로 노드
Figure 112009012478645-PAT00105
(834)와 노드
Figure 112009012478645-PAT00106
(834)의 부모 노드를 병합할 수 있다.
도 8b를 참조하면, 원본 공격 트리(801)에서 개량 공격 트리(851)로 개량(refine)이 이루어진다.
도 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를 의미한다.
즉, AND 노드의 두 자식 노드 중 어느 하나가 리프 노드인 경우 두 자식 노드를 병합할 수 있다.
도 9를 참조하면, 원본 공격 트리(900)에서 개량 공격 트리(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개가 된다.
즉, AND 노드의 두 자식 노드가 모두 OR 노드이고, 두 자식 노드의 자식 노드(손자 노드)가 모두 리프 노드인 경우(손자 노드로부터 리프 노드로의 경로가 하나뿐인 경우 포함) 두 자식 노드를 병합하고, 두 자식 노드의 자식 노드의 수를 서로 곱한 결과값의 수만큼의 노드를 병합한 두 자식 노드의 자식 노드로서 만든다.
공격 트리 개량부(531)는 도 8a, 도 8b 및 도 9와 같은 병합 작업을 공격 트리 상에 AND 노드가 존재하지 않을 때까지 반복한다. 여기서 AND 노드의 자식들 간의 병합으로 그 자식이 하나가 되는 경우 더 이상 AND 노드가 아닌 것으로 본다.
공격 시나리오의 총 개수는 보안 요구사항을 만족시키지 못한 것으로 식별된 모든 루트 노드(
Figure 112009012478645-PAT00139
)로의 경로의 수와 같다. 수학식 7은 이를 수식으로 나타낸 것이다.
Figure 112009012478645-PAT00140
공격 시나리오의 총 개수 = 공격 시나리오의 개수()
리프 노드 개수 추출부(532)는 개량된 공격 트리의 리프 노드의 개수를 공격 시나리오의 개수로서 추출한다.
공격 트리 기반 보안 분석부(260)는 소프트웨어 시스템의 생존성(survivability), 침입 확률(Intrusion Probability) 또는 고 위험 공격 시나리오 중 하나 이상을 추출한다.
공격 트리 기반 보안 분석부(260)는 공격 트리 개량부(531)가 트리를 개량하기 전의 원본 트리를 이용하여 보안 성능을 추출한다. 따라서 공격 트리 기반 보안 분석부(260)가 수행하는 작업은 공격 트리 개량부(531)의 수행작업 이전에 수행될 수 있다. 다만, 공격 트리 개량부(531)의 트리 개량 작업 시 원본 트리를 복사하고, 복사된 후의 두 공격 트리 중 하나는 공격 트리 개량부(531)에서 개량하여 공격 경로 개수 계산에 사용하고, 나머지 하나는 공격 트리 기반 보안 분석부(260)에서 이용한다면 순서에 구애받지 않을 것이다.
공격 트리 기반 보안 분석부(260)는 생존성을 추출할 수 있다.
생존성(survivability)은 악의적인 공격으로부터 소프트웨어가 자기 자신을 보호하는 능력을 의미한다. 생존성은 공격자의 관점에서, 악의적인 공격이 성공하 는 데 필요한 최소 비용으로 정의될 수 있다. 공격 트리에서, 공격 비용은 리프 노드로부터 루트 노드에 도달하는데 필요한 비용이다. 이는 바이너리 연산 (AND, OR)로 계산될 수 있다. 따라서 정량적으로 측정된 생존성은 수학식 8과 같이 F로 표시될 수 있다.
F = MIN(CTree)
여기서 CTree는 공격 트리의 리프 노드에 할당된 공격 비용의 집합이다.
공격 트리에서 AND 노드의 값은 그 AND 노드의 자식 노드의 값의 합이고, OR 노드의 값은 그 OR 노드의 자식 노드의 값 중 최소값이다.
공격 트리 기반 보안 분석부(260)는 침입 확률(Intrusion probability)을 추출할 수 있다.
침입 확률은 공격 시나리오에서 악의적 공격을 시도할 확률을 말한다. 따라서 침입 확률(A)은 수학식 9와 같이 생존성으로 표현될 수 있다.
Figure 112009012478645-PAT00141
여기서 total cost는 CTree의 원소의 총합이다.
공격 트리 기반 보안 분석부(260)는 고 위험 공격 시나리오를 추출할 수 있 다.
공격 시나리오의 보안 위험은 다음의 두 요소의 곱으로 정의할 수 있다.
- 공격 트리 기반 보안 분석부(260)에 의하여 측정되는, 시스템이 요구되는 보안 목표를 만족시키는 데 실패할 확률(침입 확률 A)
- 공격 시나리오에서 시스템 보안 실패에 따르는 심각도 severity
위험 인자(R)는 수학식 10과 같이 위의 침입 확률과 심각도의 곱으로 계산된다.
Rk = A × severity
고 위험 공격 시나리오 (Critical)은 Rk (여기서 k = (1,2,3,...,n))의 최대값에 의하여 다음 수학식 11과 같이 결정된다.
Critical = MAX(Rk)
심각도는 공격 시나리오에 따라 데이터베이스 등에 저장되어 미리 설정된 값이 될 수도 있다. 다른 실시 예에 따르면 공격 시나리오를 분석하여 심각도가 정해질 수도 있다.
심각도의 분석은 여러 방법이 제안되어 있는 공지 기술이므로 자세한 설명은 생략한다.
결과 출력부(270)는 MRM 기반 보안 분석부(230)가 추출한 MTTI 나 MTTB, 공 격 시나리오 식별부(250)가 추출한 공격 시나리오 개수, 공격 트리 기반 보안 분석부(260)가 추출한 생존성, 침입 확률, 고 위험 공격 시나리오 중 하나 이상을 출력할 수 있다.
도 10은 본 발명의 일 실시 예에 따르는 보안 분석 방법의 순서도이다.
단계 S1010에서 HCPN 생성부(210)는 HCPN 형태의 제1 소프트웨어 모델을 생성한다. HCPN 생성부(210)의 제1 소프트웨어 모델 생성 작업에 대해서는 도 2를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.
단계 S1020에서 HCPN/MRM 변환부(210)는 HCPN 형태의 제1 소프트웨어 모델을 MRM 형태의 제2 소프트웨어 모델로 변환한다.
도 11은 본 발명의 일 실시 예에 따르는 도 10의 단계 S1020의 상세 순서도이다.
도 11을 참조하면, 단계 S1110에서 HCPN 형태의 제1 소프트웨어 모델을 MC 형태의 제 3 소프트웨어 모델로 변환한다.
도 12는 본 발명의 일 실시 예에 따르는 도 11의 단계 S1110의 상세 순서도이다.
단계 S1210에서 스테이트 생성부(320)는 HCPN 형태의 제1 소프트웨어 모델에 포함되는 토큰의 마킹에 다라 식별되는 스테이트를 생성한다. 스테이트 생성부(320)의 스테이트 생성 작업에 대해서는 도 3 및 도 4를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.
단계 S1220에서 에지 생성부(330)는 HCPN 형태의 제1 소프트웨어 모델에 포 함되는 트랜지션의 파이어에 따르는 스테이트 변화에 상응하는 에지를 생성한다. 에지 생성부(330)의 에지 생성 작업에 대해서는 도 3 및 도 4를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.
단계 S1230에서 변화 확률 추출부(340)는 트랜지션의 파이어 확률에 상응하여 스테이트 변화 확률을 추출한다. 변화 확률 추출부(340)의 스테이트 변화 확률 추출 작업에 대해서는 도 3 및 도 4를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.
단계 S1120에서 MC/MRM 변환부(350)는 MC 형태의 제3 소프트웨어 모델을 MRM 형태의 제2 소프트웨어 모델로 변환한다. MC/MRM 변환부(350)의 변환 작업에 대해서는 도 3을 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.
단계 S1030에서 MRM 형태의 제2 소프트웨어 모델을 기반으로 정량적 보안 성능을 추출한다.
도 13은 본 발명의 일 실시 예에 따르는 도 10의 단계 S1030의 상세 순서도이다.
단계 S1310에서 MTTI 추출부(510)가 MTTI를 추출한다. MTTI의 추출 방법에 대해서는 도 5a 및 도 5b를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.
단계 S1320에서 MTTB 추출부(520)가 MTTB를 추출한다. MTTB의 추출 방법에 대해서는 도 5a 및 도 5b를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.
단계 S1040에서 공격 트리 생성부(240)는 공격 트리를 생성한다. 공격 트리 생성부(240)의 공격 트리 생성에 대해서는 도 2를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.
단계 S1050에서 공격 시나리오 식별부(250)는 공격 시나리오의 개수를 추출한다.
도 14는 본 발명의 일 실시 예에 따르는 도 10의 단계 S1050의 상세 순서도이다.
단계 S1410에서 공격 트리 개량부(531)는 AND 노드의 자식 노드를 통합하여 트리를 개량한다. 공격 트리 개량부(531)의 트리 개량 작업은 도 6 내지 도 9를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.
단계 S1420에서 공격 리프 노드 개수 추출부(532)는 공격 트리 상에 AND 노드가 존재하지 않을 때 상기 공격 트리의 리프 노드 수를 공격 시나리오 개수로서 추출한다. 공격 리프 노드 개수 추출부(532)의 공격 시나리오 개수 추출 작업은 도 6 내지 도 9를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.
단계 S1060에서 공격 트리 기반 보안 분석부(260)는 생존성, 침입 확률, 고 위험 공격 시나리오 중 하나 이상의 보안 성능을 추출한다.
도 15는 본 발명의 일 실시 예에 따르는 도 10의 단계 S1060의 상세 순서도이다.
단계 S1510에서 공격 트리 기반 보안 분석부(260)는 리프 노드에 할당된 공격 비용을 이용하여 생존성을 추출한다. 생존성 추출 방법에 대해서는 도 2를 참조 하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.
단계 S1520에서 공격 트리 기반 보안 분석부(260)는 단계 S1510에서 추출한 생존성을 이용하여 침입 확률을 추출한다. 침입 확률 추출 방법에 대해서는 도 2를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.
단계 S1530에서 공격 트리 기반 보안 분석부(260)는 단계 S1520에서 추출한 침입 확률과 심각도의 곱이 가장 큰 공격 시나리오를 고 위험 공격 시나리오로서 추출한다. 고 위험 공격 시나리오의 추출 방법에 대해서는 도 2를 참조하여 상세히 설명하였으므로 여기서는 자세한 설명을 생략한다.
단계 S1070에서 결과 출력부(270)는 MRM 기반 보안 분석부(230)가 추출한 MTTI 나 MTTB, 공격 시나리오 식별부(250)가 추출한 공격 시나리오 개수, 공격 트리 기반 보안 분석부(260)가 추출한 생존성, 침입 확률, 고 위험 공격 시나리오 중 하나 이상을 출력할 수 있다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것 으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 발명의 실시 예는 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
또한, 도 2, 도 3, 도 5a에 도시된 구성요소들은 반드시 하드웨어 구성을 가질 필요는 없으며, 일부 구성요소는 동일 또는 유사한 기능을 수행하는 응용 프로그램의 형태로 구현될 수 있다. 또한, 각 구성요소들은 발명의 사상 범위 내에서 결합하거나 분리될 수도 있음은 물론이다.
이제까지 본 발명에 대하여 그 실시 예를 중심으로 살펴보았다. 전술한 실시 예 외의 많은 실시 예들이 본 발명의 특허청구범위 내에 존재한다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으 며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1a는 오픈 클래스 모델(open class model) HQPN의 모식도이다.
도 1b는 클로즈드 클래스 모델(closed class model) HQPN의 모식도이다.
도 2는 본 발명의 일 실시 예에 따르는 소프트웨어 보안 분석 장치(200)의 블록 구성도이다.
도 3은 본 발명의 일 실시 예에 따르는 HQPN/MRM 변환부(220)의 블록 구성도이다.
도 4는 본 발명의 일 실시 예에 따르는 HCPN 형태의 모델을 MC 형태로 변환하는 과정의 모식도이다.
도 5a는 본 발명의 일 실시 예에 따르는 MRM 기반 보안 분석부(230)의 블록 구성도이다.
도 5b는 MTTI와 MTTB를 나타낸 도면이다.
도 6은 본 발명의 일 실시 예에 따르는 공격 시나리오 식별부(530)의 블록 구성도이다.
도 7은 본 발명의 일 실시 예에 따르는 공격 트리 개량 방법의 의사 코드이다.
도 8a, 도 8b 및 도 9는 본 발명의 일 실시 예에 따르는 공격 트리 개량의 모식도이다.
도 10은 본 발명의 일 실시 예에 따르는 보안 분석 방법의 순서도이다.
도 11은 본 발명의 일 실시 예에 따르는 도 10의 단계 S1020의 상세 순서도 이다.
도 12는 본 발명의 일 실시 예에 따르는 도 11의 단계 S1110의 상세 순서도이다.
도 13은 본 발명의 일 실시 예에 따르는 도 10의 단계 S1030의 상세 순서도이다.
도 14는 본 발명의 일 실시 예에 따르는 도 10의 단계 S1050의 상세 순서도이다.
도 15는 본 발명의 일 실시 예에 따르는 도 10의 단계 S1060의 상세 순서도이다.

Claims (24)

  1. HCPN(계층형 페트리 네트, Hierarchically Combined Petri Net) 형태의 제1 소프트웨어 모델을 이용하는 소프트웨어 보안 분석 방법에 있어서,
    상기 HCPN 형태의 제1 소프트웨어 모델을 MRM(마르코프 보상 모형, Markov Reward Model) 형태의 제2 소프트웨어 모델로 변환하는 단계; 및
    상기 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 단계를 포함하는 소프트웨어 보안 분석 방법.
  2. 제1항에 있어서,
    상기 제1 소프트웨어 모델의 컬러는 속성(attribute)을 가지는 것을 특징으로 하는 소프트웨어 보안 분석 방법.
  3. 제1항에 있어서,
    상기 HCPN 형태의 제1 소프트웨어 모델을 MRM 형태의 제2 소프트웨어 모델로 변환하는 단계는,
    상기 제1 소프트웨어 모델을 MC(마르코프 연쇄, Markov Chain) 형태의 제3 소프트웨어 모델로 변환하는 단계; 및
    상기 제3 소프트웨어 모델을 상기 MRM 형태의 제2 소프트웨어 모델로 변환하는 단계를 포함하는 소프트웨어 보안 분석 방법.
  4. 제3항에 있어서,
    상기 제1 소프트웨어 모델을 MC형태의 제3 소프트웨어 모델로 변환하는 단계는,
    상기 제1 소프트웨어 모델에 포함되는 토큰(token)의 마킹(marking)에 따라 식별되는 스테이트(state)를 생성하는 단계;
    상기 제1 소프트웨어 모델에 포함되는 트랜지션(transition)의 파이어(fire)에 따르는 스테이트 변화에 상응하는 에지(edge)를 생성하는 단계; 및
    상기 트랜지션의 파이어(fire) 확률에 상응하여 스테이트 변화 확률을 추출하는 단계를 포함하는 소프트웨어 보안 분석 방법.
  5. 제3항에 있어서,
    상기 제3 소프트웨어 모델을 상기 MRM 형태의 제2 소프트웨어 모델로 변환하는 단계는,
    상기 제3 소프트웨어 모델에 포함되는 스테이트(state)에 상응하는 제1 소프트웨어 모델의 마킹에 승인되지 않은 토큰(non-authorized token)이 존재하지 않는 스테이트에 제1 보상율(reward rate)을 할당하고, 상기 제3 소프트웨어 모델에 포함되는 스테이트(state)에 상응하는 제1 소프트웨어 모델의 마킹에 승인되지 않은 토큰(non-authorized token)이 존재하는 스테이트에 제2 보상율(reward rate)을 할당하는 단계를 포함하는 소프트웨어 보안 분석 방법.
  6. 제1항에 있어서,
    상기 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 단계는,
    Li(t)가 상기 제2 소프트웨어 모델에 상응하는 연속 시간 마르코프 연쇄(CTMC: continuous time Markov chain) 모델이 구간 [0,t)에서 스테이트 i에 머무는 총 기대시간이고, Uj는 보안 요구사항을 만족하는 스테이트의 집합일 때, 다음 수식을 이용하여 평균 공격 시작 시간(MTTI: Mean Time to Intrusion)을 추출하는 단계를 포함하는 소프트웨어 보안 분석 방법.
    Figure 112009012478645-PAT00142
  7. 제2항에 있어서,
    상기 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 단계는,
    Li(t)가 상기 제2 소프트웨어 모델에 상응하는 연속 시간 마르코프 연쇄(CTMC: continuous time Markov chain) 모델이 구간 [0,t)에서 스테이트 i에 머무는 총 기대시간이고, Dj는 보안 요구사항을 만족하지 않는 비흡수 스테이트의 집합일 때, 다음 수식을 이용하여 평균 공격 소요 시간(MTTB: Mean Time to Breaches)을 추출하는 단계를 포함하는 소프트웨어 보안 분석 방법.
    Figure 112009012478645-PAT00143
  8. 제1항 내지 제7항 중 어느 한 항에 기재된 소프트웨어 보안 분석 방법을 수행하기 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램이 기록된 기록매체.
  9. HCPN(계층형 페트리 네트, Hierarchically Combined Petri Net) 형태의 제1 소프트웨어 모델을 이용하는 소프트웨어 보안 분석 장치에 있어서,
    상기 HCPN 형태의 제1 소프트웨어 모델을 MRM(마르코프 보상 모형, Markov Reward Model) 형태의 제2 소프트웨어 모델로 변환하는 HCPN/MRM 변환부; 및
    상기 제2 소프트웨어 모델을 이용하여 정량적 보안 성능을 추출하는 MRM 기반 보안 분석부를 포함하는 소프트웨어 보안 분석 장치.
  10. 제9항에 있어서,
    상기 제1 소프트웨어 모델의 컬러는 속성(attribute)을 가지는 것을 특징으로 하는 소프트웨어 보안 분석 장치.
  11. 제9항에 있어서,
    상기 HCPN/MRM 변환부는,
    상기 제1 소프트웨어 모델을 MC(마르코프 연쇄, Markov Chain) 형태의 제3 소프트웨어 모델로 변환하는 HCPN/MC 변환부; 및
    상기 제3 소프트웨어 모델을 상기 MRM 형태의 제2 소프트웨어 모델로 변환하는 MC/MRM 변환부를 포함하는 소프트웨어 보안 분석 장치.
  12. 제11항에 있어서,
    상기 HCPN/MC 변환부는,
    상기 제1 소프트웨어 모델에 포함되는 토큰(token)의 마킹(marking)에 따라 식별되는 스테이트(state)를 생성하는 스테이트 생성부;
    상기 제1 소프트웨어 모델에 포함되는 트랜지션(transition)의 파이어(fire)에 따르는 스테이트 변화에 상응하는 에지(edge)를 생성하는 에지 생성부; 및
    상기 트랜지션의 파이어(fire) 확률에 상응하여 스테이트 변화 확률을 추출하는 변화 확률 추출부를 포함하는 소프트웨어 보안 분석 장치.
  13. 제11항에 있어서,
    상기 MC/MRM 변환부는,
    상기 제3 소프트웨어 모델에 포함되는 스테이트(state)에 상응하는 제1 소프트웨어 모델의 마킹에 승인되지 않은 토큰(non-authorized token)이 존재하지 않는 스테이트에 제1 보상율(reward rate)을 할당하고, 상기 제3 소프트웨어 모델에 포함되는 스테이트(state)에 상응하는 제1 소프트웨어 모델의 마킹에 승인되지 않은 토큰(non-authorized token)이 존재하는 스테이트에 제2 보상율(reward rate)을 할당하는 보상율 할당부를 포함하는 소프트웨어 보안 분석 장치.
  14. 제9항에 있어서,
    상기 MRM 기반 보안 분석부는,
    Li(t)가 상기 제2 소프트웨어 모델에 상응하는 연속 시간 마르코프 연쇄(CTMC: continuous time Markov chain) 모델이 구간 [0,t)에서 스테이트 i에 머무는 총 기대시간이고, Uj는 보안 요구사항을 만족하는 스테이트의 집합일 때, 다음 수식을 이용하여 평균 공격 시작 시간(MTTI: Mean Time to Intrusion)을 추출하는 MTTI 추출부를 포함하는 소프트웨어 보안 분석 장치.
    Figure 112009012478645-PAT00144
  15. 제9항에 있어서,
    상기 MRM 기반보안 분석부는,
    Li(t)가 상기 제2 소프트웨어 모델에 상응하는 연속 시간 마르코프 연쇄(CTMC: continuous time Markov chain) 모델이 구간 [0,t)에서 스테이트 i에 머무는 총 기대시간이고, Dj는 보안 요구사항을 만족하지 않는 비흡수 스테이트의 집합일 때, 다음 수식을 이용하여 평균 공격 소요 시간(MTTB: Mean Time to Breaches)을 추출하는 MTTB 추출부를 포함하는 소프트웨어 보안 분석 장치.
    Figure 112009012478645-PAT00145
  16. 공격 트리(attack tree)를 이용하는 소프트웨어 보안 분석 방법에 있어서,
    (a) 상기 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 중 어느 하나가 리프 노드인 경우 상기 제1 노드 및 제2 노드를 병합하는 단계;
    (b) 상기 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 모두가 OR 노드인 경우 상기 제1 노드 및 상기 제2 노드를 병합하여 OR노드인 제3 노드를 생성하고, 상기 제1 노드의 자식 노드 수와 상기 제2 노드의 자식 노드의 수를 곱한 수만큼의 노드를 상기 제3 노드의 자식 노드로서 생성하는 단계;
    상기 공격 트리 상에 AND 노드가 존재하지 않을 때까지 상기 (a) 단계 및 상기 (b) 단계를 반복하는 단계; 및
    상기 공격 트리 상에 AND 노드가 존재하지 않을 때 상기 공격 트리의 리프 노드 수를 공격 시나리오 개수로서 추출하는 단계를 포함하는 소프트웨어 보안 분석 방법.
  17. 제16항에 있어서,
    CTree는 상기 공격 트리의 리프 노드에 할당된 공격 비용의 집합일 때, 생존성(survivability) F를 아래 수식에 의하여 추출하는 단계를 더 포함하는 소프트웨 어 보안 분석 방법.
    F = MIN(CTree)
  18. 제17항에 있어서,
    F가 생존성이고, total cost는 상기 공격 트리의 리프 노드에 할당된 공격 비용의 총합일 때 아래 수식에 의하여 침입 확률 A를 추출하는 단계를 더 포함하는 소프트웨어 보안 분석 방법.
    Figure 112009012478645-PAT00146
  19. 제18항에 있어서,
    상기 침입 확률과 심각도(severity)의 곱이 가장 큰 공격 시나리오를 고 위험 공격 시나리오로서 추출하는 단계를 더 포함하는 소프트웨어 보안 분석 방법.
  20. 제16항 내지 제19항 중 어느 한 항에 기재된 소프트웨어 보안 분석 방법을 수행하기 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램이 기록된 기록매체.
  21. 공격 트리(attack tree)를 이용하는 소프트웨어 보안 분석 장치에 있어서,
    (a) 상기 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 중 어느 하나가 리프 노드인 경우 상기 제1 노드 및 제2 노드를 병합하는 작업을 수행하고;
    (b) 상기 공격 트리 상의 AND 연산자의 피 연산자 노드인 제1 노드 및 제2 노드 모두가 OR 노드인 경우 상기 제1 노드 및 상기 제2 노드를 병합하여 OR노드인 제3 노드를 생성하고, 상기 제1 노드의 자식 노드 수와 상기 제2 노드의 자식 노드의 수를 곱한 수만큼의 노드를 상기 제3 노드의 자식 노드로서 생성하는 작업을 수행하고;
    상기 공격 트리 상에 AND 노드가 존재하지 않을 때까지 상기 (a) 작업 및 상기 (b) 작업을 반복 수행하는 공격 트리 개량부; 및
    상기 공격 트리 상에 AND 노드가 존재하지 않을 때 상기 공격 트리의 리프 노드 수를 공격 시나리오 개수로서 추출하는 리프 노드 개수 추출부를 포함하는 소프트웨어 보안 분석 장치.
  22. 제21항에 있어서,
    CTree는 상기 공격 트리의 리프 노드에 할당된 공격 비용의 집합일 때, 생존성(survivability) F를 아래 수식에 의하여 추출하는 공격 트리 기반 보안 분석부를 더 포함하는 소프트웨어 보안 분석 장치.
    F = MIN(CTree)
  23. 제22항에 있어서,
    상기 공격 트리 기반 보안 분석부는 F가 생존성이고, total cost는 상기 공격 트리의 리프 노드에 할당된 공격 비용의 총합일 때 아래 수식에 의하여 침입 확률 A를 추출하는 기능을 더 수행하는 소프트웨어 보안 분석 장치.
    Figure 112009012478645-PAT00147
  24. 제23항에 있어서,
    상기 공격 트리 기반 보안 분석부는 상기 침입 확률과 심각도(severity)의 곱이 가장 큰 공격 시나리오를 고 위험 공격 시나리오로서 추출하는 기능을 더 수행하는 소프트웨어 보안 분석 장치.
KR1020090017163A 2009-02-27 2009-02-27 소프트웨어 보안 분석 방법 및 장치 KR100990688B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090017163A KR100990688B1 (ko) 2009-02-27 2009-02-27 소프트웨어 보안 분석 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090017163A KR100990688B1 (ko) 2009-02-27 2009-02-27 소프트웨어 보안 분석 방법 및 장치

Publications (2)

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

Family

ID=43005156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090017163A KR100990688B1 (ko) 2009-02-27 2009-02-27 소프트웨어 보안 분석 방법 및 장치

Country Status (1)

Country Link
KR (1) KR100990688B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104184632A (zh) * 2014-09-03 2014-12-03 重庆大学 一种通信协议路由器性能的分析方法
KR20180121459A (ko) * 2016-12-13 2018-11-07 경희대학교 산학협력단 보안 위험 평가 기반 보안 투자 방법 및 장치
KR20180121460A (ko) * 2016-12-15 2018-11-07 경희대학교 산학협력단 클라우드 서비스 특성을 고려한 보안 투자 방법, 장치 및 컴퓨터 프로그램
KR102050230B1 (ko) * 2018-06-29 2019-11-29 순천향대학교 산학협력단 페트리 넷 모델링을 이용한 산업용 사물 인터넷 시스템에 구비되는 드론의 검증방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104184632A (zh) * 2014-09-03 2014-12-03 重庆大学 一种通信协议路由器性能的分析方法
KR20180121459A (ko) * 2016-12-13 2018-11-07 경희대학교 산학협력단 보안 위험 평가 기반 보안 투자 방법 및 장치
KR20180121460A (ko) * 2016-12-15 2018-11-07 경희대학교 산학협력단 클라우드 서비스 특성을 고려한 보안 투자 방법, 장치 및 컴퓨터 프로그램
KR102050230B1 (ko) * 2018-06-29 2019-11-29 순천향대학교 산학협력단 페트리 넷 모델링을 이용한 산업용 사물 인터넷 시스템에 구비되는 드론의 검증방법
WO2020005048A1 (ko) * 2018-06-29 2020-01-02 순천향대학교 산학협력단 페트리 넷 모델링을 이용한 산업용 사물 인터넷 시스템에 구비되는 드론의 검증방법
US11914720B2 (en) 2018-06-29 2024-02-27 Soonchunhyang University Industry Academy Cooperation Foundation Method for verifying drone included in industrial internet of things system, by using petri-net modeling

Also Published As

Publication number Publication date
KR100990688B1 (ko) 2010-10-29

Similar Documents

Publication Publication Date Title
Johnson et al. A meta language for threat modeling and attack simulations
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 (ko) 공격 그래프 기반의 공격 대상 예측 방법 및 그를 위한 장치
RU2017141988A (ru) Метод и устройство для управления безопасностью в компьютерной сети
Khairi et al. Detection and classification of conflict flows in SDN using machine learning algorithms
Kotenko et al. The CAPEC based generator of attack scenarios for network security evaluation
Joshi et al. A review on taxonomies of attacks and vulnerability in computer and network system
CN111522746B (zh) 数据处理的方法、装置、设备及计算机可读存储介质
CN110704846B (zh) 一种人在回路的智能化安全漏洞发现方法
CN111917793B (zh) 一种攻击链情报分析方法、系统及存储介质
KR100990688B1 (ko) 소프트웨어 보안 분석 방법 및 장치
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
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
Mauri et al. Stride-ai: An approach to identifying vulnerabilities of machine learning assets
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
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
Dalton II et al. Analysing security risks in computer and radio frequency identification (RFID) networks using attack and protection trees
Dodiya et al. Identification of Taxonomic Features through Assessment of Existing Taxonomies for Vulnerabilities Identification
CN110995747A (zh) 一种分布式存储安全性分析方法

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