تم تسريب 1,033 مفتاحاً سرياً نشطاً لـ Stripe من 669 مورداً بعد ترك ملفات .env وسجلات التصحيح (debug logs) متاحة على شبكة الإنترنت العامة. تتيح هذه المفاتيح لأي شخص إجراء عمليات دفع، وسحب الفواتير، وجمع تفاصيل العملاء – وهو خرق يمكن أن يستنزف المحافظ ويدمر السمعة في دقائق.

ما الذي تسبب في التسريب

يقوم المطورون بشكل روتيني بتخزين بيانات التكوين – مثل كلمات مرور قواعد البيانات، ورموز API، ومفاتيح Stripe السرية – في ملف يسمى .env. يوجد هذا الملف بجانب الكود المصدري ويتم قراءته أثناء وقت التشغيل (runtime) لإبقاء الأسرار بعيدة عن قاعدة الكود. تنجح هذه الممارسة فقط إذا كان الخادم لا يقدم أبداً ملفات تبدأ بنقطة. في هذه الحالة، سمحت خوادم الويب التي تمت تهيئتها بشكل خاطئ (سواء Nginx أو Apache) بطلبات لـ “/.env” و “/.env.example” و “/.git/HEAD” ونقطة نهاية مخصصة “/debug” لإرجاع الملف الخام مع حالة 200 OK.

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

لماذا يمثل هذا التعرض خطورة

يعتبر مفتاح Stripe السري بمثابة كلمة مرور رئيسية لنظام الدفع الخاص بالتاجر. يمكن لأي شخص يمتلكه أن يقوم بـ:

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

تضمنت مجموعة البيانات المسربة كل ما سبق، بالإضافة إلى تفاصيل عمليات الدفع التي تكشف مقدار ما كسبه كل مورد. بالنسبة للشركات، فإن الخطر المباشر يتمثل في المعاملات الاحتيالية التي تؤدي إلى عمليات استرداد الأموال (chargebacks)، وفقدان ثقة العملاء، والغرامات المحتملة بموجب PCI-DSS أو GDPR أو أنظمة خصوصية البيانات الأخرى. أما التكلفة طويلة المدى فقد تكون أعلى بكثير: الرسوم القانونية، وتكاليف الإصلاح، وتضرر العلامة التجارية التي قد لا تتعافى أبداً.

اختبار سريع: هل ملف .env الخاص بك مكشوف؟

افتح واجهة الأوامر (terminal) واستبدل yourdomain.com باسم المضيف الخاص بك:

for p in "/.env" "/.env.example" "/.git/HEAD" "/debug"; do
  echo -n "$p -> "
  curl -s -o /dev/null -w "%{http_code}\n" "https://yourdomain.com$p"
done

يجب أن تعيد كل سطر الحالة 403 (ممنوع) أو 404 (غير موجود). أما استجابة 200 فتعني أن الملف قابل للقراءة علناً – وهو حادث أمني حرج يتطلب اهتماماً فورياً.

خطوات المعالجة الفورية

1. حظر الملفات التي تبدأ بنقطة (dotfiles) على خادم الويب

  • Nginx – أضف كتلة موقع (location block) تمنع أي طلب للملفات التي تبدأ بنقطة.
  • Apache – استخدم توجيه FilesMatch في ملف .htaccess لإرجاع الحالة 403 للملفات التي تبدأ بنقطة.

2. تحصين سير عمل Docker الخاص بك

  • أضف .env إلى .dockerignore حتى لا يتم نسخ الملف أبداً إلى الصورة (image).
  • تجنب استخدام تعليمات COPY لأي ملف يحتوي على أسرار.

3. تدوير كل مفتاح تعرض للاختراق

  • سجل الدخول إلى Stripe Dashboard ← Developers ← API keys.
  • قم بإنشاء مفتاح سري جديد وإلغاء المفتاح القديم فوراً.

4. اعتماد مفاتيح "الحد الأدنى من الصلاحيات"

  • توقف عن استخدام مفتاح سري واحد لجميع العمليات.
  • أنشئ مفاتيح مقيدة تسمح فقط بالإجراءات المطلوبة – على سبيل المثال، تحتاج خدمة الدفع (checkout service) إلى إذن لإنشاء نوايا الدفع (payment intents) ولكن ليس لإصدار عمليات استرداد الأموال أو عرض عمليات الدفع.

5. تطهير كل نسخة من المفتاح القديم

  • افحص سجلات CI/CD، ومخرجات البناء (build artifacts)، وأرشيف النسخ الاحتياطي.
  • استخدم أدوات فحص الأسرار مثل Gitleaks أو TruffleHog لفحص سجل Git الخاص بك.

المفتاح المسرب لا يختفي بمجرد حذف الملف من الخادم؛ بل يظل موجوداً للأبد في أيدي من قاموا بتنزيله. تدوير المفاتيح هو الطريقة الوحيدة لجعل البيانات المسروقة عديمة الفائدة.

ما بعد الإصلاح: بناء مسار عمل أكثر أماناً

  • الفحص الآلي – ادمج عملية اكتشاف الأسرار في كل طلب سحب (pull request) ووظيفة CI.
  • إدارة التكوين – قم بتخزين الأسرار في خزنة مخصصة (مثل HashiCorp Vault أو AWS Secrets Manager) وقم بحقنها أثناء وقت التشغيل بدلاً من الاعتماد على الملفات الثابتة.
  • مراجعات الوصول – قم بإجراء تدقيق دوري للمفاتيح النشطة في Stripe والصلاحيات التي تمتلكها.

تقلل هذه الممارسات من احتمالية أن يؤدي خادم واحد تمت تهيئته بشكل خاطئ إلى كشف البنية التحتية للدفع بالكامل.

ما يجب مراقبته لاحقاً

يبحث المجتمع الأمني بالفعل عن مفاتيح إضافية مكشوفة باستخدام نفس المنهجية. توقع المزيد من الإفصاحات مع قيام الماسحات الآلية بمسح الويب بحثاً عن ملفات “/.env” التي تحتوي على رموز Stripe. قد تصدر Stripe إرشادات إضافية حول وتيرة تدوير المفاتيح وتوصي باستخدام المفاتيح المقيدة للعمليات عالية المخاطر.

الخلاصة

إذا كان من الممكن الوصول إلى ملف إعدادات (dotfile) عبر المتصفح، فإن نظام الدفع الخاص بك قد تعرض للاختراق بالفعل – قم بحظر الملف، وتدوير المفتاح، وإعادة تصميم سير عمل إدارة الأسرار قبل أن يطال الاحتيال سجلاتك المالية.