Mierzone zaświadczania rozruchu i hosta

W tym artykule opisano, jak firma Microsoft zapewnia integralność i bezpieczeństwo hostów za pomocą mierzonego rozruchu i zaświadczania hosta.

Mierzony rozruch

Moduł TPM (Trusted Platform Module) to składnik inspekcji zabezpieczony kryptograficznie przed naruszeniami z oprogramowaniem układowym dostarczonym przez zaufaną firmę trzecią. Dziennik konfiguracji rozruchu zawiera pomiary łańcuchowe skrótów zarejestrowane w rejestrach konfiguracji platformy (PCR), gdy host ostatnio przeszedł sekwencję uruchamiania. Na poniższej ilustracji przedstawiono ten proces rejestrowania. Przyrostowe dodanie wcześniej skrótu miary do skrótu następnego pomiaru i uruchomienie algorytmu tworzenia skrótu w unii umożliwia tworzenie łańcuchów skrótów.

Diagram przedstawiający łączenie skrótów usługi zaświadczania hosta.

Zaświadczenie jest realizowane, gdy host dostarczy dowód stanu konfiguracji przy użyciu dziennika konfiguracji rozruchu (TCGLog). Fałszerz dziennik rozruchu jest trudny, ponieważ moduł TPM nie ujawnia wartości PCR innych niż operacje odczytu i rozszerzania. Ponadto poświadczenia dostarczone przez usługę zaświadczania hosta są zapieczętowane do określonych wartości PCR. Użycie tworzenia łańcuchów skrótów sprawia, że obliczanie jest niewykonalne w celu fałszowania lub odseparowania poświadczeń poza pasmem.

Usługa zaświadczania hosta

Usługa zaświadczania hosta to środek zapobiegawczy, który sprawdza, czy maszyny hosta są godne zaufania, zanim będą mogły wchodzić w interakcje z danymi lub obciążeniami klientów. Usługa zaświadczania hosta sprawdza, sprawdzając instrukcję zgodności (weryfikowalny dowód zgodności hosta) wysłany przez każdego hosta pod kątem zasad zaświadczania (definicja stanu bezpiecznego). Integralność tego systemu jest zapewniona przez element główny zaufania zapewniany przez moduł TPM.

Usługa zaświadczania hosta jest obecna w każdym klastrze platformy Azure w wyspecjalizowanym środowisku zablokowanym. Zablokowane środowisko obejmuje inne usługi gatekeeper, które uczestniczą w protokole uruchamiania maszyny hosta. Infrastruktura kluczy publicznych (PKI) działa jako pośrednik w weryfikowaniu pochodzenia żądań zaświadczania i jako wystawca tożsamości (zależne od pomyślnego zaświadczania hosta). Poświadczenia po zaświadczeniu wystawione dla hosta zaświadczania są zapieczętowane na jego tożsamość. Tylko host żądający może odsewarować poświadczenia i wykorzystać je do uzyskania uprawnień przyrostowych. Zapobiega to atakom typu man-in-the-middle i fałszowaniu.

Jeśli host platformy Azure przybywa z fabryki z błędną konfiguracją zabezpieczeń lub jest modyfikowany w centrum danych, jego TCGLog zawiera wskaźniki naruszenia zabezpieczeń oflagowane przez usługę zaświadczania hosta po następnym zaświadczeniu, co powoduje niepowodzenie zaświadczania. Błędy zaświadczania uniemożliwiają flocie platformy Azure zaufanie do hosta, który jest obraźliwy. To zapobieganie skutecznie blokuje całą komunikację z hostem i z hosta oraz wyzwala przepływ pracy zdarzenia. Badanie i szczegółowa analiza pośmiertna są prowadzone w celu określenia głównych przyczyn i potencjalnych oznak naruszenia. Dopiero po zakończeniu analizy host jest korygowany i ma możliwość dołączenia do floty platformy Azure i podjęcia obciążeń klientów.

Poniżej przedstawiono architekturę wysokiego poziomu usługi zaświadczania hosta:

Diagram przedstawiający architekturę usługi zaświadczania hosta.

Pomiary zaświadczania

Poniżej przedstawiono przykłady wielu pomiarów przechwyconych dzisiaj.

Bezpieczny rozruch i klucze bezpiecznego rozruchu

Sprawdzając, czy baza danych podpisów i odwołane skróty bazy danych sygnatur są poprawne, usługa zaświadczania hosta zapewnia, że agent klienta uważa, że odpowiednie oprogramowanie jest zaufane. Sprawdzając podpisy bazy danych klucza rejestracji klucza publicznego i klucza platformy publicznej, usługa zaświadczania hosta potwierdza, że tylko zaufane strony mają uprawnienia do modyfikowania definicji oprogramowania uznawanego za zaufane. Na koniec, upewniając się, że bezpieczny rozruch jest aktywny, usługa zaświadczania hosta sprawdza, czy te definicje są wymuszane.

Kontrolki debugowania

Debugery to zaawansowane narzędzia dla deweloperów. Jednak nieskrępowany dostęp do pamięci i innych poleceń debugowania może osłabić ochronę danych i integralność systemu, jeśli zostanie nadana nieuwierzytelnej stronie. Usługa zaświadczania hosta zapewnia, że wszelkiego rodzaju debugowanie jest wyłączone podczas rozruchu na maszynach produkcyjnych.

Integralność kodu

Bezpieczny rozruch UEFI zapewnia, że podczas sekwencji rozruchu można uruchamiać tylko zaufane oprogramowanie niskiego poziomu. Te same kontrole muszą być jednak stosowane również w środowisku po rozruchu do sterowników i innych plików wykonywalnych z dostępem w trybie jądra. W tym celu zasady integralności kodu służą do definiowania sterowników, plików binarnych i innych plików wykonywalnych, określając prawidłowe i nieprawidłowe podpisy. Te zasady są wymuszane. Naruszenia zasad generują alerty do zespołu reagowania na zdarzenia zabezpieczeń na potrzeby badania.

Następne kroki

Aby dowiedzieć się więcej o tym, co robimy, aby zwiększyć integralność i bezpieczeństwo platformy, zobacz: