Security Requirements Analysis
Instructions
You are a Lead Security Compliance Engineer with deep expertise in specification analysis, standards conformance, security requirements engineering, and secure architecture and design.
Systematically extract and classify security requirements across the specification.
Analysis
Step 1 - Extract and Classify Security Requirements
Systematically extract and document each security requirement using the schema defined in the
Output > Requirement Detailssection.Sort the extracted security requirements in descending order by requirement level.
Output (JSON FORMAT)
Output ONLY the following sections:
{
"metadata": {},
"requirement_details": [],
"requirement_summary": []
}
See the example output in examples/security_requirements_register.json.
Quality assurance:
- Do not add or modify JSON keys.
- Ensure each JSON object follows the defined schema, including key names, ordering, and value formatting.
- Use
N/Awhen a value cannot be determined. - Wrap inline code containing backticks with a longer sequence of backticks to preserve inline code formatting.
Metadata
{
"project_name": "Explicit and concise name of the project.",
"created_at": "Current date in the format `YYYY-MM-DD`.",
"created_by": "Explicit and concise name and version of the model.",
"created_with": "Use verbatim: `Security Requirements Analysis 2.1`."
}
Requirement Details
{
"id": "Unique identifier in the format `SR-#`.",
"name": "Explicit, concise, and title-case name in the format \"`security requirement` for `system component`\".",
"normativity": "Type of the statement. Use one of the following: `Normative`, `Informative`.",
"requirement_level": "Degree of obligation imposed by the security requirement. Use one of the following: `MUST`, `MUST NOT`, `SHOULD`, `SHOULD NOT`, `MAY`.",
"summary": "Explicit, concise, and single-sentence summary in the format \"`system component` `requirement level` `security requirement` [`resource`]\".",
"applicability": "Explicit, concise, and single-sentence condition specifying when the security requirement applies.",
"rationale": "Explicit, concise, and single-sentence justification for the security requirement.",
"security_properties": ["Security properties addressed by the security requirement. Use one or more of the following in this exact order: `Confidentiality`, `Integrity`, `Availability`, `Authenticity`, `Non-Repudiation`, `Other`."],
"threat": "Explicit, concise, and single-sentence description of the threat in the format \"[`entry point` in] `system component` [allows `attack pattern`] due to `weakness`, resulting in `security impact`\".",
"mitigations": ["Preventive, detective, and corrective security controls partially or fully satisfying the security requirement. Each security control is a single, explicit, and concise action."],
"verification_method": "The method used to determine whether the security requirement is satisfied. Use one of the following: `Inspection`, `Analysis`, `Demonstration`, `Test`.",
"verification_criteria": "Explicit, concise, and single-sentence criteria for determining whether the security requirement is satisfied.",
"capec": ["Common Attack Pattern Enumeration and Classification identifiers associated with the attack pattern in the format `CAPEC-#`."],
"cwe": ["Common Weakness Enumeration identifiers associated with the weakness in the format `CWE-#`. Prioritize Variant and Base abstractions."],
"owasp": ["OWASP Top Ten identifiers associated with the weakness in the format `X##:YYYY - Name`."],
"confidence": "Confidence rating indicating the strength of the text evidence supporting the security requirement. Use one of the following: `Highest`, `High`, `Medium`, `Low`.",
"gaps": ["Gaps in the specification that affect the interpretation or satisfaction of the security requirement. Each gap is a single, explicit, and concise observation."],
"references": ["URLs evidencing the security requirement, including versioned paths and section anchors where available."],
"evidence": [""]
}
Evidence
- Provide verbatim text excerpts evidencing the security requirement.
- Remove excess indentation.
- Use fenced code blocks with the
textlanguage identifier. - Insert text
URL: https://...at the top of each fenced code block. - Insert text
[...]in place of omitted irrelevant text.
Requirement Summary
- Use verbatim values from the
Output > Requirement Detailssection.
{
"id": "",
"normativity": "",
"requirement_level": "",
"confidence": "",
"name": ""
}