تخطَّ إلى المحتوى

وحدة الامتثال

تجمع وحدة الامتثال مخرجات ArchPilot وArchScan وArchSecurity في درجة امتثال واحدة وتقرير جاهز للتدقيق.

  • درجة امتثال واحدة - تُختزَل مخرجات الوحدات إلى درجة واحدة قابلة للمقارنة.
  • تقرير جاهز للتدقيق - تقرير قابل للمشاركة يمكنك تسليمه مباشرةً للمدقّق.
  • تحليل الفجوات - يبيّن سطرًا بسطر القواعد التي تعذّر اجتيازها.
  • قواعد السياسة الخاصة بك - أنت من يعرّف معنى الامتثال.
  • التتبّع عبر الزمن - تابِع كيف تتطوّر الدرجة عبر الإصدارات.

تُطبَّق حدود فحص شهرية وفقًا لباقتك. 5 عمليات فحص/شهر في Trial؛ وغير محدودة في الخطط المدفوعة.

صور الحاويات ومصادر الحزم

Section titled “صور الحاويات ومصادر الحزم”

أربع قواعد تقرأ كيف تُبنى الخدمة ومن أين تأتي تبعياتها:

القاعدةتنجح عندما
BE_DOCKERFILE_NON_ROOT_USERتعمل المرحلة الأخيرة من الصورة بمستخدم غير root - سطر USER، أو مستخدم موروث من المرحلة التي بُنيت FROM منها، أو صورة أساس غير root بطبيعتها (.NET chiseled، distroless nonroot). غياب USER تمامًا يعني root.
BE_DOCKERFILE_APP_OWNED_BY_NON_ROOTتُسلَّم ملفات التطبيق لذلك المستخدم في المرحلة الأخيرة - COPY --chown= / ADD --chown= أو RUN chown. أمر chown في مرحلة البناء لا يصل إلى الصورة.
BE_DOCKERFILE_BASE_IMAGE_ALLOWEDكل صورة يسحبها Dockerfile تأتي من مصدر مسموح. الصورة المسماة بوسيط بناء (FROM ${BASE_IMAGE}) تُحل من خط الأنابيب والقوالب التي يضمنها ومتغيرات CI/CD للمشروع؛ ما لا يمكن حله يُتخطى ولا يُعد فشلًا.
DEP_NUGET_SOURCES_ALLOWED‏.NET فقط: كل مصدر حزم في nuget.config في الجذر هو مصدر مسموح. بدون <clear/> يبقى nuget.org الخاص بالجهاز ساريًا، ويُبلَّغ عن ذلك مع طريقة الإصلاح.

تُعرَّف المصادر المسموحة مرة واحدة للتثبيت (الإدارة ← الإعدادات ← السياسات ← المصادر المسموحة) ويمكن لكل مساحة عمل إضافة مصادرها (إعدادات مساحة العمل ← المصادر المسموحة)؛ تقبل القاعدة المصدر إذا كان في أي من القائمتين. الإدخال هو مضيف سجل أو مسار (registry.example.com وكل ما تحته) أو عنوان مصدر حزم؛ و* تعني أي سلسلة أحرف (registry.example.com/*، *.example.com/*، harbor.example.com/base/*:10.*) - وليست تعبيرًا نمطيًا. ما دام لا يوجد مصدر من نوع ما، تُتخطى قاعدته.

سبع قواعد موجهة إلى أشخاص خارج الشركة - DOC_LICENSE_EXISTS وDOC_LICENSE_SPDX_RECOGNIZED وDOC_CONTRIBUTING_EXISTS وDOC_CODE_OF_CONDUCT_EXISTS وSEC_POLICY_EXISTS وDOC_README_HAS_BADGES وREPO_HAS_TOPICS. في المستودع الخاص (‏GitLab private أو internal) تكون معطلة افتراضيًا وتظهر متخطاة. إذا فُعّلت لمشروع أو مساحة عمل أو للتثبيت فإنها تعمل على أي حال.

وتقرأ قواعد أخرى الملف أينما كان: ملف docker-compose محلي في مجلد فرعي (infra/docker/) يُحتسب، و.env.example يُطلب فقط من البيئات التي تُهيَّأ عبر ملفات .env (Node.js وPython وRuby وPHP وGo)، لا من .NET أو Java.

يربط AppArch الملحق A من ISO/IEC 27001:2022 بالأدلة التي ينتجها أصلاً: قواعد الامتثال، وقواعد Git Health، وفئات الضعف في ArchSecurity (CWE)، وكل منها موسوم بأنه مباشر أو جزئي.

  • الفحص وفق إطار - في القواعد ← قواعد الامتثال وقواعد Git Health، يجعل خيار قواعد ISO 27001 فقط مساحة العمل تعمل بالقواعد المربوطة وحدها، ويلغي خيار العودة إلى القواعد الافتراضية ذلك. تبقى المفاتيح قابلة للتعديل قاعدةً قاعدة، وتُحفظ إعدادات المشاريع. ويمكن للمسؤولين تطبيق الملف نفسه على الإعدادات الافتراضية للتثبيت (الإدارة ← الإعدادات ← القواعد).
  • الأدلة التقنية لـ ISO 27001 (الامتثال ← أدلة ISO 27001) - كل ضابط مع ما تقوله أحدث عمليات الفحص عنه: ناجح، أو فاشل، أو لا دليل بعد، أو غير قابل للقياس من الشيفرة. معظم الضوابط تنظيمية أو بشرية أو مادية وتُعرض منفصلة. التقرير دليل تقني وليس شهادة.

بعض الفحوص لا يستطيع أي فحص آلي إجراءها: مراجعة الصلاحيات، واختبار الاستعادة، واتفاقيات السرية الموقعة. اكتبها قواعدَ خاصة بك في القواعد ← الفحوص اليدوية، أو استورد القائمة التي لديك بصيغة CSV (يوجد قالب في صفحة الاستيراد؛ الأعمدة code وtitle وdescription وcategory وseverity وrecheck_days وiso_controls وenabled، مفصولة بفاصلة أو فاصلة منقوطة). يطابق الاستيراد القواعد حسب الرمز ويحفظ كل شيء أو لا شيء.

  • فعّل القاعدة لمساحة العمل أو لكل مشروع، مثل أي قاعدة امتثال أخرى.
  • في صفحة الفحوص اليدوية للمشروع يسجّل شخص ناجح أو فاشل مع ملاحظة. يُحفظ مع كل قرار من اتخذه ومتى؛ والتصحيح قرار جديد ولا يُعدَّل القرار السابق أبداً.
  • عند تحديد أيام إعادة الفحص يصبح القرار الناجح يحتاج إعادة فحص عند انتهاء المدة.
  • اذكر ضوابط ISO 27001 في القاعدة فيعدّ تقرير ISO 27001 القرارات دليلاً لها، وبهذا فقط تحصل الضوابط البشرية والمادية على أدلة.
  • لا تغيّر الفحوص اليدوية درجة الامتثال. يمكن تنزيل قرارات كل قاعدة عبر المشاريع بصيغة CSV، والقاعدة المحذوفة التي عليها قرارات تُؤرشف مع سجلها.

لم تعد هذه القواعد تعمل. تبقى نتائج الفحوصات السابقة في السجل؛ وبجانب كل قاعدة القاعدةُ التي تجيب الآن عن السؤال نفسه.

القاعدةحلّت محلهاالسبب
SEC_BRANCH_PROTECTIONGit Health GIT_DEFAULT_BRANCH_PROTECTEDحماية الفرع إعداد لدى مزوّد Git؛ يقرؤها Git Health، وتعتمد عليها قاعدتا الدفع القسري والدفع المباشر.
SEC_NO_ENV_AT_ROOTGit Health REPO_SECRET_FILE_COMMITTEDتبحث قاعدة Git Health عن ملفات .env والمفاتيح الخاصة وإعدادات الإنتاج في المستودع كله، لا في الجذر فقط.
INT_ARCHPILOT_ENABLED, INT_ARCHSCAN_ENABLED-لم تعد الوحدات تُفعَّل لكل مشروع على حدة، فلم يبقَ ما يُفحص.