
إثبات مفهوم يوضح تجاوز تشفير القرص LUKS المرتبط بـ TPM على أنظمة لينكس، مع استخراج مفاتيح الحجم عبر هجوم نظام ملفات جذر مخصص.
يحتوي هذا المستودع على كود بسيط لإثبات المفهوم يستغل ثغرة شائعة تم وصفها لأول مرة منذ أكثر من عام على https://oddlama.org/blog/bypassing-disk-encryption-with-tpm2-unlock/. وعلى الرغم من أنه يستهدف IncusOS على وجه التحديد، إلا أن الهجوم عام إلى حد كبير ضد معظم أنظمة Linux الحديثة.
إذا كنت تربط تشفير LUKS الخاص بك بمعالج TPM، فتأكد من تعيين رمز PIN لمعالج TPM أيضًا.
هذا إثبات مفهوم سريع وغير مكتمل. إنه ليس مصقولًا بالكامل، وهناك بعض الحواف الخشنة. لا يوجد دعم، ولا أخطط لأي تطوير إضافي.
أنا، مثل معظم الناس، افترضت أن إعداد تشفير قرص LUKS المرتبط بشريحة TPM في حاسوبي المحمول سيكون آمنًا ويمنع المهاجم من استخراج مفتاح وحدة تخزين LUKS (المعروف أيضًا باسم المفتاح الرئيسي). اتضح أنه من السهل بشكل محبط تقريبًا القيام بذلك دون ترك أي أثر للهجوم.
نعم، المشكلة هي أن المهاجم يمكنه توفير نظام ملفات جذر مخصص، وبعد تشغيل نظامك، سيكون معالج TPM في حالة "جيدة" معروفة حيث سيقوم بفتح وحدة تخزين LUKS الخاصة بك عن طيب خاطر. يمكن للمهاجم بعد ذلك فعل ما يريد، وتغطية أي دليل على الهجوم بسهولة.
لكن المهاجم المُجهز يحتاج حرفيًا فقط إلى امتلاك جهاز الكمبيوتر الخاص بك لبضع دقائق وستكون قد اخترقت. هل تترك حاسوبك المحمول في غرفة الفندق أثناء الخروج لتناول العشاء؟ ماذا عن نقطة تفتيش أمنية حيث يتم استبعادك للاستجواب؟ نعم، هذا ليس جيدًا.
يقوم السكربت ./prepare.sh بتنفيذ الخطوات اللازمة لاختراق الجهاز الافتراضي المستهدف. يمكن تنفيذ
نفس الخطوات بسهولة ضد قرص صلب حقيقي تم إزالته مؤقتًا من غلافه الطبيعي.
"الاستغلال" الفعلي سيستخرج مفتاح وحدة تخزين LUKS الأصلي، والذي يمكن رؤيته من خلال النظر في سجل
اليوميات لـ attack.service. العديد من الاختلافات في هذا الهجوم ممكنة.
قم بتشغيل ./restore.sh لمسح جميع الأدلة على أفعالك بينما تمشي بعيدًا بمفتاح وحدة تخزين LUKS
لضحيتك.