Information Security

Threat Modeling

a. Threat Model or Threat modeling
a.1. 시스템 혹은 SW의 잠재적인 취약 위험을 파악, 추출 (위협의 우선순위 설정)
    threat을 cover할 수 있는 최적의 solution / 위협의 우선순위 설정(최소한의 것을 방어할 수 있는)
        공격자 관점에서 보는 것이 좋음
a.1.1. 공격자 관점에서 시스템의 구조상 취약성
        공격자가 원하는 자산을 체계적으로 분석할 수 있는 프로세스
        공격자가 의도/대상을 가진 경우도 있지만 아닌 경우도 있음, Any device에 대한 공격도 있음
        대상, 사용자가 정해지면 공격이 어려워짐 / 비용 ↑
a.1.2. 보안 관점에서 고려/고민하기 위한 프로세스(방법론)
        설계 단계에서 보안 문제에 대한 체계적 접근 지원

* 사냥꾼이 곰에게서 도망간다
공격자 입장에서 시스템을 공격할 때 모든 시스템 중 가장 취약한 시스템을 공략
모든 보안을 제공하지 않더라도 최소한 내 시스템이 꼴찌만 아니면 어느정도 대응할 수 있다.

b. Threat Modeling 기능
b.1. 시스템에 대한 이해 (시스템 구조, 요소별 역할, 데이터 흐름 등)
    가치가 높은 자산의 파악
b.2. 잠재적 위협 구분
    위협의 우선순위 파악 및 잠재적 위협을 기반한 실현될 수 있는 위협 파악
b.3. 위협을 경감시킬 수 있는 방식 제언

c. Threat Modeling Vocabulary
    Threat / Bodunary / Attack Surface / Vulnerability / Detect / Impact / Business Objective / Security Policy / No effect / Ausiness Asset / Risk / Probability / Attak's Result / Attack Path/Vector / Attack Tree
    Attack Tree : 공격을 계층적(Hierarchical)으로 나열
    내부자 부정, 위협뿐만 아니라 우연히 발생할 수 있는 Probability도 고려해야함.

d. From threat to successful attack
d.1. 공격자 (광의의 개념)
    시스템이나 시스템 구성요소의 Fault, weakness, threat 등을 찾고 침해로 이어질 수 있는 행위 수행
    ex> 게임 - pair해야 사용자는 계속 이용 / bot이 threat이 될 수 있음 ; 각 영역별로 threat이 다를 수 있고, 대응방안이 달라진다
d.2. 우연할 발견
    정상적 사용자는 피곤, 불편 /  비정상적 행위자에게는 기회
    경우에 따라 치명적일 수 있음
        good way to access privileged information/functionality
        incomplete mediation : like Race condition
            재검증 - Performance Issue
    공격자가 의도하지는 않았지만 우연히 발견됨 / 사용하다가 발견한 오류
d.3. 내부자 부정
    공격 성공 역할의 높은 비중 / 70% 정도
    Access control, 정책 등을 통해 방어

e. Threat Modeling Process
Threat Modeling is Iterative (continuous)
Threat Modeling takes input and generates outputs for each setp in the process

Step 0. Identify Security Objectives
    Use the CI4AM security mechanism
        Confidentiality : 적법한 사용자가 read
        Integrity : 적법한 사용자 write
        Availability : ex> 10000명의 사람 / KT 사용자 40% / 동시 사용자 5%를 cover할 수 있는 장비를 설치했는데 더 많은 attach가 있는 경우 down
                       약정한 서비스에 대한 보장
        Authentication : 사용자 인증, 데이터 송신 인증 / 세부적으로 보면 많음
                         user, Data origin, object
        Authorization : 정책으로 결정
        Auditing : 감사
        Management
        그 외의 것은 도구마다 다름 / Grouping
    Example
        Prevent Data Theft(Integrity) / Protect IP / Attain Compliance / Provide high availability
        어떤 object에 해당하는지 알 수 있어야함
Step 1. Profile the Application - 필요한 서비스, user
    Application이 어디에 deploy되어 있는가?
    user가 누구인가?
    Data 중심 설계 - Data 구분
    User의 권한 부여 - CRUD
    사용하는 기술(Technologies)
    적용되는 Security mechanism - CI4AM    
Step 2. Decompose Your Application (Generate Application Context & Scenarios) - 서비스의 입/출력 지점
    Trust boundaries
    Entry Points / Exit Points
    Data Flows
Step 3. Identifying Threats
    도구가 제공하는 threat은 잘 알려진 threat 기반으로 알려줌
    처리한 threat도 도구는 경고를 하지만 처리된 문제인 경우 제외하면 됨
Step 4. Identifying Vulnerabilities
    
Step 1-2를 사용자가 잘 해야 Step 3-4를 도구가 원활하게 처리할 수 있음
제거할 수 있는/없는 Threat 구분
비용에 따른 우선순위 선정

mode of operation - GCM

f. Threat Modeling Methods
STRIDE Methodology - Microsoft 모델링 도구 기반
P.A.S.T.A.
Trike
VAST

STRIDE (for Modeling) & DREAD (for Ranking)
Spoofing
Rampering
Repudiation
Information Disclosure
Denial of Service
Elevation of Privileges

Damage Potential : 얼마나 위험해?
Reproducibility : 우연히 생길 수 있는거야? 반복해서 생길 수 있는거야?
Exploitability : 어느정도 능력이 있는 해커가 공격할 수 있어?
Affected Users : 피해 유저의 범위
Discoverability : 고칠 수 있는지? 고칠 수 있는 방법


g. Tools
OWASP Threat Dragon
Microsoft Threat Modeling Tool 2017
ThreatModeler - Web Based Tool
MyAppSecurity
Trike
ThreadFix
securiCAD
IriusRisk Software Risk Manager 

 

Back To Top