Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
1c93134
feat(mcsb): add Microsoft Cloud Security Benchmark control domains an…
nguyena2 Jul 23, 2026
bc3cafb
Merge remote-tracking branch 'origin/main' into feat/mcsb-security-skill
nguyena2 Jul 23, 2026
d1f8b48
Merge branch 'main' into feat/mcsb-security-skill
jkim323 Jul 24, 2026
e3feb7d
Merge remote-tracking branch 'origin/main' into feat/mcsb-security-skill
nguyena2 Jul 28, 2026
88f285c
docs(security): clarify attribution for MCSB v2 documentation sources
nguyena2 Jul 28, 2026
271cbd9
feat(docs): add Microsoft Cloud Security Benchmark (MCSB) documentati…
nguyena2 Jul 28, 2026
203af3c
docs(mcsb): update references to Microsoft Cloud Security Benchmark URLs
nguyena2 Jul 28, 2026
53b3fa8
Merge remote-tracking branch 'origin/feat/mcsb-security-skill' into f…
nguyena2 Jul 28, 2026
ba44c69
Merge remote-tracking branch 'origin/main' into feat/mcsb-security-skill
nguyena2 Jul 28, 2026
f0637b7
fix(agents): enhance output pattern to include additional report terms
nguyena2 Jul 28, 2026
5810365
Merge remote-tracking branch 'origin/main' into feat/mcsb-security-skill
nguyena2 Jul 28, 2026
13c0814
fix(agents): enhance findings pattern to include additional report terms
nguyena2 Jul 28, 2026
13e9671
fix(agents): enhance findings pattern to include additional security …
nguyena2 Jul 29, 2026
62adef0
Merge remote-tracking branch 'origin/main' into feat/mcsb-security-skill
nguyena2 Jul 29, 2026
8041871
fix(docs): update documentation dates and skill count for accuracy
nguyena2 Jul 29, 2026
5681b61
fix(security-reviewer): enhance findings pattern to include severity …
nguyena2 Jul 29, 2026
84a20a5
fix(cspell): add missing words to the spell checker dictionary
nguyena2 Jul 29, 2026
4a4d723
Merge remote-tracking branch 'origin/main' into feat/mcsb-security-skill
nguyena2 Jul 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions .github/agents/security/security-planner.agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,13 @@ Each phase entry begins with a mandatory `read_file` of the indicated skill refe

Beyond the always-load references above, load these specialized security skills only when the corresponding surface is present. Read them on entry to the phase noted, after the mandatory references. Skip any whose trigger is absent.

| Trigger (from Phase 1 scoping / Phase 2 buckets) | Load on entry | Skill(s) to `read_file` |
|--------------------------------------------------|---------------|-------------------------------------------------------|
| AI/ML components detected (`raiEnabled` true) | Phase 3 & 4 | `owasp-agentic`; `owasp-mcp` when MCP tooling is used |
| `infrastructure` bucket present | Phase 3 & 4 | `owasp-infrastructure` |
| `build` or `devops/platform-ops` bucket present | Phase 3 & 4 | `owasp-cicd`, `supply-chain-security` |
| Any project (cross-cutting GS overlay) | Phase 4 | `secure-by-design` |
| Trigger (from Phase 1 scoping / Phase 2 buckets) | Load on entry | Skill(s) to `read_file` |
|--------------------------------------------------|---------------|--------------------------------------------------------|
| AI/ML components detected (`raiEnabled` true) | Phase 3 & 4 | `owasp-agentic`; `owasp-mcp` when MCP tooling is used |
| `infrastructure` bucket present | Phase 3 & 4 | `owasp-infrastructure` |
| Azure cloud resources present | Phase 3 & 4 | `mcsb` (stable taxonomy; delegate per-service lookups) |
| `build` or `devops/platform-ops` bucket present | Phase 3 & 4 | `owasp-cicd`, `supply-chain-security` |
| Any project (cross-cutting GS overlay) | Phase 4 | `secure-by-design` |

If a conditional skill fails to load, note the gap and continue rather than halting. Delegate to the Researcher Subagent only for standards with no matching skill.

Expand Down Expand Up @@ -101,7 +102,7 @@ Gate: summary-and-advance — surface a brief phase summary and proceed unless t

### Phase 3: Standards Mapping

Map controls from OWASP Top 10, NIST 800-53, and CIS Benchmarks to each bucket. Delegate WAF and CAF lookups to Researcher Subagent at runtime rather than embedding those standards directly.
Map controls from OWASP Top 10, NIST 800-53, and CIS Benchmarks to each bucket. For Azure cloud resources, load the `mcsb` skill for the stable MCSB control-domain taxonomy and crosswalk, and delegate volatile per-service control lookups to the Researcher Subagent. Delegate WAF and CAF lookups to Researcher Subagent at runtime rather than embedding those standards directly.

Human-review exit reminder: a qualified security reviewer confirms the standards-to-bucket mappings and any deferred lookups before advancing to Phase 4.

Expand Down
3 changes: 2 additions & 1 deletion .github/agents/security/security-reviewer.agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ Report path pattern (plan): `.copilot-tracking/security/{{YYYY-MM-DD}}/plan-risk

Sequence number resolution: Determine `{{NNN}}` by listing existing reports in the date directory, extracting the highest sequence number, incrementing by one, and zero-padding to three digits. Start at `001` when no reports exist.

Skill resolution: Read the applicable security skill (e.g., `owasp-top-10`, `owasp-llm`, `owasp-agentic`, `owasp-mcp`, `owasp-infrastructure`, `owasp-cicd`, `secure-by-design`) to access vulnerability references. Follow the skill's normative reference links to load vulnerability reference documents.
Skill resolution: Read the applicable security skill (e.g., `owasp-top-10`, `owasp-llm`, `owasp-agentic`, `owasp-mcp`, `owasp-infrastructure`, `owasp-cicd`, `secure-by-design`, `mcsb`) to access vulnerability references. Follow the skill's normative reference links to load vulnerability reference documents.

### Subagents

Expand All @@ -116,6 +116,7 @@ Skill resolution: Read the applicable security skill (e.g., `owasp-top-10`, `owa
* owasp-infrastructure
* owasp-cicd
* secure-by-design
* mcsb

## Subagent Prompt Templates

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Scan the repository to identify its technology stack and determine which securit

## Constants

Skill resolution: Read the applicable security skill by name (e.g., `owasp-top-10`, `owasp-llm`, `owasp-agentic`, `owasp-mcp`, `owasp-infrastructure`, `owasp-cicd`, `secure-by-design`). Resolve accessibility guidance through the consolidated Accessibility skill contract and use the matching framework guidance when needed.
Skill resolution: Read the applicable security skill by name (e.g., `owasp-top-10`, `owasp-llm`, `owasp-agentic`, `owasp-mcp`, `owasp-infrastructure`, `owasp-cicd`, `secure-by-design`, `mcsb`). Resolve accessibility guidance through the consolidated Accessibility skill contract and use the matching framework guidance when needed.

### Technology Signals

Expand Down Expand Up @@ -75,6 +75,12 @@ owasp-cicd:
- "Jenkinsfile"
- ".gitlab-ci.yml"
- "azure-pipelines.yml"
mcsb:
- "Azure Bicep files (.bicep)"
- "Azure Resource Manager (ARM) templates (azuredeploy.json)"
- "Terraform using the azurerm provider (.tf)"
- "azure-pipelines.yml targeting Azure resources"
- "Azure service references (Storage, Key Vault, AKS, SQL, App Service)"
secure-by-design:
- "SECURITY.md or security policy files"
- "Threat model documents"
Expand Down
6 changes: 3 additions & 3 deletions .github/agents/security/subagents/skill-assessor.agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Assess exactly one security knowledge skill per invocation. Read all vulnerabili

## Constants

Skill resolution: Read the applicable security skill by name (e.g., `owasp-top-10`, `owasp-llm`, `owasp-agentic`, `owasp-mcp`, `owasp-infrastructure`, `owasp-cicd`, `secure-by-design`). Follow the skill's normative reference links to access the vulnerability index and individual vulnerability references.
Skill resolution: Read the applicable security skill by name (e.g., `owasp-top-10`, `owasp-llm`, `owasp-agentic`, `owasp-mcp`, `owasp-infrastructure`, `owasp-cicd`, `secure-by-design`, `mcsb`). Follow the skill's normative reference links to access the vulnerability index and individual vulnerability references.

### Status Values

Expand Down Expand Up @@ -141,8 +141,8 @@ Make all guidance specific to the plan content rather than generic boilerplate.
### Step 1: Gather All Vulnerability References

1. Read the located skill entry file and capture framework metadata (name, version, reference URL).
2. Follow the entry file's normative reference links to read the vulnerability index (`references/00-vulnerability-index.md`) and extract the full list of vulnerability IDs.
3. For each vulnerability ID in the index, read the corresponding reference file from the skill's `references/` directory and store its full content.
2. Follow the entry file's normative reference links to read the skill's index file (for example `references/00-vulnerability-index.md` for vulnerability skills, `references/00-principle-index.md` for principle skills, or `references/00-control-index.md` for control or benchmark skills such as `mcsb`) and extract the full list of assessable items (vulnerability identifiers, principle identifiers, or control-domain identifiers). For benchmark skills, the control-domain identifiers in the index are the assessable grain; finer per-service control identifiers are volatile and retrieved separately per the skill's lookup playbook.
3. For each item in the index, read the corresponding reference file from the skill's `references/` directory and store its full content.
4. Do not proceed to Step 2 until every reference file has been read and stored.

### Step 2: Analyze Against References
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
---
description: "OWASP and NIST security standards references with researcher subagent delegation for CIS, WAF, CAF, and other runtime lookups"
applyTo: '**/.copilot-tracking/security-plans/**'
Expand All @@ -18,7 +18,7 @@
| Standard | Rationale for Delegation |
|---------------------------------------------------|------------------------------------------------------------|
| WAF / CAF | Cloud-specific, frequently updated, extensive content |
| MCSB (Microsoft Cloud Security Benchmark) | Azure-specific, frequently updated control mappings |
| MCSB per-service control mappings | Azure-specific, frequently updated per-service baselines |
| PCI-DSS | Domain-specific, version-dependent compliance requirements |
| S2C2F (Secure Supply Chain Consumption Framework) | Emerging standard, evolving maturity levels |
| SLSA (Supply Chain Levels for Software Artifacts) | Version-dependent build integrity requirements |
Expand All @@ -35,10 +35,11 @@

* AI/ML components → `owasp-agentic`, and `owasp-mcp` when MCP tooling is used (alongside the always-loaded `owasp-llm`)
* `infrastructure` bucket → `owasp-infrastructure`
* Azure cloud resources → `mcsb` (stable MCSB control-domain taxonomy and crosswalk; delegate volatile per-service control lookups)
* `build` / `devops-platform-ops` buckets → `owasp-cicd`, `supply-chain-security`
* Cross-cutting GS overlay → `secure-by-design`

These skills are loaded by the Security Planner's Conditional Skill Map. Delegate to the Researcher Subagent only for standards with no matching skill (WAF, CAF, MCSB, PCI-DSS, and the others listed above).
These skills are loaded by the Security Planner's Conditional Skill Map. Delegate to the Researcher Subagent only for standards with no matching skill (WAF, CAF, PCI-DSS, and the others listed above) and for the volatile per-service layer of MCSB.

### When to Delegate

Expand Down
52 changes: 52 additions & 0 deletions .github/skills/security/mcsb/SKILL.md
Comment thread
nguyena2 marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
name: mcsb
description: Microsoft Cloud Security Benchmark (MCSB v2) control-domain taxonomy and NIST 800-53 / CIS Controls crosswalk for planning and reviewing Azure cloud resources.
license: MIT
user-invocable: false
metadata:
authors: "Microsoft"
spec_version: "1.0"
framework_revision: "MCSB v2 (preview)"
last_updated: "2026-07-21"
content_based_on: "https://learn.microsoft.com/en-us/security/benchmark/azure/overview"

Check warning on line 11 in .github/skills/security/mcsb/SKILL.md

View workflow job for this annotation

GitHub Actions / Link Language Check / Check for Language Paths in URLs

URL contains language path: https://learn.microsoft.com/en-us/security/benchmark/azure/overview
---

# Microsoft Cloud Security Benchmark — Skill Entry

This `SKILL.md` is the entrypoint for the Microsoft Cloud Security Benchmark (MCSB) skill.

The skill encodes the durable, structurally stable layer of MCSB — the control-domain taxonomy and a domain-grain crosswalk to NIST SP 800-53 and CIS Controls — so the Security Planner and Security Reviewer can map and assess Azure cloud resources against a consistent control vocabulary.

The skill deliberately does not embed the volatile layer of MCSB (per-Azure-service security baselines, per-service control IDs, Azure Policy mappings, and Defender for Cloud assessment specifics). That content changes on Microsoft's release cadence and is retrieved at runtime through the Researcher Subagent per [references/lookup-playbook.md](references/lookup-playbook.md).
## Version and stability

This skill targets **MCSB v2**, which Microsoft marks as preview and which supersedes MCSB v1. Content is version-pinned and retrieval-dated (2026-07-21). MCSB v2 replaces v1's Governance and Strategy (`GS`) domain with an Artificial Intelligence Security (`AI`) domain, and maps to NIST SP 800-53 Rev. 5 and CIS Controls v8.1 (v1 mapped to Rev. 4 and CIS v8). Re-verify the taxonomy and mappings against the official source before relying on them for a compliance decision.

## Normative references

1. [00 Control Index](references/00-control-index.md)
2. [01 Network Security](references/01-network-security.md)
3. [02 Identity Management](references/02-identity-management.md)
4. [03 Privileged Access](references/03-privileged-access.md)
5. [04 Data Protection](references/04-data-protection.md)
6. [05 Asset Management](references/05-asset-management.md)
7. [06 Logging and Threat Detection](references/06-logging-threat-detection.md)
8. [07 Incident Response](references/07-incident-response.md)
9. [08 Posture and Vulnerability Management](references/08-posture-vulnerability-management.md)
10. [09 Endpoint Security](references/09-endpoint-security.md)
11. [10 Backup and Recovery](references/10-backup-recovery.md)
12. [11 DevOps Security](references/11-devops-security.md)
13. [12 Artificial Intelligence Security](references/12-ai-security.md)
14. [Lookup Playbook](references/lookup-playbook.md) — delegation guardrail for volatile per-service lookups.

## Skill layout

* `SKILL.md` — this file (skill entrypoint).
* `references/` — the MCSB durable reference documents.
* `00-control-index.md` — control-domain catalog, consolidated crosswalk, and attribution.
* `01` through `12` — one document per MCSB v2 control domain with assessment checklists.
* `lookup-playbook.md` — delegation guardrail for volatile per-service content.

## Attribution
Comment thread
nguyena2 marked this conversation as resolved.

Reference content in this skill is original prose that paraphrases publicly documented MCSB structure. Microsoft Cloud Security Benchmark documentation on Microsoft Learn is governed by the Microsoft Learn Terms of Use, not a Creative Commons license; this skill therefore paraphrases rather than reproduces upstream text and cites the canonical source in each reference file. See [references/00-control-index.md](references/00-control-index.md) for the consolidated attribution.
66 changes: 66 additions & 0 deletions .github/skills/security/mcsb/references/00-control-index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
title: Index of MCSB Control Domains
description: Index of Microsoft Cloud Security Benchmark v2 control-domain identifiers, categories, framework crosswalk, and per-domain reference structure.
---

# Index of MCSB Control Domains

This document is the index for the Microsoft Cloud Security Benchmark (MCSB) skill. Each entry is a control domain — a family of related security controls that MCSB applies across Azure resources. The domain taxonomy is the durable, structurally stable layer of MCSB; individual control identifiers and their per-service applicability are volatile and retrieved at runtime (see [lookup-playbook.md](lookup-playbook.md)).

The two-letter domain identifiers below (NS, IM, PA, …) are the assessable grain for planning and review. Finer per-service control identifiers are not enumerated here and are fetched at runtime.

This skill targets **MCSB v2** (preview), retrieval-dated 2026-07-21. MCSB v2 replaces v1's Governance and Strategy (`GS`) domain with Artificial Intelligence Security (`AI`), and maps to NIST SP 800-53 Rev. 5 and CIS Controls v8.1.

## Control domain catalog

| ID | Domain | Category | Reference |
|----|--------------------------------------|-----------------------------|--------------------------------------------------------------------|
| NS | Network Security | Network | [01-network-security.md](01-network-security.md) |
| IM | Identity Management | Identity | [02-identity-management.md](02-identity-management.md) |
| PA | Privileged Access | Access Control | [03-privileged-access.md](03-privileged-access.md) |
| DP | Data Protection | Data | [04-data-protection.md](04-data-protection.md) |
| AM | Asset Management | Governance | [05-asset-management.md](05-asset-management.md) |
| LT | Logging and Threat Detection | Detection and Response | [06-logging-threat-detection.md](06-logging-threat-detection.md) |
| IR | Incident Response | Detection and Response | [07-incident-response.md](07-incident-response.md) |
| PV | Posture and Vulnerability Management | Posture | [08-posture-vulnerability-management.md](08-posture-vulnerability-management.md) |
| ES | Endpoint Security | Endpoint | [09-endpoint-security.md](09-endpoint-security.md) |
| BR | Backup and Recovery | Resilience | [10-backup-recovery.md](10-backup-recovery.md) |
| DS | DevOps Security | DevOps | [11-devops-security.md](11-devops-security.md) |
| AI | Artificial Intelligence Security | AI | [12-ai-security.md](12-ai-security.md) |

## Cross-reference matrix

Each domain document follows a consistent structure:

1. Identifier and category — the two-letter domain prefix and its grouping.
2. Objective — what the domain covers and why it matters for Azure resources.
3. Assessment checklist — observable indicators that Azure resources satisfy the domain.
4. Controls and mitigations — defensive measures and implementation guidance.
5. Anti-patterns — common configurations that indicate a gap.
6. Framework crosswalk — representative NIST 800-53 Rev. 5 families and CIS Controls v8.1.
7. Volatile lookup — how to fetch per-service control identifiers at runtime.

## Consolidated framework crosswalk

Representative domain-grain alignment (authored aggregation; Microsoft publishes mappings per control). Version-pinned to NIST SP 800-53 Rev. 5 and CIS Controls v8.1.

| ID | Representative NIST 800-53 Rev. 5 families | Representative CIS Controls v8.1 |
|----|--------------------------------------------|----------------------------------|
| NS | AC, CA, CM, SC, SI | 9, 12, 13 |
| IM | AC, IA, RA, SC, SI | 3, 5, 6, 8, 12, 16 |
| PA | AC, AU, CA, CP, IA, IR | 4, 5, 6, 8, 17 |
| DP | AC, IA, RA, SC, SI | 3 |
| AM | AC, CM, PM, RA, SA, SC, SI | 1, 2, 4, 5, 6, 10, 15 |
| LT | AU, IA, SI | 6, 8, 13, 17 |
| IR | AU, CP, IR, RA, SI | 1, 8, 13, 17 |
| PV | CA, CM, RA, SC, SI | 4, 7, 15, 18 |
| ES | IR, SI | 7, 8, 10, 13 |
| BR | AU, CP, SC, SI | 3, 8, 11 |
| DS | AC, AU, CA, CM, PL, RA, SA, SI, SR | 4, 6, 7, 8, 14, 16 |
| AI | AC, AU, CA, CM, IA, IR, RA, SA, SI | 5, 6, 8, 13, 15, 16, 18 |

## Attribution

The reference files in this skill are original prose authored for this repository that paraphrase the publicly documented structure of the Microsoft Cloud Security Benchmark. MCSB documentation is published on Microsoft Learn under the Microsoft Learn Terms of Use, not a Creative Commons license. This skill paraphrases the taxonomy and authors its own representative checklists and crosswalk; it does not reproduce Microsoft prose, tables, or the benchmark dataset verbatim, and the citation below is a provenance reference rather than a license grant.

> Microsoft, "Overview of the Microsoft cloud security benchmark," Microsoft Learn, accessed 2026-07-21, <https://learn.microsoft.com/en-us/security/benchmark/azure/overview>.

Check warning on line 66 in .github/skills/security/mcsb/references/00-control-index.md

View workflow job for this annotation

GitHub Actions / Link Language Check / Check for Language Paths in URLs

URL contains language path: https://learn.microsoft.com/en-us/security/benchmark/azure/overview
Loading
Loading