
استغلال واستراتيجيات التخفيف بالدفاع المتعمق لثغرة تسرب الذاكرة في KeePass (CVE-2023-32784).
تحليل ثغرة CVE-2023-32784 في KeePass Password Safe (v2.53)، وإثبات استخراج كلمة المرور الرئيسية عبر تفريغ الذاكرة، وهندسة ضوابط قوية للكشف والتخفيف من الأثر.
تستخدم KeePass مكوّن SecureTextBoxEx مخصصاً لإدخال كلمة المرور الرئيسية، وهو ما يولّد شظايا نصوص متبقية في مساحة عنوان العملية مع كل حرف يُكتب. ومن خلال التقاط ملف .DMP للعملية قيد التشغيل، يمكن تجميع هذه الشظايا معاً لإعادة بناء كلمة المرور بالنص الصريح.
بينما تعاون الفريق في مرحلتي الاستغلال والتخفيف، قمتُ أنا تحديداً بتصميم بنية الثغرة واستراتيجية الكشف باستخدام تدقيق أمان Windows (Windows Security Auditing):
تدقيق إنشاء العمليات (معرف الحدث 4688): تم تكوين نهج المجموعة (Group Policy) لتسجيل جميع عمليات تنفيذ البرامج مع وسائط سطر الأوامر الكاملة. وقد نجح هذا في التقاط سلسلة التنفيذ الدقيقة لأداة الاستغلال المكتوبة بلغة C# (keepass_password_dumper.exe KeePass.DMP).
تدقيق الوصول إلى الكائنات (معرفا الحدث 4663 و4656): تم تكوين تدقيق نظام الملفات لملفي KeePass.exe وDatabase.kdbx. وقد أدى هذا إلى إطلاق تنبيهات كلما جرت محاولة للوصول إلى مساحة الذاكرة الحساسة أو طلب مقابض (handles) لها.
التحكم في الوصول: تمت إزالة صلاحية "Debug Programs" من المستخدمين العاديين عبر نهج الأمان المحلي (Local Security Policy) لمنع إنشاء تفريغات ذاكرة غير مصرح بها على مستوى نظام التشغيل.
التشفير: تم نشر BitLocker لتشفير القرص الكامل باستخدام تشفير XTS-AES بطول 128 بت لحماية تفريغات الذاكرة وملفات الترحيل (paging files) أثناء التخزين.