ثغرة تصعيد الامتيازات

ثغرة تصعيد الامتيازات في CI/CD pipelines

تعتبر معظم الفرق ثغرة تصعيد الامتيازات خطأً في نواة النظام أو خللاً تم إساءة استخدامه sudo على خادم الإنتاج. في عام 2026، سيوجد الإصدار الأكثر خطورة في مكان آخر: في pipeline يقوم ببناء ونشر التعليمات البرمجية الخاصة بك. CI/CD يحتفظ هذا البرنامج بشكل روتيني بصلاحيات الكتابة إلى مستودعاتك، ورموز تسجيل الحزم، وبيانات اعتمادك السحابية. لا يحتاج المهاجم الذي يتمكن من تشغيل التعليمات البرمجية داخل هذا البرنامج إلى بذل جهد كبير. pipeline لقد فعل ذلك بالفعل من أجلهم.

يشرح هذا الدليل شكل ثغرة تصعيد الامتيازات في CI/CD pipelineيتناول هذا الدليل المسارات الأكثر شيوعًا التي يستخدمها المهاجمون، ويوضح كيفية إغلاق كل منها.

باختصار: ثغرة أمنية تسمح بتصعيد الامتيازات في CI/CD pipelines

في باقة pipelineفي كثير من الأحيان، لا يحتاج المهاجم إلى رفع مستوى صلاحياته. pipeline يمتلكها بالفعل. ثغرة أمنية تسمح بتصعيد الامتيازات في CI/CD عادة ما يكون هذا إذنًا مرسومًا على نطاق أوسع مما تحتاجه المهمة، في انتظار تشغيل التعليمات البرمجية غير الموثوقة بداخله.

  • Pipelineيتمتعون بامتيازات بحكم التصميم. إنهم يقرؤون شفرة المصدر، ويحتفظون بالأسرار، وينشرون القطع الأثرية، وينشرونها في بيئة الإنتاج، مما يجعلهم أحد أهم أهداف التصعيد في مؤسستك.
  • معظم مسارات التصعيد ناتجة عن سوء تكوين، وليست ثغرات أمنية. الرموز الافتراضية العامة، pull_request_target تتسبب عمليات سير العمل التي تشغل التعليمات البرمجية المتفرعة، ومفاتيح السحابة طويلة الأمد، في أضرار أكبر من أي ثغرة أمنية غير معروفة.
  • يؤدي رفع مستوى امتيازات الحاويات إلى تحويل مهمة واحدة إلى عملية تشغيل كاملة. الحاويات ذات الامتيازات، ومستخدمو الجذر، ومقبس Docker المُثبَّت، تجعل من حاوية البناء مدخلاً، وليس حداً فاصلاً.
  • يحدث ذلك بالفعل على نطاق واسع. استخدم دودة CHAINDROP صلاحيات وصول مرتفعة على مشغلات GitHub Actions لقراءة بيانات الاعتماد مباشرة من ذاكرة المشغل.
  • الحل هو تطبيق مبدأ أقل الامتيازات بشكل مستمر. حدد نطاق كل رمز مميز، وحصّن كل حاوية، واكتشف أي انحراف في الأذونات قبل أن يكتشفه المهاجم.

ما هي الثغرة الأمنية؟

تُعرَّف ثغرة تصعيد الامتيازات بأنها أي نقطة ضعف تسمح لمستخدم أو عملية أو جزء من التعليمات البرمجية بالحصول على صلاحيات تتجاوز ما هو مُصرَّح له به. ويتتبع إطار عمل MITRE ATT&CK هذه الثغرة كأحد أساليبه الخاصة. TA0004: تصعيد الامتيازاتلأنها الخطوة التي تحول موطئ قدم صغير إلى ضرر حقيقي.

هناك شكلان كلاسيكيان:

  • التصعيد الرأسي: الانتقال إلى مستوى أعلى، على سبيل المثال من مستخدم عادي إلى مستخدم الجذر، أو من رمز للقراءة فقط إلى رمز يمكنه الكتابة.
  • التصعيد الأفقي: الانتقال الجانبي، على سبيل المثال استخدام صلاحيات الوصول لوظيفة ما للوصول إلى مستودع أو أسرار أو بيئة فريق آخر.

يستغل المهاجمون ثغرة تصعيد الامتيازات من خلال ثلاثة أنواع من نقاط الضعف: أخطاء البرمجيات، وسوء التكوين، والصلاحيات المفرطة. وتحظى الأخطاء البرمجية بمعظم الاهتمام على الخوادم. CI/CD pipelineإن الأخطاء في التكوين والأذونات المفرطة هي التي تقوم بمعظم العمل.

لماذا هو خطير للغاية في CI/CD pipelines

A pipeline ليست مجرد أداة بناء، بل هي هوية مؤتمتة تتمتع بأوسع صلاحيات الوصول في شركتك. يمكن لوظيفة نموذجية أن:

  • اطلع على شفرة المصدر وقم بتعديلها
  • قراءة البيانات السرية من متغيرات البيئة، والخزائن، وخدمات البيانات الوصفية السحابية
  • نشر الحزم والصور وإصدار المنتجات
  • انشر على بيئة الاختبار والإنتاج

استخدم OWASP Top 10 CI/CD المخاطر الأمنية يُشير هذا إلى هذه المشكلة بشكل مباشر. مخاطرها CICD-SEC-5: غير كافٍ Pipelineضوابط الوصول القائمة على - يصف هذا كيف يقوم المهاجمون بتشغيل برامج ضارة في pipeline إساءة استخدام الصلاحيات الممنوحة لها للتحرك جانبياً، داخل أو خارج CI/CD نظام.

هذا ليس مجرد كلام نظري. خلال حملة CHAINDROP في أغسطس 2026، البرامج الضارة تم استخراج بيانات الاعتماد المؤقتة من ذاكرة مُشغّل GitHub Actions واستخدم رموز النشر المسروقة لإصابة المزيد من الحزم. على أنظمة لينكس، الحمولة قام بتشغيل جامع البيانات الخاص به من خلال sudo لقراءة ذاكرة عملية التشغيل. هذا يُعدّ تصعيدًا للصلاحيات في CI/CD pipelineفي أنقى صورها: اعتمادٌ سام، ووصولٌ مُعزز إلى المُتسلل، وكل سرٍّ يمكن أن تمسّه الوظيفة. إنه النمط نفسه الذي نراه في نتائجنا الأسبوعية حول حزم npm الضارة.

أين تختبئ ثغرة تصعيد الامتيازات في pipeline?

ستة مسارات شائعة، وما يفتحه كل منها للمهاجم، والتحكم الذي يغلقه.

مسار التصعيدكيف يحدث ذلكما يحصل عليه المهاجمكيفية إغلاقه
مُفرط في الامتيازات pipeline رمزيتم تشغيل سير العمل بنطاقات رموز افتراضية واسعة لأنه لا يوجد permissions تم تعيين الكتلةإمكانية الوصول للكتابة إلى التعليمات البرمجية والإصدارات وسير العمل الأخرىقم بتعيين الإعدادات الافتراضية للقراءة فقط، وامنح حق الوصول للكتابة لكل مهمة، عند الحاجة فقط.
تسمم pipeline pull_request_target أو ما شابه ذلك من محفزات تقوم بفحص وتشغيل التعليمات البرمجية من نسخة غير موثوقةأسرار المستودع ورمز الكتابة، من مصدر واحد pull requestلا تقم بتشغيل التعليمات البرمجية المتفرعة في سياق ذي امتيازات؛ افصل المهام الموثوقة عن غير الموثوقة
تصعيد امتيازات الحاوياتيتم تشغيل حاويات البناء كجذر، أو في وضع مميز، أو مع تركيب مقبس Dockerصلاحيات الجذر على مضيف التشغيل والوصول إلى كل مهمة يقوم بتشغيلهاقم بتشغيلها كحساب غير الجذر، وقم بإسقاط الصلاحيات ومنع تصعيد الامتيازات في مواصفات الحاوية.
بيانات اعتماد سحابية طويلة الأمدمفاتيح السحابة الثابتة المخزنة كأسرار أو متغيرات بيئيةإمكانية الوصول المستمر إلى حسابات السحابة، حتى بعد انتهاء المهمة بفترة طويلةاستخدم بيانات اعتماد موحدة قصيرة الأجل و إلغاء الأسرار المكشوفة تلقائيًا
العدائين المثابرين الذين يستضيفون أنفسهميتم إعادة استخدام برامج التشغيل عبر المهام والمستودعات دون إعادة بنائهاالمثابرة، والقدرة على التلاعب بتشكيلات الفرق الأخرىاستخدم العدائين المؤقتين واعزلهم حسب مستوى الثقة
روايات بشرية مُفرطة في الامتيازتتراكم المشاكل المتعلقة بالمسؤولين غير النشطين والمتعاونين الخارجيين وتغييرات الأذونات غير المراجعةحساب صالح قابل للتغيير pipelineحماية الفروعراجع صلاحيات الوصول باستمرار، وقم بالتنبيه عند حدوث تغييرات غير طبيعية في الأذونات.

تصعيد امتيازات الحاوية: عندما لا تكون حاوية البناء بمثابة حد فاصل

تُشعر الحاويات بالعزلة، لذا غالباً ما تتعامل معها الفرق كحدود أمنية. CI/CDغالباً ما لا يكون الأمر كذلك. يحدث تصعيد امتيازات الحاوية عندما يستحوذ الكود الموجود داخل حاوية البناء على السيطرة على المضيف، ومعه كل مهمة أخرى تعمل هناك.

ثلاثة إعدادات تُغطي معظم الحالات:

  1. يتم التشغيل بصلاحيات المستخدم الجذر. إذا كانت العملية داخل الحاوية هي الجذر، فإن أي اختراق يبدأ من أقوى موقع ممكن.
  2. الوضع المميز. تتمتع الحاوية ذات الامتيازات بنفس مستوى الوصول تقريبًا إلى المضيف مثل العملية التي تعمل مباشرة عليه.
  3. مقبس Docker مثبت. متزايد /var/run/docker.sock في مهمة حتى تتمكن من بناء الصور بشكل فعال، وتسلم تلك المهمة جذرها على المضيف، لأنه يمكنها بدء حاويات جديدة ذات امتيازات.

أظهر باحثو الأمن كيف يتجلى ذلك في أنظمة التكامل المستمر الحقيقية. في إحدى الحالات الموثقة جيدًا، انتقل الباحثون من تشغيل نصوص البناء داخل حاوية التكامل المستمر إلى الهروب الكامل من الحاوية على مضيفات بناء صفحات Cloudflare، قبلcisوذلك لأن الحاوية كانت تُعامل كحدود أمنية.

إليك شكل مواصفات وظيفة Kubernetes المُحسّنة. الإعداد الرئيسي هو allowPrivilegeEscalation: false، التي يمنع ذلك عملية من الحصول على امتيازات أكثر من العملية الأصلية.على سبيل المثال من خلال الملفات الثنائية التي تستخدم صلاحيات المستخدم الجذر (setuid).

ci-build-pod.yamlKubernetes
# وحدة بناء مُحصّنة: تحجب مسارات تصعيد امتيازات الحاويات الأكثر شيوعًا
نسخة: v1
نوع: جراب
البيانات الوصفية:
  الاسم: ci-build
المواصفات:
  سياق الأمان:
    تشغيل كـ غير جذري: صحيح
    تشغيل كـ مستخدم: 10001
    ملف تعريف seccomp:
      نوع: RuntimeDefault
  حاويات:- الاسم: نساعدك في بناء
      صورة: registry.example.com/build-image@sha256:
      سياق الأمان:
        السماح بتصعيد الامتيازات: زائف
        متميز: زائف
        نظام الملفات الجذر للقراءة فقط: صحيح
        قدرات:				

ينطبق المبدأ نفسه على ملف Dockerfile نفسه. أضف مستخدمًا غير الجذر وانتقل إليه قبل نقطة الدخول:

Dockerfileعامل في حوض السفن
# تشغيل الحاوية كمستخدم غير الجذر
من عند node:22-slim
RUN useradd --دليل 10001 --إنشاء-المنزل باني
عمل / تطبيق
COPY --chown=المُنشئ: المُنشئ . .
USER باني
CMD ["العقدة", "index.js"]
لماذا يهم: بدون USER عند تنفيذ التعليمات، يعمل الحاوية بصلاحيات المستخدم الجذر. أما التبديل إلى مستخدم مخصص قبل نقطة الدخول فيعني أن العملية المخترقة ستبدأ بأقل قدر ممكن من الصلاحيات.

وثائق Kubernetes حول تهيئة سياق الأمان يتناول كل من هذه الإعدادات بالتفصيل.

إجراءات GitHub: ثغرة أمنية للتصعيد مخفية في وضح النهار

تُعدّ GitHub Actions المكان الذي تواجه فيه العديد من الفرق لأول مرة مشكلة تصعيد الامتيازات. CI/CD pipelineلذلك، تبدو الأنماط الخطيرة عادية تمامًا. هناك نمطان يستحقان التحقق منهما في كل مستودع بيانات اليوم.

نطاق الرمز المميز. كل سير عمل يحصل على GITHUB_TOKENإرشادات GitHub الخاصة بشأن المصادقة التلقائية للرمز المميز من الواضح أن الإجراء قد يصل إلى هذا الرمز المميز حتى لو لم تُمرّره صراحةً، لذا يجب دائمًا تقييد صلاحياته إلى الحد الأدنى. إن تعيين صلاحيات القراءة فقط في بداية سير العمل ومنح صلاحية الكتابة لكل مهمة يزيل مسار التصعيد الأكثر شيوعًا في خطوة واحدة.

.github/workflows/build.ymlإجراءات جيثب
الاسم: نساعدك في بناء
on: [دفع]

# الوضع الافتراضي لكل مهمة: للقراءة فقط
أذونات:
  محتويات: اقرأ

وظائف:
  تجربه بالعربي:
    يعمل على: أحدث إصدار من أوبونتو
    سلم:
      تثبيت إجراءات الطرف الثالث على كامل commit SHA، وليس علامة قابلة للتغيير
      - يستخدم: actions/checkout@commit-sha>
      - يجري: npm ci && npm test

  الافراج عن:
    إحتياجات: تجربه بالعربي
    يعمل على: أحدث إصدار من أوبونتو
    # هذه الوظيفة وحدها هي التي تستطيع الكتابة، ولا تكتب إلا ما تحتاجه
    أذونات:
      محتويات: اكتب
    سلم: - يستخدم: actions/checkout@commit-sha>
      - يجري: ./scripts/release.sh
لماذا يهم: تبدأ كل مهمة في وضع القراءة فقط، ولا يُسمح بالكتابة إلا لمهمة الإصدار. إذا تم اختراق أحد التبعيات في مهمة الاختبار، فلن يكون للرمز المميز الذي يمكن الوصول إليه أي صلاحية للكتابة إلى مستودعك.

المحفزات غير الموثوقة. سير العمل الذي يتم تشغيله بواسطة pull_request_target يتم تشغيلها باستخدام أسرار المستودع المستهدف ورمز مميز قابل للكتابة، حتى عندما pull request يأتي من نسخة متفرعة. إذا تم التحقق من سير العمل هذا وتشغيل كود النسخة المتفرعة، فيمكن لأي شخص فتحه. pull request وتنفيذ التعليمات البرمجية باستخدام صلاحياتك. هذه ثغرة أمنية لرفع مستوى الصلاحيات لا تحتاج إلى استغلال على الإطلاق، فقط pull request. احتفظ بالخطوات ذات الامتيازات على التعليمات البرمجية الموثوقة، وقم بتشغيل التعليمات البرمجية غير الموثوقة في سير عمل منفصل بدون أسرار.

إذا كنت ترغب في رؤية هذه الأنماط في مكان آمن، xygeni-goat يجمع المستودع بيانات غير آمنة عمداً pipeline و IaC إعدادات التدريب. للاطلاع على مراجعة شاملة لإعدادات GitHub الخاصة بك، راجع دليلنا حول كيفية معرفة ما إذا كان تطبيق أو مستودع GitHub آمنًا.

كيفية منع ثغرة تصعيد الامتيازات في CI/CD pipelines

إغلاق تصعيد الامتيازات في CI/CD pipelineيرتكز الأمر على مبدأ واحد: مبدأ أقل الامتيازات، المطبق على جميع المستويات، والذي يُراجع باستمرار بدلاً من مرة واحدة. قائمة مرجعية عملية:

  1. قم بتحديد نطاق كل رمز مميز. الوضع الافتراضي هو للقراءة فقط، وإمكانية الوصول للكتابة لكل مهمة، ولا توجد رموز مميزة على مستوى المؤسسة في سير عمل المستودع.
  2. افصل بين التعليمات البرمجية الموثوقة وغير الموثوقة. لا تقم بتشغيل التعليمات البرمجية من النسخ المتفرعة أو من المساهمين الخارجيين في مهمة تحتوي على أسرار.
  3. قم بتأمين جميع حاويات البناء. لا يوجد وضع مميز للمستخدمين غير الجذر، ولا يوجد منفذ Docker، وتم إسقاط الإمكانيات. allowPrivilegeEscalation: false.
  4. استبدل الأسرار التي طال أمدها. يفضل استخدام بيانات اعتماد اتحادية قصيرة الأجل، وإلغاء أي شيء تم الكشف عنه على الفور.
  5. قم بتثبيت ما تقوم بتشغيله. إجراءات وصور جهات خارجية مرجعية commit SHA أو التجزئة، لذلك لا يمكن للعلامة المخترقة تغييرها pipeline.
  6. انتبه للانحراف. تتسع صلاحيات الوصول بمرور الوقت. تنبيه بشأن المسؤولين الجدد، وضعف حماية الفروع، والتغييرات غير المتوقعة في سير العمل.
  7. بوابة pipeline. قم بإيقاف عملية البناء عند ظهور خطأ حرج في التكوين، قبل دمجه.

الجزء الصعب ليس معرفة هذه القواعد، بل تطبيقها عبر مئات المستودعات وسير العمل التي تتغير كل يوم.

كيف يمنع برنامج Xygeni ثغرة تصعيد الامتيازات في CI/CD?

كل مسار تصعيد، مطابق لقدرة Xygeni التي تكتشفه أو تمنعه.

المخاطرة الماليةما يفعله زيجيني
Pipeline الخاطئةكاشفات سوء التكوين قم بفحص تعريفات وظائف التكامل المستمر، ونصوص البناء، وملفات التكوين عبر GitHub وGitLab وAzure DevOps وBitbucket وCircleCI وJenkins، وقم بتحديد الأذونات الأوسع نطاقًا مما تسمح به أفضل الممارسات.
تصعيد امتيازات الحاوياتIaC وفحوصات الحاويات يشمل ذلك ملفات Dockerfiles، وملفات docker-compose، وبيانات Kubernetes، ومخططات Helm، بما في ذلك الحاويات التي تعمل كجذر.
المستخدمون ذوو الامتيازات المفرطة والمستخدمون غير النشطينيُحدد تحليل أقل الامتيازات المستخدمين غير النشطين والمستخدمين ذوي الامتيازات الزائدة، و Health Check يحوّل كل اكتشاف إلى تذكرة
انحراف الإذنتنبيهات كشف الحالات الشاذة بشأن تغييرات الأذونات غير المعتادة، وعمليات الدمج غير الطبيعية، وتثبيتات المكونات الإضافية غير المتوقعة.
بيانات اعتماد مكشوفةيشمل الكشف عن الأسرار الشفرة البرمجية، pipelineصور الحاويات، مع إلغاء تلقائي لأنواع الأسرار المدعومة
شفرة خبيثة في pipelineيحظر الوصول العكسي إلى البرامج الضارة وتنزيل البرامج الضارة في pipelineفي الوقت الفعلي، ويكتشف MEW الحزم الضارة قبل وجود التوقيع.
تطبيقPre-commit hooks و CI guardrails فشل عملية البناء بسبب مشاكل حرجة، مع سياسات YAML مخصصة لقواعدك الخاصة.

تتوافق عمليات التحقق مع OWASP Top 10 CI/CD المخاطر الأمنية و standardق مثل CIS، المعهد الوطني للمعايير والتكنولوجيا، و OpenSSFكل نتيجة تصب في Xygeni ASPM، حيث يتم إعطاء الأولوية لها جنبًا إلى جنب مع نتائج الكود والتبعيات والأسرار، بحيث يتم إصلاح ثغرة تصعيد الامتيازات التي تصل بالفعل إلى الإنتاج أولاً.

معظم عمليات تصعيد الامتيازات في CI/CD pipelines موجود بالفعل في ملفات سير العمل الخاصة بك، في انتظار تشغيل التعليمات البرمجية غير الموثوقة. 

الأسئلة الشائعة

ما هي ثغرة تصعيد الامتيازات في CI/CD?

أي ثغرة تسمح بتشغيل التعليمات البرمجية في بيئة معينة هي نقطة ضعف. pipeline الحصول على صلاحيات وصول أكثر مما تتطلبه الوظيفة، مثل رمز مميز ذو امتيازات زائدة، أو سير عمل يقوم بتشغيل تعليمات برمجية غير موثوقة تحتوي على أسرار، أو حاوية بناء يمكنها الوصول إلى المضيف.

ما هو تصعيد امتيازات الحاويات؟

تصعيد امتيازات الحاوية هو عندما يحصل أحد العمليات داخل الحاوية على امتيازات أعلى، وغالبًا ما تكون امتيازات الجذر على المضيف. ومن الأسباب الشائعة لذلك: التشغيل بصلاحيات الجذر، ووضع الامتيازات، ووجود مقبس Docker مُثبَّت.

لا allowPrivilegeEscalation: false هل يمكن إيقاف عمليات الهروب من الحاويات؟

يمنع هذا الإجراء مسارًا مهمًا واحدًا: وهو حصول عملية ما على صلاحيات أكثر من العملية الأصلية، على سبيل المثال من خلال ملفات setuid الثنائية. ويعمل هذا الإجراء على أفضل وجه عند استخدامه مع مستخدم غير الجذر، وتعطيل بعض الصلاحيات، وعدم وجود وضع امتيازات.

Is pull_request_target هل هو خطير دائماً؟

ليس بمفرده. يصبح ثغرة أمنية تسمح بتصعيد الامتيازات عندما يقوم سير العمل باستخراج التعليمات البرمجية وتشغيلها من pull requestلأن هذا الكود يعمل بعد ذلك باستخدام أسرارك ورمز مميز قابل للكتابة.

كيف يمكنني العثور على مسارات تصعيد الامتيازات عبر العديد من المستودعات؟

لا يمكن تطبيق المراجعات اليدوية على نطاق واسع. أما المراجعات الآلية فهي غير فعالة. CI/CD تقوم أداة الأمان بفحص كل سير عمل ومواصفات حاوية ومجموعة أذونات بشكل مستمر، وتنبه عند اتساع نطاق شيء ما.

أدوات تحليل التركيبات البرمجية sca
إعطاء الأولوية للمخاطر التي تتعرض لها برامجك، ومعالجتها، وتأمينها
احصل على حسابك المجاني.
أي بطاقة ائتمان.

احمِ عملية تطوير وتسليم برامجك

مع مجموعة منتجات Xygeni