Skip to content

Commit fd0602b

Browse files
authored
Merge pull request #1 from rob-tetrel/corim
corim example cleanup (from Rob Wood at Tetrel Security)
2 parents 23d4bda + 46f1e93 commit fd0602b

File tree

10 files changed

+676
-395
lines changed

10 files changed

+676
-395
lines changed

Documentation/framework.md

Lines changed: 46 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ OCP Security Workgroup
5555
</td>
5656
<td>Eric Eilertson
5757
</td>
58-
<td>
58+
<td>Publish release framework
5959
</td>
6060
</tr>
6161
<tr>
@@ -68,6 +68,16 @@ OCP Security Workgroup
6868
<td>Add manifest support
6969
</td>
7070
</tr>
71+
<tr>
72+
<td>1.2
73+
</td>
74+
<td>August, 2025
75+
</td>
76+
<td>Rob Wood
77+
</td>
78+
<td>Clarify publication process
79+
</td>
80+
</tr>
7181
</table>
7282

7383
# Glossary
@@ -79,7 +89,7 @@ OCP Security Workgroup
7989

8090
# Executive Summary         
8191

82-
Today’s modern data centers are comprised of a wide variety of processing devices (CPU, GPU, FPGA, etc.)and peripheral
92+
Today’s modern data centers are comprised of a wide variety of processing devices (CPU, GPU, FPGA, etc.) and peripheral
8393
components (network controllers, accelerators, storage devices, etc.). These devices typically run updatable software,
8494
firmware, or microcode which can reside internally or externally to the device. The provenance, code quality, and
8595
software supply chain for firmware releases and patches that run on these devices requires a strong degree of security
@@ -121,19 +131,19 @@ The conditions under which these reviews take place, are of two main types:
121131

122132
At a high level, the process flows through the following sequence of steps:
123133

124-
1. DV selects an SRP.
125-
2. DV and SRP prepare a scope for the security review.
134+
1. DV selects an SRP from the list of [approved providers](./security_review_providers.md).
135+
2. DV and SRP prepare a scope for the security review according to the [Security Review Scope](#security-review-scope) information provided below and in the supplementary [review areas](./review_areas.md).
126136
3. SRP performs the security review.
127137
4. DV addresses any findings from the SRP.
128138
5. SRP reviews the changes and issues the final reports.
129139
6. DV and SRP prepare the necessary deliverables.
130-
7. The DV provides them to the [OCP Security WG](https://www.opencompute.org/wiki/Security) for publication.
140+
7. The DV provides them to the [OCP Security WG](https://www.opencompute.org/wiki/Security) for publication in the form of a GitHub Pull Request (see [OCP Report Deliverables](#ocp-report-deliverables) below).
131141

132142
Device Vendors are encouraged to engage an SRP early in the architectural definition process and continue with reviews
133143
at major architectural or implementation milestones, e.g. 0.8 of architectural and implementation specifications, and
134144
when ROM or firmware codes are nearing completion. This will help the device vendor avoid costly code rewrites or chip
135-
respins to address critical vulnerabilities. The results of these engagements during product development need not be
136-
published.
145+
re-spins to address critical vulnerabilities. The results of these engagements during product development need not be
146+
published, only assessments of released products is within scope of the OCP S.A.F.E. program.
137147

138148
## Objectives
139149

@@ -151,7 +161,7 @@ The key objectives of this framework are:
151161

152162
The reputation and integrity of the Security Review Providers are as important as their technical expertise. If there is
153163
a belief that the SRP delivers work of variable quality this brings into question all the reports they produce.
154-
Similarly, a conflict of interest degrades the value of the reports and in turns decreases the value of the SAFE
164+
Similarly, a conflict of interest degrades the value of the reports and in turn decreases the value of the SAFE
155165
program.
156166

157167
The [SRP requirements document](./srp_requirements.md) contains requirements for the SRPs business, management, and
@@ -175,7 +185,7 @@ an SRP must be nominated and approved by the TAC.
175185

176186
SRPs may have their endorsement suspended or revoked at any time for issues that cause SAFE to question the SRPs
177187
security practices, commitment to quality, or allegiances. Examples of such issues include losing control of a private
178-
signing key, endorsing firmware with hard coded credentials. Beyond egregious technical mistakes, an SRP must not be
188+
signing key or overlooking hard-coded credentials in firmware. Beyond egregious technical mistakes, an SRP must not be
179189
controlled by a company it is auditing or affiliated with a firm that sells vulnerabilities or exploits.
180190

181191
## Security Review Scope
@@ -206,9 +216,9 @@ description of the scopes is provided in the [review areas](./review_areas.md) d
206216
non-volatile storage media.
207217
* **Critical Assets**: A listing of all security-impacting assets within
208218
the firmware, and the corresponding Confidentiality, Integrity and Availability requirements for each. Examples of
209-
critical assets may include secret keys, the fuse config, or configuration data residing in external flash.
219+
critical assets may include secret keys, the fuse configuration, or any configuration data residing in external flash.
210220

211-
The SAFE program defines 3 security review scopes. These scopes increase the complexity of attacks in the threat model.
221+
The SAFE program defines 3 security review scopes. These scopes increase with complexity of attacks in the threat model.
212222
It is expected that devices will have reviews done with different review scopes. For example, a CPU may have a scope 3
213223
review of the root of trust due to the need for glitch protection when using a long-term device private key. This CPU
214224
may use a scope 2 review for the application cores.
@@ -226,7 +236,7 @@ may use a scope 2 review for the application cores.
226236
* Discovery of hard-coded credentials, seeds, private keys, or symmetric secrets.
227237
* Identifying temporal and spatial memory safety issues that arise due to improper input validation or race
228238
conditions that may occur along the attack surfaces that were identified in the threat model.
229-
* Discovery of remnant debug handles on production builds
239+
* Discovery of remnant debug handlers on production builds
230240
* Analysis of the cryptographic constructions employed by the firmware when protecting the confidentiality or
231241
integrity of any critical assets.
232242
* Improper handling of cryptographic material, e.g. keys, counters, nonces, seeds.
@@ -247,7 +257,7 @@ may use a scope 2 review for the application cores.
247257
* Safe generation and handling of all cryptographic material.
248258
* Encryption capability controls (disk encryption, erase, rotation).
249259
* Secure boot key rotation capabilities.
250-
* **Scope 2 - Focusing on Trust boundaries**
260+
* **Scope 2 - Focusing on Trust boundaries:** Includes all of the areas of Scope 1 above, with deeper review focus of the following areas:
251261
* Trusted execution environment assessment
252262
* Handling of trust boundaries
253263
* Attestation and non-repudiation across boundaries
@@ -259,37 +269,38 @@ may use a scope 2 review for the application cores.
259269
## OCP Report Deliverables
260270

261271
This framework stipulates that the following be delivered to the OCP SAFE program for publication in the appropriate
262-
public [GitHub](https://github.com/opencomputeproject/OCP-Security-SAFE) repositories after the review (and re-testing,
263-
and any embargo periods end) has concluded:
272+
public [GitHub](https://github.com/opencomputeproject/OCP-Security-SAFE) repositories after the review (and remediation and re-testing)
273+
has concluded:
264274

265275
* **Scope Document** \
266276
DV and SRP should jointly negotiate the scope of the review, based on the
267277
[review areas](#security-review-scope). As alluded to above, the areas are neither exhaustive nor complete, therefore
268278
the DV is encouraged to socialize the Scope with the OCP Security WG, either through its regular calls, or on its
269-
mailing list.
270-
271-
* The scope itself can be any number of documents, as long as the concatenation of them is provided to the OCP Security
272-
WG. Aside from level of effort estimates, no part of the DV/SRP statement of work, NDAs, etc. needs to be published.
273-
279+
mailing list. The scope itself can be any number of documents, as long as the concatenation of them is provided to the OCP Security
280+
WG. Aside from level of assessment effort, no part of the DV/SRP statement of work, NDAs, etc. needs to be published.
274281
* **Short-Form Report** \
275-
The SRP must produce a cryptographically signed machine-readable short-form report. This document will summarize the
276-
audit scope, and uniquely identify the vendor, device and firmware version by means of a firmware hash. This report
277-
will enumerate all vulnerabilities with a CVSS score and a brief summary. The short-form report specification can be
278-
found in [Appendix B](#appendix-b-machine-readable-short-form-report-format). To claim OCP SAFE endorsement for a
279-
product-firmware combination this report must
280-
be published to the OCP GitHub repository.
282+
The SRP must produce a cryptographically signed machine-readable short-form report. Only the final results are to be
283+
in the signed SFR (after remediation and retesting). This document will summarize the audit scope, and uniquely identify
284+
the vendor, device and firmware version by means of a firmware hash. This report will enumerate all vulnerabilities
285+
with a CVSS score and a brief summary. The short-form report specification can be found in
286+
[Appendix B](#appendix-b-machine-readable-short-form-report-format). To claim OCP SAFE endorsement for a
287+
product-firmware combination this report must be published to the OCP GitHub repository. This signed SFR is delivered
288+
to the DV for publication.
281289
* **GitHub Pull Request Submission**\
282-
The Pull Request for the submission to GitHub could from the SRP or the Device Vendor. If there are issues in the SFR
283-
it is *suggested* that the DV submit the PR. This *suggestion* helps to ensure that the DV is in control of messaging
284-
around any potential vulnerability disclosures.
290+
The Pull Request (PR) for the submission to GitHub *must* be from the Device Vendor. This ensures that the DV is in
291+
control of timing and messaging around any potential unfixed vulnerability disclosures. Previous versions of this document allowed
292+
for the SRP to publish the PR on behalf of the DV, however this created ambiguity and allowed the possibility that an
293+
SRP might publish an SFR without the DV's blessing. The DV, at their discretion, may elect to delay the publication, or not to publish at all and
294+
forgo OCP SAFE endorsement.
285295
* **Signed Git Commits**\
286-
The OCP GitHub repository is configured to require all commits to be signed. Please remember this when preparing the submission.
296+
The OCP GitHub repository is configured to require all commits to be [signed](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits). Please remember this when preparing the submission (use [--amend --signoff](https://stackoverflow.com/a/15667644) if you forget).
297+
* **SRF Pull Request Path**\
298+
The signed SFRs are published to the location Reports/$Vendor/$Year/$Product. As a convenience,
299+
the submission may choose to additionally include the human-readable SFR documents.
300+
* **SRP Public Key Pull Request Path**\
301+
The public signing key of each SRP is published to the location SRP_certificates/$SRP. These are to be published and maintained by
302+
the SRP, and may be revoked by the TAC (see [Disqualification](#Disqualification) above).
287303

288-
* **Pull Request Path**\
289-
The location of the signed SFRs and signing public key should be in Reports/$Vendor/$Year/$Product. As a convience,
290-
the submission may choose to additionally include the human-readable JSON documents.
291-
292-
293304

294305
In addition to the short-form report, the SRP should deliver to the DV a detailed report. This report will likely be
295306
protected by NDA and will not be published. The DV should address the findings in the report. The DV is encouraged to
@@ -315,11 +326,6 @@ use the findings in the report to improve design, engineering, build, and test p
315326

316327
Several SRP sample reports can be found in [Appendix A](#appendix-a-example-reports).
317328

318-
* **Embargos** \
319-
If the SRP identifies vulnerabilities that might need a significant amount of time to fix or mitigate, the DV may opt
320-
to embargo the report until such a time as the issues have been resolved. Note that the DV may, at their discretion,
321-
share the findings from an embargoed report directly with their CSP customers under NDA.
322-
323329
# Appendix A: Example Reports
324330

325331
* Atredis Partners - [Sample Deliverables](https://www.atredis.com/sample-deliverables)

shortform_report-main/.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
file_hashes.txt
2+
testkey_ecdsa_p521.pub
3+
testkey_p521.pem
4+
__pycache__
5+
*.cbor
6+
*.jws
7+
*.json

shortform_report-main/AUDITOR_GUIDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ CBOR is a binary format that is not human-readable in its raw form. While CBOR i
2121
# Inspect a CoRIM file
2222
python cbor_human_inspector.py my_security_review.cbor
2323

24-
# Show raw CBOR data in addition to decoded structure
24+
# Show raw CBOR data in addition to decoded structure (currently only supports unsigned CoRIM)
2525
python cbor_human_inspector.py my_security_review.cbor --show-raw
2626
```
2727

0 commit comments

Comments
 (0)