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