You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PowerShell automation scripts for linting and validation
GitHub Actions CI/CD workflows
VS Code extension packaging utilities
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 20+ automated controls validated through CI/CD pipelines.
This section documents threats using STRIDE methodology (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege), supplemented with AI-specific and Responsible AI threat categories.
STRIDE Threats
S-1: Compromised GitHub Action via Tag Substitution
Field
Value
Category
Spoofing
Asset
CI/CD pipeline integrity
Threat
Attacker compromises upstream Action repository and replaces tag with malicious code
Likelihood
Medium (documented supply chain attacks exist)
Impact
High (full CI/CD compromise, secret exfiltration)
Mitigations
Dependency pinning for all Actions, staleness monitoring, CodeQL scanning
Minimal permissions pattern, persist-credentials: false, inline comments on elevated permissions
Residual Risk
Low
Status
Mitigated with Accepted Risk
Accepted Risk: Token-Permissions Alerts
OpenSSF Scorecard Token-Permissions flags security-events: write as overly broad across workflow files. This permission is required for github/codeql-action/upload-sarif and github/codeql-action/analyze to upload SARIF results to the repository Security tab. The security-events scope grants access only to code scanning alert data and cannot modify repository content, settings, or secrets.
Scorecard's own scorecard.yml requires the same permission to publish results, creating a circular dependency in the token-permissions check.
Affected workflow jobs:
Workflow
Job
release-stable.yml
dependency-pinning-scan
release-stable.yml
gitleaks-scan
pr-validation.yml
dependency-pinning-check
pr-validation.yml
workflow-permissions-check
pr-validation.yml
gitleaks-scan
pr-validation.yml
codeql
security-scan.yml
codeql
weekly-security-maintenance.yml
validate-pinning
weekly-security-maintenance.yml
codeql-analysis
Defense-in-depth controls:
All workflows declare job-level permissions, not workflow-level
persist-credentials: false set on all checkout steps
Inline YAML comments document each security-events: write declaration
SARIF upload is the only write operation performed under this permission
E-2: Branch Protection Bypass
Field
Value
Category
Elevation of Privilege
Asset
Protected branches
Threat
Admin bypasses branch protection to merge unauthorized changes
Likelihood
Low (requires admin access and intentional bypass)
Impact
High (security controls circumvented)
Mitigations
Branch protection rules, audit logging, "Do not allow bypassing"
Residual Risk
Low
Status
Mitigated
Dev Container Threats
These threats address risks in the development container configuration used for Codespaces and local container development.
DC-1: Feature Tag Substitution Attack
Field
Value
Category
Spoofing
Asset
Dev container configuration
Threat
Malicious update to a feature version tag introduces compromised tooling
Likelihood
Low (first-party Microsoft features only)
Impact
Medium (development environment compromise)
Mitigations
First-party features only, PR review of devcontainer.json changes
Residual Risk
Low (Microsoft-maintained features with release controls)
Status
Mitigated
DC-2: Lifecycle Script Tampering
Field
Value
Category
Tampering
Asset
Container initialization scripts
Threat
Attacker modifies on-create.sh or post-create.sh to inject code
Likelihood
Low (requires PR approval, CODEOWNERS protection)
Impact
High (arbitrary code execution in dev environment)
Inefficient prompts cause unnecessary model computation
Likelihood
Low
Impact
Low (marginal compute impact)
Mitigations
Efficient prompt design guidelines
Residual Risk
Very Low
Status
Accepted
RAI-13: Misinformation - Prompts Generating Incorrect Information
Field
Value
Category
Misinformation (Microsoft RAI Standard)
Asset
Documentation and code accuracy
Threat
Prompts cause Copilot to generate plausible but incorrect content
Likelihood
Medium (LLM hallucination is known issue)
Impact
Medium
Mitigations
Verification prompts, citation requirements in prompt guidelines
Residual Risk
Medium (inherent LLM limitation)
Status
Partially Mitigated
Security Controls
Supply Chain Security Controls
ID
Control
Implementation
Validates Against
SC-1
Dependency Pinning Validation
Test-DependencyPinning.ps1
S-1, S-2
SC-2
SHA Staleness Monitoring
Test-SHAStaleness.ps1
S-1
SC-3
Dependency Review
dependency-review.yml
S-2, AI-5
SC-4
npm Security Audit
npm audit in pr-validation.yml
S-2
SC-5
Dependabot Updates
dependabot.yml
S-1, S-2
SC-6
Tool Checksum Verification
scripts/security/tool-checksums.json
S-1
SC-7
SBOM Generation and Attestation
anchore/sbom-action, actions/attest in main.yml
S-1, S-2
SC-8
SBOM Dependency Diff
sbom-diff job in main.yml
S-1, S-2
SC-8: SBOM Dependency Diff Implementation
The sbom-diff job in main.yml runs during each release to surface supply chain changes between consecutive versions. It compares the current dependency SBOM against the previous release, generating a structured dependency-diff.md report that is uploaded to the GitHub Release.
Field
Value
Trigger
Runs when release_created == 'true', after SBOM generation completes
Input
SPDX JSON dependency SBOMs from current build and previous GitHub Release
Output
dependency-diff.md uploaded to the GitHub Release as an asset
Failure Mode
continue-on-error: true prevents diff failures from blocking the release
Permissions
contents: write (release asset upload only)
The diff script parses SPDX JSON packages, excludes root document entries, and categorizes changes into three groups:
Added packages not present in the previous release
Removed packages no longer included in the current build
Version changes where the same package appears in both releases at different versions
When no previous release exists or the prior release lacks a dependency SBOM, the job exits cleanly without producing a diff. This graceful degradation ensures the first release in a repository proceeds without error.
Branch protection configuration, CODEOWNERS file, PR review history
G3
This threat model document, MCP trust analysis
G4
Writing style guidelines, inclusive language checks, PR reviews
Assumptions and Justifications
ID
Assumption
Justification
A1
GitHub platform security is adequate
SOC 2 Type II certified
A2
GitHub Copilot provides baseline AI safety
Microsoft RAI compliance
A3
Contributors act in good faith
PR review provides verification
A4
Consumers implement their own code review
Documented as consumer responsibility
Argument Summary
HVE Core achieves acceptable security through:
Automated Controls: 20+ security controls execute automatically via CI/CD
Defense-in-Depth: Multiple overlapping controls for critical threats
Transparent Risk Acceptance: AI-inherent risks documented with clear boundaries
Inherited Security: Uses GitHub and Copilot platform security
MCP Server Trust Analysis
HVE Core documents integrations with Model Context Protocol servers. This section analyzes the trust posture of each server.
Note
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 for setup instructions.
Server Summary
Server
Provider
Classification
Trust Level
Data Flow Risk
Default
GitHub MCP
GitHub
First-party
High
Low
Yes
Azure DevOps MCP
Microsoft
First-party
High
Low
No
Microsoft Docs MCP
Microsoft
First-party
High
Low
No
Context7 MCP
Upstash
Third-party
Medium
Medium
No
GitHub MCP Server
Attribute
Assessment
Operator
GitHub (Microsoft subsidiary)
Deployment
Remote (github.com hosted) or local
Authentication
OAuth, GitHub App tokens, PATs
Authorization
Inherits GitHub permission model
Data Handling
Data stays within GitHub ecosystem
Audit
GitHub audit log captures operations
Recommendation
Low risk; enable organization policies for access control
Azure DevOps MCP Server
Attribute
Assessment
Operator
Microsoft
Deployment
Local only (npx invocation)
Authentication
Browser-based Azure AD login
Authorization
Inherits Azure DevOps permissions
Data Handling
No persistent storage by MCP server
Audit
Azure DevOps audit log
Recommendation
Low risk; standard Microsoft security practices apply
Microsoft Docs MCP Server
Attribute
Assessment
Operator
Microsoft
Deployment
Remote (learn.microsoft.com API)
Authentication
None required (public documentation)
Authorization
Rate limiting only
Data Handling
Read-only queries; no user data transmitted beyond search terms
Audit
Standard Microsoft API logging
Recommendation
Low risk; queries limited to public documentation
Context7 MCP Server
Attribute
Assessment
Operator
Upstash (third-party)
Deployment
Local client, Upstash backend
Authentication
API keys via Upstash dashboard
Authorization
Rate limiting, enterprise SSO available
Data Handling
Queries processed locally; only topics sent to backend
Audit
API logs with 30-day retention
Recommendation
Medium risk; evaluate topic extraction for sensitive context
Trust Recommendations
First-party servers (GitHub, Azure DevOps, Microsoft Docs): Enable with organization policy controls; GitHub MCP is enabled by default
Third-party servers (Context7): Evaluate data flow, use API key rotation, review Upstash trust center