
CSPM مفتوح المصدر لـ Azure - افحص بحثًا عن الأخطاء في الإعدادات والتشفير غير الآمن كميًا، واربط النتائج بمعايير CIS/NIST/ISO27001/SOC2، وأصلحها بأمر واحد
إدارة وضع الأمان السحابي مفتوحة المصدر (CSPM) لـ Azure — اكتشف حالات الضبط الخاطئ، واربطها بمعايير CIS / NIST / ISO 27001 / SOC 2، وعالجها بأمر واحد، وحدد الأصول التشفيرية التي تحتاج إلى ترحيل آمن كمومياً.
الموقع الإلكتروني · التوثيق · خارطة الطريق · سجل التغييرات · سياسة الأمان · Discord
تتضمن مخرجات الإصدار مجاميع تحقق SHA-256، وSBOM، وإثباتات منشأ مرتبطة بالهوية. راجع التحقق من الإصدار.
أدوات أمان السحابة للمؤسسات مثل Wiz وPrisma Cloud وMicrosoft Defender for Cloud تكلف 50,000–500,000 دولار سنوياً.
الشركات الناشئة، والشركات الصغيرة والمتوسطة، والجامعات، وفرق الطلاب تُترك بـانعدام تام للرؤية في وضعهم الأمني على Azure. قد يبقى blob تخزين مضبوط بشكل خاطئ، أو service principal مفرط الصلاحيات، أو قاعدة NSG مفتوحة دون اكتشاف لأشهر.
OpenShield يغيّر ذلك.
يجمع المهاجمون حركة مرور Azure المشفرة اليوم لفك تشفيرها عندما تصبح الحواسيب الكمية متاحة. يُسمى هذا هجوم الحصاد الآن والفك لاحقاً وهو يحدث في هذه اللحظة.
يفحص OpenShield Azure بحثاً عن الأصول التشفيرية الكلاسيكية التي تحتاج إلى ترحيل قبل فوات الأوان:
تُربط النتائج بمعايير NIST FIPS 203 (ML-KEM)، وFIPS 204 (ML-DSA)، وFIPS 205 (SLH-DSA) وتُغذّي مباشرة تخطيط الترحيل ما بعد الكمي.
| الميزة | الوصف |
|---|---|
| ماسح الضبط الخاطئ | يشغّل 95 قاعدة أمان Azure عبر التخزين، والشبكة، والهوية، وقواعد البيانات، والحوسبة، وKey Vault، وAKS، والتشفير ما بعد الكمي، والنسخ الاحتياطي، وserverless، ونقاط النهاية الخاصة، ووضع سلسلة التوريد |
| مُخطِّط الامتثال | يربط النتائج بملفات JSON لإطارات CIS Benchmarks، وNIST CSF، وISO 27001، وSOC 2 |
| واجهة سجل الفحص | يخزّن الفحوصات والنتائج في PostgreSQL ويكشف النتائج، والدرجة، وسجل الفحص، ووضع الامتثال، والانحراف، وجرد الموارد عبر REST |
| دليل المعالجة | كل قاعدة تأتي مع سكربت معالجة Azure CLI مطابق (95 دليلاً) |
| لوحة تحكم الأمان | لوحة تحكم React كاملة منشورة على Vercel — مراقبة مباشرة، ونتائج، وامتثال، وانحراف، وترتيب أولويات، وعروض طبقة الذكاء الاصطناعي |
| موقع المشروع | موقع توثيق ومرجعي على openshield-org.github.io/openshield — مدونة، ومعرض القواعد، والبنية المعمارية، وأدلة الأدلة، وخارطة الطريق، والإصدارات |
| تكامل Sentinel | يوحّد النتائج ويدفعها إلى Microsoft Sentinel عبر جدول مخصص في Log Analytics وقواعد تحليلات KQL |
حصل OpenShield على شارة اجتياز OpenSSF Best Practices، مكملاً 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| الخدمة | الرابط |
|---|---|
| لوحة تحكم الأمان (Vercel) | https://openshield-gules.vercel.app |
| واجهة REST API (Render) | https://openshield-api.onrender.com |
| موقع المشروع | https://openshield-org.github.io/openshield/ |
ملاحظة: الواجهة البرمجية مستضافة على Render. تتصل لوحة التحكم تلقائياً عند التحميل وتعرض بيانات مباشرة من قاعدة بيانات PostgreSQL.
[!IMPORTANT] متطلب أمني: تفشل عمليات النشر الإنتاجية عند بدء التشغيل إذا كان
JWT_SECRETمفقوداً، أو مضبوطاً على القيمة الافتراضية غير الآمنة، أو أقصر من 32 حرفاً. أنشئ سراً قوياً باستخدام:python -c "import secrets; print(secrets.token_urlsafe(32))"اضبط
OPENSHIELD_ENV=production(أو اعتمد علىRENDER=trueالتلقائي من Render) لتفعيل هذا الفرض. يُسمح لتشغيلات التطوير المحلية بدون هذه الإشارات باستخدام القيمة الافتراضية مع تحذير.
| الطبقة | التقنية | التكلفة |
|---|---|---|
| موقع المشروع | HTML ثابت + Tailwind CDN، منشور على Vercel | مجاني |
| لوحة تحكم الأمان | React + Vite + Tailwind، منشورة على Vercel | مجاني |
| الواجهة الخلفية | Python + Flask | مجاني |
| قاعدة البيانات | PostgreSQL | PostgreSQL المُدار من Render |
| ماسح السحابة | 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 + 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
راجع ترحيلات قاعدة البيانات لتغييرات المخطط وخطوة الإعداد لمرة واحدة المطلوبة لقواعد البيانات الإنتاجية الموجودة.
الحاويات المحلية (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 فيه قيم تطويرية فقط، والمنافذ مرتبطة بواجهة loopback، وتتصل لوحة التحكم بـ http://localhost:8000. اضبط متغيرات AZURE_* الأربعة في shell قبل بدء Compose إذا أردت أن ينفّذ worker فحوصات حقيقية. أوقف الحزمة بـ 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 دائماً واحداً.
نرحّب بنشاط بمساهمات الطلاب والمطورين على جميع المستويات.
طرق المساهمة:
راجع CONTRIBUTING.md للحصول على دليل كامل، بما في ذلك كيفية إضافة قاعدتك الأولى في أقل من 30 دقيقة.
يُذكر المساهمون أدناه.
MIT — حر للاستخدام والتعديل والتوزيع.
بُني بواسطة مهندسي أمان وطلاب يؤمنون بأن أدوات أمان السحابة يجب أن تكون متاحة للجميع.
يغطي تعلّم OpenShield:
بوابة التعلّم المباشرة: https://openshieldlearn.netlify.app/learn/ التوثيق الكامل، ومعرض قواعد الأمان، ودليل البنية المعمارية، ودليل الأدلة، والمدونة متاحة على موقع المشروع:
التوثيق الكامل لـ API متاح في docs/api-reference.md.
راجع CHANGELOG.md للحصول على سجل الإصدارات الكامل.