2. 위협의 정의

Download Report

Transcript 2. 위협의 정의

5장
Threat
Modeling 3
(Threat profile)
2009.3
신수정
1. 개요
-
Threat profile: 공격자의 가능한 목표 및 이러한 목표에 대한 시스템의 susceptibility을 outline
Threat modeling 문서: 시스템의 Threat profile 서술
Threat profile은 시스템의 보안을 위한 설계 스펙의 관점에서 가장 최선으로 조사됨
프로파일의 각 위협은 시스템의 설계 나 이행에 의해서 방어되거나 완화되어야 함
이러한 위협은 시스템 보안 feature를 구동하게 됨
즉, 보안 feature는 대응하려는 위협과 대응되어야 함
시스템의 위협은 또한 취약성이 존재하는지 결정하기 위해 분석되어야 함
적절히 완화되지 않는 위협은 취약성으로 간주됨
1)
2)
3)
시스템에 대한 위협정의
위협 트리를 사용한 위협의 조사
취약성의 해결 및 완화
2
2. 위협의 정의
위협이 취약성으로 변경되지 않도록 하기 위해서는 완화가 필요함
위협의 정의가 완성된 시스템을 개발하는데 있어 핵심임
엔트리포인트, 자산, DFD 등을 분석하여 위협을 정의함
위협을 정의하기 위햐서는 각 entry point에 대해 질문을 던져야 함 : 어떠한 보안-핵심적인
프로세싱이 발생하고 이러한 프로세싱을 공격하기 위해 사악한 외부 엔터티가 어떠한 일을 하는지 ?
또는 원래 의도된 사용외에 다른 목적으로 자산이 사용되는자>
-
•
•
위협: 공격자의 목표
취약성: 위협이 unmitigated attack path를 통해 exploit될 수 있는 방식
3
2. 위협의 정의
1)
-
위협과 자산의 연계
목표 자산이 없이 위협이 존재할 수 없음
위험이 존재하기 위해서는 시스템이 공격자가 가치있다고 판단되는 것을 가지고 있어야 함
위협: misuse 또는 자산의 damage 로 표현된
2) 공격자 가설 생성
시스템의 위협 모델링은 어떻게 공격자가 시스템을 fail하거나 남용하는가를 정의하는 것임
(시스템 설계: 어떻게 운영되고 사용되는가를 정의)
알려진 취약성에서 출발 :
예) 버퍼 오버플로우 연결되는 자산 및 위협 조사
*이를 위해서는 잘 알려진 취약성 리스트를 조사
*이 방식은 모델링 팀이 프로세스에 대해 new일 경우 도움이 됨
*그러나 각 시스템이 유일하기 때문에 한계존재
4
2. 위협의 정의
-시스템 자산에서 출발:
*알려진 취약성에서 출발하는 경우 팀은 위협과 취약성을 혼동할 우려 존재
*자산 각 자산에 대한 상위레벨 attack goal의 리스트를 검토
•
-
공격자가 자산을 어떻게 사용하거나 조작하나 ?
시스템의 control flow를 수정하기 위해서
제한된 정보를 추출하기 위해서
시스템내의 정보를 조작하기 위해서
시스템을 fail시키거나 사용치 못하게 하기 위해서
추가적인 권한을 얻기 위해서
•
-
공격자가 자산에 접근할 수 있는가?
감사됨이 없이
& 접근통제 체크를 skip할 수 있는가?
& 다른 사용자처럼 보이게 할 수 있는가?
5
2. 위협의 정의
-위협의 분류: STRIDE
6
2. 위협의 정의
ID
1
Name
공격자가 다른 사용자나 보험설계사의 사용자 이름과 패스워드를 획득함
설명
공격자가 다른 사용자의 로그인 패스워드를 얻게 된다면, 공격자는 그 사람이 웹사
이트에서 할 수 있는 어떠한 작업도 수행할 수 있게 됨
STRIDE
Mitigated
No
Known
Mitigation
Related use 시나리오
(3) 데이터베이스 서버는 방화벽에 의해 보호되어 인터넷으로 부터의 직접적인 접
근으로 부터 보호되어야 한다
Related security notes
(1) 웹사이트는 패스워드 품질을 강요하지 않는다. 사용자와 설계사는 자신이 추측
하기 어려운 패스워드를 선택해야 한다.
Entry point
Assets
Threat tree
7
2. 위협의 정의
ID
2
Name
공격자가 실행을 변경시키기 위해서 요청 목표 SQL 명령어 파싱 엔진에 사악한
데이터를 공급함
설명
공격자가 로그인 이름이나 개인정보같이 그가 제공할 수 있는 데이터 내에 SQL
명령어나 특수 문자를 집어넣을 시도를 함. 만일 이 데이터 들이 Website에서 적
절하게 취급되지 않을 경우, 이는 SQL injection문제를 야기하게 됨. 다른 사악한
입력은 이 시스템을 불안정하게 하거나 정보를 유출하게 할 수 있음
STRIDE
Mitigated
No
Known
Mitigation
Not mitigated, Vul ID=#1
Entry point
Assets
(16.3) Access to backend database
Threat tree
None
8
3. 위협 트리를 사용한 위협의 조사
(1)
-
위협은 이 위협이 문제가 될 수 있는지의 여부를 결정하기 위해서 분석되어야 함
Threat tree or attack tree
Threat tree 를 사용한 분석
Threat tree 는 위협이 실현되고 대응되지 못하는데 필요한 조건이 있는지 여부를 결정하는데 사용됨
Root node 및 child conditions로 구성
AND OR
9
3. 위협 트리를 사용한 위협의 조사
10
3. 위협 트리를 사용한 위협의 조사
D: 취약성이 exploit되면 손상이 얼마나 큰가?
R: 공격을 재생하는 것이 얼마나 쉬운가?
E: 공격을 시행하기가 얼마나 쉬운가?
A: 대략 얼마나 많은 사용자가 영향받는가?
D: 취약성을 발견하기가 얼마나 쉬운가?
11
3. 위협 트리를 사용한 위협의 조사
(2) Attack path의 정의
1. Root threat
AND
1.1 mitigated
1.2 unmitigated
1.3 unmitigated
조건
조건
조건
1.2.1 mitigated
1.2.2 mitigated
1.3.1 mitigated
1.3.2 unmitigated
조건
조건
조건
조건
12
3. 위협 트리를 사용한 위협의 조사
1. 공격자가 다른 사
용자 또는 다른 설계
사의 사용자이름과
패스워드를 얻어냄
(2) Attack path의 정의
13
3. 위협 트리를 사용한 위협의 조사
(2) Attack path의 정의
1. 공격자가 사른 사
용자의 개인 데이터
를 추출함
14
3. 위협 트리를 사용한 위협의 조사
(2) Attack path의 정의
1. 공격자가 사용자
의 가격쿼터를 수정
함
15
3. 위협 트리를 사용한 위협의 조사
숙제 Help
위협
1)
2)
3)
4)
5)
6)
7)
8)
9)
사용자 입력에 악한 SQL Data 삽입
로그인 정보의 유출
Session id 탈취
사용자 데이터 유출
데이터베이스에 대한 직접적인 접근
쿼터 조작
설계사 홈페이지에 대한 불법적인 사용
E-mail 공지의 blocking
…
16
4. 취약성 해결 및 대응
-취약성- 공격자가 자산을 공격하여 이득을 볼수 있게 하는 시스템 상의 보안 weakness
-취약성- 위협을 구현하는 방법
-위협트리 상 취약성은 valid unmitigated attack path를 의미함
threat profile: problem space  거의 영속적임
취약성: 고쳐질 수 있음
17
4. 취약성 해결 및 대응
ID
2
Name
로그인 페이지 에러 스트링을 통한 사용자 존재여부에 대한 확인
설명
로그인 페이지는 두가지 에러를 return함. “잘못된 사용자”.,
“잘못된 패스워드” 이러한 에러는 공격자로 하여금 사용자이름이 존재하는지
파악할 수 있게 함. 예상되는 damage는 높지 않음. 왜냐하면 공격자가 이 정보로
만 접근할 수 없기 때문임.
STRIDE
Information disclosue
Elevation of privilege
DREAD
Rating
6.6
대응 위협 ID
1. 공격자가 다른 사용자나 설계사의 id와 password를 획득함
버그
20
18
4. 취약성 해결 및 대응
-취약성은 bug해결 방식으로 해결
질문
•
최종사용자에게 어떠한 보안 의미를 주는가?
•
배포된 제품에 취약성이 존재하는가?
•
적절한 보안 레벨을 제공하기 위한 workaround가 있는가?
•
기업의 명성에 어ㄸㅓ한 DAMAGE를 가져오는가?
•
보안해결이 시스템의 COMPATIBILITY를 깨는가?
19