You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rewrite README to cover all v1.1.x features: setup wizard, Docker
local runner, multi-CI platform support, severity thresholds, waiver
CLI, HTML reporting, and updated repository structure.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
FortressCI is a secure-by-default DevSecOps platform blueprint designed to implement "Shift Left" security, automated pipelines, and infrastructure protection. It integrates best-in-class opensource security tools to ensure your code and infrastructure are secure from day one.
3
+
FortressCI is a secure-by-default DevSecOps platform blueprint designed to implement "Shift Left" security, automated pipelines, and infrastructure protection. It integrates best-in-class open-source security tools to ensure your code and infrastructure are secure from day one.
4
4
5
5
> **[View our Roadmap](ROADMAP.md)** for upcoming features and long-term vision.
6
6
7
-
## 🚀 Features
7
+
## Features
8
8
9
9
### Phase 1: Shift Left (Local Development)
10
10
@@ -16,126 +16,234 @@ Catch issues before they are committed.
16
16
17
17
### Phase 2: Automated Pipeline (CI/CD)
18
18
19
-
Automated checks on every push and pull request via GitHub Actions.
19
+
Automated checks on every push and pull request across **6 CI platforms**.
20
20
21
21
-**Secret Scanning**: TruffleHog deep scan on git history.
22
-
-**SAST (Static Application Security Testing)**: [Semgrep](https://semgrep.dev/) scans source code for vulnerabilities (OWASP Top 10).
23
-
-**SCA (Software Composition Analysis)**: [Snyk](https://snyk.io/) checks dependencies for known CVEs.
22
+
-**SAST**: [Semgrep](https://semgrep.dev/) scans source code for vulnerabilities (OWASP Top 10).
23
+
-**SCA**: [Snyk](https://snyk.io/) checks dependencies for known CVEs.
24
+
-**IaC Scanning**: Checkov scans Terraform, CloudFormation, and Kubernetes manifests.
25
+
-**Container Security**: [Trivy](https://github.com/aquasecurity/trivy) scans Docker images for OS and library vulnerabilities.
26
+
-**DAST**: [OWASP ZAP](https://www.zaproxy.org/) baseline scan for runtime attack surface.
27
+
-**Signing**: [Cosign](https://github.com/sigstore/cosign) signs container images with SBOM generation.
24
28
25
29
### Phase 3: Infrastructure Security
26
30
27
-
Secure your infrastructure and containers.
28
-
29
-
-**IaC Scanning**: Checkov scans Terraform, CloudFormation, and Kubernetes manifests.
30
-
-**Container Security**: [Trivy](https://github.com/aquasecurity/trivy) scans Docker images for OS and library vulnerabilities.
- **Require status checks to pass before merging**: Select `Secret Scan`, `SAST`, `SCA`, `IaC Scan`, and `Container Scan`.
104
-
- **Require pull request reviews before merging**.
105
-
- **Do not allow bypassing the above settings**.
143
+
Waivers are stored in `.security/waivers.yml` with required fields: `id`, `scanner`, `severity`, `justification`, `expires_on`, `approved_by`.
106
144
107
-
### 2. Scheduled Scans
145
+
---
146
+
147
+
## HTML Reporting
148
+
149
+
After scans complete, an interactive HTML report is generated with:
108
150
109
-
The pipeline is configured to run a **Baseline Secret Scan** weekly (Sundays at 00:00 UTC). This catches any new vulnerabilities types or historical secrets that might have been added to the scanner rulesets.
- **Findings**: All findings are output as SARIF and will appear in the **GitHub Security > Code Scanning** tab (if GitHub Advanced Security is enabled) or as downloadable Artifacts.
114
-
- **Waivers**: If a finding is a false positive, verify it locally, then add an entry to [.security/waivers.yml](.security/waivers.yml) with a justification and expiry date, and submit it for review.
164
+
## CI/CD Secrets
115
165
116
-
## 🔐 V3: Trust & Runtime Security
166
+
Add these to your CI platform's secret store:
117
167
118
-
### 1. Supply Chain Trust (Cosign)
168
+
| Secret | Required | Purpose |
169
+
|--------|----------|---------|
170
+
|`SNYK_TOKEN`| For SCA scans |[Get token](https://app.snyk.io/account)|
171
+
|`COSIGN_KEY`| For image signing | Generate with `./scripts/generate_keys.sh`|
172
+
|`COSIGN_PASSWORD`| For image signing | Passphrase for Cosign key |
173
+
|`INFRACOST_API_KEY`| For cost estimation |[Get token](https://www.infracost.io/)|
119
174
120
-
We use [Cosign](https://github.com/sigstore/cosign) to sign container images, proving they were built by this trusted pipeline.
175
+
---
121
176
122
-
**Setup:**
177
+
## Tools & Configuration
123
178
124
-
1. Run the helper script locally to generate keys:
125
-
```bash
126
-
./scripts/generate_keys.sh
127
-
```
128
-
2. Add the output of `cosign.key` to GitHub Secrets as `COSIGN_PRIVATE_KEY`.
129
-
3. (Optional) Add `COSIGN_PASSWORD` if you used a passphrase.
179
+
| Tool | Type | Configuration |
180
+
|------|------|---------------|
181
+
|**TruffleHog**| Secrets |`.pre-commit-config.yaml` / CI workflow |
182
+
|**Semgrep**| SAST | CI workflow (auto-config, OWASP Top 10) |
183
+
|**Snyk**| SCA | CI workflow (Node/Python/Go/Java) |
184
+
|**Checkov**| IaC |`.pre-commit-config.yaml` / CI workflow |
185
+
|**Trivy**| Containers | CI workflow |
186
+
|**OWASP ZAP**| DAST | CI workflow (baseline scan) |
187
+
|**Cosign**| Signing | CI workflow (image signing + SBOM) |
130
188
131
-
### 2. Dynamic Analysis (OWASP ZAP)
189
+
---
132
190
133
-
A DAST scan attempts to attack the running application in the CI environment.
191
+
## Repository Structure
134
192
135
-
- **Job**: `dast-scan`
136
-
- **Tools**: OWASP ZAP Baseline Scan.
137
-
- **Artifacts**: HTML Report attached to the workflow run.
Enable [Branch Protection Rules](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule) on `main`:
231
+
232
+
- Require status checks to pass before merging (select all scan jobs).
233
+
- Require pull request reviews before merging.
234
+
- Do not allow bypassing the above settings.
235
+
236
+
### Scheduled Scans
237
+
238
+
The GitHub Actions pipeline runs a baseline secret scan weekly (Sundays at 00:00 UTC) to catch newly-identified vulnerability patterns.
239
+
240
+
### Incident Triage
241
+
242
+
-**Findings**: All SARIF results appear in GitHub's **Security > Code Scanning** tab (if Advanced Security is enabled) or as downloadable artifacts.
243
+
-**Waivers**: For false positives, use the waiver CLI to document the exception with a justification and expiry date.
244
+
245
+
---
138
246
139
-
## 🤝 Contributing
247
+
## Contributing
140
248
141
-
This is a blueprint repository. Fork it and adapt the `devsecops.yml` to fit your specific build requirements (e.g., usually you would build your application before running the container scan).
249
+
This is a blueprint repository. Fork it and adapt to your needs. Changes to scan logic should be reflected across all 6 CI platform templates.
0 commit comments