pybiorythm

Security Workflows

PyBiorythm implements comprehensive security scanning and compliance workflows throughout the CI/CD pipeline.

Security Lead: Peter Rosemann (dkdndes@gmail.com)

Security Pipeline Overview

graph TD
    A[Code Commit] --> B[Static Analysis]
    B --> C[Dependency Scanning] 
    C --> D[Container Security]
    D --> E[SBOM Generation]
    E --> F[Compliance Reporting]

Workflow Components

1. CodeQL Security Analysis

File: .github/workflows/codeql.yml

- name: Analyze with CodeQL
  uses: github/codeql-action/analyze@v2
  with:
    languages: python

2. Dependency Vulnerability Scanning

Integrated in: .github/workflows/ci.yml (Security job)

Safety Check

uv run safety check --json

Dependabot Integration

3. Static Security Analysis

Tool: Bandit security linter

uv run bandit -r biorythm/ main.py -f json -o bandit-report.json

Checks for:

4. Container Security

File: Docker builds in multiple workflows

Multi-stage Build Security

# Builder stage - contains build tools
FROM python:3.12-slim AS builder

# Production stage - minimal attack surface
FROM python:3.12-slim AS production
USER biorythm  # Non-root execution

Container Scanning

5. SBOM Generation

File: .github/workflows/sbom.yml

BSI TR-03183-2-2 Compliance:

# Generate CycloneDX SBOM
uv run cyclonedx-py requirements requirements-freeze.txt \
  --output-format json \
  --output-file sbom-python.json

Security Metrics & Monitoring

Current Security Posture

Metric Status Target
Critical Vulnerabilities 0 0
High Vulnerabilities 0 0
SBOM Compliance BSI TR-03183-2-2 ✅ Maintained
Container Security Hardened ✅ Non-root + minimal
Dependency Freshness 95%+ ✅ > 90%

Security Gates

Pre-merge Requirements:

Security Incident Response

Vulnerability Response Timeline

Emergency Security Process

# 1. Create security branch
git checkout -b security/CVE-XXXX-XXXXX

# 2. Apply security patch
# (implement fix)

# 3. Security validation
uv run pytest tests/security/
uv run bandit -r biorythm/ main.py
uv run safety check

# 4. Emergency release
git commit -m "security: fix CVE-XXXX-XXXXX"
# Create emergency PR and release

Security Configuration

Branch Protection

Main Branch Security:

Secrets Management

# GitHub Secrets (encrypted)
secrets:
  CODECOV_TOKEN: $
  DOCKER_PASSWORD: $

Security Measures:

Artifact Security

SBOM Retention:

Security Tools Integration

GitHub Security Features

External Tools

Monitoring & Alerts

Security Dashboard

GitHub Security Tab: https://github.com/dkdndes/pybiorythm/security

Alert Channels:

Audit Trail

audit-trail/
├── security-scans/       # Historical scan results
├── sbom-history/        # BSI compliance records  
├── vulnerability-reports/ # Security assessments
└── incident-responses/   # Security event logs

Related: GitHub Actions Blue-Green Deployment Deployment Security