
Open-Source-CSPM für Azure – scannt nach Fehlkonfigurationen und quantenunsicherer Kryptografie, ordnet Befunde CIS/NIST/ISO27001/SOC2 zu und behebt sie mit einem einzigen Befehl
Open-Source-Cloud-Security-Posture-Management (CSPM) für Azure – erkennt Fehlkonfigurationen, ordnet sie CIS / NIST / ISO 27001 / SOC 2 zu, behebt sie mit einem einzigen Befehl und identifiziert kryptografische Assets, die eine quantensichere Migration erfordern.
Website · Dokumentation · Roadmap · Changelog · Security Policy · Discord
Release-Artefakte enthalten SHA-256-Prüfsummen, eine SBOM und identitätsgebundene Provenienz-Attestierungen. Siehe Release-Verifizierung.
Enterprise-Cloud-Sicherheitstools wie Wiz, Prisma Cloud und Microsoft Defender for Cloud kosten 50.000–500.000 $/Jahr.
Startups, KMU, Universitäten und Studierendenteams bleiben mit null Sichtbarkeit auf ihre Azure-Sicherheitslage zurück. Ein fehlkonfigurierter Storage-Blob, ein überprivilegierter Service Principal oder eine offene NSG-Regel können monatelang unentdeckt bleiben.
OpenShield ändert das.
Angreifer sammeln heute verschlüsselten Azure-Datenverkehr, um ihn zu entschlüsseln, sobald Quantencomputer verfügbar werden. Dies wird als Harvest-Now-Decrypt-Later-Angriff bezeichnet und findet genau jetzt statt.
OpenShield scannt Azure nach klassischen kryptografischen Assets, die migriert werden müssen, bevor es zu spät ist:
Die Ergebnisse werden auf NIST FIPS 203 (ML-KEM), FIPS 204 (ML-DSA) und FIPS 205 (SLH-DSA) abgebildet und fließen direkt in die Planung der Post-Quanten-Migration ein.
| Funktion | Beschreibung |
|---|---|
| Fehlkonfigurations-Scanner | Führt 95 Azure-Sicherheitsregeln aus den Bereichen Storage, Netzwerk, Identität, Datenbank, Compute, Key Vault, AKS, Post-Quanten-Kryptografie, Backup, Serverless, Private Endpoint und Supply-Chain-Sicherheitslage aus |
| Compliance-Mapper | Ordnet Ergebnisse CIS Benchmarks, NIST CSF, ISO 27001 und SOC 2 Framework-JSON-Dateien zu |
| Scan-Verlauf-API | Speichert Scans und Ergebnisse in PostgreSQL und stellt Ergebnisse, Score, Scan-Verlauf, Compliance-Lage, Drift und Ressourceninventar über REST bereit |
| Remediation-Playbooks | Jede Regel wird mit einem passenden Azure-CLI-Remediation-Skript ausgeliefert (95 Playbooks) |
| Sicherheits-Dashboard | Vollständiges React-Dashboard, bereitgestellt auf Vercel – Live-Monitoring, Ergebnisse, Compliance, Drift, Priorisierung und KI-Schicht-Ansichten |
| Projekt-Website | Dokumentations- und Referenzseite unter openshield-org.github.io/openshield – Blog, Regelgalerie, Architektur, Evidenz-Leitfäden, Roadmap und Releases |
| Sentinel-Integration | Normalisiert Ergebnisse und überträgt sie über eine benutzerdefinierte Log-Analytics-Tabelle und KQL-Analytics-Regeln in Microsoft Sentinel |
OpenShield hat das OpenSSF Best Practices Passing Badge erreicht und damit 100 % der anwendbaren Kriterien der Passing-Stufe in den Bereichen Projekt-Governance, Änderungskontrolle, Berichterstattung, Qualität, Sicherheit und Codeanalyse erfüllt.
OpenSSF Best Practices – Passing
Der OpenSSF-Status des Projekts ist über den offiziellen OpenSSF-Best-Practices-Projekteintrag öffentlich verifizierbar. OpenShield stärkt seine Engineering-, Sicherheitsgewährleistungs- und Open-Source-Governance-Praktiken kontinuierlich, während es die Kriterien höherer Stufen durchläuft.
Projektrichtlinien und Gewährleistungsnachweise:
flowchart TD
A["React Dashboard\nVercel · Live"]
B["Flask REST API\nJWT · CORS · Blueprints"]
C["Scanner Engine\n95 Python rules"]
D["Azure Subscription\nScanned via Azure SDK + Graph"]
E["Compliance Framework JSON\nCIS · NIST · ISO 27001 · SOC 2"]
F["PostgreSQL Database\nFindings · Scans"]
G["Azure CLI Playbooks\n95 remediation scripts"]
H["sentinel/ingest.py\nNormalise + HMAC upload"]
I["Microsoft Sentinel\nOpenShieldFindings_CL · KQL rules"]
A -->|REST calls| B
B -->|trigger scans| C
B -->|read/write| F
B -->|compliance score| E
C -->|Azure SDK + Graph| D
C -->|findings| F
C -->|scan output JSON| H
G -->|manual fixes| D
H -->|Data Collector API| I
I -->|alerts| A| Dienst | URL |
|---|---|
| Sicherheits-Dashboard (Vercel) | https://openshield-gules.vercel.app |
| REST-API (Render) | https://openshield-api.onrender.com |
| Projekt-Website | https://openshield-org.github.io/openshield/ |
Hinweis: Die API wird auf Render gehostet. Das Dashboard verbindet sich beim Laden automatisch und zeigt Live-Daten aus der PostgreSQL-Datenbank.
[!IMPORTANT] Sicherheitsanforderung: Produktionsbereitstellungen schlagen beim Start fehl, wenn
JWT_SECRETfehlt, auf den unsicheren Standardwert gesetzt oder kürzer als 32 Zeichen ist. Generieren Sie ein starkes Secret mit:python -c "import secrets; print(secrets.token_urlsafe(32))"Setzen Sie
OPENSHIELD_ENV=production(oder verlassen Sie sich auf Renders automatischesRENDER=true), um diese Durchsetzung zu aktivieren. Lokale Entwicklungsläufe ohne diese Signale dürfen den Standardwert mit einer Warnung verwenden.
| Ebene | Technologie | Kosten |
|---|---|---|
| Projekt-Website | Statisches HTML + Tailwind CDN, bereitgestellt auf Vercel | Kostenlos |
| Sicherheits-Dashboard | React + Vite + Tailwind, bereitgestellt auf Vercel | Kostenlos |
| Backend-API | Python + Flask | Kostenlos |
| Datenbank | PostgreSQL | Render managed PostgreSQL |
| Cloud-Scanner | Python + Azure SDK | Kostenlos |
| Remediation | Azure CLI Playbooks | Kostenlos |
| SIEM | Microsoft Sentinel | 90 Tage kostenlose Testversion |
| CI/CD | GitHub Actions | Kostenlos |
| Repo | GitHub | Kostenlos |
openshield/
├── scanner/ # Azure misconfiguration rule engine
│ ├── rules/ # Individual scan rules (contribute here!)
│ ├── engine.py # Core scanning orchestration
│ └── azure_client.py # Azure SDK wrapper
├── compliance/ # Framework mapping engine
│ └── frameworks/ # CIS, NIST, ISO 27001, SOC 2 mappings
├── playbooks/ # Remediation playbooks
│ ├── arm/ # Reserved for future ARM templates
│ ├── terraform/ # Reserved for future Terraform fixes
│ └── cli/ # Azure CLI scripts
├── api/ # Flask REST API
│ ├── routes/
│ └── models/
├── frontend/ # React security dashboard (Vercel)
├── website/ # Project website - docs, blog, rules gallery (Vercel)
├── sentinel/ # Sentinel integration & KQL rules
├── .github/workflows/ # CI checks
├── docs/ # Documentation
├── CONTRIBUTING.md
└── README.md
Backend (Flask-API + Scanner)
# Clone the repo
git clone https://github.com/openshield-org/openshield.git
cd openshield
# Install Python dependencies
pip install -r requirements.txt
# Set your Azure credentials
export AZURE_SUBSCRIPTION_ID=your-subscription-id
export AZURE_CLIENT_ID=your-client-id
export AZURE_CLIENT_SECRET=your-client-secret
export AZURE_TENANT_ID=your-tenant-id
export JWT_SECRET=your-strong-secret # used to protect write endpoints (scan trigger, AI)
export DATABASE_URL=postgresql://openshield:openshield@localhost:5432/openshield
# Create or update the database schema
alembic upgrade head
# Run a scan
python -c "
from scanner.engine import ScanEngine
import json, os
result = ScanEngine(os.environ['AZURE_SUBSCRIPTION_ID']).run_scan()
print(json.dumps(result, indent=2))
"
# Start the API
FLASK_APP=api/app.py flask run
Siehe Datenbankmigrationen für Schemaänderungen und den einmaligen Onboarding-Schritt, der für bestehende Produktionsdatenbanken erforderlich ist.
Lokale Container (Compose)
# Starts PostgreSQL 16, applies migrations, then starts the API, worker, and dashboard
docker compose --profile local up --build
# Database-aware API readiness
curl --fail http://127.0.0.1:8000/ready
Das Profil heißt bewusst local: Seine Datenbank-Zugangsdaten und das JWT-Secret sind reine Entwicklungswerte, die Ports binden an Loopback, und das Dashboard kommuniziert mit http://localhost:8000. Setzen Sie die vier AZURE_*-Variablen in Ihrer Shell, bevor Sie Compose starten, wenn der Worker echte Scans ausführen soll. Stoppen Sie den Stack mit docker compose --profile local down; fügen Sie --volumes nur hinzu, wenn Sie lokale Datenbank- und Frontend-Abhängigkeitsdaten bewusst entfernen möchten.
Frontend (React-Dashboard)
cd frontend
npm install
# Local dev - points at http://localhost:5000 by default
npm run dev
# To develop against the live Render backend:
VITE_API_URL=https://openshield-api.onrender.com npm run dev
Im öffentlichen Demo-Modus ist kein Token erforderlich. Standardmäßig erfordern API-Endpunkte ein JWT, und POST-Endpunkte erfordern immer eines.
Wir freuen uns über Beiträge von Studierenden und Entwicklern aller Erfahrungsstufen.
Möglichkeiten zur Mitarbeit:
Siehe CONTRIBUTING.md für eine vollständige Anleitung, einschließlich der Möglichkeit, Ihre erste Regel in unter 30 Minuten hinzuzufügen.
Mitwirkende werden unten genannt.
MIT – frei nutzbar, veränderbar und weiterverbreitbar.
Entwickelt von Sicherheitsingenieuren und Studierenden, die glauben, dass Cloud-Sicherheitstools für alle zugänglich sein sollten.
OpenShield lernen behandelt:
Live-Lernportal: https://openshieldlearn.netlify.app/learn/ Die vollständige Dokumentation, die Galerie der Sicherheitsregeln, der Architekturleitfaden, der Evidenzleitfaden und der Blog sind auf der Projekt-Website verfügbar:
Die vollständige API-Dokumentation ist unter docs/api-reference.md verfügbar.
Siehe CHANGELOG.md für die vollständige Release-Historie.