Status: β
Production Ready
Last Updated: 2024-01-15
Maintained By: DevSecOps Team
Complete integrated security scanning solution for Ethereum (Solidity) and Soroban (Rust) smart contracts with automated CI/CD workflows, comprehensive documentation, and standardized false positive handling.
Automatically scans every pull request for security vulnerabilities across three dimensions:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Every PR to main/develop branch β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β Slither Analysis β Static Solidity scanning β
β β Cargo Audit β Vulnerable Rust deps β
β β Clippy β Code quality + safety β
β β Manual Checklist β Human security review β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Blocks on: High & Medium severity findings β
β Logs & uploads to GitHub Security tab β
β Posts results as PR comment β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
.github/workflows/
βββ slither.yml β Ethereum static analysis
βββ rust-security.yml β Rust dependency audit
βββ README.md β Workflow documentation
slither.config.json β Slither settings & exclusions
docs/
βββ SECURITY_QUICK_REFERENCE.md β START HERE! (5 min read)
βββ IMPLEMENTATION_SUMMARY.md β Overview & setup guide
βββ SECURITY_SCANNING_GUIDE.md β What, how, troubleshooting
βββ SECURITY_CHECKLIST.md β Manual review checklist
βββ FALSE_POSITIVE_HANDLING.md β Triage & audit trail
βββ ROLLOUT_TRAINING_PLAN.md β Team rollout schedule
βββ architecture.md β Project architecture
.github/PULL_REQUEST_TEMPLATE.md β PR template with security checks
.github/CODEOWNERS β (Optional) Code ownership
contracts/.false-positives.md β False positive registry
contracts/vault/tests/security_tests.rs β Security test examples
verify-security-setup.sh β Setup verification script
SECURITY_QUICK_REFERENCE.md β One-page cheat sheet
-
Install Tools
pip install slither-analyzer cargo install cargo-audit rustup component add clippy
-
Read Quick Reference
- Open:
SECURITY_QUICK_REFERENCE.md - Time: 5 minutes
- Open:
-
Run Verification
bash verify-security-setup.sh
-
You're Ready!
- Next PR you create will run security scans automatically
- Review:
docs/IMPLEMENTATION_SUMMARY.md(10 min) - Follow:
docs/ROLLOUT_TRAINING_PLAN.md(2 weeks) - Train team using provided agendas and materials
- Configure GitHub branch protection (see IMPLEMENTATION_SUMMARY.md)
- Verify workflows run on first test PR
- Monitor SARIF uploads to Security tab
| Goal | Document | Time |
|---|---|---|
| Get started quickly | SECURITY_QUICK_REFERENCE.md |
5 min |
| Understand the setup | docs/IMPLEMENTATION_SUMMARY.md |
20 min |
| Use security tools | docs/SECURITY_SCANNING_GUIDE.md |
30 min |
| Review code for security | docs/SECURITY_CHECKLIST.md |
15 min |
| Handle false positives | docs/FALSE_POSITIVE_HANDLING.md |
30 min |
| Set up with team | docs/ROLLOUT_TRAINING_PLAN.md |
2 hours |
| Troubleshoot issues | docs/SECURITY_SCANNING_GUIDE.md |
10 min |
| Understand files | .github/workflows/README.md |
5 min |
- Runs on every PR automatically
- No manual trigger needed
- Results posted in GitHub interface
- Reentrancy attacks (Solidity)
- Access control violations (Auth)
- Integer over/underflow (Arithmetic)
- Unchecked returns (External calls)
- Vulnerable dependencies (Supply chain)
- Code quality issues (Maintainability)
- Blocks build: High & Medium only
- Logs: Low, Info (no blocking)
- Customizable: Adjust in
slither.config.json
- Standardized false positive process
- Maintains audit trail
- Test coverage verification
- Security team approval workflow
- Setup guides with examples
- Troubleshooting section
- Team training plan
- Quick reference cheat sheet
- Sample test patterns in
contracts/vault/tests/security_tests.rs - Best practices documented
- Copy-paste ready templates
β
On PRβΆmain/develop runs:
ββ Reentrancy patterns
ββ Unchecked returns
ββ Access control gaps
ββ Overflow/underflow risks
ββ Delegatecall abuse
ββ Dangerous patterns (tx.origin, assembly)
ββ Uninitialized state
ββ Many other detectors...
βοΈ Configuration: slither.config.json
β
On PRβΆmain/develop runs:
ββ Vulnerable dependencies
ββ Code quality (clippy)
ββ Unsafe code blocks
ββ Supply chain verification
ββ Type safety checks
βοΈ Configuration: Cargo.toml + clippy.toml
β
Every PR uses checklist for:
ββ Reentrancy review
ββ Access control verification
ββ Overflow/underflow checking
ββ Unchecked return analysis
ββ Delegation pattern review
ββ Business logic security
βοΈ Template: .github/PULL_REQUEST_TEMPLATE.md
Developer Creates PR
β
βββββββββββββββββββββΌββββββββββββββββββββ
β β β
Slither runs Cargo audit runs Manual review
β β β
Analysis Dependency check Checklist use
β β β
βββββββββββββββββββββΌββββββββββββββββββββ
β
Results β GitHub
β
βββββββββ΄βββββββββ
β β
High/Med Findings? Only Low/Info?
β β
π΄ Build Fails β
Build Passes
β β
Fix Issue Continue with
or Document Code Review
as False Pos
β
Update PR
β
Re-run Workflow
β
If approved: Merge
Follow: docs/ROLLOUT_TRAINING_PLAN.md
- Week 1: Setup & kickoff
- Week 2: Hands-on training
- Week 3: Shadow & support
- Read:
SECURITY_QUICK_REFERENCE.md(5 min) - Install: Tools (5 min)
- Run: Verification script (2 min)
- Ask: Questions in Slack if confused
See: docs/FALSE_POSITIVE_HANDLING.md
- Full audit trail of all decisions
- Test coverage verification
- Approval workflow documented
# Run security scans locally
cargo audit # Check dependencies
cargo clippy --all-targets # Check code quality
slither . --config-file slither.config.json # Check Solidity (if exists)
# Use security checklist from docs/SECURITY_CHECKLIST.md
# If flagged: Fix or document as false positiveOption 1: Fix It
# Make security improvement
cargo clippy --fix
# or fix manually
git add .
git commit -m "Fix security issue"
git push
# Workflows run againOption 2: Document as False Positive
- Follow:
docs/FALSE_POSITIVE_HANDLING.md - Add entry to:
contracts/.false-positives.md - Get security team approval in PR
- GitHub Actions dashboard: Check for failed security scans
- PR comments: Review security findings posted
- Security channel: Review findings and patterns
- Dependency updates:
cargo update - Audit advisories:
cargo audit
- Full configuration review
- Process improvements
- Threat model updates
{
"exclude": ["naming-convention", "solc-version"],
"filter_paths": ["node_modules", "test"],
"fail_on": "high"
}- Excludes style issues (low priority)
- Ignores test and dependency paths
- Only fails build on High severity
on:
pull_request:
branches: [main, develop]- Triggers on PR to main/develop
- Uploads SARIF to Security tab
- Posts results as PR comment
- Includes security checklist
- Links to documentation
- Enforces manual review
- Check GitHub Actions details
- Review security findings in SARIF
- Consult
docs/SECURITY_SCANNING_GUIDE.md#troubleshooting
- See:
docs/SECURITY_SCANNING_GUIDE.md#local-setup - Or ask in #security-scanning Slack channel
- Document in:
contracts/.false-positives.md - Follow:
docs/FALSE_POSITIVE_HANDLING.md - Get security team approval
- Reference:
SECURITY_QUICK_REFERENCE.md - Or contact: @security-team or @devops-team
#security-scanningβ General questions@security-teamβ False positive approval@devops-teamβ Workflow issues
- Issues: Check relevant documentation file
- Setup: See
docs/SECURITY_SCANNING_GUIDE.md - Process: See
docs/FALSE_POSITIVE_HANDLING.md
- Try local resolution (tools, docs)
- Ask in Slack channel
- Tag relevant team if urgent
- Escalate to security lead if critical
Before your team uses this:
- All files committed to repository
- Workflows tested and running
- Documentation reviewed by tech lead
- Team trained (see
docs/ROLLOUT_TRAINING_PLAN.md) - GitHub branch protection configured
- Slack channel created/announced
- First test PR runs successfully
-
Today:
- Review
SECURITY_QUICK_REFERENCE.md - Run verification script
- Review
-
This Week:
- Team kickoff meeting (use
docs/ROLLOUT_TRAINING_PLAN.md) - Install tools locally
- Team kickoff meeting (use
-
Next Week:
- Create test PR to verify workflows
- Hands-on training sessions
- Address initial questions
-
Following Week:
- First 3-5 real PRs through process
- Team retrospective
- Process refinements
| File | Purpose | Audience |
|---|---|---|
SECURITY_QUICK_REFERENCE.md |
One-page cheat sheet | All developers |
docs/IMPLEMENTATION_SUMMARY.md |
Complete overview | Tech leads |
docs/SECURITY_SCANNING_GUIDE.md |
Detailed guide | All developers |
docs/SECURITY_CHECKLIST.md |
Manual review | Code reviewers |
docs/FALSE_POSITIVE_HANDLING.md |
Triage process | Security team |
docs/ROLLOUT_TRAINING_PLAN.md |
Training schedule | Team leads |
.github/workflows/README.md |
Workflow docs | DevOps team |
slither.config.json |
Slither config | DevOps/Security |
verify-security-setup.sh |
Setup verification | All developers |
contracts/.false-positives.md |
FP registry | Security team |
- β 100% of PRs run security scans
- β <1 false positive per PR on average
- β 0 workflow failures or confusion
- β Team comfortable with process
- β All findings properly triaged
Catch 80% of common smart contract vulnerabilities automatically, before they reach production. Make security reviews predictable and efficient. Keep an audit trail forever.
π Ready to get started? β Open SECURITY_QUICK_REFERENCE.md
π Questions? β See Documentation Map above or check specific guides
π Security first! β Every line of code matters
Setup Date: 2024-01-15
Version: 1.0
Maintained By: DevSecOps Team
Last Review: 2024-01-15