
Azure向けのオープンソースCSPM - 設定ミスや量子安全でない暗号化をスキャンし、検出結果をCIS/NIST/ISO27001/SOC2にマッピングし、1つのコマンドで修正します
リリース成果物にはSHA-256チェックサム、SBOM、およびIDに紐づく 来歴証明が含まれます。リリース検証を参照してください。
Wiz、Prisma Cloud、Microsoft Defender for Cloudのようなエンタープライズクラウドセキュリティツールは、年間5万〜50万ドルのコストがかかります。
スタートアップ、中小企業、大学、学生チームは、Azureセキュリティ態勢に対する可視性がゼロのまま取り残されています。設定ミスのあるストレージBLOB、過剰な権限を持つサービスプリンシパル、あるいは開放されたNSGルールが、何ヶ月も検出されずに放置される可能性があります。
OpenShieldがそれを変えます。
攻撃者は、量子コンピュータが利用可能になったときに復号するために、今日の暗号化されたAzureトラフィックを収集しています。これはHarvest Now Decrypt Later攻撃と呼ばれ、まさに今起きています。
OpenShieldは、手遅れになる前に移行が必要な古典的暗号資産をAzureでスキャンします:
検出結果はNIST FIPS 203 (ML-KEM)、FIPS 204 (ML-DSA)、FIPS 205 (SLH-DSA)にマッピングされ、耐量子移行計画に直接反映されます。
| 機能 | 説明 |
|---|---|
| 設定ミススキャナー | ストレージ、ネットワーク、ID、データベース、コンピューティング、Key Vault、AKS、耐量子暗号、バックアップ、サーバーレス、プライベートエンドポイント、サプライチェーン態勢にわたる95のAzureセキュリティルールを実行 |
| コンプライアンスマッパー | 検出結果をCIS Benchmarks、NIST CSF、ISO 27001、SOC 2フレームワークJSONファイルにマッピング |
| スキャン履歴API | スキャンと検出結果をPostgreSQLに保存し、検出結果、スコア、スキャン履歴、コンプライアンス態勢、ドリフト、リソースインベントリをREST経由で公開 |
| 修復プレイブック | すべてのルールに対応するAzure CLI修復スクリプトを同梱(95プレイブック) |
| セキュリティダッシュボード | Vercelにデプロイされた完全なReactダッシュボード — ライブ監視、検出結果、コンプライアンス、ドリフト、優先順位付け、AIレイヤービュー |
| プロジェクトウェブサイト | openshield-org.github.io/openshieldのドキュメントおよびリファレンスサイト — ブログ、ルールギャラリー、アーキテクチャ、エビデンスガイド、ロードマップ、リリース |
| Sentinel統合 | 検出結果を正規化し、Log AnalyticsカスタムテーブルとKQL分析ルールを介してMicrosoft Sentinelにプッシュ |
OpenShieldはOpenSSF Best Practices Passing Badgeを取得し、プロジェクトガバナンス、変更管理、報告、品質、セキュリティ、コード分析にわたる該当するPassingレベルの基準を100%達成しました。
OpenSSF Best Practices - Passing
プロジェクトのOpenSSFステータスは、公式のOpenSSF Best Practicesプロジェクト記録を通じて公的に検証可能です。OpenShieldは、より高レベルの基準に向けて進む中で、エンジニアリング、セキュリティ保証、オープンソースガバナンスの実践を強化し続けています。
プロジェクトポリシーと保証エビデンス:
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| サービス | URL |
|---|---|
| セキュリティダッシュボード (Vercel) | https://openshield-gules.vercel.app |
| REST API (Render) | https://openshield-api.onrender.com |
| プロジェクトウェブサイト | https://openshield-org.github.io/openshield/ |
注記: APIはRenderでホストされています。ダッシュボードは読み込み時に自動的に接続し、PostgreSQLデータベースからライブデータを表示します。
[!IMPORTANT] セキュリティ要件: 本番環境のデプロイは、
JWT_SECRETが欠落しているか、安全でないデフォルト値に設定されているか、32文字未満の場合、起動時に失敗します。強力なシークレットを生成するには:python -c "import secrets; print(secrets.token_urlsafe(32))"この強制を有効にするには
OPENSHIELD_ENV=productionを設定します(またはRenderの自動RENDER=trueに依存します)。これらのシグナルなしで実行されるローカル開発では、警告付きでデフォルトの使用が許可されます。
| レイヤー | テクノロジー | コスト |
|---|---|---|
| プロジェクトウェブサイト | 静的HTML + Tailwind CDN、Vercelにデプロイ | 無料 |
| セキュリティダッシュボード | React + Vite + Tailwind、Vercelにデプロイ | 無料 |
| バックエンドAPI | Python + Flask | 無料 |
| データベース | PostgreSQL | RenderマネージドPostgreSQL |
| クラウドスキャナー | Python + Azure SDK | 無料 |
| 修復 | Azure CLIプレイブック | 無料 |
| SIEM | Microsoft Sentinel | 90日間無料トライアル |
| CI/CD | GitHub Actions | 無料 |
| リポジトリ | GitHub | 無料 |
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
バックエンド (Flask API + スキャナー)
# 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
スキーマ変更と、既存の本番データベースに必要な1回限りの オンボーディング手順については、データベースマイグレーションを参照してください。
ローカルコンテナ (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
このプロファイルは意図的にlocalと名付けられています。そのデータベース認証情報とJWTシークレットは開発専用の値であり、ポートはループバックにバインドされ、ダッシュボードはhttp://localhost:8000と通信します。ワーカーに実際のスキャンを実行させたい場合は、Composeを起動する前にシェルで4つのAZURE_*変数を設定してください。スタックを停止するにはdocker compose --profile local downを実行します。ローカルのデータベースとフロントエンド依存関係のデータを意図的に削除したい場合にのみ--volumesを追加してください。
フロントエンド (Reactダッシュボード)
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
パブリックデモモードではトークンは不要です。デフォルトでは、APIエンドポイントはJWTを必要とし、POSTエンドポイントは常にJWTを必要とします。
私たちは、あらゆるレベルの学生や開発者からのコントリビューションを積極的に歓迎します。
コントリビューションの方法:
最初のルールを30分以内に追加する方法を含む完全なガイドについては、CONTRIBUTING.mdを参照してください。
コントリビューターは以下にクレジットされています。
MIT — 自由に使用、変更、配布できます。
クラウドセキュリティツールは誰もが利用できるべきだと信じるセキュリティエンジニアと学生によって構築されました。
OpenShieldを学ぶでは以下を扱います:
ライブラーニングポータル: https://openshieldlearn.netlify.app/learn/ 完全なドキュメント、セキュリティルールギャラリー、アーキテクチャガイド、エビデンスガイド、ブログはプロジェクトウェブサイトで利用可能です:
完全なAPIドキュメントはdocs/api-reference.mdで利用可能です。
完全なリリース履歴についてはCHANGELOG.mdを参照してください。