Skip to content

Security: sadlang/s-programming-language

Security

SECURITY.md

بسم الله الرحمن الرحيم

🔒 سياسة الأمان / Security Policy


الإصدارات المدعومة

الإصدار مدعوم أمنياً
1.0.0-beta.1 وما بعده ✅ نعم
أقل من 1.0.0 ❌ لا

نلتزم بتوفير تحديثات أمنية لأحدث إصدار مستقر ولإصدارات Beta النشطة.


الإبلاغ عن ثغرة أمنية

⚠️ لا تُفتح Issue عامة لثغرات أمنية

إذا اكتشفت ثغرة أمنية في لغة ص أو أي من مكوناتها، نرجو الإبلاغ عنها بشكل سري عبر:

  1. البريد الإلكتروني: security@sad-lang.org
  2. GitHub Security Advisories: استخدم الإبلاغ الخاص

ما يجب تضمينه في البلاغ

  • وصف دقيق للثغرة ونوعها
  • خطوات إعادة الإنتاج (ملف أو أمر محدد)
  • التأثير المحتمل (تنفيذ كود، تسريب بيانات، تعطيل خدمة...)
  • المكون المتأثر: (مفسر sad، مترجم sadc، صNet، LSP، مكتبة قياسية...)
  • إصدار لغة ص ونظام التشغيل

التزاماتنا

الخطوة المدة
تأكيد استلام البلاغ 48 ساعة
تقييم أولي للخطورة 7 أيام
إصدار إصلاح للثغرات الحرجة 30 يوماً
إشعار عام بعد الإصلاح مع الإصدار التالي

تصنيف الخطورة

المستوى الوصف مثال
🔴 حرج تنفيذ كود عشوائي، تجاوز حماية ثغرة في المفسر تسمح بتنفيذ أوامر نظام
🟠 عالي تسريب بيانات، تصعيد صلاحيات ثغرة في صNet تسرّب مفاتيح التشفير
🟡 متوسط تعطيل خدمة، استنزاف موارد حلقة لا نهائية في المحلل النحوي
🟢 منخفض تسريب معلومات محدود رسالة خطأ تكشف مسار ملف داخلي

نطاق الأمان

المكونات المشمولة

المكون النطاق ملاحظات
المفسر (sad) ✅ شامل تنفيذ أكواد المستخدمين
المترجم (sadc) ✅ شامل تحويل AST → ملف تنفيذي
صNet (الشبكات) ✅ شامل تشفير AES-256-GCM، X25519، Double Ratchet
خادم LSP ✅ شامل يعالج أكواد غير موثوقة
مدير الحزم (pkg) ✅ شامل تحميل حزم من الشبكة
المكتبة القياسية ✅ شامل عمليات ملفات، شبكات، نظام
الآلة الافتراضية (VM) ✅ شامل تنفيذ بايت كود

خارج النطاق

  • أخطاء منطقية في أكواد المستخدمين (ليست ثغرات في اللغة)
  • مشاكل أداء لا تؤدي إلى تعطيل خدمة
  • ثغرات في SDL2 أو مكتبات طرف ثالث (نبلّغ مشاريعها مباشرة)

ممارسات الأمان في المشروع

التشفير (صNet)

  • AES-256-GCM مع AES-NI hardware acceleration
  • X25519 لتبادل المفاتيح (Curve25519)
  • Double Ratchet للتشفير المتقدم (مشابه لـ Signal Protocol)
  • SHA-256 للتجزئة مع دعم SIMD
  • 199 اختبار وحدة تشمل متجهات NIST SP 800-38D و Wycheproof
  • مقارنة ثوابت الوقت (constant-time) لمنع هجمات التوقيت

أمان الكود

  • C++17 مع RAII لإدارة الموارد
  • فحص حدود المصفوفات في وقت التشغيل
  • فحص UTF-8 إلزامي في CI
  • عزل Goroutines: كل خيط خفيف يعمل بسياق مستقل
  • قنوات آمنة للتزامن عبر mutex داخلي

أمان البناء

  • CI/CD ثلاثي المنصات (Windows + Linux + macOS)
  • فحص ترميز UTF-8 لكل ملف مصدر
  • لا يُقبل أي PR بدون نجاح 100% من الاختبارات

الكشف المسؤول (Responsible Disclosure)

نتبع سياسة الكشف المسؤول:

  1. نُصلح الثغرة قبل الإعلان عنها
  2. ننسب الفضل للمُبلّغ (إلا إذا طلب عدم ذلك)
  3. ننشر تفاصيل الثغرة بعد توفر الإصلاح للجميع
  4. نُصدر CVE إذا كانت الثغرة تستحق ذلك

شكراً

نشكر كل من يساهم في تحسين أمان لغة ص. أمان مستخدمينا هو أولويتنا القصوى.

📧 security@sad-lang.org

There aren't any published security advisories