Repository navigation
Conversation
Adds two missing documents required for the OpenSSF Best Practices Silver badge (bestpractices.dev project 13618): - CODE_OF_CONDUCT.md: Contributor Covenant v2.1, covers the code_of_conduct Silver criterion - SECURITY.md: vulnerability reporting process, response timeline, supported versions, and security scope; covers vulnerability_report_process and vulnerability_response_process All other Silver criteria (DCO, Dependabot, coverage enforcement, ruff strict, CodeQL, SBOM) are already implemented in CI and can be marked Met on bestpractices.dev by the badge owner without additional code changes. Closes part of #342. See also #199. Signed-off-by: Tanvir Farhad <tamimtarafder12@gmail.com>
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.OpenSSF Scorecard
Scanned Files
|
|
@Vishnu2707 CI is all green on this one. Two docs only, no code changes. After this merges, next step is for you to log into https://www.bestpractices.dev/en/projects/13618/silver and mark these criteria as Met:
That should push silver from ~13% to ~75-80% in one session. Can you review and approve this PR? |
ritiksah141
left a comment
There was a problem hiding this comment.
Approving it as part of documentation only
parthrohit22
left a comment
There was a problem hiding this comment.
Thanks @TFT444. Getting the Silver criteria unblocked is worth doing. I checked this against what's already in the repo and against the repo settings, and I'm requesting changes on four points. The first two mean the policy wouldn't work as written.
1. This duplicates policy files that already exist
dev already has .github/SECURITY.md and .github/CODE_OF_CONDUCT.md. GitHub resolves the repository's Code of Conduct to the .github/ copy today (GET /repos/OWASP/openshield/community/profile returns .github/CODE_OF_CONDUCT.md). SUPPORT.md and CONTRIBUTING.md both send reporters to .github/SECURITY.md. Adding root-level copies leaves two diverging policies:
- Which file wins: the Security tab and the community profile keep showing the old
.github/versions. - Where the badge evidence points: the bestpractices.dev evidence would link to the new root files.
- They already disagree: the supported versions (
0.3.xvs "latestmain") and the in-scope components are different.
Please update the .github/ files in place instead of adding new ones at the root.
2. The only reporting channel isn't enabled
Both new files route reports to https://github.com/OWASP/openshield/security/advisories/new. Private vulnerability reporting is off for the repo:
$ gh api repos/OWASP/openshield/private-vulnerability-reporting
{"enabled":false}
With it off, that link doesn't accept reports from outside collaborators. The existing .github/SECURITY.md isn't better: it says "you email the vulnerability privately" but gives no address. So as of today there is no working private channel. @Vishnu2707 needs to enable private vulnerability reporting (Settings → Code security) before this merges. A monitored fallback email in the policy would also help, because the badge criterion is about reporters actually reaching someone.
The Code of Conduct has the same problem: it routes conduct reports through a security advisory. That's the wrong channel even once it's enabled, because conduct reports shouldn't sit in the vulnerability tracker. Please give a named contact or email for enforcement. OWASP's own Code of Conduct and reporting route apply to OWASP projects, so linking to that is probably the simplest answer.
3. The scope section understates the attack surface
"OpenShield is a read-only Azure security posture scanner … it does not modify, remediate, or deploy anything" isn't accurate for this repo:
playbooks/cli/ships remediation scripts that change Azure resources.- There is a REST API with JWT/OIDC auth and role checks.
- The AI endpoints process untrusted finding text (#359).
sentinel/signs and uploads data to Log Analytics.
The new policy also drops the in-scope list that the current .github/SECURITY.md has (API authentication and authorisation, JWT handling, Sentinel HMAC). A reporter reading the new version could reasonably conclude that an auth bypass in api/ is out of scope. Please keep an explicit in-scope list covering api/, scanner/, playbooks/, sentinel/, the dashboard and the website CMS.
Related: "does not store, transmit, or log credentials beyond the running process" is an absolute claim that nobody has audited, and the Sentinel shared key and the GitHub App private key make it hard to stand behind. Scope it to what is verified, or drop it.
4. "Branch protection: required reviews and passing CI before merge" isn't true yet
#344 declares the rulesets, but an admin still has to apply them. Right now:
$ gh api repos/OWASP/openshield/rulesets
[]
Please drop that row or reword it until the rulesets are applied. A security policy that overstates the controls is worse than one that leaves them out.
Minor
- A 48-hour acknowledgement is the same promise the current policy makes. It's fine if someone is actually on rotation; the OpenSSF criterion only requires a response within 14 days, so a target you can keep is better than one you'll miss.
- Point credits at the existing
SECURITY_ACKNOWLEDGEMENTS.mdrather than "release notes".
- Delete root-level SECURITY.md and CODE_OF_CONDUCT.md; GitHub resolves these to .github/ copies, so root files were diverging and ignored - SECURITY.md: add PVR-not-yet-enabled note with email fallback, expand scope section to accurately list api/, playbooks/, sentinel/ and AI endpoints, remove false read-only-only claim, remove unverified branch protection claim, credit reporters via SECURITY_ACKNOWLEDGEMENTS.md - CODE_OF_CONDUCT.md: replace weak 5-line stub with full Contributor Covenant v2.1, fix enforcement contact to use GitHub DM not security advisory channel (wrong channel for conduct reports) Signed-off-by: Tanvir Farhad <tamimtarafder12@gmail.com>
|
Fixed all four blockers from your review:
Please re-review when you get a chance @parthrohit22 |
Signed-off-by: Tanvir Farhad <tamimtarafder12@gmail.com>
|
@parthrohit22 all requested changes are addressed: root-level policy files removed (only |
parthrohit22
left a comment
There was a problem hiding this comment.
Thanks for addressing the previous feedback. I still see two gaps in the security reporting policy that should be resolved before merge:
| | `playbooks/cli/` | Remediation scripts that modify Azure resources when run manually | Command injection, privilege escalation, unsafe Azure mutations | | ||
| | `sentinel/` | Signs and uploads scan data to Azure Log Analytics via HMAC | HMAC signing, credential handling, data integrity | | ||
| | `api/` AI endpoints | Process untrusted finding text through LLM calls | Prompt injection, data leakage | | ||
| | Hardcoded secrets | Anywhere in the codebase | Any real credential committed to the repo | |
There was a problem hiding this comment.
The in-scope list still omits the React dashboard (frontend/) and project website (website/), both of which are code surfaces in this repository. My earlier review explicitly asked for the dashboard and website to be covered. Please list them with relevant examples, or clearly state their intended scope so reporters know whether vulnerabilities there are accepted.
There was a problem hiding this comment.
Fixed in ed61c25 — frontend/ (React dashboard: XSS, CSRF, auth state handling) and website/ (Astro site: XSS, content injection, dependency vulnerabilities) are now listed in the in-scope table.
| > **Note for reporters:** Private vulnerability reporting must be enabled by an | ||
| > organisation owner (Settings > Code security > Private vulnerability reporting) | ||
| > before this link accepts reports from outside collaborators. If the link does | ||
| > not work, email **vishnu.ajith@owasp.org** directly. |
There was a problem hiding this comment.
I verified that GitHub private vulnerability reporting is currently disabled for this repository. Since the policy's fallback email is the only working route for outside reporters, please confirm that this address is monitored for security reports (and that the owner accepts reports there), or enable private vulnerability reporting before publishing this process. Otherwise a reporter may still have no reliable private channel.
There was a problem hiding this comment.
The fallback email (vishnu.ajith@owasp.org) is already documented in the policy as the working route while PVR is disabled. Confirming that the address is actively monitored and enabling PVR are admin actions that require @Vishnu2707 — those are not code changes we can make in this PR. The file does everything it can on our side.
Signed-off-by: Tanvir Farhad <tamimtarafder12@gmail.com>
|
@parthrohit22 both inline comments addressed: |
|
Thanks @TFT444. The structural fixes are all verified: in-place .github/ edits, the corrected scope table including frontend/ and website/, the branch-protection row removed, the CoC enforcement contact, and a faithful Contributor Covenant 2.1 text. Two corrections on my side: the current SECURITY.md did already list vishnu.ajith@owasp.org (since #64), and required reviews are enforced on dev; it's required status checks that are not. |
…discussions reference from CoC Signed-off-by: Tanvir Farhad <tamimtarafder12@gmail.com>
|
@parthrohit22 All three concerns from your last review are now fixed: DCO wording corrected, |
Signed-off-by: Tanvir Farhad <tamimtarafder12@gmail.com>
Signed-off-by: Tanvir Farhad <tamimtarafder12@gmail.com>
Signed-off-by: Tanvir Farhad <tamimtarafder12@gmail.com>
Signed-off-by: Tanvir Farhad <tamimtarafder12@gmail.com>
Signed-off-by: Tanvir Farhad <tamimtarafder12@gmail.com>
|
@ritiksah141 @parthrohit22 could you please re-review the latest head (6223a09)? Security-policy scope and reporting wording are updated. Confirmation of an operational security-reporting channel remains a maintainer gate. The fixes are pushed and all checks are passing on this head (the deployment skip is expected). Please review the updated code and tests, and update your review decision or resolve the relevant conversations when satisfied. |
Summary
Adds two documents required for the OpenSSF Best Practices Silver badge (currently at ~13%).
CODE_OF_CONDUCT.md: Contributor Covenant v2.1. Covers thecode_of_conductSilver criterion.SECURITY.md: Vulnerability reporting process (private advisory, 48h acknowledgement, coordinated disclosure), response timeline, supported versions, and security scope. Coversvulnerability_report_processandvulnerability_response_process.What this unblocks
After this merges, the badge owner (Vishnu) can log into bestpractices.dev and mark these plus all already-implemented criteria as Met:
code_of_conductCODE_OF_CONDUCT.md(this PR)vulnerability_report_processSECURITY.md(this PR)vulnerability_response_processSECURITY.md(this PR)dco.github/workflows/ci.ymldependency_monitoring.github/dependabot.ymlautomated_integration_testingwarnings_strictpyproject.tomlcoding_standards_enforcedci.ymltest_statement_coverage80--cov-fail-under=80in CI test jobgovernanceGOVERNANCE.mdreport_trackerMarking those criteria alone should move silver progress from ~13% to ~75-80%.
No code changes
Documentation only. No scanner rules, API, or CI logic affected.
Closes part of #342. See also #199.