Secure SDLC
태그 :
I. 위협모델링의 개요
가. 위협모델링의 정의와 등장배경
시큐어 S/W개발 등장 배경 |
위협모델링의 정의 |
|
클라우드, 사물인터넷등 미래지향적 S/W 개발환경에서의 보안 속성 강화 필요 증가및 보안 이슈 관련 유지 보수비용 증가 → 개발 단계에서 발생하는 설계, 구현 상의 보안 약점 극복을 위한 보안 개발 방법론(S-SDLC) 대두 - SDL(Microsoft) , OSSA (Oracle), CLASP(OWASP), Cigital TouchPoints |
- S/W내에 가능한 모든 취약 위험을 파악·추출 하는 활동 - 설계 단계에서 구조화된 기법을 이용하여 각 자산에 피해를 줄 수 있는 위협과 위험도를 완화하기 위한 위험 분석, 추출 기법 |
|
- 위협 분석의 목적은 대응해야 할 위협을 파악하고, 어떻게 대응할 수 있는지를 경정하기 위한 체계적인 방법
나. 위협모델링의 특징
- 공격자 관점 : 공격자 관점 에서의 목적과 요구사항을 설계에 반영
- 데이터흐름 관점 : 발생 가능한 공격들을 파악하고 발생 경로를 분석, 동일 공격에 대한 방어책을 보안 요구사항으로 만들어 설계에 반영 하고 이를 다시 검증하는 작업을 반복.
II. 위협 모델링 기법의 종류
가. 마이크로소프트 사 SDL 의 위협 모델링
나. SDL 분석,설계 단계에서 위협모델링을 통한, 위험 분석.추출
1단계 사용자 시나리오의 정의
개발 대상 소프트웨어 시스템의 사용 시나리오를 작성하고, 주요 기능들을 결정한다.
2단계 외부 의존성 수집
개발 대상 소프트웨어가 의존하게 되는 외부 요소-예를 들어 동작하기 위한 운영체제 혹은 데이터베이스 서버를 기술
3단계 보안 가정 사항 수집
보안 사항 중에서 개발 소프트웨어 시스템 내부와 관련된 가정 사항들을 모두 나열 (ex.인터넷 연결 시 방화벽 설치 유무).
4단계 외부 보안 요소 고려
개발 소프트웨어 시스템 외부와 관련된 보안 가정 사항들을 모두 기술. (ex.인터넷 에 연결 되는 경우 혹은 DB서버가 외부에서 접근되는 경우에 필요한 포트 할당 등).
- 5단계 대상 응용 프로그램의 DFD 생성
개발 대상 시스템의 DFD를 작성하기 위해, 시스템의 구성 요소들을 분할하고 구조를 작성한다. DFD는 6가지 요소를 사용하여 시스템을 기술하며, 시스템의 프로세스를 계층적으로 표현.
6단계 위협 유형의 결정 (STRIDE 도구)
신분 위장(Spooping Identity) |
거짓된 Identity를 이용하여 시스템 접근 권한 획득 |
데이터 변조(Tampering with data) |
불법적인 데이터 수정 |
부인(Repudiation) |
사용자가 자신이 수행한 특정 액션이나 트랜잭션을 부인. |
정보유출(Information Disclosure) |
유출되지 않아야 하는 개인 정보 유출 |
서비스 거부(Denial of Serice, DoS) |
시스템 또는 애플리케이션이 정상적으로 수행되지 않도록 한다. |
권한 상승(Elevation of Privilege) |
제한된 권한을 가진 사용자가 다른 사용자의 권한을 습득하여 원하는 기능을 수행. |
7단계 시스템에 대한 위협의 파악
DFD의 각 요소와 공격 위협들을 대응 시켜, 시스템에 대해 가해질 수 있는 공격 위협들을 파악한다.
8단계 리스크 계산
예상 피해(Damage potential) |
피해가 얼마나 클 것 인가. |
재현 확률(Reproducibility) |
공격이 성공할 확률이 얼마인가 |
공격 용이도(Exploitability) |
공격을 위해 얼마나 많은 노력과 기술이 필요 한가. |
영향을 받는 사용자(Affected users) |
위협으로부터 얼마나 많은 사용자가 영향을 받는가. |
발견 용이성(Discoverability) |
얼마나 쉽게 취약성이 발견되는가. |
DREAD 위험도 분류 이용, 가장 위협적인 요소들이 먼저 제거될 수 있도록 한다.
9단계 공격 보안대책 수립과 반영
우선순위의 공격위협에 대한 보안 경감책을 위협 트리를 사용하여 수립(무시, 사용자 고지, 제거, 개선) 하고, 앞선 이전 개발 단계에 다시 반영한다
다. OWASP CLASP의 Thread Modeling
- CLASP 는 Secure Software사에서 개발한 소프트웨어 개발 생명 주기의 초기단계의 보안을 강화하기 위한 목적을 둔 정형 프로세스이다. 활동중심, 역할 기반의 프로세스로 구성된 집합체로 시스템이 코드를 작성하기 전에 적절한 애플리케이션 문제점을 명시하고 접근하도록 하기 위한 일련의 기법과 실천 방법들을 제시하고 있으며, 보안에 대한 위협 모델링을 통해 이를 도출한다.
OWASP Thread Model Flow |
단계를 제외하고는, MS분석모델과 동일하게 DFD분석 후 STRIDE, DEREAD 를 통해 도출.
1단계 - Identify Security Objectives 2단계 - Survey the Application 3단계 - Decompose it 4단계 - Identify Threats 5단계 - Identify Vulnerabilities |
III. 위협모델링을 통한, 성공적인 Secure-SDLC 대표 적용 사례
사례 |
상세 내용 |
MS SDL |
MS SDL 은 Window XP , SQL Server 2000 이후, 제품에 적용되었으며, 채택 후, 이전 버젼에 비해 취약성이 50퍼센트 정도 감소(Michael Howard, Microsoft) |