Appearance
Contributing to SBS
Thank you for your interest in contributing to the Security Benchmark for Salesforce (SBS)! Community contributions help make SBS more comprehensive, accurate, and valuable for the entire Salesforce security ecosystem.
Ways to Contribute
1. Propose New Controls
If you've identified a security gap not covered by existing controls, you can propose a new control. New controls should:
- Address a genuine security risk in Salesforce environments
- Be auditable and enforceable
- Include clear pass/fail criteria
- Not duplicate existing controls
- Apply broadly across organizations (not be org-specific edge cases)
2. Improve Existing Controls
You can submit improvements to existing controls, including:
- Clarifying control language
- Enhancing audit procedures
- Adding remediation steps
- Updating references
- Fixing technical inaccuracies
3. Report Issues
If you find problems with SBS but aren't ready to submit a PR, please open an issue describing:
- Which control is affected
- What the problem is
- Suggested improvement (if applicable)
4. Fix Documentation Errors
Typos, formatting issues, broken links, and outdated information are always welcome fixes.
How to Submit a Contribution
Step 1: Fork and Branch
- Fork the SBS repository https://github.com/Salesforce-Security-Benchmark/docs-site
- Create a new branch:
git checkout -b feature/control-xyzorgit checkout -b fix/control-abc
Step 2: Make Your Changes
For new controls:
Create a markdown file in the appropriate benchmark/ category (or propose a new category) following the existing format:
markdown
### SBS-CATEGORY-###: Control Title
**Control Statement:** One-sentence requirement.
**Description:**
Detailed explanation of what organizations must do.
**Rationale:**
Why this control exists and what risk it mitigates.
**Audit Procedure:**
1. Step-by-step instructions for evaluating compliance
2. Specific queries, settings, or artifacts to check
3. Clear pass/fail criteria
**Remediation:**
1. Step-by-step instructions to achieve compliance
2. Configuration changes needed
3. Process improvements required
**Default Value:**
Salesforce's out-of-the-box behavior related to this control.
**References:**
- Relevant Salesforce documentation
- Industry standards (NIST, CIS, OWASP, etc.)
- Compliance frameworks (GDPR, HIPAA, etc.)For existing control changes:
Edit the markdown file and clearly describe what you changed and why in your PR.
Step 3: Update Controls At-a-Glance
If you're adding a new control, add the control statement to controls-at-a-glance.md in the appropriate category and update the total control count.
Step 4: Test Locally
Run the XML generation script to ensure your changes don't break parsing:
bash
python3 scripts/generate_xml.pyStep 5: Submit Pull Request
- Push your branch to your fork
- Open a PR against the main SBS repository
- Provide a clear description of:
- What you're changing and why
- What security gap this addresses (for new controls)
- Any breaking changes or impacts on existing controls
Step 6: Review Process
- PRs will be reviewed by SBS maintainers
- Feedback may be provided for revisions
- Discussion may occur in PR comments
- Approved PRs will be merged into the next release
Contribution Standards
Control Quality Requirements
All controls must meet these standards:
Binary and Auditable
- Controls must have clear pass/fail criteria
- Must be objectively verifiable
- Should not be subjective or open to interpretation
Practical and Enforceable
- Organizations must be able to reasonably implement the control
- Should not require unrealistic resources or capabilities
- Must not depend on Salesforce features that don't exist
Broadly Applicable
- Controls should apply to most Salesforce orgs
- Should address common security patterns, not edge cases
- Must not be specific to a particular industry unless clearly scoped
Well-Documented
- Clear rationale explaining the security benefit
- Detailed audit procedures that an auditor can follow
- Specific remediation steps
- References to authoritative sources
Writing Style
- Use clear, professional language
- Be prescriptive, not suggestive ("must" not "should consider")
- Use active voice
- Be concise but complete
- Follow the existing tone and format
Contributor Agreement
By submitting a contribution to SBS, you agree that:
- You have the right to submit the contribution — You either created the content yourself or have permission to contribute it
- Your contribution is licensed under CC BY-SA 4.0 — The same license as the rest of SBS
- You grant SBS maintainers permission to include your work — As part of the canonical SBS standard
- You understand SBS is a community standard — Not owned by any single entity or company
This is not a formal CLA (Contributor License Agreement), but a statement of good faith that protects both contributors and the SBS project.
Recognition
Contributors will be acknowledged in:
- The
about.mdpage (for significant contributions) - Git commit history (for all contributions)
- Release notes (when contributions are included in a version)
Questions?
If you have questions about contributing, please:
- Open an issue for discussion
- Review existing controls to understand the format
- Read the full SBS documentation at the website
Thank you for helping make Salesforce environments more secure!