위협 모델링은 공격자가 지정한 목표에 대한 시스템을 조사한 Threat profile
을 만들고, 그 Threat profile
을 바탕으로 여러가지 방법론에 따라서 실제 공격을 시행하는 것을 말한다.
Threat profile
은 시스템의 설계 관점에서 할 수 있는 최대한의 조사를 통해 시스템에 관한 여러가지 정보를 말한다. 이를 통해 보다 정확한 Threat modeling
을 수행할 수 있다.
'위협' 과 '위험'
‘위협’과 ‘위험’을 구분하는 것이 중요하다. 위협은 발생 가능한 나쁜 일이지만, 위험은 위협이 발생할 가능성이다. 예컨데, 건물이 무너질 수는 있지만(위협), 이것이 발생할 가능성(위험)은 (지진 발생이 많은) 샌프란시스코가 (지진 발생이 별로 없는) 스톡홀름보다 훨씬 크다.
위협 : 발생 가능한 나쁜 일
위험 : 위협(나쁜 일)이 일어날 가능성
즉, Threat modeling
은 발생가능한 나쁜 일을 모델링하여 사전에 테스트 해보는 것이라고 할 수 있다.
모든 사람들이 같은 방식으로 위협에 대한 똑같은 우선순위를 가지고 있는 것은 아니다.
어떤경우는 위협을 문제라고 보지 않기때문에 위험도가 높아도 그것을 무시하기도 한다.
따라서 Threat modeling
은 주관적인 것이다.
다만, 여러가지 방법론들이 제시되어있긴 하다.
STRIDE 위협 유형 기준
위협 종류 | 공격으로 인한 결과 | 대처 방안 |
---|---|---|
Spooping Identity | 거짓된 권한을 이용하여 시스템의 접근 권한을 획득한다. | Authentication(인증) |
Tampering with data | 불법적으로 데이터를 수정한다. | Integrity(무결성 검증) |
Repudiation | 사용자가 수행한 행동에 대한 부인 | Non-repudiation(부인 봉쇄, 데이터의 무결함과 출처를 증명) |
Information Disclosure | 유출되서는 안되는 개인 정보 유출 | Confidentiality(기밀성 검증) |
Denial of Service(DoS) | 시스템 또는 애플리케이션이 정상적으로 수행되지 않도록 함 | Availability(가용성 검증) |
Elevation of Privilege | 제한된 권한을 가진 사용자가 다른 사용자의 권한을 습득한다. | Authorization(권한 부여 검증) |
해당 6가지 위협을 기반으로 취약점 분석, 모의 해킹을 수행한다.
각각 신분 위장, 데이터 변조, 부인, 정보유출, 서비스 거부, 권한 상승을 의미한다.
여기서 Repudiation(부인)
은 아래와 같은 상황을 말한다.
A : (B에게 악성코드를 보냄)
B : (악성코드를 받아 컴퓨터에 랜섬웨어가 걸림)
B: 아니 이걸 나한테 왜보내는거야
A : 내가 보낸적 없는데?
B : 아니 누나가 보낸거 맞잖아 이거
A : 증거있어?
B : (할말 없음) ?? 싸우자
A : 내가 보낸적 없는데?
해당 부분이 부인의 예시라고 할 수 있다.
이를 막기 위해 실생활에서는 아래와 같이 부인 봉쇄 를 한다.
고객 : (물건을 결제함)
고객 : (반드시 물건을 수령 시 "서명" 해야함.)
공급 업체 : (서명 된 영수증을 통해 사용자가 물건을 받았다는 사실을 "부인" 할 때, 증거물을 통해 "부인을 봉쇄" 할 수 있음.)
즉, 고객이 물건을 받고도 물건이 안왔다고 따지면, 공급업체에서는 부인 봉쇄를 할 수 있다.
STRIDE에 따른 대처 방안
Spooping Identity
적절한 인증(패스워드, 비밀키, 홍채인식, 지문)
패스워드는 저장하지 않음
전자 서명
Tampering with data
해쉬
전자 서명
Repudiation
전자 서명
감시 로그
Information Disclosure
보안 강화 프로토콜 사용
암호화
Denial of Service
필터링
공격 모니터링
포트스캔 공격 차단
DREAD 위험도 분류
위험도 | 공격에 따른 결과 예측 |
---|---|
Damage potential | 피해는 얼마나 클 것인가? |
Reproducibility | 공격이 성공할 확률이 얼마인가? |
Exploitability | 공격을 위해 얼마나 많은 노력과 기술이 필요한가? |
Affected users | 위협으로부터 얼마나 많은 사용자가 영향을 받는가? |
Discoverability | 얼마나 쉽게 취약성이 발견되는가? |
DREAD
는 위험도를 5가지로 분류한 평가 모델이다.
보통 각 항목 별로 점수를 매겨 위험도를 분류한다.
DREAD 분류 상세
Damage potential
0점 : 없음
5점 : 개별 사용자 데이터가 손상되거나 영향을 받는다.
10점 : 전체 시스템 또는 데이터가 삭제된다.
Reproducibility
0점 : 매우 어렵거나 불가능하다.
5점 : 허가된 사용자만 가능하다.
10점 : 웹 브라우저 주소 표시 줄에서도 인증없이 가능하다.
Exploitability
0점 : 고급 프로그래밍 기술과, 네트워크 기술등을 포함하여 고급 공격 도구를 사용한다.
5점 : 악성 프로그램이나 공격 도구가 인터넷 상에 존재하거나, 가능한 공격 도구를 사용한다
10점 : 웹 브라우저같은 간단한 프로그램만 사용해서 공격이 가능하다.
Affected users
0점 : 없음
5점 : 전체가 아닌 몇몇 사용자
10점 : 모든 사용자
Reference
'ETC' 카테고리의 다른 글
[C] mmap함수 (4) | 2019.09.29 |
---|---|
[Web] server-client간의 CGI 통신 (0) | 2019.09.26 |