تجريد الأسرار من النسخ الاحتياطي قبل رفعها
النسخ الاحتياطي التلقائي فكرة صحيحة، وتنفيذها الساذج قد يكون أخطر من تركها.
ما اكتشفته
كان النسخ الليلي يصدّر قاعدة البيانات كاملة ويحفظ الناتج كما هو. وعندي في القاعدة جدول إعدادات، وداخل هذا الجدول مفاتيح المزودين وتوكنات الوصول.
يعني كل ليلة كنت أنسخ أسراري إلى مكان لم أعامله يوما كمكان للأسرار.
لماذا حدث هذا
لأن التصدير كان صحيحا من الناحية التقنية: أخرج كل شيء كما طُلب منه، والمشكلة أن «كل شيء» شمل ما لا يصح أن يغادر القاعدة أصلا.
وهذا نمط يتكرر في مواضع كثيرة: الأداة تنفذ الطلب بحذافيره، والخلل يجلس في الطلب نفسه.
ما فعلته
أضفت منقيا إلزاميا في مسار التصدير: خطوة تمر على الناتج قبل حفظه وتستبدل قيم المفاتيح الحساسة بعلامة ثابتة.
والكلمة المفصلية هنا «إلزامي». أي مسار تصدير جديد يمر بهذه الخطوة تلقائيا، وإلا صار الأمان معلقا على ذاكرة من يكتب المسار التالي.
القاعدة التي خرجت بها
افترض أن النسخة الاحتياطية ستُقرأ. ولا يلزم أن يكون القارئ مهاجما: قد يفتحها متعاون يساعدك في مهمة، وقد تنتهي منسوخة على جهاز محمول ثم تقبع في مجلد نسيه الجميع.
والنسخة الاحتياطية أشد حساسية من بيئة الإنتاج نفسها، لأنها تجمع كل شيء في ملف واحد يسهل نقله.
ماذا تفعل الآن
افتح آخر نسخة احتياطية عندك وابحث داخلها عن كلمة key أو token أو secret. إن وجدت شيئا فأنت في نفس الموضع الذي كنت فيه، والخطوة التالية واضحة: أضف التنقية إلى مسار التصدير قبل الليلة القادمة.