كل المقالات

اختُرقت منصة الاستضافة: دوّر متغيرات البيئة بالترتيب الصحيح

الأمان · 4 دقيقة قراءة ·

أسرارك محفوظة في قاعدة بيانات شخص آخر، والسؤال الحقيقي هو: هل تستطيع تغييرها كلها في ساعة لو تسرّبت؟ في 21 أكتوبر 2026 نشرت ⁨Railway⁩ إفصاحًا أمنيًا تقول فيه إنها رصدت صباح ذلك اليوم نشاطًا غير طبيعي في الأنظمة التي تخزّن متغيرات البيئة الخاصة بعملائها، وإن تحقيقها حتى الآن يشير إلى أن طرفًا ثالثًا غير مصرّح له ربما وصل إلى متغيرات مشفّرة، وحصل في بعضها على محتواها بعد فك التشفير. وتوصي الشركة جميع مستخدميها بتدوير كل متغيرات البيئة المخزّنة لديها، بما فيها مفاتيح الواجهات البرمجية وبيانات اعتماد السجلات الخاصة، ومراجعة سجلات تلك الخدمات. إن كنت تنشر تطبيق ⁨Laravel⁩ أو ⁨Node.js⁩ على أي منصة، فالدرس يتجاوز شركة واحدة.

ما الذي قالته ⁨Railway⁩

بحسب ⁨Railway⁩، قد تحتوي المتغيرات المتأثرة على مفاتيح واجهات برمجية وبيانات اعتماد لقواعد البيانات والسجلات. تقول الشركة إن تحليلها الأولي يرجّح أن الأثر قد يقتصر على جزء من المستخدمين، لكنها تطلب من الجميع التدوير مع ذلك. وتعتقد أن الحادثة جزء من سلسلة هجمات استهدفت مؤخرًا شركات المنصات بهدف الوصول إلى مزوّدي خدمات تشغيل نماذج الذكاء الاصطناعي، وقد أبلغت هؤلاء المزوّدين ليلغوا المفاتيح استباقيًا. وأُوقفت عمليات النشر أثناء التحقيق، فلم يستطع المستخدمون إطلاق نسخ جديدة حتى عادت عمليات البناء. وتقول الشركة إنها ستراسل العملاء المتأثرين المؤكَّدين بالبريد وتنشر التحديثات على ⁨status.railway.com⁩.

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

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

قائمة الجرد التي يجب أن تكون عندك

ما يلي إرشاد عام، وليس شيئًا نصّت عليه ⁨Railway⁩. ابدأ بقائمة بكل سر يستخدمه التطبيق ومن أين جاء. في تطبيق ⁨Laravel⁩ أو ⁨Node.js⁩ المعتاد تشمل القائمة كلمة مرور قاعدة البيانات، وبيانات اعتماد الطوابير والتخزين المؤقت، ومفاتيح خدمة البريد، ومفاتيح بوابة الدفع، ومفاتيح مزوّدي الذكاء الاصطناعي، وأسرار عملاء ⁨OAuth⁩، وأسرار توقيع الـ⁨webhooks⁩، ومفاتيح التخزين مثل ⁨S3⁩، ورموز المراقبة مثل ⁨Sentry⁩. اكتب بجانب كل سر مزوّده، ومن يملك صلاحية تدويره، وأي الخدمات تقرؤه. بدون هذه القائمة يتحوّل التدوير إلى قراءة كود قديم لتعرف بماذا يتصل التطبيق أصلًا.

في ⁨Laravel⁩ سرٌّ واحد له آثار جانبية: تغيير ⁨APP_KEY⁩ يُبطل كل ما شُفّر أو وُقّع به، من ملفات تعريف الارتباط المشفّرة والجلسات، والقيم المحفوظة عبر ⁨Crypt⁩، والروابط الموقّعة. يدعم ⁨Laravel⁩ قائمة بالمفاتيح السابقة تُستخدم لفك التشفير أثناء التدوير، فاقرأ التوثيق الخاص بإصدارك قبل أن تعتمد عليها. الشكل قائمة مفصولة بفواصل في ملف البيئة:

APP_KEY=base64:the-new-key
APP_PREVIOUS_KEYS=base64:the-old-key

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

دوّر بهذا الترتيب: أنشئ، انشر، ألغِ

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

1. أنشئ مفتاحًا جديدًا 2. انشر القيمة الجديدة 3. تحقّق أنها مستخدمة 4. ألغِ القديم عند المزوّد المفتاح القديم يعمل حتى الخطوة 4، فلا يتوقف شيء في المنتصف
ألغِ في النهاية، وألغِ من المصدر. حذف سطر من ملف ⁨.env⁩ لا يُلغي شيئًا.
لا يُعدّ السر مُدوَّرًا إلا حين تتوقف القيمة القديمة عن العمل عند المزوّد، لا حين تختفي من ملف البيئة.

اجعل الحادثة القادمة أصغر

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

الخطوة التالية محددة: اكتب اليوم قائمة الجرد لتطبيق واحد، بكل سر ومزوّده وخطوات الإنشاء والنشر والإلغاء الخاصة به. إن كنت على ⁨Railway⁩ فاتبع تعليماتها ودوّر كل شيء الآن. وإن لم تكن، فنفّذ التمرين على أي حال، فالسؤال ليس هل منصتك هي التالية، بل هل تستطيع الرد خلال ساعة.

المصدر: مدونة ⁨Railway⁩، إفصاح أمني بتاريخ 21 أكتوبر.

ملاحظات القراء

  1. لا توجد ملاحظات بعد. الأولى دائمًا الأجرأ.
هل تبني شيئًا مشابهًا؟ يسعدني تقديم المساعدة. راسلني على واتساب