Ciekawy przypadek ominięcia JavaScript’em ASLR popularnych procesorów Intel i AMD

17 lutego, 2017

ASLR to skrót z języka angielskiego „Address Space Layout Randomization” oznaczający mechanizm losowej alokacji wirtualnej przestrzeni adresowej, który chroni system przed przepełnieniem bufora na skutek wykorzystania exploita w systemie. Zabezpiecza wszystkie działające procesy w pamięci RAM przed „zlokalizowaniem” ich przez złośliwy kod, dzięki czemu napastnik wprowadzając malware do systemu nie jest w stanie „namierzyć” w RAM komórek pamięci, w których procesy zapisują swoje dane, a więc nie może tymi danymi manipulować.

Mechanizmy ASLR oraz DEP wykorzystywane są także przez programy antywirusowe do auto-zabezpieczenia swoich procesów. Więcej o tym pisaliśmy w artykule pt. „Test auto-ochrony 31 programów antywirusowych”.

Pięciu badaczy bezpieczeństwa z Uniwersytetu Vrije w Holandii, którzy stoją za opracowaniem exploita na pamięci DRAM w urządzeniach z Androidem, udowodniło, że za pomocą kodu JS możliwe jest obejście zabezpieczeń ASLR dla co najmniej 22 nowoczesnych procesorów wykorzystując słabości w jednostce zarządzania pamięcią (MMU).

CPU js
Podatne na atak procesory. Kliknij, aby powiększyć.

Co to oznacza dla zwykłego użytkownika?

Chociaż atak side-channel nie jest łatwy do wykonania, to atakujący są w stanie za pomocą przygotowanego kodu JS i uruchomionego w przeglądarce, pozyskać informacje z komputera ofiary o fragmentach pamięci, w których są przechowywane dane uruchomionych aplikacji i wykorzystać je do opracowania i uruchomienia bardziej złożonych exploitów. Ich dostarczenie może odbywać się metodami „tradycyjnymi”, np. z wykorzystamiem socjotechniki.

Jedynym potwierdzonym przez badaczy wektorem ataku są przeglądarki Chrome i Firefox. Czy pozostałe również? Tego nie sprawdzono, ale najprawdopodobniej tak. Najważniejszy w tym wszystkim jest fakt, że tak naprawdę miliony komputerów na całym świecie jest podatnych na atak, a na aktualizację nie ma co za bardzo liczyć – jeżeli się taka pojawi to tylko w nowych modelach procesorów.

Jedyną skuteczną ochroną przed tym atakiem jest zablokowanie skryptów JavaScript uruchamianych w przeglądarce za pomocą dodatku NoScript. Chociaż używanie tego pluginu nie jest wygodne, to na zwiększa on bezpieczeństwo. Już nie raz udowodnił on swoją przydatność niespodziewanie blokując ataki drive-by.

Czy ten artykuł był pomocny?

Oceniono: 0 razy

Picture of Adrian Ścibor

Adrian Ścibor

W ramach działań związanych z cyberbezpieczeństwem odpowiada w AVLab za przeprowadzanie testów rozwiązań ochronnych przed zagrożeniami. Opracowuje strategie oraz narzędzia, które pomagają w ochronie danych i systemów przed cyberatakami. Współuczestnik międzynarodowej grupy non-profit AMTSO, która zrzesza ekspertów IT.
Picture of Adrian Ścibor

Adrian Ścibor

W ramach działań związanych z cyberbezpieczeństwem odpowiada w AVLab za przeprowadzanie testów rozwiązań ochronnych przed zagrożeniami. Opracowuje strategie oraz narzędzia, które pomagają w ochronie danych i systemów przed cyberatakami. Współuczestnik międzynarodowej grupy non-profit AMTSO, która zrzesza ekspertów IT.

PODZIEL SIĘ:

guest
0 komentarzy
najstarszy
najnowszy oceniany
Inline Feedbacks
View all comments

[ninja_tables id=”27481″]

\r\n <\/div>\r\n<\/div>\r\n","isUserRated":"0","version":"7.6.30","wc_post_id":"18420","isCookiesEnabled":"1","loadLastCommentId":"0","dataFilterCallbacks":[],"phraseFilters":[],"scrollSize":"32","url":"https:\/\/avlab.pl\/wp-admin\/admin-ajax.php","customAjaxUrl":"https:\/\/avlab.pl\/wp-content\/plugins\/wpdiscuz\/utils\/ajax\/wpdiscuz-ajax.php","bubbleUpdateUrl":"https:\/\/avlab.pl\/wp-json\/wpdiscuz\/v1\/update","restNonce":"fa67e9e4af","is_rate_editable":"0","menu_icon":"https:\/\/avlab.pl\/wp-content\/plugins\/wpdiscuz\/assets\/img\/plugin-icon\/wpdiscuz-svg.svg","menu_icon_hover":"https:\/\/avlab.pl\/wp-content\/plugins\/wpdiscuz\/assets\/img\/plugin-icon\/wpdiscuz-svg_hover.svg","is_email_field_required":"1"}; var wpdiscuzUCObj = {"msgConfirmDeleteComment":"Are you sure you want to delete this comment?","msgConfirmCancelSubscription":"Are you sure you want to cancel this subscription?","msgConfirmCancelFollow":"Are you sure you want to cancel this follow?","additionalTab":"0"}; -->