Stack Clash: prawa roota na serwerze – mimo zabezpieczeń w Linuksie

Stack Clash: prawa roota na serwerze – mimo zabezpieczeń w Linuksie

Stack Clash: prawa roota na serwerze – mimo zabezpieczeń w Linuksie
20.06.2017 15:51

Uniksopodobne systemy operacyjne okazały się podatne na bardzociekawy typ ataku, który pozwala uzyskać dostęp administratora(root) każdemu, kto tylko jest w stanie zalogować się do systemu.Badacze z firmy Qualys nadali mu nazwę Stack Clash, zderzenie stosuaplikacji – i przypominają, że właściwie to nie jest nicnowego. Zderzenia stosu z innym regionem pamięci były jużwykorzystywane w kilku różnych linuksowych exploitach, wskutekczego kernel doczekał się specjalnego zabezpieczenia przed takimizderzeniami. Mimo to udało się się zabezpieczenie to sprytnieobejść.

Możliwość manipulowania stosem w systemach uniksowych zauważyłpo raz pierwszy w 2005 roku Gaël Delalleau. Scenariusz nie jestjakoś bardzo skomplikowany: stos aplikacji (application stack),obszar pamięci, w którym przechowuje się krótkotrwałe dane,zostaje poszerzany tak, by najść na stertę (heap), zawierającąfragmenty danych – np. z aktualnie otwartych plików. Modyfikujączawartość sterty, np. poprzez ładowanie do aplikacji odpowiedniospreparowanych danych, można nadpisać fragment stosu i przejąćkontrolę nad aplikacją. Jeśli jest to aplikacja działająca zuprawnieniami roota, to już właściwie pozamiatane.

Lukę szybko załatano, ale wróciła ona w nieco innej postaci w2010 roku, kiedy to Rafał Wojtczuk z Invisible Things Labs zauważył,że podobny atak można przeprowadzić na serwer grafiki X.org. Poszybko wydanej łatce w Linuksie zagościło też poważne ulepszenie– mechanizm stron strzeżących (stack guard pages), któryoddziela pamięć stosu od innych obszarów pamięci w przestrzeniadresowej procesu, tak że uzyskanie ciągłego dostępu do stosu niemoże zostać przekształcone w dostęp do przyległych obszarówpamięci (i vice versa).

Badacze z Qualysa znaleźli jednak sposób na powtórzenie atakuRafała Wojtczuka. Pozwoliły na to zaniedbania programistów,budujących aplikacje bez wystarczających testów ochrony stosu.Ochronny mechanizm nic nie daje, jeśli same aplikacje go nie stosująi dają się przejąć. A sytuacja taka jest dość częsta – udałosię stworzyć przynajmniej 14 exploitów, które atakują programydziałające z uprawnieniami roota nie tylko na różnychdystrybucjach Linuksa, ale też na OpenBSD, NetBSD, FreeBSD iSolarisie.

Opracowano też ogólne metody „zderzania” stosu z innymobszarem pamięci, gdzie alokuje się pamięć tak, aż stos obejmieinny rejon pamięci (lub na odwrót), „przeskakiwania” nad stronąstrzeżącą, gdzie przenosi się wskaźnik ze stosu w inny obszarpamięci, z pominięciem strony strzeżącej, oraz „miażdżenia”stosu, gdzie nadpisuje się go innym obszarem pamięci (lub naodwrót).

Badacze na razie nie znaleźli sposobu na wykorzystanie tej metodydo zdalnego ataku, ale jak twierdzą, nie jest to wykluczone. To, żenie udało im się podczas badań wyexploitować serwera pocztowegoExim wynika jedynie ze szczęśliwego zbiegu okoliczności. Atakiwięc ograniczone są do wszystkich tych sytuacji, w którychnapastnik już ma lokalny dostęp. Różnica między rootem a zwykłymdostępme

Jak się zabezpieczyć? Należy po prostu zaktualizować system.Swoje odkrycie badacze Qualysa ujawnili bardzo odpowiedzialnie, dającczas deweloperom i opiekunom dystrybucji na przygotowanie i wydaniepoprawkowych wersji. Exploity nie są jeszcze publicznie dostępne,pojawią się za jakiś czas – chętnym do ich samodzielnegoprzygotowania podpowiedziano,by zaczęli od lokalnego ataku na exima na 32-bitowym Debianie.

Nie wiadomo jeszcze, jakie konsekwencje odkrycie to będzie miałodla innych uniksowych systemów – Androida, macOS-a i iOS-a.

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (34)