جزء من سلسلة Compliance & Regulation
اقرأ الدليل الكاملالامتثال لترخيص المصدر المفتوح: دليل عملي لشركات البرمجيات
يحتوي متوسط التطبيق التجاري على 77% من التعليمات البرمجية مفتوحة المصدر، منتشرة عبر أكثر من 500 تبعية. تحمل كل تبعية ترخيصًا خاصًا بها مع التزامات محددة. يؤدي انتهاك هذه الالتزامات إلى تعريض شركتك للدعاوى القضائية والإفصاح القسري عن التعليمات البرمجية والإضرار بالسمعة. ومع ذلك، فإن معظم الشركات ليس لديها عملية لتتبع تراخيص المصادر المفتوحة أو الالتزام بها.
يوفر هذا الدليل إطارًا عمليًا للامتثال لترخيص مفتوح المصدر، بدءًا من تصنيف التراخيص ووصولاً إلى المسح الآلي وإنشاء SBOM.
الوجبات الرئيسية
- ليست كل التراخيص مفتوحة المصدر متماثلة: التراخيص المسموح بها تسمح بأي شيء تقريبًا، بينما تتطلب تراخيص الحقوق المتروكة مشاركة التعديلات
- أصبحت قائمة مواد البرمجيات (SBOM) مطلبًا قانونيًا في المشتريات الحكومية (الأمر التنفيذي الأمريكي رقم 14028)
- يمنع المسح الآلي للترخيص في CI/CD التبعيات غير المتوافقة من الدخول إلى قاعدة التعليمات البرمجية الخاصة بك
- خطر "الإصابة" بالحقوق المتروكة أمر حقيقي: يمكن أن تلزمك تبعية GPL واحدة بفتح مصدر التطبيق بأكمله
فئات الترخيص
التراخيص المسموح بها (منخفضة المخاطر)
| الترخيص | التزامات | الاستخدام التجاري | تعديل | التوزيع | |---------|-------------------|-------------|-------------|-----------|--| | معهد ماساتشوستس للتكنولوجيا | تضمين إشعار حقوق النشر + الترخيص | نعم | نعم | نعم | | بسد 2-بند | تضمين إشعار حقوق النشر + الترخيص | نعم | نعم | نعم | | بسد 3-بند | نفس + لا توجد مطالبة تأييد | نعم | نعم | نعم | | أباتشي 2.0 | تضمين إشعار + ترخيص + تغييرات الحالة + منحة براءة الاختراع | نعم | نعم | نعم | | مركز الدراسات الدولي | تضمين إشعار حقوق النشر + الترخيص | نعم | نعم | نعم |
آمن للاستخدام التجاري. قم بتضمين نص الترخيص وإشعار حقوق الطبع والنشر في التوزيع الخاص بك. يتطلب Apache 2.0 أيضًا ملاحظة أي تغييرات على الكود الأصلي ويتضمن ترخيص براءة اختراع.
الحقوق المتروكة ضعيفة (خطورة متوسطة)
| الترخيص | التزامات | تقييد المفتاح |
|---|---|---|
| LGPL v2.1/v3 | مشاركة التعديلات على كود LGPL؛ يظل الكود الخاص بك مملوكًا إذا تم ربطه ديناميكيًا | قد يؤدي الارتباط الثابت إلى تشغيل الحقوق المتروكة |
| MPL 2.0 | مشاركة التعديلات على ملفات MPL؛ يمكن أن تكون الملفات الجديدة مملوكة | الحقوق المتروكة على مستوى الملف |
| الدوري الانجليزي 2.0 | تعديلات المشاركة؛ خيار الترخيص الثانوي متاح | الحقوق المتروكة على مستوى الوحدة النمطية |
استخدمه بحذر. احتفظ بمكتبات LGPL كمكتبات مشتركة (ديناميكية)، وليست مرتبطة بشكل ثابت. احتفظ بالكود المرخص من MPL في ملفات منفصلة عن الكود الخاص بك.
الحقوق المتروكة القوية (عالية الخطورة)
| الترخيص | التزامات | تقييد المفتاح |
|---|---|---|
| جي بي إل الإصدار الثاني | يجب أن تكون الأعمال المشتقة مرخصة بـ GPL | الربط ينشئ عملاً مشتقًا |
| جي بي إل الإصدار 3 | نفس الإصدار 2 + مكافحة التيفويزيشن + منحة براءة الاختراع | حقوق متروكة أوسع |
| اجبل v3 | مثل استخدام شبكة GPL v3 +، يتم تشغيل الحقوق المتروكة | عدد الاستخدام من جانب الخادم |
| اس اس بي ال | يجب أن يكون مكدس "الخدمة" بأكمله مفتوح المصدر | أوسع الحقوق المتروكة |
البرامج التجارية هي الأكثر خطورة. قد يتطلب منك استخدام كود GPL في تطبيقك إصدار التطبيق بالكامل بموجب GPL. تقوم AGPL بتوسيع هذا ليشمل البرامج من جانب الخادم --- حتى إذا لم تقم بتوزيع الثنائيات مطلقًا، فإن توفير البرنامج كخدمة ويب يؤدي إلى التزام الحقوق المتروكة.
سير عمل الامتثال
الخطوة 1: إنشاء SBOM
# For Node.js projects (using CycloneDX)
npx @cyclonedx/cyclonedx-npm --output-file sbom.json --spec-version 1.5
# For Python projects
pip install cyclonedx-bom
cyclonedx-py environment --output sbom.json
# For multi-language projects (using Syft)
syft . -o cyclonedx-json > sbom.json
الخطوة 2: البحث عن الامتثال للترخيص
# Using license-checker for Node.js
npx license-checker --production --json --out licenses.json
# Using scancode-toolkit (comprehensive, all languages)
scancode --license --copyright --output-json scan-results.json .
الخطوة 3: التصنيف والموافقة
إنشاء قائمة التراخيص المعتمدة:
{
"approved": [
"MIT", "BSD-2-Clause", "BSD-3-Clause", "Apache-2.0",
"ISC", "0BSD", "Unlicense", "CC0-1.0"
],
"conditional": [
"LGPL-2.1", "LGPL-3.0", "MPL-2.0", "EPL-2.0"
],
"prohibited": [
"GPL-2.0", "GPL-3.0", "AGPL-3.0", "SSPL-1.0",
"EUPL-1.2", "OSL-3.0"
]
}
الخطوة 4: تكامل CI/CD
# .github/workflows/license-check.yml
name: License Compliance
on: [pull_request]
jobs:
check-licenses:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: pnpm install --frozen-lockfile
- name: Check licenses
run: |
npx license-checker --production --excludePackages "" \
--failOn "GPL-2.0;GPL-3.0;AGPL-3.0;SSPL-1.0" \
--summary
SBOM (قائمة مواد البرنامج)
سبب أهمية SBOMs
- الأمر التنفيذي الأمريكي رقم 14028 يتطلب وجود SBOMs للبرامج المباعة لحكومة الولايات المتحدة
- قانون الاتحاد الأوروبي للمرونة السيبرانية سيتطلب وجود SBOMs للبرامج المباعة في الاتحاد الأوروبي
- أمان سلسلة التوريد: تعمل وحدات SBOM على تمكين الاستجابة السريعة للثغرات الأمنية (عندما يحدث log4j، ستعرف ما إذا كنت متأثرًا)
- ثقة العملاء: يطلب المشترون من المؤسسات بشكل متزايد SBOMs أثناء الشراء
معايير SBOM
| قياسي | تنسيق | تتم صيانته بواسطة | التبني |
|---|---|---|---|
| إعصار دي إكس | جيسون، إكس إم إل | أواسب | النمو (الافتراضي لـ npm) |
| سبدكس | JSON، RDF، قيمة العلامة | مؤسسة لينكس | تأسست (ISO/IEC 5962:2021) |
| سويد | أكس أم أل | نيست | الحكومة |
التوصية: CycloneDX لمعظم شركات البرمجيات. إنه أبسط، ويتمتع بدعم أفضل للأدوات، وأصبح هو الخيار الافتراضي في الصناعة.
سيناريوهات الامتثال الشائعة
السيناريو 1: تطبيق الويب Node.js
يحتوي دليل node_modules النموذجي على 500-2000 حزمة. الغالبية العظمى تستخدم تراخيص MIT أو ISC. القضايا المشتركة:
- التبعيات المتعدية باستخدام GPL (لم تقم بإضافتها مباشرة)
UNKNOWNحقول الترخيص التي تتطلب فحصًا يدويًا- تراخيص متعددة في حزمة واحدة (على سبيل المثال، "MIT OR Apache-2.0")
الإجراء: قم بتشغيل npx license-checker --production أسبوعيًا. التحقيق في أي تراخيص غير متساهلة. استبدل تبعيات GPL ببدائل متساهلة.
السيناريو 2: تطوير وحدة Odoo
إصدار مجتمع Odoo هو LGPL v3. تعتبر Odoo Enterprise ملكية خاصة. الوحدات المخصصة الخاصة بك:
- وحدات المجتمع: يجب أن تكون متوافقة مع LGPL v3 (في حالة توزيعها)
- الوحدات الداخلية الخاصة: غير موزعة، لذا لا يتم تطبيق LGPL
- الوظائف الإضافية للمؤسسات: يجب أن تتوافق مع شروط ترخيص Odoo Enterprise
السيناريو 3: SaaS مع تبعيات AGPL
إذا كان تطبيق SaaS الخاص بك يستخدم رمزًا مرخصًا من AGPL (على سبيل المثال، MongoDB قبل التحول إلى SSPL)، فيجب عليك إما:
- قم بتحرير كود مصدر التطبيق بالكامل ضمن AGPL
- قم بإزالة تبعية AGPL واستخدم بديلاً
- الحصول على ترخيص تجاري من مشروع AGPL (إن وجد)
يؤدي استخدام كود AGPL من جانب الخادم إلى تشغيل التزام الحقوق المتروكة على الرغم من عدم "توزيع" الثنائيات مطلقًا.
الأسئلة المتداولة
هل يجبرنا استخدام مكتبة GPL في واجهة برمجة التطبيقات لدينا على فتح واجهة برمجة التطبيقات الخاصة بنا؟
ذلك يعتمد على كيفية استخدامه. إذا كانت مكتبة GPL مرتبطة بتطبيقك (بشكل ثابت أو ديناميكي)، فإن موقف FSF هو أن تطبيقك هو "عمل مشتق" ويجب ترخيصه بموجب GPL. إذا كنت تتواصل مع برنامج GPL من خلال واجهة برمجة تطبيقات الشبكة (على سبيل المثال، باستخدام خادم قاعدة بيانات مرخص من GPL)، فلا يعتبر ذلك عملاً مشتقًا بشكل عام. استشر محاميًا لقضيتك المحددة.
ماذا لو غيّرت التبعية ترخيصها؟
أنت ملتزم بالترخيص الذي حصلت بموجبه على الرمز، وليس تغييرات الترخيص المستقبلية. ومع ذلك، إذا قمت بالتحديث إلى إصدار جديد بترخيص جديد، فسيتم تطبيق الترخيص الجديد على هذا الإصدار. هذا هو سبب أهمية SBOMs مع تثبيت الإصدار --- فهي توثق بالضبط الإصدار (والترخيص) الذي تستخدمه.
كيف نتعامل مع التبعيات مع التراخيص "غير المعروفة"؟
تحقق من مستودع الحزمة بحثًا عن ملف الترخيص. إذا لم يتم تحديد ترخيص، فإن الكود من الناحية الفنية يخضع لحماية حقوق الطبع والنشر الكاملة --- وليس لديك الحق في استخدامه أو تعديله أو توزيعه. ابحث إما عن الترخيص (قد يكون في موقع غير قياسي)، أو اطلب من المؤلف إضافة ترخيص، أو استبدل التبعية ببديل مرخص بشكل واضح.
هل نحتاج إلى إسناد الحزم المرخصة من MIT؟
نعم. يتطلب منك معهد ماساتشوستس للتكنولوجيا (MIT) ومعظم التراخيص المسموح بها تضمين إشعار حقوق الطبع والنشر ونص الترخيص عند توزيع البرنامج. بالنسبة لتطبيقات الويب، يعني هذا عادةً تضمين ملف إشعارات الطرف الثالث أو صفحة تدرج جميع المكونات مفتوحة المصدر وتراخيصها.
بناء برنامج الامتثال
مراجعة الالتزام ربع السنوية
- تجديد SBOM لجميع المشاريع
- البحث عن تبعيات جديدة تمت إضافتها منذ المراجعة الأخيرة
- التحقق من تغييرات الترخيص في الحزم المحدثة
- راجع أية تراخيص "غير معروفة" ظهرت
- قم بتحديث قائمة التراخيص المعتمدة في حالة ظهور تراخيص جديدة
- أرشفة لقطات SBOM لمسار التدقيق
أدوار الامتثال
| الدور | المسؤولية |
|---|---|
| الرصاص الهندسي | يستعرض إضافات التبعية في العلاقات العامة |
| قانوني/الامتثال | يحتفظ بقائمة التراخيص المعتمدة، ويراجع حالات الحافة |
| الأمن | يقوم بالمسح بحثًا عن التبعيات الضعيفة جنبًا إلى جنب مع فحص الترخيص |
| صاحب المنتج | تحديد ما إذا كانت التراخيص المشروطة مقبولة للمنتج |
يستغرق برنامج الامتثال خفيف الوزن من 2 إلى 4 ساعات كل ربع سنة لفريق صغير ويمنع التكلفة الأكبر بكثير لاكتشاف مشكلة الامتثال بعد إطلاق المنتج أو أثناء العناية الواجبة.
ما يأتي بعد ذلك
يعد الامتثال للترخيص أحد جوانب إدارة البرامج. يمكنك دمجها مع حماية IP للتعليمات البرمجية الخاصة بك، وأساسيات اتفاقية SaaS لبرامج البائع، والمتطلبات التنظيمية للأمن السيبراني للامتثال الأمني.
اتصل بـ ECOSIRE للحصول على خدمات تدقيق الامتثال مفتوحة المصدر وإنشاء SBOM.
تم النشر بواسطة ECOSIRE - مساعدة الشركات على استخدام المصادر المفتوحة بشكل مسؤول.
بقلم
ECOSIRE Research and Development Team
بناء منتجات رقمية بمستوى المؤسسات في ECOSIRE. مشاركة رؤى حول تكاملات Odoo وأتمتة التجارة الإلكترونية وحلول الأعمال المدعومة بالذكاء الاصطناعي.
مقالات ذات صلة
قائمة التحقق من إعداد التدقيق: كيف يجعل نظام تخطيط موارد المؤسسات (ERP) الخاص بك عمليات التدقيق أسرع بنسبة 60 بالمائة
استكمال القائمة المرجعية لإعداد التدقيق باستخدام أنظمة تخطيط موارد المؤسسات (ERP). يمكنك تقليل وقت التدقيق بنسبة 60 بالمائة من خلال التوثيق والضوابط المناسبة وجمع الأدلة تلقائيًا.
دليل تنفيذ موافقة ملفات تعريف الارتباط: إدارة الموافقة المتوافقة قانونًا
تنفيذ موافقة ملفات تعريف الارتباط التي تتوافق مع اللائحة العامة لحماية البيانات والخصوصية الإلكترونية وقانون خصوصية المستهلك في كاليفورنيا (CCPA) واللوائح العالمية. يغطي لافتات الموافقة وتصنيف ملفات تعريف الارتباط وتكامل CMP.
لوائح نقل البيانات عبر الحدود: التنقل في تدفقات البيانات الدولية
انتقل إلى لوائح نقل البيانات عبر الحدود من خلال الشروط التعاقدية النموذجية، وقرارات الملاءمة، والقواعد الملزمة للشركات، وتقييمات تأثير النقل للامتثال للقانون العام لحماية البيانات، والمملكة المتحدة، ومنطقة آسيا والمحيط الهادئ.
المزيد من Compliance & Regulation
قائمة التحقق من إعداد التدقيق: كيف يجعل نظام تخطيط موارد المؤسسات (ERP) الخاص بك عمليات التدقيق أسرع بنسبة 60 بالمائة
استكمال القائمة المرجعية لإعداد التدقيق باستخدام أنظمة تخطيط موارد المؤسسات (ERP). يمكنك تقليل وقت التدقيق بنسبة 60 بالمائة من خلال التوثيق والضوابط المناسبة وجمع الأدلة تلقائيًا.
دليل تنفيذ موافقة ملفات تعريف الارتباط: إدارة الموافقة المتوافقة قانونًا
تنفيذ موافقة ملفات تعريف الارتباط التي تتوافق مع اللائحة العامة لحماية البيانات والخصوصية الإلكترونية وقانون خصوصية المستهلك في كاليفورنيا (CCPA) واللوائح العالمية. يغطي لافتات الموافقة وتصنيف ملفات تعريف الارتباط وتكامل CMP.
لوائح نقل البيانات عبر الحدود: التنقل في تدفقات البيانات الدولية
انتقل إلى لوائح نقل البيانات عبر الحدود من خلال الشروط التعاقدية النموذجية، وقرارات الملاءمة، والقواعد الملزمة للشركات، وتقييمات تأثير النقل للامتثال للقانون العام لحماية البيانات، والمملكة المتحدة، ومنطقة آسيا والمحيط الهادئ.
المتطلبات التنظيمية للأمن السيبراني حسب المنطقة: خريطة امتثال للشركات العالمية
التنقل في لوائح الأمن السيبراني عبر الولايات المتحدة والاتحاد الأوروبي والمملكة المتحدة وآسيا والمحيط الهادئ والشرق الأوسط. يغطي قواعد NIS2 وDORA وSEC ومتطلبات البنية التحتية الحيوية والجداول الزمنية للامتثال.
إدارة البيانات والامتثال: الدليل الكامل لشركات التكنولوجيا
دليل كامل لإدارة البيانات يغطي أطر الامتثال وتصنيف البيانات وسياسات الاحتفاظ ولوائح الخصوصية وخرائط طريق التنفيذ لشركات التكنولوجيا.
سياسات الاحتفاظ بالبيانات والأتمتة: احتفظ بما تحتاج إليه، واحذف ما يجب عليك حذفه
قم ببناء سياسات الاحتفاظ بالبيانات مع المتطلبات القانونية، والجداول الزمنية للاحتفاظ، والتنفيذ الآلي، والتحقق من الامتثال للقانون العام لحماية البيانات (GDPR)، وSOX، وHIPAA.