0Pricing
Cyber Security Academy · درس

الأسرار الديناميكية وتأجيرها

بيانات اعتماد قصيرة الأجل تنتهي تلقائيًا.

الأسرار الديناميكية وتأجيرها درس مجاني في Cyber Security Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cyber Security Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.

الأسرار الثابتة مقابل الأسرار الديناميكية

يُنشأ السر الثابت مرة واحدة ويُعاد استخدامه إلى أجل غير مسمى، مثل كلمة مرور قاعدة بيانات واحدة تتشاركها عشر خدمات لسنوات. والأسرار الثابتة هي الخيار الافتراضي والمشكلة في الوقت نفسه: فهي طويلة العمر، ومتداولة على نطاق واسع، ويصعب تدويرها.

أما السر الديناميكي فيُولّد عند الطلب، ويكون فريداً لمستهلك واحد، وتنتهي صلاحيته تلقائياً. فبدلاً من تخزين كلمة مرور، تنشئ الخزنة بيانات اعتماد جديدة تماماً في كل مرة يُطلب فيها سر.

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

آلية عمل الأسرار الديناميكية

تتطلب الأسرار الديناميكية أن يمتلك Vault وصولاً مميزاً إلى النظام الخلفي. ويجري التدفق الخاص بقاعدة البيانات كما يلي:

  • يضبط المسؤول Vault باستخدام بيانات اعتماد جذرية لقاعدة البيانات وقالب إنشاء.
  • تصادق إحدى التطبيقات وتطلب بيانات اعتماد.
  • ينفذ Vault الأمر CREATE USER في قاعدة البيانات، ويعيد اسم مستخدم وكلمة مرور جديدين.
  • عند انتهاء عقد الإيجار، ينفذ Vault الأمر DROP USER تلقائياً.

لا ترى التطبيق كلمة مرور طويلة العمر مطلقاً؛ بل تحصل على بيانات اعتماد مؤقتة مرتبطة بهويتها وبعقد إيجارها.

# Configure Vault's database engine with a creation statement
vault write database/roles/billing-readonly \
  db_name=appdb \
  creation_statements="CREATE ROLE \"{{name}}\" LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}'; GRANT SELECT ON billing TO \"{{name}}\";" \
  default_ttl="1h" max_ttl="24h"

طلب بيانات اعتماد ديناميكية

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

يحصل كل مستهلك على بيانات اعتماد خاصة به. فإذا بدأت حاويتان من الخدمة نفسها، فستحصلان على اسمي مستخدم مختلفين، مما يتيح التدقيق لكل مستهلك على مستوى قاعدة البيانات.

vault read database/creds/billing-readonly

# Example response:
# lease_id     database/creds/billing-readonly/abc123
# lease_duration  1h
# password     A1b-2Cd3-temp-xyz
# username     v-approle-billing-9f3a2

عقود الإيجار: عقد مدة الصلاحية

عقد الإيجار هو عقد يحدد مدة صلاحية هذا السر. ويحمل كل سر ديناميكي قيمة TTL (مدة البقاء) وقيمة اختيارية هي TTL القصوى.

  • default_ttl: المدة التي تبقى فيها بيانات الاعتماد صالحة قبل انتهاء صلاحيتها.
  • max_ttl: الحد الأقصى المطلق، حتى مع التجديدات.

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

تجديد عقود الإيجار وإبطالها

يجب على التطبيقات طويلة التشغيل التي يتجاوز عمرها مدة عقد الإيجار أن تجدده قبل انتهاء صلاحيته. ويمدد التجديد مدة TTL حتى بلوغ TTL القصوى، وبعد ذلك يجب على التطبيق طلب بيانات اعتماد جديدة.

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

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

# Renew a lease before it expires
vault lease renew database/creds/billing-readonly/abc123

# Revoke a single lease immediately (incident kill switch)
vault lease revoke database/creds/billing-readonly/abc123

# Revoke every lease under a path prefix
vault lease revoke -prefix database/creds/billing-readonly

ما يتجاوز قواعد البيانات

لا تقتصر الأسرار الديناميكية على قواعد البيانات. إذ ينشئ Vault والأدوات المشابهة بيانات اعتماد قصيرة العمر للعديد من الأنظمة:

  • Cloud IAM: مفاتيح وصول مؤقتة إلى AWS/GCP/Azure عبر افتراض دور بأسلوب STS.
  • SSH: شهادات SSH موقعة وقصيرة العمر بدلاً من المفاتيح الثابتة.
  • PKI/TLS: شهادات تُصدر عند الطلب وتكون قصيرة الصلاحية.
  • RabbitMQ وMongoDB وConsul: بيانات اعتماد مؤقتة للخدمات.

النمط واحد في كل مكان: اطلب، واستخدم لفترة وجيزة، ودع الصلاحية تنتهي تلقائياً. وتُعد مفاتيح السحابة الثابتة وطويلة العمر مصدراً متكرراً للاختراقات؛ أما بيانات اعتماد IAM الديناميكية فتزيل هذه المفاتيح.

# Generate temporary AWS credentials scoped to a role
vault read aws/creds/deploy-role
# returns short-lived access_key, secret_key, security_token

# Sign an SSH key for short-lived access (valid minutes, not forever)
vault write ssh/sign/admin public_key=@id_ed25519.pub ttl=15m

لماذا تقلص الأسرار الديناميكية نطاق تأثير الاختراق

تأمل بيانات اعتماد مسرّبة في كل نموذج:

  • الثابتة: تظل كلمة المرور صالحة إلى أن يلاحظها شخص، ويدورها، ويحدّثها لدى كل مستهلك. وقد تمتد فترة التعرض لأيام أو أشهر.
  • الديناميكية: تنتهي صلاحية بيانات الاعتماد ضمن مدة TTL الخاصة بها (غالباً من دقائق إلى ساعة)، وتكون محددة لمستهلك واحد ذي أقل قدر من الصلاحيات. لذلك تكون فترة التعرض قصيرة جداً ويظل الضرر محصوراً.

تحول الأسرار الديناميكية عملية التدوير من مشروع يدوي شاق إلى خاصية تلقائية ومستمرة في النظام.

الموازنة المتعلقة ببيانات اعتماد الجذر

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

إجراءات الحد من المخاطر:

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

يمكن لـ Vault تدوير بيانات اعتماد الجذر الخاصة به، بحيث لا يعرفها أي إنسان بعد الإعداد.

# After configuring the engine, rotate the root credential
# so even operators no longer know the original password
vault write -force database/rotate-root/appdb

التعامل مع انتهاء الصلاحية في شيفرة التطبيق

يجب كتابة التطبيقات بحيث تتوقع تغيّر بيانات الاعتماد. مع الأسرار الثابتة، تقرأ الشيفرة كلمة المرور مرة واحدة عند بدء التشغيل. أما مع الأسرار الديناميكية، فيجب على الشيفرة أن:

  • تجلب بيانات اعتماد وتسجل مدة TTL لعقد إيجارها.
  • تجدد عقد الإيجار أو تجلب بيانات اعتماد جديدة قبل انتهاء الصلاحية.
  • تعيد الاتصال بسلاسة عند إبطال بيانات اعتماد قديمة.

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

# Vault Agent auto-renews and re-templates on rotation
auto_auth { method "approle" { ... } }
template {
  contents    = "{{ with secret \"database/creds/billing-readonly\" }}{{ .Data.username }}:{{ .Data.password }}{{ end }}"
  destination = "/run/secrets/db"
  command     = "systemctl reload billing-app"
}

متى يتعذر تجنب الأسرار الثابتة

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

  • خزّنها في الخزنة، ولا تضعها في الشيفرة مطلقاً.
  • قيّدها بمبدأ أقل قدر من الامتيازات.
  • دوّرها وفق جدول زمني (وسنتناول ذلك في الدرس التالي).
  • راقب استخدامها بحثاً عن الحالات الشاذة.

القاعدة العامة: فضّل الأسرار الديناميكية؛ وعندما تُجبر على استخدام الأسرار الثابتة، فدوّرها ودقّقها بلا هوادة.

الأسرار الديناميكية في CI/CD

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

  • يصادق مع الخزنة باستخدام هويته في OIDC (مثل رمز OIDC الخاص بـ GitHub Actions).
  • يطلب بيانات اعتماد سحابية قصيرة العمر، لا تكون صالحة إلا طوال مدة المهمة.
  • يتركها تنتهي صلاحيتها تلقائياً عند انتهاء المهمة.

ولا يوجد أي مفتاح نشر طويل العمر على الإطلاق. فإذا سُرّب سجل مسار مخترق، فستكون بيانات الاعتماد قد أصبحت غير صالحة قبل أن يقرأها أي شخص.

# GitHub Actions job exchanges its OIDC token for a short-lived AWS role
# No static AWS keys stored as repo secrets
permissions:
  id-token: write
steps:
  - uses: aws-actions/configure-aws-credentials@v4
    with:
      role-to-assume: arn:aws:iam::123:role/deploy
      aws-region: eu-central-1

تحقق سريع

اختبر مدى فهمك لعقود الإيجار والأسرار الديناميكية.

مراجعة: الأسرار الديناميكية وعقود الإيجار

تعلّمت كيف تغيّر بيانات الاعتماد قصيرة العمر والمنتهية الصلاحية تلقائياً طريقة إدارة الأسرار.

  • تُولّد الأسرار الديناميكية عند الطلب، وتكون فريدة لكل مستهلك، وتنتهي صلاحيتها تلقائياً، بخلاف الأسرار الثابتة المعاد استخدامها.
  • يحدد عقد الإيجار قيمة TTL وTTL القصوى؛ وعند انتهاء الصلاحية، تقوم الخزنة بإبطال بيانات الاعتماد مع تنفيذ تنظيف فعلي.
  • يمكن للتطبيقات طويلة التشغيل تجديد عقود الإيجار، أو يمكن إبطالها فوراً باعتبار ذلك مفتاح إيقاف طارئ أثناء الحوادث.
  • تعمل الأسرار الديناميكية مع قواعد البيانات وCloud IAM وSSH وPKI وغيرها، فتقلص نطاق تأثير الاختراق وتؤتمت عملية التدوير.
  • تتمثل الموازنة في وجود بيانات اعتماد جذرية مميزة داخل الخزنة؛ لذا يجب تدويرها وتقييد نطاقها بإحكام.
  • يجب كتابة التطبيقات وCI/CD للتعامل مع انتهاء الصلاحية؛ ففضّل الأسرار الديناميكية، ودوّر الأسرار الثابتة عندما يتعذر تجنبها.

بعد ذلك، سنتناول تدوير المفاتيح واكتشاف التسريبات عندما تفلت من الضوابط.

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

هل درس «الأسرار الديناميكية وتأجيرها» مجاني؟

نعم — نص درس «الأسرار الديناميكية وتأجيرها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cyber Security Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.

ماذا ستتعلم في «الأسرار الديناميكية وتأجيرها»؟

بيانات اعتماد قصيرة الأجل تنتهي تلقائيًا. تتمرن على Cyber Security Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cyber Security Academy؟

لا تُشترط خبرة سابقة. Cyber Security Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «الأسرار الديناميكية وتأجيرها»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cyber Security Academy هذا؟

نعم. كل درس في Cyber Security Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مشكلة انتشار الأسرار
  2. خزائن ومستودعات الأسرار
  3. الأسرار الديناميكية وتأجيرها
  4. تدوير المفاتيح واكتشاف التسريبات
← العودة إلى Cyber Security Academy