Jeff Arnold z MIT wysłał na LKML wiadomość “A system for rebootless kernel security updates” w której poinformował o powstaniu mechanizmu Ksplice pozwalającego na nałożenie na działające jądro łatki poprawiającej błąd związany z bezpieczeństwem bez potrzeby restartowania całego systemu.
Mechanizm Ksplice jest przydatny wszędzie tam, gdzie od systemu wymagane jest nieprzerwane działanie a może być wystawiony na atak włamywacza. Zasada działania Ksplice w uproszczeniu wygląda mniej więcej tak: należy dostarczyć źródła uruchomionego jądra oraz łatkę poprawiającą błąd w bezpieczeństwie – następnie kompilowane są dwa jądra wraz z modułami, dzięki analizie zmian jakie wprowadziła łatka jest generowana binarna poprawka dla funkcji narażonej na atak. Ksplice zatrzymuje na chwilę działanie systemu, podmienia odpowiednią funkcję w pamięci na nową wersję i wznawia działanie systemu.
Niestety ten mechanizm nie sprawdza się w 100% przypadków – jest skuteczny tylko wtedy, gdy poprawka zmienia kod a nie struktury danych. Mimo tej wady, jak policzył Jeff, można za jego pomocą uodpornić jądro na dużą część problemów związanych z bezpieczeństwem jakie są znajdowane. Zostało przebadanych 50 problemów związanych z bezpieczeństwem Linuksa na architekturach x86_{32,64} znalezionych od maja 2005 roku do grudnia 2007 i na tej podstawie stwierdzono, że 84% z udostępnionych poprawek można zaaplikować na działające jądro bez konieczności restartowania całego systemu.
Zainteresowanych tematem odsyłam do strony domowej projektu oraz dokumentu “Ksplice: an automatic system for rebootless Linux kernel security updates”.
Repozytorium znajduje się pod adresem http://web.mit.edu/ksplice/ksplice.git
Poniżej linki do kodu źródłowego oraz binarek
http://web.mit.edu/ksplice/dist/ksplice-src.tar.gz
http://web.mit.edu/ksplice/dist/ksplice-bin-i386.tar.gz
http://web.mit.edu/ksplice/dist/ksplice-bin-x86_64.tar.gz
Dodaj komentarz