Kernel Patch Protection

Kernel Patch Protection

Autor: Dawid Długosz

Opublikowano: 8/1/2007, 12:00 AM

Liczba odsłon: 10745

Słowem wstępu

W 64 bitowych systemach operacyjnych Windows została zaimplementowana funkcja Kernel Patch Protection, zwana także PatchGuard. Dowiedzmy się co to takiego oraz jakie wynikają z tego korzyści.

Na wstępie wyjaśnić najpierw należałoby, czym jest ów kernel. Mianowice jest to jądro systemu operacyjnego, które stanowi podstawę każdego OS'u i odpowiada za wszystkie jego zadania. Jako ciekawostkę możemy dodać, iż jądro, jakie znajduje się w Windows jest hybrydowe, czyli jest swego typu kompromisem między jądrem monolitycznym (Linux) oraz mikrojądrem (Mac OS X). Natomiast termin Kernel Patching określa nieautoryzowane zabiegi i praktyki, mające na celu modyfikację jądra. Technologia ta zadebiutowała wraz z dodatkiem Service Pack 1 dla systemu Windows Server 2003 x64 oraz XP Professional x64 i oczywiście została zaimplementowana w najnowszych edycjach okienek bazujących na 64 bitowej architekturze. Podstawowym zadaniem mechanizmu Kernel Patch Protection jest ochrona integracji (spójności) kernela Windows, w wyniku czego otrzymujemy następująco:

  • Wyższą niezawodność
  • Stałą wydajność systemu operacyjnego
  • Bezpieczeństwo

Niezawodność

Dzięki mechanizmowi Kernel Patch Protection otrzymujemy wysoką niezawodność systemu operacyjnego. Ochrona jądra uniemożliwia modyfikowanie jego struktur, a co za tym idzie, niemożliwe jest doprowadzenie do destabilizacji środowiska systemu Windows.

Wydajność

PatchGuard nie powoduje spadku wydajności komputera, nawet wtedy jeśli zostanie wykryta próba modyfikacji kernela to stan systemu pozostaje nienaruszony. Daje to użytkownikowi wydajne środowisko pracy niepoddające się czynnikom zewnętrznym.

Bezpieczeństwo

Funkcja Kernel Patch Protection chroniąc jądro systemu operacyjnego uniemożliwia złośliwemu oprogramowaniu jego modyfikację podnosząc tym samym bezpieczeństwo pracy z systemem Windows.

Funkcja ta jest domyślnie włączona i nie mamy możliwości jej dezaktywacji. Jednakże jest ona automatycznie wyłączana, gdy jest dołączony debuger do jądra. Pozwala to na modyfikowanie kernela podczas sesji debugowania. Kernel Patch Protection zaimplementowany jest w następujących systemach operacyjnych Windows:

  • Windows XP Professional x64 z dodatkiem Service Pack 1 lub późniejszym
  • Windows Server 2003 x64 z dodatkiem Service Pack 1 lub późniejszym (wszystkie edycje)
  • Windows Vista x64 (wszystkie edycje poza Starter)
  • Windows "Longhorn" Server 2008 x64 (wszystkie edycje)

Nie znajdziemy jej więc, jak widzimy, w systemach stworzonych do pracy pod kontrolą procesorów Intel Itanium - ia64 (czeka na implementację), ani w Windows opartych na architekturze 32 bitowej (x86).

A jak to działa?

Kernel Patch Protection nadzoruje, czy zasoby używane przez jądro systemu oraz ono samo nie jest modyfikowane. Mechanizm ten działa w tle i nie wymaga żadnej ingerencji ze strony użytkownika. Należy jednak zaznaczyć, iż funkcja ta nie chroni bezpośrednio przez złośliwym oprogramowaniem, lecz tylko pośrednio, gdyż zapobiega zmianom w strukturze kodu systemu, które to tego typu oprogramowanie może wyrządzać. Więc wynika z tego jasno, iż posiadając system 64 bitowy nadal jednak powinniśmy korzystać z oprogramowania antywirusowego i innych - pomagających środowisko pracy oraz użytkownika.

W momencie wykrycia próby modyfikacji kernela, przez sterownik lub oprogramowanie, system operacyjny wygeneruje błąd kontrolny, a następnie zostanie zamknięty. Poniżej przedstawiamy listę powodów, które mogą doprowadzić do tej sytuacji:

  • Modyfikacja tablic usług systemowych
  • Modyfikacja tablicy deskryptora przerwań (IDT)
  • Modyfikacja tablicy deskryptora globalnego (GDT)
  • Użycie stosów kernela zabronionych przez jądro
  • Modyfikacja któregokolwiek składnika jądra
  • Próba modyfikacji dodatkowych zasobów kernela (czeka na implementacje)

Należałoby by dodać, iż funkcja ta jest powiązana z mechanizmem Execute Disable Bit, który jest dostępny także w 32 bitowych edycjach Windows. Jednakże w systemach bazujących na architekturze x86 jest to rozwiązanie czysto programowe, natomiast w 64 bitowych Windows działanie jest już wspomagane sprzętowo (implementacja obsługi w 64 bitowych procesorach).

Przyszłość Kernel Patch Protection

Technologia Kernel Patch Protection wymaga specjalnie przystosowanego do pracy z nią oprogramowania, mowa tutaj oczywiście o aplikacjach odwołujących się bezpośrednio do jądra systemu operacyjnego oraz próbujących wymuszać zmiany w jego strukturze, którym to mechanizm ten przeciwdziała. Oczywiście funkcji Kernel Patch Protection nie możemy wyłączyć, więc istnieją problemy z poprawnym funkcjonowaniem programów firm trzecich. Microsoft podpisał porozumienie, którego na celu jest poprawa pracy programów w środowisku Windows x64. Dlatego wraz z dodatkiem Service Pack 1 dla systemu Windows Vista zostanie udostępnione nowe API dostawcom oprogramowania tak, aby mogli oni tworzyć aplikacje kompatybilne z architekturą systemów x64 Microsoftu, a nie wpływające na stabilność oraz bezpieczeństwo pracy z Windows. Więcej informacji na ten temat możemy przeczytać w dokumencie udostępnionym do pobrania z witryny Microsoftu - Kernel Patch Protection Criteria Evaluation Document (w języku ang.). W przyszłości Kernel Protection Platform zostanie zapewne zaimplementowany także do systemów bazujących na architekturze ia64.

A jeśli nie PatchGuard to co?

Poniżej przedstawiamy technologie będące alternatywą dla Kernel Protection Platform. Jako, że mechanizm ten sprawia problemy natury kompatybilności z oprogramowaniem firm trzecich, tak więc w systemach operacyjnych Microsoftu zostały zaimplementowane także inne rozwiązania, które mogą być alternatywą dla PatchGuard. Funkcje, które przedstawiamy poniżej, odnajdziemy także w 32 bitowych systemach operacyjnych z rodziny Windows.

Alternatywne rozwiązania dla Kernel Patch Protection

  • Windows Filtering Platform - mechanizm zaimplementowany w Windows Vista. Sprowadza się do umożliwieniu oprogramowaniu wykonywania czynności orientacyjno sieciowych.
  • Model mini filtrów plików systemowych - umożliwia udział oprogramowaniu w aktywności plików systemowych.
  • Punkty zaczepienia rejestru - umożliwia udział oprogramowania pomiędzy zależnościami w rejestrze systemowym.

Podsumowanie

Mechanizm Kernel Protection Platform zaimplementowany w systemach x64 jest dobrym rozwiązaniem. Dzięki tej technologii otrzymujemy lepsze bezpieczeństwo systemu operacyjnego oraz wyższą niezawodność pracy w środowisku Windows. Problemy kompatybilności, o których była mowa, powinny zostać zlikwidowane wraz z udostępnieniem dodatku Service Pack 1 dla Windows Vista, co powinno nastąpić już na początku przyszłego roku.

Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży
Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży

Wydarzenia