Google'ın Gizli Hipervizörü Tersine Mühendislikle Çözüldü: TDX Doğrulaması
Google'ın kapalı kaynaklı TDX hipervizörünün tersine mühendisliğiyle MRTD/RTMR0 doğrulama boşluğu nasıl kapatıldı, teknik detaylarıyla.
Bulut ortamında çalışan bir Intel TDX güvenli sanal makinesini bulut sağlayıcısına güvenmeden doğrulamak, MRTD ve RTMR0-RTMR2 ölçüm değerlerinin bağımsız olarak yeniden hesaplanmasını gerektirir. RTMR1 ve RTMR2 dosya sistemi ile çekirdek gibi VM imaj bileşenlerinden türetilirken, MRTD ve RTMR0 Google'ın kapalı kaynaklı UEFI firmware'ine bağlıdır ve bu da doğrulamayı zorlaştırır.
Araştırmacı, firmware dosyasını makine kodunu çözümlemeden, TDX metadata tablosundaki etiketli bellek bölgelerini okuyarak analiz etti. Bu yöntemle MRTD değeri doğrudan yeniden üretilebildi; CFV bölgesinin RTMR0'a ayrı olarak nasıl hashlendiği de ortaya çıkarıldı.
Asıl zorluk, firmware değil hipervizör tarafından oluşturulan Hand-Off Block (HOB) idi. Google'ın hipervizörü kapalı kaynak olduğundan HOB'un nasıl inşa edildiği belgelenmemişti. Yamalı bir Linux çekirdeği ile bellek içeriği farklı VM boyutlarında okunarak Google'ın hipervizörünün HOB'u standart QEMU'dan farklı sırayla ve ek bölgelerle oluşturduğu tespit edildi.
Bu keşif sayesinde RTMR0'daki tüm olaylar VM'i çalıştırmadan ve Google'a güvenmeden yeniden üretilebiliyor; firmware doğrulamasındaki son boşluk kapatılmış oldu. Geriye yalnızca ACPI tabloları ve firmware ikili dosyasına duyulan güven kalıyor; bunlar serinin sonraki bölümlerinde ele alınacak.