본문으로 바로가기

[ETC] STRIDE Threat modeling 위협 모델링

category ETC 2020. 2. 3. 10:53

Threat modeling(위협 모델링)

위협 모델링은 공격자가 지정한 목표에 대한 시스템을 조사한 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