دور زدن رمزگذاری دیسک با استفاده از TPM2 برای باز کردن قفل خودکار

یکی از نگهبانان بسته NixOS تکنیک حمله ای را معرفی کرد که با قرار دادن اطلاعات رمزگشایی در TPM2 (ماژول پلتفرم مورد اعتماد) امکان دسترسی به داده ها را در پارتیشن های دیسک رمزگذاری شده در پیکربندی هایی که نیازی به رمز باز کردن قفل در هنگام بوت ندارند، می دهد. چنین تنظیماتی اغلب در سرورها یا ایستگاه های کاری چند کاربره استفاده می شود، جایی که وارد کردن دستی رمز عبور پس از هر بار راه اندازی مجدد مشکل دارد.

هنگام استفاده از این روش رمزگذاری دیسک، رمزگشایی با استفاده از یک کلید اضافی ذخیره شده در TPM انجام می شود و تنها زمانی صادر می شود که وضعیت اولیه سیستم تأیید شود. وضعیت سیستم به شکل هش در رجیسترهای PCR (Platform Configuration Register) ذخیره می شود و به امضای دیجیتالی که بوت لودر با آن گواهی می شود و همچنین به چک جمع های بوت لودر و محیط بوت اولیه (initrd) گره خورده است. . دسترسی به یک کلید در TPM تنها زمانی اعطا می شود که تمام رجیسترهای PCR مرتبط با آن در همان حالتی باشند که کلید ذخیره شده است.

فرض بر این است که زنجیره بوت سیستم عامل با استفاده از UEFI Secure Boot تأیید شده است و دسترسی به کلیدها را فقط می توان از یک تصویر initrd اصلاح نشده به دست آورد. در صورت موفقیت آمیز بودن تأیید، قفل دیسک به طور خودکار باز می شود، اما دسترسی به داده های رمزگشایی شده تنها با ورود به حساب خود در سیستم امکان پذیر است. اگر بدون بوت تایید شده دسترسی داشته باشید یا سعی کنید به منظور رهگیری کلیدها، initrd را جایگزین یا تغییراتی در آن ایجاد کنید، زنجیره اعتماد شکسته می شود، وضعیت ثبات های PCR تغییر می کند و TPM2 اطلاعات لازم برای رمزگشایی را ارائه نمی دهد. .

روش حمله منتشر شده، نیاز به تغییر محتوای initrd در پیکربندی‌هایی که پارتیشن‌های رمزگذاری شده با LUKS را شناسایی نمی‌کنند، از بین می‌برد. لازم به ذکر است که فعال کردن چنین بررسی پارتیشنی در تمام دستورالعمل‌های تنظیم رمزگذاری دیسک موجود شرح داده نشده است، زیرا شناسایی پارتیشن پیکربندی را به طور قابل توجهی پیچیده می‌کند (نیاز به استفاده از یک رجیستر PCR اضافی برای تأیید کلید پارتیشن و تولید initrd بر اساس مقدار آن). نمونه‌هایی از این حمله برای فدورا نشان داده شده است. Linux در ارتباط با جعبه ابزار clevis و برای NixOS، در ارتباط با systemd-cryptenroll. دسترسی فیزیکی به رایانه و امکان جدا کردن درایو برای انجام حمله لازم است.

این روش مبتنی بر این واقعیت است که مهاجم می تواند پارتیشن رمزگذاری شده ریشه موجود را با پارتیشن رمزگذاری شده خودش که با همان شناسه UUID و کلیدهای رمزگشایی شناخته شده برای مهاجم ایجاد شده است، جایگزین کند. محیط initrd کنترل را به فرآیند init در بخش مهاجم منتقل می کند. از آنجایی که محتویات initrd تغییر نکرده است، وضعیت TPM نقض نمی شود و با به دست آوردن کنترل محیط خود، مهاجم می تواند از TPM برای رمزگشایی کلید پارتیشن دیسک اصلی استفاده کند.

حمله به مراحل زیر انجام می شود:

  • حذف دیسک و تجزیه و تحلیل داده های رمزگذاری نشده در پارتیشن /boot در رایانه دیگری. تعیین اطلاعات مربوط به پارتیشن رمزگذاری شده و UUID آن از تصویر initrd واقع در پارتیشن /boot.
  • یک نسخه پشتیبان از 64 مگابایت اول پارتیشن رمزگذاری شده LUKS ایجاد کنید.
  • جایگزینی 64 مگابایت مشخص شده با یک تصویر با پارتیشن ریشه خود، رمزگذاری شده با استفاده از کلید شناخته شده توسط مهاجم و داشتن یک شناسه UUID مشابه پارتیشن قدیمی.
  • بازگرداندن دیسک به کامپیوتر اصلی و بوت شدن با یک پارتیشن ریشه جایگزین شده. از آنجایی که باز کردن قفل خودکار با استفاده از کلید TPM برای پارتیشن جعلی انجام نمی شود، initrd از شما می خواهد که رمز عبور را به صورت دستی وارد کنید.
  • بازیابی کلید اصلی از TPM با استفاده از ابرداده مربوط به TPM و رمز رمزگذاری شده از سربرگ LUKS پارتیشن قدیمی.
  • تنظیم مجدد دیسک بر روی رایانه مهاجم، بازیابی قسمت بازنویسی شده پارتیشن LUKS از یک نسخه پشتیبان، و استفاده از کلید اصلی به دست آمده برای دسترسی به داده ها.

منبع: opennet.ru

خرید هاست قابل اعتماد برای سایت های دارای حفاظت DDoS، سرورهای VPS VDS 🔥 خرید هاستینگ معتبر با محافظت در برابر حملات DDoS، سرورهای VPS و VDS | ProHoster