W ostatnich latach Microsoft wprowadził nowe techniki, aby zabezpieczyć przechowywane dane, w szczególności w systemie Vista. Celem jego działań jest uniemożliwienie przeprowadzenia jednego z najbardziej standardowych ataków hakerskich, jakim jest przepełnienie bufora. W przypadku buffer overflow aplikacja zapisuje za dużo danych w przewidzianym dla niej obszarze pamięci (buforze). W ten sposób nadpisywane są sąsiednie obszary, zarezerwowane dla innych zadań. Hakerzy uzyskują dzięki temu możliwość przemycenia złośliwych kodów do niechronionych, sąsiadujących z buforem obszarów pamięci oraz uruchomienia tych pierwszych. Na konwencji dotyczącej zabezpieczeń – Black Hat – dwóch specjalistów zademonstrowało, w jaki sposób można obejść nowe technologie zabezpieczające. Dwa ważne mechanizmy obronne – DEP (Data Execution Prevention) oraz ASLR (Address Space Layout Randomization) – da się obejść w prosty sposób, pod warunkiem że w systemie zainstalowano niedopracowane oprogramowanie.
W przypadku DEP system Windows, począwszy od wersji XP SP2, zaznacza wszystkie obszary zawierające wykonywalne kody jako zabezpieczone przed zapisem. Teoretycznie więc problem przepełnienia bufora nie powinien ich dotyczyć. Niestety, wiele popularnych programów, takich jak Internet Explorer 7 lub Firefox 2, nie obsługuje tego mechanizmu. W takim przypadku Windows wyłącza DEP. Bezpieczniej mogą surfowaćci internauci, którzy używają Firefoksa 3 lub Internet Explorera 8 (na raziew wersji beta) – obie przeglądarki obsługują DEP. Java również pozbawia ochronę DEP skuteczności, ponieważ mechanizm zarządzania zapisywaniem danych w Javie zawsze zezwala na zapisywanie. Zatem dla buffer overflow, wykonanego przez aplet Java, DEP to żadna przeszkoda.
Bezsensowna ochrona: Aplikacje nie korzystają z ochrony Visty
Mechanizm obronny ASLR jest bardzo sprytny: podczas ładowania programu do pamięci podręcznej system Vista losowo przydziela wykonywalnej części kodu przestrzeń adresową. Zatem atakujący nigdy nie wie, w którym miejscu pamięci musi wykonać operację przepełnienia bufora, aby wpisać do tej przestrzeni adresowej własne, złośliwe dane. Tyle tylko, że ASLR działa wtedy, gdy biblioteka DLL wprowadzi odpowiednie oznaczenie, że trzeba uruchomić ten mechanizm obronny. Dzieje się tak tylko w przypadku bibliotek DLL należących do systemu Windows
Zewnętrzne aplikacje nie korzystają na ogół z tej funkcji. Innym sposobem na złamanie ASLR jest tzw. Spraying: masowo kopiując i rozpowszechniając szkodliwe kody w pamięci, atakujący ma duże szanse trafić na obszar losowo wybrany przez Windows za pomocą ASLR.
Na razie Microsoft milczy na temat powyższych luk. Niemniej jednak przygotowanie poprawek nie będzie proste, gdyż często problem tkwi niew samym systemie, ale we współpracy systemu Windowsz zewnętrznymi aplikacjami.
INFO: www.microsoft.pl