microsoft/hve-core
Publicmirrored fromhttps://github.com/microsoft/hve-coreAvailable
docs/security/threat-model.md
893lines · modecode
| 1 | --- |
| 2 | title: Security Assurance Case and Threat Model |
| 3 | description: Comprehensive threat model and security assurance documentation demonstrating enterprise security practices |
| 4 | author: Microsoft |
| 5 | ms.date: 2026-01-23 |
| 6 | ms.topic: reference |
| 7 | keywords: |
| 8 | - security |
| 9 | - threat model |
| 10 | - STRIDE |
| 11 | - defense-in-depth |
| 12 | - assurance case |
| 13 | estimated_reading_time: 25 |
| 14 | --- |
| 15 | |
| 16 | ## Executive Summary |
| 17 | |
| 18 | HVE Core is an enterprise prompt engineering framework for GitHub Copilot consisting of: |
| 19 | |
| 20 | - Markdown-based prompt artifacts (instructions, prompts, agents, skills) |
| 21 | - PowerShell automation scripts for linting and validation |
| 22 | - GitHub Actions CI/CD workflows |
| 23 | - VS Code extension packaging utilities |
| 24 | |
| 25 | The repository contains no runtime services, databases, or user data storage. Primary threats target supply chain integrity and developer workflow compromise. Security relies on defense-in-depth with 18+ automated controls validated through CI/CD pipelines. |
| 26 | |
| 27 | ### Security Posture Overview |
| 28 | |
| 29 | | Category | Status | Control Count | Automated | |
| 30 | |--------------------------|---------|---------------|-----------| |
| 31 | | Supply Chain Security | Strong | 6 controls | 100% | |
| 32 | | Code Quality | Strong | 5 controls | 100% | |
| 33 | | Access Control | Strong | 4 controls | 100% | |
| 34 | | Vulnerability Management | Strong | 3 controls | 100% | |
| 35 | | Total | **18+** | **18** | **100%** | |
| 36 | |
| 37 | ## Contents |
| 38 | |
| 39 | - [System Description](#system-description) |
| 40 | - [Trust Boundaries](#trust-boundaries) |
| 41 | - [Threat Model](#threat-model) |
| 42 | - [STRIDE Threats](#stride-threats) |
| 43 | - [Dev Container Threats](#dev-container-threats) |
| 44 | - [AI-Specific Threats](#ai-specific-threats) |
| 45 | - [Responsible AI Threats](#responsible-ai-threats) |
| 46 | - [Security Controls](#security-controls) |
| 47 | - [Assurance Argument](#assurance-argument) |
| 48 | - [MCP Server Trust Analysis](#mcp-server-trust-analysis) |
| 49 | - [Quantitative Security Metrics](#quantitative-security-metrics) |
| 50 | - [References](#references) |
| 51 | |
| 52 | ## System Description |
| 53 | |
| 54 | ### Components |
| 55 | |
| 56 | HVE Core contains four primary component categories: |
| 57 | |
| 58 | 1. **Prompt Engineering Artifacts** (`.github/instructions/`, `.github/prompts/`, `.github/agents/`, `.github/skills/`) |
| 59 | - Markdown files with YAML frontmatter |
| 60 | - Consumed by GitHub Copilot during development sessions |
| 61 | - No executable code execution within prompts |
| 62 | |
| 63 | 2. **PowerShell Scripts** (`scripts/`) |
| 64 | - Linting and validation utilities |
| 65 | - CI/CD automation support |
| 66 | - No external network connections except documented tool downloads |
| 67 | |
| 68 | 3. **GitHub Actions Workflows** (`.github/workflows/`) |
| 69 | - PR validation pipeline |
| 70 | - Security scanning (CodeQL, dependency review) |
| 71 | - Release automation |
| 72 | |
| 73 | 4. **VS Code Extension** (`extension/`) |
| 74 | - Packaging configuration |
| 75 | - Extension manifest |
| 76 | - No telemetry or data collection |
| 77 | |
| 78 | ### Data Flow |
| 79 | |
| 80 | ```mermaid |
| 81 | flowchart TD |
| 82 | subgraph DEV["Developer Workstation"] |
| 83 | ARTIFACTS["HVE Core Artifacts<br/>(.instructions.md, .prompt.md, etc)"] |
| 84 | IDE["VS Code IDE"] |
| 85 | COPILOT["GitHub Copilot Extension"] |
| 86 | LOCALMCP["Local MCP Servers<br/>(optional)"] |
| 87 | SCRIPTS["Local Scripts<br/>(PowerShell)"] |
| 88 | DEVCON["Dev Container<br/>(optional)"] |
| 89 | end |
| 90 | |
| 91 | subgraph GITHUB["GitHub Platform (Network Boundary)"] |
| 92 | LLMAPI["LLM API Service"] |
| 93 | REMOTEMCP["GitHub MCP Server"] |
| 94 | REPO["Repository"] |
| 95 | ACTIONS["GitHub Actions Runners"] |
| 96 | SCANNING["Security Scanning<br/>(CodeQL, Dep Review)"] |
| 97 | end |
| 98 | |
| 99 | ARTIFACTS -->|"read into context"| COPILOT |
| 100 | IDE --> COPILOT |
| 101 | COPILOT -->|"prompts + context (HTTPS)"| LLMAPI |
| 102 | LLMAPI -->|"suggestions"| COPILOT |
| 103 | COPILOT <-->|"tool calls"| LOCALMCP |
| 104 | COPILOT <-->|"tool calls (HTTPS)"| REMOTEMCP |
| 105 | DEVCON -.->|"contains"| IDE |
| 106 | DEVCON -.->|"contains"| SCRIPTS |
| 107 | DEV -->|"git push"| REPO |
| 108 | REPO -->|"triggers"| ACTIONS |
| 109 | ACTIONS --> SCANNING |
| 110 | ``` |
| 111 | |
| 112 | ### Security Inheritance from GitHub Copilot |
| 113 | |
| 114 | HVE Core artifacts are consumed by GitHub Copilot, which provides foundational security: |
| 115 | |
| 116 | | Inherited Control | Provider | HVE Core Responsibility | |
| 117 | |---------------------------------|----------------|-----------------------------------------| |
| 118 | | LLM input/output filtering | GitHub Copilot | None; artifacts are Copilot inputs | |
| 119 | | Token encryption in transit | GitHub Copilot | None; handled by Copilot infrastructure | |
| 120 | | Organization policy enforcement | GitHub Copilot | Document compatible policy options | |
| 121 | | Audit logging | GitHub Copilot | None; uses Copilot audit streams | |
| 122 | | SOC 2 Type II compliance | GitHub | None; infrastructure control | |
| 123 | |
| 124 | ## Trust Boundaries |
| 125 | |
| 126 | ### Boundary Diagram |
| 127 | |
| 128 | ```text |
| 129 | ┌──────────────────────────────────────────────────────────────────────────────┐ |
| 130 | │ TRUST BOUNDARY: Repository Contents │ |
| 131 | │ ┌────────────────────────────────────────────────────────────────────────┐ │ |
| 132 | │ │ Controlled Artifacts │ │ |
| 133 | │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────────┐ │ │ |
| 134 | │ │ │ Prompts │ │ Scripts │ │ Workflows │ │ Documentation │ │ │ |
| 135 | │ │ │ .md files │ │ .ps1 files │ │ .yml files │ │ .md files │ │ │ |
| 136 | │ │ └────────────┘ └────────────┘ └────────────┘ └────────────────┘ │ │ |
| 137 | │ └────────────────────────────────────────────────────────────────────────┘ │ |
| 138 | │ │ │ |
| 139 | │ ┌───────────────────────────────────▼────────────────────────────────────┐ │ |
| 140 | │ │ TRUST BOUNDARY: CI/CD Pipeline │ │ |
| 141 | │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────────┐ │ │ |
| 142 | │ │ │ PR Valid. │ │ CodeQL │ │ Dep Review │ │ Release │ │ │ |
| 143 | │ │ │ Workflow │ │ Analysis │ │ Workflow │ │ Workflow │ │ │ |
| 144 | │ │ └────────────┘ └────────────┘ └────────────┘ └────────────────┘ │ │ |
| 145 | │ └────────────────────────────────────────────────────────────────────────┘ │ |
| 146 | └──────────────────────────────────────────────────────────────────────────────┘ |
| 147 | │ |
| 148 | ┌─────────────────────────────────┼──────────────────────────────────┐ |
| 149 | │ ▼ │ |
| 150 | │ TRUST BOUNDARY: External Dependencies │ |
| 151 | │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌──────────────┐ │ |
| 152 | │ │ npm │ │ GitHub │ │ PowerShell │ │ Third-party │ │ |
| 153 | │ │ Packages │ │ Actions │ │ Gallery │ │ MCP Servers │ │ |
| 154 | │ └────────────┘ └────────────┘ └────────────┘ └──────────────┘ │ |
| 155 | └────────────────────────────────────────────────────────────────────┘ |
| 156 | ``` |
| 157 | |
| 158 | ### Boundary Descriptions |
| 159 | |
| 160 | | Boundary | Assets Protected | Controls Enforced | |
| 161 | |-----------------------|----------------------------------------|-------------------------------------------| |
| 162 | | Repository Contents | Source code, prompts, scripts | CODEOWNERS, branch protection, PR review | |
| 163 | | CI/CD Pipeline | Build artifacts, security scan results | Minimal permissions, SHA pinning | |
| 164 | | External Dependencies | npm packages, Actions, MCP servers | Dependency review, staleness monitoring | |
| 165 | | Dev Container | Development environment, tooling | SHA256 verification, first-party features | |
| 166 | |
| 167 | ## Threat Model |
| 168 | |
| 169 | This section documents threats using [STRIDE](https://learn.microsoft.com/azure/security/develop/threat-modeling-tool-threats) methodology (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege), supplemented with AI-specific and Responsible AI threat categories. |
| 170 | |
| 171 | ### STRIDE Threats |
| 172 | |
| 173 | #### S-1: Compromised GitHub Action via Tag Substitution |
| 174 | |
| 175 | | Field | Value | |
| 176 | |-------------------|--------------------------------------------------------------------------------------| |
| 177 | | **Category** | Spoofing | |
| 178 | | **Asset** | CI/CD pipeline integrity | |
| 179 | | **Threat** | Attacker compromises upstream Action repository and replaces tag with malicious code | |
| 180 | | **Likelihood** | Medium (documented supply chain attacks exist) | |
| 181 | | **Impact** | High (full CI/CD compromise, secret exfiltration) | |
| 182 | | **Mitigations** | SHA pinning for all Actions, staleness monitoring, CodeQL scanning | |
| 183 | | **Residual Risk** | Low (SHA immutable; requires GitHub infrastructure compromise) | |
| 184 | | **Status** | Mitigated | |
| 185 | |
| 186 | #### S-2: npm Package Substitution Attack |
| 187 | |
| 188 | | Field | Value | |
| 189 | |-------------------|-------------------------------------------------------------| |
| 190 | | **Category** | Spoofing | |
| 191 | | **Asset** | Build dependencies | |
| 192 | | **Threat** | Malicious package published with same name or typosquatting | |
| 193 | | **Likelihood** | Medium (common attack vector) | |
| 194 | | **Impact** | Medium (limited runtime exposure; primarily build-time) | |
| 195 | | **Mitigations** | Package-lock.json integrity, npm audit, dependency review | |
| 196 | | **Residual Risk** | Low | |
| 197 | | **Status** | Mitigated | |
| 198 | |
| 199 | #### T-1: Unauthorized Modification of Security Controls |
| 200 | |
| 201 | | Field | Value | |
| 202 | |-------------------|-------------------------------------------------------------------| |
| 203 | | **Category** | Tampering | |
| 204 | | **Asset** | Workflow files, security scripts | |
| 205 | | **Threat** | Attacker with write access disables security checks | |
| 206 | | **Likelihood** | Low (requires compromised maintainer account) | |
| 207 | | **Impact** | High (security controls bypassed) | |
| 208 | | **Mitigations** | CODEOWNERS enforcement, branch protection, PR review requirements | |
| 209 | | **Residual Risk** | Low | |
| 210 | | **Status** | Mitigated | |
| 211 | |
| 212 | #### T-2: Malicious Prompt Injection via PR |
| 213 | |
| 214 | | Field | Value | |
| 215 | |-------------------|---------------------------------------------------------------| |
| 216 | | **Category** | Tampering | |
| 217 | | **Asset** | Prompt artifacts | |
| 218 | | **Threat** | Contributor submits prompt with hidden malicious instructions | |
| 219 | | **Likelihood** | Medium (social engineering possible) | |
| 220 | | **Impact** | Medium (affects Copilot behavior for consumers) | |
| 221 | | **Mitigations** | PR review, CODEOWNERS, frontmatter validation | |
| 222 | | **Residual Risk** | Medium (semantic analysis not automated) | |
| 223 | | **Status** | Partially Mitigated | |
| 224 | |
| 225 | #### R-1: Untraceable Configuration Changes |
| 226 | |
| 227 | | Field | Value | |
| 228 | |-------------------|------------------------------------------------------------| |
| 229 | | **Category** | Repudiation | |
| 230 | | **Asset** | Repository configuration | |
| 231 | | **Threat** | Admin makes security-impacting changes without audit trail | |
| 232 | | **Likelihood** | Low (GitHub provides audit logs) | |
| 233 | | **Impact** | Medium (accountability gap) | |
| 234 | | **Mitigations** | GitHub audit log, branch protection audit events | |
| 235 | | **Residual Risk** | Low | |
| 236 | | **Status** | Mitigated | |
| 237 | |
| 238 | #### I-1: Secret Exposure in Logs or Artifacts |
| 239 | |
| 240 | | Field | Value | |
| 241 | |-------------------|---------------------------------------------------------------------| |
| 242 | | **Category** | Information Disclosure | |
| 243 | | **Asset** | Repository secrets, tokens | |
| 244 | | **Threat** | Secrets accidentally logged or included in build artifacts | |
| 245 | | **Likelihood** | Low (minimal secret usage) | |
| 246 | | **Impact** | High (credential compromise) | |
| 247 | | **Mitigations** | GitHub secret masking, GitHub secret scanning, minimal secret usage | |
| 248 | | **Residual Risk** | Low | |
| 249 | | **Status** | Mitigated | |
| 250 | |
| 251 | #### I-2: Sensitive Information in Prompt Artifacts |
| 252 | |
| 253 | | Field | Value | |
| 254 | |-------------------|---------------------------------------------------------------------| |
| 255 | | **Category** | Information Disclosure | |
| 256 | | **Asset** | Prompt files, documentation | |
| 257 | | **Threat** | Internal URLs, API keys, or proprietary patterns exposed in prompts | |
| 258 | | **Likelihood** | Low (review process catches obvious cases) | |
| 259 | | **Impact** | Medium (information leakage) | |
| 260 | | **Mitigations** | PR review, GitHub secret scanning, documentation guidelines | |
| 261 | | **Residual Risk** | Low | |
| 262 | | **Status** | Mitigated | |
| 263 | |
| 264 | #### D-1: CI/CD Resource Exhaustion |
| 265 | |
| 266 | | Field | Value | |
| 267 | |-------------------|-------------------------------------------------------------------| |
| 268 | | **Category** | Denial of Service | |
| 269 | | **Asset** | GitHub Actions minutes, runner availability | |
| 270 | | **Threat** | Malicious PR triggers expensive workflows repeatedly | |
| 271 | | **Likelihood** | Low (requires PR creation privileges) | |
| 272 | | **Impact** | Low (billing impact, temporary delays) | |
| 273 | | **Mitigations** | Workflow approval for first-time contributors, concurrency limits | |
| 274 | | **Residual Risk** | Low | |
| 275 | | **Status** | Mitigated | |
| 276 | |
| 277 | #### D-2: Dependency Confusion Blocking Builds |
| 278 | |
| 279 | | Field | Value | |
| 280 | |-------------------|----------------------------------------------------------------| |
| 281 | | **Category** | Denial of Service | |
| 282 | | **Asset** | Build pipeline | |
| 283 | | **Threat** | Attacker publishes conflicting package preventing clean builds | |
| 284 | | **Likelihood** | Low | |
| 285 | | **Impact** | Medium (build failures) | |
| 286 | | **Mitigations** | Package-lock.json, scoped packages | |
| 287 | | **Residual Risk** | Low | |
| 288 | | **Status** | Mitigated | |
| 289 | |
| 290 | #### E-1: Workflow Token Abuse |
| 291 | |
| 292 | | Field | Value | |
| 293 | |-------------------|-------------------------------------------------------------------| |
| 294 | | **Category** | Elevation of Privilege | |
| 295 | | **Asset** | GitHub Actions tokens | |
| 296 | | **Threat** | Compromised workflow step uses GITHUB_TOKEN beyond intended scope | |
| 297 | | **Likelihood** | Low (minimal permissions declared) | |
| 298 | | **Impact** | Medium (depends on token permissions) | |
| 299 | | **Mitigations** | Minimal permissions pattern, persist-credentials: false | |
| 300 | | **Residual Risk** | Low | |
| 301 | | **Status** | Mitigated | |
| 302 | |
| 303 | #### E-2: Branch Protection Bypass |
| 304 | |
| 305 | | Field | Value | |
| 306 | |-------------------|------------------------------------------------------------------| |
| 307 | | **Category** | Elevation of Privilege | |
| 308 | | **Asset** | Protected branches | |
| 309 | | **Threat** | Admin bypasses branch protection to merge unauthorized changes | |
| 310 | | **Likelihood** | Low (requires admin access and intentional bypass) | |
| 311 | | **Impact** | High (security controls circumvented) | |
| 312 | | **Mitigations** | Branch protection rules, audit logging, "Do not allow bypassing" | |
| 313 | | **Residual Risk** | Low | |
| 314 | | **Status** | Mitigated | |
| 315 | |
| 316 | ### Dev Container Threats |
| 317 | |
| 318 | These threats address risks in the development container configuration used for Codespaces and local container development. |
| 319 | |
| 320 | #### DC-1: Feature Tag Substitution Attack |
| 321 | |
| 322 | | Field | Value | |
| 323 | |-------------------|--------------------------------------------------------------------------| |
| 324 | | **Category** | Spoofing | |
| 325 | | **Asset** | Dev container configuration | |
| 326 | | **Threat** | Malicious update to a feature version tag introduces compromised tooling | |
| 327 | | **Likelihood** | Low (first-party Microsoft features only) | |
| 328 | | **Impact** | Medium (development environment compromise) | |
| 329 | | **Mitigations** | First-party features only, PR review of devcontainer.json changes | |
| 330 | | **Residual Risk** | Low (Microsoft-maintained features with release controls) | |
| 331 | | **Status** | Mitigated | |
| 332 | |
| 333 | #### DC-2: Lifecycle Script Tampering |
| 334 | |
| 335 | | Field | Value | |
| 336 | |-------------------|-----------------------------------------------------------------| |
| 337 | | **Category** | Tampering | |
| 338 | | **Asset** | Container initialization scripts | |
| 339 | | **Threat** | Attacker modifies on-create.sh or post-create.sh to inject code | |
| 340 | | **Likelihood** | Low (requires PR approval, CODEOWNERS protection) | |
| 341 | | **Impact** | High (arbitrary code execution in dev environment) | |
| 342 | | **Mitigations** | CODEOWNERS, PR review, branch protection | |
| 343 | | **Residual Risk** | Low | |
| 344 | | **Status** | Mitigated | |
| 345 | |
| 346 | #### DC-3: External Binary Download Compromise |
| 347 | |
| 348 | | Field | Value | |
| 349 | |-------------------|-------------------------------------------------------------| |
| 350 | | **Category** | Spoofing | |
| 351 | | **Asset** | External tools (gitleaks, shellcheck) | |
| 352 | | **Threat** | Compromised download source serves malicious binary | |
| 353 | | **Likelihood** | Very Low (SHA256 verification enforced) | |
| 354 | | **Impact** | High (malicious tooling in dev environment) | |
| 355 | | **Mitigations** | SHA256 checksum verification in on-create.sh | |
| 356 | | **Residual Risk** | Very Low (cryptographic verification prevents substitution) | |
| 357 | | **Status** | Mitigated | |
| 358 | |
| 359 | ### AI-Specific Threats |
| 360 | |
| 361 | These threats address risks specific to AI/ML systems as documented by [OWASP LLM Top 10](https://owasp.org/www-project-top-10-for-large-language-model-applications/) and [MITRE ATLAS](https://atlas.mitre.org/). |
| 362 | |
| 363 | #### AI-1: Prompt Injection via Artifact Content |
| 364 | |
| 365 | | Field | Value | |
| 366 | |-------------------|------------------------------------------------------------------------| |
| 367 | | **Category** | LLM01: Prompt Injection (OWASP) | |
| 368 | | **Asset** | Copilot behavior, downstream code generation | |
| 369 | | **Threat** | Malicious instructions embedded in prompt artifacts manipulate Copilot | |
| 370 | | **Likelihood** | Medium | |
| 371 | | **Impact** | Medium (affects code generation quality and safety) | |
| 372 | | **Mitigations** | PR review, CODEOWNERS, clear artifact structure guidelines | |
| 373 | | **Residual Risk** | Medium (inherent to prompt-based systems) | |
| 374 | | **Status** | Partially Mitigated | |
| 375 | |
| 376 | #### AI-2: Insecure Output Handling |
| 377 | |
| 378 | | Field | Value | |
| 379 | |-------------------|-------------------------------------------------------------------| |
| 380 | | **Category** | LLM02: Insecure Output Handling (OWASP) | |
| 381 | | **Asset** | Generated code | |
| 382 | | **Threat** | Copilot generates insecure code patterns based on prompt guidance | |
| 383 | | **Likelihood** | Medium | |
| 384 | | **Impact** | Variable (depends on consumer's review practices) | |
| 385 | | **Mitigations** | Security-focused prompts, consumer code review responsibility | |
| 386 | | **Residual Risk** | Medium (HVE Core provides guidance, not enforcement) | |
| 387 | | **Status** | Accepted with Documentation | |
| 388 | |
| 389 | #### AI-3: Training Data Poisoning (Indirect) |
| 390 | |
| 391 | | Field | Value | |
| 392 | |-------------------|-----------------------------------------------------------| |
| 393 | | **Category** | LLM03: Training Data Poisoning (OWASP) | |
| 394 | | **Asset** | Copilot model behavior | |
| 395 | | **Threat** | Malicious patterns in HVE Core influence Copilot training | |
| 396 | | **Likelihood** | Very Low (Copilot training controlled by GitHub) | |
| 397 | | **Impact** | Low (HVE Core is small input to large training corpus) | |
| 398 | | **Mitigations** | Out of scope; GitHub controls training pipeline | |
| 399 | | **Residual Risk** | Very Low | |
| 400 | | **Status** | Accepted (Outside Control) | |
| 401 | |
| 402 | #### AI-4: Model Denial of Service |
| 403 | |
| 404 | | Field | Value | |
| 405 | |-------------------|-----------------------------------------------------------------| |
| 406 | | **Category** | LLM04: Model Denial of Service (OWASP) | |
| 407 | | **Asset** | Copilot availability | |
| 408 | | **Threat** | Crafted prompts cause excessive resource consumption in Copilot | |
| 409 | | **Likelihood** | Very Low | |
| 410 | | **Impact** | Low (Copilot has rate limiting) | |
| 411 | | **Mitigations** | Copilot's built-in rate limiting and resource management | |
| 412 | | **Residual Risk** | Very Low | |
| 413 | | **Status** | Accepted (Outside Control) | |
| 414 | |
| 415 | #### AI-5: Supply Chain Vulnerabilities (LLM-Specific) |
| 416 | |
| 417 | | Field | Value | |
| 418 | |-------------------|--------------------------------------------------------------| |
| 419 | | **Category** | LLM05: Supply-Chain Vulnerabilities (OWASP) | |
| 420 | | **Asset** | MCP server integrations | |
| 421 | | **Threat** | Compromised MCP server provides malicious context to Copilot | |
| 422 | | **Likelihood** | Low (first-party servers) to Medium (third-party) | |
| 423 | | **Impact** | Medium (affects code generation context) | |
| 424 | | **Mitigations** | MCP server trust analysis, documentation of trust levels | |
| 425 | | **Residual Risk** | Low to Medium depending on server | |
| 426 | | **Status** | Mitigated with Documentation | |
| 427 | |
| 428 | #### AI-6: Sensitive Information Disclosure |
| 429 | |
| 430 | | Field | Value | |
| 431 | |-------------------|----------------------------------------------------------------------| |
| 432 | | **Category** | LLM06: Sensitive Information Disclosure (OWASP) | |
| 433 | | **Asset** | User context, code patterns | |
| 434 | | **Threat** | Prompt artifacts cause Copilot to expose sensitive patterns | |
| 435 | | **Likelihood** | Low | |
| 436 | | **Impact** | Medium | |
| 437 | | **Mitigations** | Consumer responsibility; prompt guidelines discourage sensitive data | |
| 438 | | **Residual Risk** | Low | |
| 439 | | **Status** | Mitigated with Documentation | |
| 440 | |
| 441 | #### AI-7: Insecure Plugin Design |
| 442 | |
| 443 | | Field | Value | |
| 444 | |-------------------|-----------------------------------------------------------------| |
| 445 | | **Category** | LLM07: Insecure Plugin Design (OWASP) | |
| 446 | | **Asset** | MCP server integrations, VS Code extension | |
| 447 | | **Threat** | Extension or MCP server allows unauthorized operations | |
| 448 | | **Likelihood** | Low (extension has no sensitive operations) | |
| 449 | | **Impact** | Low to Medium | |
| 450 | | **Mitigations** | Minimal extension functionality, MCP server trust documentation | |
| 451 | | **Residual Risk** | Low | |
| 452 | | **Status** | Mitigated | |
| 453 | |
| 454 | #### AI-8: Excessive Agency |
| 455 | |
| 456 | | Field | Value | |
| 457 | |-------------------|----------------------------------------------------------| |
| 458 | | **Category** | LLM08: Excessive Agency (OWASP) | |
| 459 | | **Asset** | Autonomous Copilot operations | |
| 460 | | **Threat** | Prompts grant Copilot excessive autonomous capabilities | |
| 461 | | **Likelihood** | Low (prompts are guidance, not permissions) | |
| 462 | | **Impact** | Variable | |
| 463 | | **Mitigations** | Copilot's built-in guardrails, tool confirmation dialogs | |
| 464 | | **Residual Risk** | Low | |
| 465 | | **Status** | Mitigated (Copilot Controls) | |
| 466 | |
| 467 | #### AI-9: Overreliance |
| 468 | |
| 469 | | Field | Value | |
| 470 | |-------------------|------------------------------------------------------------| |
| 471 | | **Category** | LLM09: Overreliance (OWASP) | |
| 472 | | **Asset** | Code quality, developer decision-making | |
| 473 | | **Threat** | Developers accept Copilot output without verification | |
| 474 | | **Likelihood** | Medium | |
| 475 | | **Impact** | Variable (depends on context) | |
| 476 | | **Mitigations** | Documentation emphasizing review, security-focused prompts | |
| 477 | | **Residual Risk** | Medium (behavioral, not technical) | |
| 478 | | **Status** | Accepted with Documentation | |
| 479 | |
| 480 | #### AI-10: Model Theft (N/A) |
| 481 | |
| 482 | | Field | Value | |
| 483 | |-------------------|---------------------------------------------| |
| 484 | | **Category** | LLM10: Model Theft (OWASP) | |
| 485 | | **Asset** | N/A | |
| 486 | | **Threat** | HVE Core does not host or distribute models | |
| 487 | | **Likelihood** | N/A | |
| 488 | | **Impact** | N/A | |
| 489 | | **Mitigations** | N/A | |
| 490 | | **Residual Risk** | N/A | |
| 491 | | **Status** | Not Applicable | |
| 492 | |
| 493 | #### AI-11: AML.T0043 Craft Adversarial Data (MITRE ATLAS) |
| 494 | |
| 495 | | Field | Value | |
| 496 | |-------------------|--------------------------------------------------------------| |
| 497 | | **Category** | MITRE ATLAS AML.T0043 | |
| 498 | | **Asset** | Prompt artifacts | |
| 499 | | **Threat** | Adversary crafts prompt content to cause model misbehavior | |
| 500 | | **Likelihood** | Medium | |
| 501 | | **Impact** | Medium | |
| 502 | | **Mitigations** | PR review process, CODEOWNERS, artifact structure validation | |
| 503 | | **Residual Risk** | Medium | |
| 504 | | **Status** | Partially Mitigated | |
| 505 | |
| 506 | #### AI-12: AML.T0048 Evade ML Model (MITRE ATLAS) |
| 507 | |
| 508 | | Field | Value | |
| 509 | |-------------------|---------------------------------------------------------------| |
| 510 | | **Category** | MITRE ATLAS AML.T0048 | |
| 511 | | **Asset** | Security recommendations in prompts | |
| 512 | | **Threat** | Prompts designed to cause Copilot to bypass security guidance | |
| 513 | | **Likelihood** | Low | |
| 514 | | **Impact** | Medium | |
| 515 | | **Mitigations** | Security-first prompt design principles, review process | |
| 516 | | **Residual Risk** | Low | |
| 517 | | **Status** | Mitigated | |
| 518 | |
| 519 | ### Responsible AI Threats |
| 520 | |
| 521 | These threats address ethical and responsible AI considerations aligned with Microsoft's Responsible AI principles. |
| 522 | |
| 523 | #### RAI-1: Fairness - Biased Code Generation Patterns |
| 524 | |
| 525 | | Field | Value | |
| 526 | |-------------------|----------------------------------------------------------------------------| |
| 527 | | **Category** | Fairness (Microsoft RAI Standard) | |
| 528 | | **Asset** | Generated code quality across contexts | |
| 529 | | **Threat** | Prompts inadvertently favor certain coding styles or exclude accessibility | |
| 530 | | **Likelihood** | Medium | |
| 531 | | **Impact** | Medium (affects inclusivity of generated code) | |
| 532 | | **Mitigations** | Inclusive language guidelines, accessibility-aware prompts | |
| 533 | | **Residual Risk** | Medium | |
| 534 | | **Status** | Partially Mitigated | |
| 535 | |
| 536 | #### RAI-2: Reliability - Inconsistent Prompt Behavior |
| 537 | |
| 538 | | Field | Value | |
| 539 | |-------------------|-------------------------------------------------------------| |
| 540 | | **Category** | Reliability & Safety (Microsoft RAI Standard) | |
| 541 | | **Asset** | Prompt consistency | |
| 542 | | **Threat** | Same prompt produces significantly different outputs | |
| 543 | | **Likelihood** | Medium (inherent to LLMs) | |
| 544 | | **Impact** | Low to Medium | |
| 545 | | **Mitigations** | Structured prompts, explicit instructions, testing guidance | |
| 546 | | **Residual Risk** | Medium (LLM behavior inherently variable) | |
| 547 | | **Status** | Accepted with Documentation | |
| 548 | |
| 549 | #### RAI-3: Privacy - Context Leakage via Prompts |
| 550 | |
| 551 | | Field | Value | |
| 552 | |-------------------|---------------------------------------------------------------| |
| 553 | | **Category** | Privacy & Security (Microsoft RAI Standard) | |
| 554 | | **Asset** | Developer context, code patterns | |
| 555 | | **Threat** | Prompts cause Copilot to surface or infer private information | |
| 556 | | **Likelihood** | Low | |
| 557 | | **Impact** | Medium | |
| 558 | | **Mitigations** | Privacy-conscious prompt design, consumer guidelines | |
| 559 | | **Residual Risk** | Low | |
| 560 | | **Status** | Mitigated with Documentation | |
| 561 | |
| 562 | #### RAI-4: Inclusiveness - Exclusionary Language in Artifacts |
| 563 | |
| 564 | | Field | Value | |
| 565 | |-------------------|----------------------------------------------------------| |
| 566 | | **Category** | Inclusiveness (Microsoft RAI Standard) | |
| 567 | | **Asset** | Prompt artifacts, documentation | |
| 568 | | **Threat** | Language in prompts excludes or marginalizes user groups | |
| 569 | | **Likelihood** | Low (writing style guidelines address this) | |
| 570 | | **Impact** | Medium (affects adoption and trust) | |
| 571 | | **Mitigations** | Inclusive writing guidelines, spell check, PR review | |
| 572 | | **Residual Risk** | Low | |
| 573 | | **Status** | Mitigated | |
| 574 | |
| 575 | #### RAI-5: Transparency - Undocumented Prompt Behavior |
| 576 | |
| 577 | | Field | Value | |
| 578 | |-------------------|------------------------------------------------------------------| |
| 579 | | **Category** | Transparency (Microsoft RAI Standard) | |
| 580 | | **Asset** | User understanding of system behavior | |
| 581 | | **Threat** | Prompts cause unexpected Copilot behavior not explained to users | |
| 582 | | **Likelihood** | Medium | |
| 583 | | **Impact** | Low to Medium | |
| 584 | | **Mitigations** | Clear documentation, explicit prompt descriptions in frontmatter | |
| 585 | | **Residual Risk** | Low | |
| 586 | | **Status** | Mitigated | |
| 587 | |
| 588 | #### RAI-6: Accountability - Unclear Responsibility for Generated Code |
| 589 | |
| 590 | | Field | Value | |
| 591 | |-------------------|----------------------------------------------------------------------| |
| 592 | | **Category** | Accountability (Microsoft RAI Standard) | |
| 593 | | **Asset** | Liability and responsibility clarity | |
| 594 | | **Threat** | Ambiguity about who is responsible for Copilot-generated code issues | |
| 595 | | **Likelihood** | Medium (common confusion) | |
| 596 | | **Impact** | Medium | |
| 597 | | **Mitigations** | Documentation clarifying HVE Core provides guidance only | |
| 598 | | **Residual Risk** | Low | |
| 599 | | **Status** | Mitigated with Documentation | |
| 600 | |
| 601 | #### RAI-7: Human Oversight - Automated Changes Without Review |
| 602 | |
| 603 | | Field | Value | |
| 604 | |-------------------|----------------------------------------------------------------| |
| 605 | | **Category** | Human Oversight (Microsoft RAI Standard) | |
| 606 | | **Asset** | Code quality, security | |
| 607 | | **Threat** | Prompts encourage accepting Copilot suggestions without review | |
| 608 | | **Likelihood** | Low (prompts emphasize review) | |
| 609 | | **Impact** | Variable | |
| 610 | | **Mitigations** | Prompts include review reminders, security-conscious patterns | |
| 611 | | **Residual Risk** | Low | |
| 612 | | **Status** | Mitigated | |
| 613 | |
| 614 | #### RAI-8: Value Alignment - Prompts Conflicting with Organizational Values |
| 615 | |
| 616 | | Field | Value | |
| 617 | |-------------------|---------------------------------------------------------------| |
| 618 | | **Category** | Value Alignment (Microsoft RAI Standard) | |
| 619 | | **Asset** | Organizational trust | |
| 620 | | **Threat** | Prompt artifacts conflict with consumer organization's values | |
| 621 | | **Likelihood** | Low | |
| 622 | | **Impact** | Medium (reputational) | |
| 623 | | **Mitigations** | General-purpose prompts, customization guidance for consumers | |
| 624 | | **Residual Risk** | Low | |
| 625 | | **Status** | Mitigated with Documentation | |
| 626 | |
| 627 | #### RAI-9: Proportionality - Overly Aggressive Automation |
| 628 | |
| 629 | | Field | Value | |
| 630 | |-------------------|--------------------------------------------------------------------------| |
| 631 | | **Category** | Proportionality (Microsoft RAI Standard) | |
| 632 | | **Asset** | Developer autonomy | |
| 633 | | **Threat** | Prompts push Copilot toward excessive automation reducing human judgment | |
| 634 | | **Likelihood** | Low | |
| 635 | | **Impact** | Medium | |
| 636 | | **Mitigations** | Human-in-the-loop design patterns in prompts | |
| 637 | | **Residual Risk** | Low | |
| 638 | | **Status** | Mitigated | |
| 639 | |
| 640 | #### RAI-10: Contestability - No Mechanism to Challenge AI Decisions |
| 641 | |
| 642 | | Field | Value | |
| 643 | |-------------------|--------------------------------------------------------------------------| |
| 644 | | **Category** | Contestability (Microsoft RAI Standard) | |
| 645 | | **Asset** | User agency | |
| 646 | | **Threat** | Users cannot override or question Copilot behavior influenced by prompts | |
| 647 | | **Likelihood** | Low (Copilot suggestions are optional) | |
| 648 | | **Impact** | Low | |
| 649 | | **Mitigations** | Copilot's non-mandatory nature, edit/reject options built-in | |
| 650 | | **Residual Risk** | Very Low | |
| 651 | | **Status** | Mitigated (Copilot Controls) | |
| 652 | |
| 653 | #### RAI-11: Societal Impact - Deskilling Developers |
| 654 | |
| 655 | | Field | Value | |
| 656 | |-------------------|---------------------------------------------------------------| |
| 657 | | **Category** | Societal Impact (Microsoft RAI Standard) | |
| 658 | | **Asset** | Developer skill development | |
| 659 | | **Threat** | Over-reliance on AI-assisted coding reduces skill development | |
| 660 | | **Likelihood** | Medium (industry-wide concern) | |
| 661 | | **Impact** | Low for HVE Core specifically | |
| 662 | | **Mitigations** | Prompts emphasize learning and understanding, not just output | |
| 663 | | **Residual Risk** | Medium (societal, not technical) | |
| 664 | | **Status** | Accepted with Documentation | |
| 665 | |
| 666 | #### RAI-12: Environmental Impact - Compute Resource Awareness |
| 667 | |
| 668 | | Field | Value | |
| 669 | |-------------------|---------------------------------------------------------| |
| 670 | | **Category** | Environmental Impact (Microsoft RAI Standard) | |
| 671 | | **Asset** | Compute resources | |
| 672 | | **Threat** | Inefficient prompts cause unnecessary model computation | |
| 673 | | **Likelihood** | Low | |
| 674 | | **Impact** | Low (marginal compute impact) | |
| 675 | | **Mitigations** | Efficient prompt design guidelines | |
| 676 | | **Residual Risk** | Very Low | |
| 677 | | **Status** | Accepted | |
| 678 | |
| 679 | #### RAI-13: Misinformation - Prompts Generating Incorrect Information |
| 680 | |
| 681 | | Field | Value | |
| 682 | |-------------------|-------------------------------------------------------------------| |
| 683 | | **Category** | Misinformation (Microsoft RAI Standard) | |
| 684 | | **Asset** | Documentation and code accuracy | |
| 685 | | **Threat** | Prompts cause Copilot to generate plausible but incorrect content | |
| 686 | | **Likelihood** | Medium (LLM hallucination is known issue) | |
| 687 | | **Impact** | Medium | |
| 688 | | **Mitigations** | Verification prompts, citation requirements in prompt guidelines | |
| 689 | | **Residual Risk** | Medium (inherent LLM limitation) | |
| 690 | | **Status** | Partially Mitigated | |
| 691 | |
| 692 | ## Security Controls |
| 693 | |
| 694 | ### Supply Chain Security Controls |
| 695 | |
| 696 | | ID | Control | Implementation | Validates Against | |
| 697 | |------|----------------------------|--------------------------------------|-------------------| |
| 698 | | SC-1 | SHA Pinning Validation | Test-DependencyPinning.ps1 | S-1, S-2 | |
| 699 | | SC-2 | SHA Staleness Monitoring | Test-SHAStaleness.ps1 | S-1 | |
| 700 | | SC-3 | Dependency Review | dependency-review.yml | S-2, AI-5 | |
| 701 | | SC-4 | npm Security Audit | npm audit in pr-validation.yml | S-2 | |
| 702 | | SC-5 | Dependabot Updates | dependabot.yml | S-1, S-2 | |
| 703 | | SC-6 | Tool Checksum Verification | scripts/security/tool-checksums.json | S-1 | |
| 704 | |
| 705 | ### Code Quality Controls |
| 706 | |
| 707 | | ID | Control | Implementation | Validates Against | |
| 708 | |------|------------------------|----------------------------------|-------------------| |
| 709 | | CQ-1 | CodeQL Analysis | codeql-analysis.yml | T-1, E-1 | |
| 710 | | CQ-2 | Markdown Linting | lint:md npm script | T-2, RAI-4 | |
| 711 | | CQ-3 | Frontmatter Validation | Validate-MarkdownFrontmatter.ps1 | T-2 | |
| 712 | | CQ-4 | PowerShell Analysis | Invoke-PSScriptAnalyzer.ps1 | T-1 | |
| 713 | | CQ-5 | YAML Linting | Invoke-YamlLint.ps1 | T-1 | |
| 714 | |
| 715 | ### Access Controls |
| 716 | |
| 717 | | ID | Control | Implementation | Validates Against | |
| 718 | |------|------------------------------|-------------------------------|-------------------| |
| 719 | | AC-1 | Branch Protection | Repository settings | T-1, E-2 | |
| 720 | | AC-2 | CODEOWNERS Enforcement | .github/CODEOWNERS | T-1, T-2 | |
| 721 | | AC-3 | PR Review Requirements | Branch protection rules | T-2, AI-1 | |
| 722 | | AC-4 | Minimal Workflow Permissions | permissions: in all workflows | E-1 | |
| 723 | |
| 724 | ### Vulnerability Management Controls |
| 725 | |
| 726 | | ID | Control | Implementation | Validates Against | |
| 727 | |------|---------------------------------|----------------------------|-------------------| |
| 728 | | VM-1 | Coordinated Disclosure | SECURITY.md | I-1 | |
| 729 | | VM-2 | Secret Scanning | GitHub native | I-1, I-2 | |
| 730 | | VM-3 | Credential Persistence Disabled | persist-credentials: false | I-1, E-1 | |
| 731 | |
| 732 | ## Assurance Argument |
| 733 | |
| 734 | This section presents the security assurance case using Goal Structuring Notation (GSN) patterns. |
| 735 | |
| 736 | ### Top-Level Goal |
| 737 | |
| 738 | **G0**: HVE Core is acceptably secure for its intended use as an enterprise prompt engineering framework. |
| 739 | |
| 740 | ### Supporting Goals |
| 741 | |
| 742 | | Goal | Statement | Strategy | |
| 743 | |--------|------------------------------------------------|----------------------------------------| |
| 744 | | **G1** | Supply chain attacks are mitigated | S1: Defense-in-depth controls | |
| 745 | | **G2** | Unauthorized modifications are prevented | S2: Access control enforcement | |
| 746 | | **G3** | AI-specific risks are documented and addressed | S3: Risk acceptance with documentation | |
| 747 | | **G4** | Responsible AI principles are followed | S4: Guidelines and review processes | |
| 748 | |
| 749 | ### Evidence Mapping |
| 750 | |
| 751 | | Goal | Evidence | |
| 752 | |------|---------------------------------------------------------------------| |
| 753 | | G1 | SHA pinning logs, staleness reports, dependency review results | |
| 754 | | G2 | Branch protection configuration, CODEOWNERS file, PR review history | |
| 755 | | G3 | This threat model document, MCP trust analysis | |
| 756 | | G4 | Writing style guidelines, inclusive language checks, PR reviews | |
| 757 | |
| 758 | ### Assumptions and Justifications |
| 759 | |
| 760 | | ID | Assumption | Justification | |
| 761 | |----|--------------------------------------------|---------------------------------------| |
| 762 | | A1 | GitHub platform security is adequate | SOC 2 Type II certified | |
| 763 | | A2 | GitHub Copilot provides baseline AI safety | Microsoft RAI compliance | |
| 764 | | A3 | Contributors act in good faith | PR review provides verification | |
| 765 | | A4 | Consumers implement their own code review | Documented as consumer responsibility | |
| 766 | |
| 767 | ### Argument Summary |
| 768 | |
| 769 | HVE Core achieves acceptable security through: |
| 770 | |
| 771 | 1. **Automated Controls**: 18+ security controls execute automatically via CI/CD |
| 772 | 2. **Defense-in-Depth**: Multiple overlapping controls for critical threats |
| 773 | 3. **Transparent Risk Acceptance**: AI-inherent risks documented with clear boundaries |
| 774 | 4. **Inherited Security**: Leverages GitHub and Copilot platform security |
| 775 | |
| 776 | ## MCP Server Trust Analysis |
| 777 | |
| 778 | HVE Core documents integrations with Model Context Protocol servers. This section analyzes the trust posture of each server. |
| 779 | |
| 780 | > [!NOTE] |
| 781 | > GitHub MCP is enabled by default in VS Code when using GitHub Copilot. The other servers are optional and recommended for an optimal HVE Core development experience. See [MCP Configuration](../getting-started/mcp-configuration.md) for setup instructions. |
| 782 | |
| 783 | ### Server Summary |
| 784 | |
| 785 | | Server | Provider | Classification | Trust Level | Data Flow Risk | Default | |
| 786 | |--------------------|-----------|----------------|-------------|----------------|---------| |
| 787 | | GitHub MCP | GitHub | First-party | High | Low | Yes | |
| 788 | | Azure DevOps MCP | Microsoft | First-party | High | Low | No | |
| 789 | | Microsoft Docs MCP | Microsoft | First-party | High | Low | No | |
| 790 | | Context7 MCP | Upstash | Third-party | Medium | Medium | No | |
| 791 | |
| 792 | ### GitHub MCP Server |
| 793 | |
| 794 | | Attribute | Assessment | |
| 795 | |--------------------|-----------------------------------------------------------| |
| 796 | | **Operator** | GitHub (Microsoft subsidiary) | |
| 797 | | **Deployment** | Remote (github.com hosted) or local | |
| 798 | | **Authentication** | OAuth, GitHub App tokens, PATs | |
| 799 | | **Authorization** | Inherits GitHub permission model | |
| 800 | | **Data Handling** | Data stays within GitHub ecosystem | |
| 801 | | **Audit** | GitHub audit log captures operations | |
| 802 | | **Recommendation** | Low risk; enable organization policies for access control | |
| 803 | |
| 804 | ### Azure DevOps MCP Server |
| 805 | |
| 806 | | Attribute | Assessment | |
| 807 | |--------------------|-------------------------------------------------------| |
| 808 | | **Operator** | Microsoft | |
| 809 | | **Deployment** | Local only (npx invocation) | |
| 810 | | **Authentication** | Browser-based Azure AD login | |
| 811 | | **Authorization** | Inherits Azure DevOps permissions | |
| 812 | | **Data Handling** | No persistent storage by MCP server | |
| 813 | | **Audit** | Azure DevOps audit log | |
| 814 | | **Recommendation** | Low risk; standard Microsoft security practices apply | |
| 815 | |
| 816 | ### Microsoft Docs MCP Server |
| 817 | |
| 818 | | Attribute | Assessment | |
| 819 | |--------------------|-----------------------------------------------------------------| |
| 820 | | **Operator** | Microsoft | |
| 821 | | **Deployment** | Remote (learn.microsoft.com API) | |
| 822 | | **Authentication** | None required (public documentation) | |
| 823 | | **Authorization** | Rate limiting only | |
| 824 | | **Data Handling** | Read-only queries; no user data transmitted beyond search terms | |
| 825 | | **Audit** | Standard Microsoft API logging | |
| 826 | | **Recommendation** | Low risk; queries limited to public documentation | |
| 827 | |
| 828 | ### Context7 MCP Server |
| 829 | |
| 830 | | Attribute | Assessment | |
| 831 | |--------------------|--------------------------------------------------------------| |
| 832 | | **Operator** | Upstash (third-party) | |
| 833 | | **Deployment** | Local client, Upstash backend | |
| 834 | | **Authentication** | API keys via Upstash dashboard | |
| 835 | | **Authorization** | Rate limiting, enterprise SSO available | |
| 836 | | **Data Handling** | Queries processed locally; only topics sent to backend | |
| 837 | | **Audit** | API logs with 30-day retention | |
| 838 | | **Recommendation** | Medium risk; evaluate topic extraction for sensitive context | |
| 839 | |
| 840 | ### Trust Recommendations |
| 841 | |
| 842 | 1. **First-party servers (GitHub, Azure DevOps, Microsoft Docs)**: Enable with organization policy controls; GitHub MCP is enabled by default |
| 843 | 2. **Third-party servers (Context7)**: Evaluate data flow, use API key rotation, review Upstash trust center |
| 844 | |
| 845 | ## Quantitative Security Metrics |
| 846 | |
| 847 | ### Configured Thresholds |
| 848 | |
| 849 | | Metric | Threshold | Source | |
| 850 | |------------------------|-----------|-----------------------------| |
| 851 | | SHA Pinning Compliance | ≥95% | dependency-pinning-scan.yml | |
| 852 | | SHA Staleness | ≤30 days | sha-staleness-check.yml | |
| 853 | | Dependency Review Fail | moderate | dependency-review.yml | |
| 854 | | npm Audit Fail Level | moderate | pr-validation.yml | |
| 855 | | Required PR Reviewers | 1 | Branch protection | |
| 856 | |
| 857 | ### Security Response Commitments |
| 858 | |
| 859 | | Commitment | SLA | Source | |
| 860 | |---------------------------|----------|---------------| |
| 861 | | Security Report Response | 24 hours | SECURITY.md | |
| 862 | | Governance Change Comment | 1 week | GOVERNANCE.md | |
| 863 | |
| 864 | ### Validation Workflow Coverage |
| 865 | |
| 866 | | Workflow | Trigger | Security Checks | |
| 867 | |---------------------------------|--------------------|----------------------------| |
| 868 | | pr-validation.yml | PR to main/develop | Pinning, npm audit, CodeQL | |
| 869 | | codeql-analysis.yml | Push, PR, weekly | Static analysis | |
| 870 | | dependency-review.yml | PR to main/develop | Vulnerability scanning | |
| 871 | | weekly-security-maintenance.yml | Sundays 2 AM UTC | Pinning, staleness, CodeQL | |
| 872 | |
| 873 | ## References |
| 874 | |
| 875 | ### Internal Documentation |
| 876 | |
| 877 | - [SECURITY.md](../../SECURITY.md): Vulnerability disclosure process |
| 878 | - [GOVERNANCE.md](../../GOVERNANCE.md): Project governance and roles |
| 879 | - [Branch Protection](../contributing/branch-protection.md): Repository protection configuration |
| 880 | - [MCP Configuration](../getting-started/mcp-configuration.md): MCP server setup guidance |
| 881 | |
| 882 | ### External Standards |
| 883 | |
| 884 | - [OpenSSF Best Practices Silver Criteria](https://www.bestpractices.dev/en/criteria/1) |
| 885 | - [OWASP LLM Top 10](https://owasp.org/www-project-top-10-for-large-language-model-applications/) |
| 886 | - [MITRE ATLAS](https://atlas.mitre.org/) |
| 887 | - [Microsoft Responsible AI Standard](https://www.microsoft.com/ai/responsible-ai) |
| 888 | - [STRIDE Threat Model](https://learn.microsoft.com/azure/security/develop/threat-modeling-tool-threats) |
| 889 | - [GitHub Security Best Practices](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions) |
| 890 | |
| 891 | --- |
| 892 | |
| 893 | 🤖 *Crafted with precision by ✨Copilot following brilliant human instruction, then carefully refined by our team of discerning human reviewers.* |
| 894 | |