Skip to main content

threat-modeling

Systematic threat analysis using STRIDE and MITRE ATT&CK frameworks following Hack23 ISMS Threat Modeling Policy

来源信息

仓库
Hack23/homepage
最近来源活动
2026年2月10日 14:04
检测到的 SKILL.md 语言
英语
星标
12
分支
5

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
threat-modeling
description
Systematic threat analysis using STRIDE and MITRE ATT&CK frameworks following Hack23 ISMS Threat Modeling Policy
license
Apache-2.0
# Threat Modeling Skill ## Purpose This skill ensures systematic identification, analysis, and mitigation of security threats using structured methodologies as defined in the [Hack23 ISMS Threat Modeling Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Threat_Modeling.md). It applies to all systems, applications, and data flows within the organization. ## Rules ### Threat Modeling Process **MUST:** - Perform threat modeling during design phase of all new systems and features - Use STRIDE framework (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege) - Map threats to MITRE ATT&CK framework techniques - Document threat model in version control alongside architecture docs - Review and update threat models when architecture changes - Assign risk ratings (Critical, High, Medium, Low) to identified threats - Define mitigation strategies for all High and Critical threats - Track threat model findings as security requirements **MUST NOT:** - Skip threat modeling for "simple" or "low-risk" features - Perform threat modeling after implementation - Ignore threats rated Medium or Low - Treat threat modeling as one-time activity - Document threats without corresponding mitigations ### STRIDE Framework Application **Spoofing Identity (S):** - MUST implement strong authentication (MFA for privileged access) - MUST protect authentication credentials in transit and at rest - MUST validate identity at every trust boundary - MUST log authentication events **Tampering with Data (T):** - MUST protect data integrity using cryptographic hashing or digital signatures - MUST implement input validation to prevent injection attacks - MUST use secure transport protocols (TLS 1.2+) - MUST implement audit logging for data modifications **Repudiation (R):** - MUST implement comprehensive audit logging - MUST protect log integrity (append-only, tamper-evident) - MUST log user actions with sufficient detail for accountability - MUST implement time synchronization (NTP) **Information Disclosure (I):** - MUST classify all data according to Data Classification Policy - MUST encrypt sensitive data at rest and in transit - MUST implement proper access controls - MUST sanitize error messages and logs **Denial of Service (D):** - MUST implement rate limiting and throttling - MUST design for scalability and resource limits - MUST implement DDoS protection for public-facing services - MUST monitor resource utilization **Elevation of Privilege (E):** - MUST implement principle of least privilege - MUST separate administrative and user functions - MUST validate authorization at each access point - MUST implement secure session management ### MITRE ATT&CK Mapping **MUST:** - Map identified threats to relevant ATT&CK techniques - Reference ATT&CK tactic and technique IDs in threat documentation - Use ATT&CK for threat intelligence and red team exercises - Update mappings when ATT&CK framework is updated - Consider both ATT&CK for Enterprise and ATT&CK for Cloud **Example Mappings:** - Credential Dumping → T1003 - Phishing → T1566 - SQL Injection → T1190 - Data Encrypted for Impact → T1486 ### Data Flow Diagrams (DFD) **MUST:** - Create DFDs showing all data flows between system components - Identify trust boundaries in DFDs - Mark sensitive data flows - Document external entities, processes, data stores, and data flows - Use DFDs as basis for threat identification **Components:** - External Entity (user, external system) - Process (application, service, function) - Data Store (database, file system, cache) - Data Flow (network traffic, API call, file access) - Trust Boundary (authentication point, network boundary) ### Attack Trees **MUST:** - Build attack trees for High and Critical assets - Identify multiple attack paths to achieve attacker goals - Estimate attack difficulty and likelihood - Prioritize mitigations based on attack tree analysis - Update attack trees when new threats emerge ### Threat Risk Rating **Risk Formula:** `Risk = Likelihood × Impact` **Likelihood Ratings:** - **High (3):** Easily exploitable, well-known attack, no skill required - **Medium (2):** Moderate skill required, some barriers to exploitation - **Low (1):** Expert skill required, significant barriers **Impact Ratings:** - **Critical (4):** Complete system compromise, data breach, financial loss >$100k - **High (3):** Significant data loss, system unavailability, financial loss $10k-$100k - **Medium (2):** Limited data exposure, degraded service, financial loss $1k-$10k - **Low (1):** Minimal impact, no data loss, financial loss <$1k **Risk Score Matrix:** - 9-12: **Critical** (immediate action required) - 6-8: **High** (action required within 30 days) - 3-5: **Medium** (action required within 90 days) - 1-2: **Low** (accept or monitor) ### Threat Mitigation **MUST:** - Define specific mitigations for each identified threat - Assign mitigation responsibility - Track mitigation implementation status - Test that mitigations are effective - Accept residual risk formally for threats that cannot be fully mitigated **Mitigation Strategies:** 1. **Eliminate:** Remove the vulnerable feature or functionality 2. **Reduce:** Implement controls to reduce likelihood or impact 3. **Transfer:** Use insurance or third-party services 4. **Accept:** Formally accept residual risk with executive approval ## Examples ### Example 1: STRIDE Analysis for Authentication ```markdown ## Component: User Login API ### Data Flow Diagram ``` [User] --username/password--> [Login API] --SQL query--> [Database] [Login API] --session token--> [User] ``` ### Trust Boundaries - Internet → Web Server - Web Server → Database ### STRIDE Analysis **S - Spoofing:** - Threat: Attacker guesses weak passwords - Risk: High Likelihood (3) × High Impact (3) = 9 (Critical) - Mitigation: - Implement strong password policy (12+ chars, complexity) - Implement account lockout after 5 failed attempts - Implement rate limiting (max 10 attempts/minute/IP) - Log all authentication attempts - ATT&CK: T1110 (Brute Force) **T - Tampering:** - Threat: MitM attack captures credentials - Risk: Medium Likelihood (2) × High Impact (3) = 6 (High) - Mitigation: - Enforce TLS 1.2+ for all connections - Implement HSTS headers - Use secure session cookies (HTTPOnly, Secure, SameSite) - ATT&CK: T1557 (Man-in-the-Middle) **R - Repudiation:** - Threat: User denies performing actions - Risk: Low Likelihood (1) × Medium Impact (2) = 2 (Low) - Mitigation: - Log all authentication events with timestamp, IP, user agent - Protect log integrity (append-only S3 bucket) - Implement log retention for 1 year - ATT&CK: T1070 (Indicator Removal on Host) **I - Information Disclosure:** - Threat: SQL injection exposes user data - Risk: Medium Likelihood (2) × Critical Impact (4) = 8 (High) - Mitigation: - Use parameterized queries exclusively - Implement input validation (allowlist) - Run database with least privilege account - Implement Web Application Firewall (WAF) - ATT&CK: T1190 (Exploit Public-Facing Application) **D - Denial of Service:** - Threat: Attacker floods login endpoint - Risk: High Likelihood (3) × Medium Impact (2) = 6 (High) - Mitigation: - Implement rate limiting (per IP and per account) - Use CAPTCHA after 3 failed attempts - Implement CDN with DDoS protection - Set up auto-scaling - ATT&CK: T1498 (Network Denial of Service) **E - Elevation of Privilege:** - Threat: SQL injection bypasses authentication - Risk: Medium Likelihood (2) × Critical Impact (4) = 8 (High) - Mitigation: - Use ORM or parameterized queries - Implement principle of least privilege for database access - Separate admin and user authentication paths - Implement security testing in CI/CD - ATT&CK: T1068 (Exploitation for Privilege Escalation) ``` ### Example 2: Attack Tree for User Account Compromise ``` Goal: Compromise User Account | +-- [OR] Steal Credentials | | | +-- [AND] Phishing Attack | | +-- Send phishing email (Easy) | | +-- User clicks malicious link (Medium) | | +-- User enters credentials (Medium) | | → Mitigation: Security awareness training, email filtering, MFA | | → ATT&CK: T1566 (Phishing) | | | +-- [AND] Password Guessing | | +-- Obtain username (Easy) | | +-- Guess weak password (Medium) | | → Mitigation: Strong password policy, account lockout, rate limiting | | → ATT&CK: T1110 (Brute Force) | | | +-- [AND] Database Breach | +-- SQL injection (Hard) | +-- Extract password hashes (Medium) | +-- Crack hashes (Hard) | → Mitigation: Parameterized queries, strong hashing (bcrypt), WAF | → ATT&CK: T1190 (Exploit Public-Facing Application) | +-- [OR] Session Hijacking | +-- [AND] XSS Attack | +-- Find XSS vulnerability (Hard) | +-- Inject JavaScript to steal session cookie (Medium) | → Mitigation: Input validation, output encoding, HTTPOnly cookies, CSP | → ATT&CK: T1185 (Browser Session Hijacking) | +-- [AND] Session Fixation +-- Provide victim with known session ID (Easy) +-- Victim authenticates with fixed session (Medium) → Mitigation: Regenerate session ID on login, use secure random IDs → ATT&CK: T1185 (Browser Session Hijacking) ``` ### Example 3: Threat Model Document Template ```markdown # Threat Model: [System Name] ## Document Control - **Version:** 1.0 - **Date:** 2026-02-10 - **Author:** Security Team - **Status:** Approved - **Classification:** Internal ## 1. System Overview ### Purpose [Brief description of system purpose and business value] ### Architecture [High-level architecture diagram] ### Data Classification - **Public:** Product catalog - **Internal:** User activity logs - **Confidential:** User PII, payment information - **Restricted:** Encryption keys ## 2. Assumptions and Dependencies ### Assumptions - Users access system via HTTPS only - Database is hosted in secure AWS VPC - All users complete security training annually ### Dependencies - AWS (infrastructure) - Stripe (payment processing) - SendGrid (email delivery) ## 3. Data Flow Diagrams ### Level 0: Context Diagram ``` [User] --HTTPS--> [Web Application] --TLS--> [Payment Gateway] [Web Application] --TLS--> [Database] ``` ### Level 1: Detailed Flow [Include detailed DFD with trust boundaries] ## 4. STRIDE Analysis [For each component, perform STRIDE analysis as shown in Example 1] ## 5. Threat Summary | ID | Component | Threat | STRIDE | Risk | ATT&CK | Status | |----|-----------|--------|--------|------|--------|--------| | T-001 | Login API | Password guessing | S | Critical (9) | T1110 | Mitigated | | T-002 | Login API | SQL injection | I, E | High (8) | T1190 | Mitigated | | T-003 | Web App | XSS | I, T | High (6) | T1185 | In Progress | ## 6. Mitigation Plan | Threat ID | Mitigation | Owner | Due Date | Status | |-----------|------------|-------|----------|--------| | T-001 | Implement account lockout | Dev Team | 2026-02-15 | Complete | | T-002 | Use parameterized queries | Dev Team | 2026-02-20 | Complete | | T-003 | Implement CSP headers | DevOps | 2026-02-25 | In Progress | ## 7. Residual Risks [List any accepted risks with executive approval] ## 8. References - [Secure Development Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md) - [Risk Assessment Methodology](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Risk_Assessment_Methodology.md) ``` ## Related ISMS Policies This skill implements requirements from: - **[Threat Modeling Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Threat_Modeling.md)** - Primary policy for threat analysis - **[Secure Development Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md)** - Security-by-design requirements - **[Risk Assessment Methodology](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Risk_Assessment_Methodology.md)** - Risk rating and treatment - **[Information Security Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Information_Security_Policy.md)** - Overall security framework ## Related Documentation - [SECURITY_ARCHITECTURE.md](../../../../SECURITY_ARCHITECTURE.md) - Security architecture patterns - [THREAT_MODEL.md](../../../../THREAT_MODEL.md) - System threat models - [Risk Register](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Risk_Register.md) - Identified risks and treatments ## Compliance Mapping ### ISO 27001:2022 - **A.5.7** Threat intelligence - **A.8.9** Configuration management - **A.8.25** Secure development life cycle - **A.8.28** Secure coding ### NIST Cybersecurity Framework 2.0 - **ID.RA-1**: Asset vulnerabilities are identified and documented - **ID.RA-3**: Threats, both internal and external, are identified and documented - **PR.DS-5**: Protections against data leaks are implemented ### CIS Controls v8.1 - **Control 18**: Penetration Testing - 18.3 Perform Periodic Red Team Exercises - 18.4 Conduct Periodic Purple Team Exercises ## Enforcement Threat modeling compliance is verified through: - **Architecture reviews:** All new systems must have approved threat model before development - **Security gate:** Threat model must be updated before production deployment - **Quarterly audits:** Random sampling of systems to verify threat models exist and are current - **Metrics:** Track percentage of systems with current threat models (target: 100%)
在 GitHub 查看