Шта је АСЛР и како чува ваш рачунар?
Рандомизација распореда адресног простора (АСЛР) је безбедносна техника која се користи у оперативним системима, први пут имплементирана 2001. године. Актуелне верзије свих главних оперативних система (иОС, Андроид, Виндовс, МацОС и Линук) имају АСЛР заштиту. Али у протеклој недељи, пронађен је нови метод заобилажења АСЛР-а. Дакле, ако се бринете?
За оне који немају позадину програмирања ниског нивоа, АСЛР може бити збуњујући. Да бисте га разумели, прво морате разумети виртуелну меморију.
Шта је виртуална меморија?
Виртуална меморија је техника управљања меморијом са много предности, али је првенствено створена да олакша програмирање. Замислите да имате Гоогле Цхроме, Мицрософт Ворд и неколико других програма отворених на рачунару са 4 ГБ РАМ-а. У целини, програми на овом рачунару користе много више од 4 ГБ РАМ-а. Међутим, неће сви програми бити активни у сваком тренутку, или ће им бити потребан симултани приступ тој РАМ меморији.
Оперативни систем додељује делове меморије програмима који су позвани страницама. Ако нема довољно РАМ-а за складиштење свих страница одједном, странице које су најмање вјероватно потребне биће похрањене на споријем (али пространијем) чврстом диску. Када су меморисане странице потребне, они ће пребацити размаке са мање потребним страницама које су тренутно у РАМ-у. Овај процес се зове пагинг и даје своје име датотеци пагефиле.сис на Виндовс-у.
Виртуална меморија олакшава програмима да управљају сопственом меморијом, а такође их чини безбеднијим. Програмима није потребно бринути о томе гдје други програми похрањују податке или колико РАМ-а остаје. Они могу само питати оперативни систем за додатну меморију (или вратити неискориштену меморију) по потреби. Све што програм види је један континуирани комад меморијских адреса за његову ексклузивну употребу, названу виртуалне адресе. Програму није дозвољено да гледа у меморију другог програма.
Када програм треба да приступи меморији, даје оперативном систему виртуелну адресу. Оперативни систем контактира јединицу за управљање меморијом процесора (ММУ). ММУ преводи између виртуелне и физичке адресе, враћајући те информације оперативном систему. Програм ни у једном тренутку не комуницира директно са РАМ-ом.
Шта је АСЛР?
Рандомизација распореда адресног простора (АСЛР) се примарно користи за заштиту од напада прелијевања међуспремника. У преливу бафера, нападачи дају функцију онолико јунк података колико може да обради, након чега следи злонамерни терет. Корисно оптерећење ће преписати податке којима програм намјерава приступити. Упутство за прелазак на другу тачку у коду је уобичајено корисно оптерећење. Познати ЈаилбреакМе метод јаилбреакинг иОС 4, на пример, користио је напад преливања бафера, подстичући Аппле да дода АСЛР у иОС 4.3.
Преливање бафера захтева од нападача да зна где се сваки део програма налази у меморији. Ово је обично тежак процес покушаја и грешака. Након што то утврде, они морају да направе терет и пронађу одговарајуће место за убризгавање. Ако нападач не зна гдје се налази њихов циљни код, може бити тешко или немогуће искористити га.
АСЛР ради заједно са управљањем виртуелном меморијом како би насумично одредио локације различитих делова програма у меморији. Сваки пут када се програм покрене, компоненте (укључујући стацк, хеап и библиотеке) се премјештају на другу адресу у виртуалној меморији. Нападачи више не могу да науче где је њихова мета кроз пробу и грешку, јер ће адреса сваки пут бити другачија. Уопштено, апликације морају бити компилиране са АСЛР подршком, али то постаје подразумевано, а потребно је чак и на Андроид 5.0 и новијим верзијама.
Да ли вас АСЛР и даље штити?
Прошлог уторка, истраживачи из СУНИ Бингхамтон и Университи оф Цалифорниа, Риверсиде, представили су рад под називом Јумп Овер АСЛР: Аттацкинг Предицторс Бранцх то Бипасс АСЛР. У раду је детаљно описан начин напада на гранични гранични граничник (БТБ). БТБ је део процесора који убрзава изјаве тако што предвиђа исход. Користећи метод аутора, могуће је одредити локације познатих инструкција грана у текућем програму. Дотични напад извршен је на Линук машини са Интел Хасвелл процесором (први пут издат 2013. године), али се вероватно може применити на било који модерни оперативни систем и процесор.
С тим речима, не би требало да очајавате. Лист је понудио неколико начина на које хардвер и програмери оперативног система могу ублажити ову пријетњу. Новије, фино-зрнате АСЛР технике би захтијевале више напора од нападача, а повећање количине ентропије (случајност) може учинити Јумп Овер напад немогућим. Највјероватније, новији оперативни системи и процесори ће бити имуни на овај напад.
Дакле, оно што је остало ти урадити? Обилазница за скок преко је нова и још није уочена у дивљини. Када га нападачи искористе, грешка ће повећати потенцијалну штету коју нападач може изазвати на вашем уређају. Овај ниво приступа није без преседана; Мицрософт и Аппле су имплементирали само АСЛР у својим оперативним системима објављеним 2007. и касније. Чак и ако овај стил напада постане уобичајен, нећете бити лошији него што сте били у Виндовсима КСП.
Имајте на уму да нападачи и даље морају да добију свој код на вашем уређају да би учинили било какву штету. Овај недостатак им не пружа додатне начине да вас заразе. Као и увек, требало би да следите најбоље безбедносне праксе. Користите антивирусни програм, држите се подаље од скицираних веб локација и програма и одржавајте свој софтвер ажурним. Пратећи ове кораке и задржавајући злонамерне актере на рачунару, бити ћете сигурни колико сте икада били.
Кредит за слике: Стеве / Флицкр