SECURITY REVIEW
Not yet assessed
Review the original instructions and requested permissions before installing.
No security review is available for this catalog entry yet.
CI/CD pipeline security, supply chain security, SLSA compliance, artifact signing, dependency scanning
Review the original instructions and requested permissions before installing.
No security review is available for this catalog entry yet.
How clearly the skill guides your agent, how complete its workflow is, and how you can check the outcome.
No quality assessment is available for this catalog entry yet.
Original instructions from the publisher’s SKILL.md
# CI/CD Security Skill
## Purpose
Secure the CIA platform's CI/CD pipelines against supply chain attacks, ensure artifact integrity, and maintain compliance with SLSA (Supply-chain Levels for Software Artifacts) requirements. Covers GitHub Actions hardening, dependency scanning, and build provenance.
## When to Use
- ✅ Creating or modifying GitHub Actions workflows
- ✅ Adding new dependencies to the project
- ✅ Configuring build artifact signing or attestation
- ✅ Reviewing pipeline security posture
- ✅ Implementing dependency update policies
Do NOT use for:
- ❌ Application-level security (use secure-code-review skill)
- ❌ Infrastructure security (use threat-modeling skill)
## GitHub Actions Security Hardening
### Workflow Permissions
```yaml
# Always use minimum required permissions
permissions:
contents: read
actions: read
security-events: write # Only if needed for CodeQL
# Pin actions to full SHA, not tags
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
with:
distribution: 'temurin'
java-version: '25'
```
### Key Security Rules
1. **Pin all action versions to commit SHAs** — tags can be moved
2. **Use `permissions` at job level** — minimize token scope
3. **Never echo secrets** — use `::add-mask::` for dynamic values
4. **Audit third-party actions** — review source before adopting
5. **Use `CODEOWNERS`** for workflow files — require review for changes
### Secret Management
```yaml
# Good: Use GitHub Secrets
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
# Bad: Never hardcode or log secrets
# run: echo ${{ secrets.TOKEN }} # NEVER DO THIS
```
## Supply Chain Security
### SLSA Compliance Levels
| Level | Requirement | CIA Status |
|-------|-------------|------------|
| SLSA 1 | Build process documented | ✅ GitHub Actions |
| SLSA 2 | Hosted build, signed provenance | ✅ GitHub-hosted runners |
| SLSA 3 | Hardened build, non-falsifiable provenance | 🔄 In progress |
### Dependency Scanning Stack
```yaml
# Multi-layer dependency scanning
- name: OWASP Dependency Check
run: mvn dependency-check:check -DfailBuildOnCVSS=7
- name: GitHub Dependency Review
uses: actions/dependency-review-action@v4
with:
fail-on-severity: high
- name: Dependabot Auto-merge (patch only)
# Configured in .github/dependabot.yml
```
### SBOM Generation
```yaml
- name: Generate SBOM
run: |
mvn org.cyclonedx:cyclonedx-maven-plugin:makeBom
# Output: target/bom.json (CycloneDX format)
- name: Attest SBOM
uses: actions/attest-sbom@v1
with:
subject-path: 'target/*.jar'
sbom-path: 'target/bom.json'
```
## Build Integrity
### Reproducible Builds
```xml
<!-- Maven settings for reproducible builds -->
<properties>
<project.build.outputTimestamp>2024-01-01T00:00:00Z</project.build.outputTimestamp>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
```
### Artifact Attestation
```yaml
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v1
with:
subject-path: 'target/citizen-intelligence-agency-*.war'
```
## Dependency Management Rules
### Adding New Dependencies
1. **Check license compatibility** — must be Apache 2.0 compatible
2. **Run security scan** — `mvn dependency-check:check`
3. **Check GitHub Advisory Database** — use `gh-advisory-database` tool
4. **Verify publisher** — check Maven Central publisher identity
5. **Pin version** — use exact versions, not ranges
6. **Document justification** — explain why the dependency is needed in PR
### Dependency Update Policy
| Update Type | Auto-merge | Review Required |
|-------------|------------|-----------------|
| Patch (x.x.PATCH) | ✅ If tests pass | No |
| Minor (x.MINOR.x) | ❌ | Yes |
| Major (MAJOR.x.x) | ❌ | Yes + security review |
## Runner Security
```yaml
jobs:
build:
runs-on: ubuntu-latest # Use GitHub-hosted runners
# Never use self-hosted runners for public repos without hardening
steps:
- name: Harden Runner
uses: step-security/harden-runner@v2
with:
egress-policy: audit # Monitor outbound connections
```
## Monitoring and Alerts
- **Enable Dependabot alerts** for all ecosystems
- **Enable secret scanning** with push protection
- **Enable code scanning** with CodeQL
- **Review Security tab** weekly for new alerts
- **Monitor OSSF Scorecard** results for security posture
## ISMS Alignment
| Control | Requirement |
|---------|-------------|
| ISO 27001 A.8.25 | Secure development lifecycle |
| ISO 27001 A.8.31 | Separation of dev/test/prod |
| NIST CSF PR.IP-1 | Configuration management |
| CIS Control 16 | Application software security |
| SLSA L2 | Signed provenance, hosted build |