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 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ę bootstrapping. 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 wykonanie łańcucha skrótów.
Zaświadczenie jest realizowane, gdy host dostarcza 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 łańcucha skrótów sprawia, że obliczenia są 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) wysyłanych przez każdego hosta względem zasad zaświadczania (definicja bezpiecznego stanu). Integralność tego systemu jest zapewniana 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 bootstrapping 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 do jego tożsamości. Tylko host żądający może odblokować 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 naruszony 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 się obraża. Zapobieganie temu skutecznie blokuje całą komunikację z hostem i z hosta oraz wyzwala przepływ pracy zdarzenia. Badanie i szczegółowa analiza pośmiertna są przeprowadzane 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:
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, które jest uznawane 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że działać tylko zaufane oprogramowanie niskiego poziomu. Te same testy muszą jednak być również stosowane 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ń w celu zbadania.
Następne kroki
Aby dowiedzieć się więcej o tym, co robimy, aby zwiększyć integralność i bezpieczeństwo platformy, zobacz: