If-Koubou

Какво представлява ASLR и как поддържа компютъра ви сигурен?

Какво представлява ASLR и как поддържа компютъра ви сигурен? (Как да)

Рандомизирането на пространственото разположение на адресното пространство (ASLR) е техника за сигурност, използвана в операционните системи, въведена за пръв път през 2001 г. Текущите версии на всички основни операционни системи (iOS, Android, Windows, MacOS и Linux) притежават ASLR защита. Но през изминалата седмица е намерен нов метод за заобикаляне на ASLR. Така че, трябва ли да се притеснявате?

За тези, които нямат ниско ниво на програмиране фон, ASLR може да бъде объркващо. За да го разберете, първо трябва да разберете виртуалната памет.

Какво представлява виртуалната памет?

Виртуалната памет е техника за управление на паметта с много предимства, но тя е създадена основно, за да улесни програмирането. Представете си, че в компютъра с 4 GB оперативна памет има отворени програми за Google Chrome, Microsoft Word и няколко други програми. Като цяло програмите на този компютър използват много повече от 4 GB оперативна памет. Въпреки това, не всички програми ще бъдат активни по всяко време или ще имат нужда от едновременен достъп до тази RAM.

Операционната система разпределя парчета памет на програми, наречени страници, Ако няма достатъчно RAM, за да се съхраняват всички страници наведнъж, страниците, които най-малко вероятно ще са необходими, се съхраняват на по-бавния (но по-просторен) твърд диск. Когато са необходими съхранените страници, те ще превключват интервали с по-малко необходими страници в момента в RAM. Този процес се нарича пейджинг и дава своето име на файла pagefile.sys в Windows.

Виртуалната памет улеснява програмите да управляват собствената си памет и също така ги прави по-сигурни. Програмите не е нужно да се безпокоят къде се съхраняват други програми или колко остава RAM. Те могат просто да поискат от операционната система допълнителна памет (или да върнат неизползвана памет), ако е необходимо. Цялата програма вижда само една непрекъсната част от адресите на паметта за изключително ползване, наречена виртуални адреси. Програмата не може да разглежда паметта на друга програма.

Когато дадена програма трябва да има достъп до паметта, тя дава на операционната система виртуален адрес. Операционната система влиза в контакт с блока за управление на паметта (MMU) на процесора. ММУ се превежда между виртуални и физически адреси, връщайки тази информация на операционната система. В нито един момент програмата не взаимодейства пряко с RAM.

Какво представлява ASLR?

Рандомизирането на пространственото разположение на адреса (ASLR) се използва главно за защита срещу атаки на препълване на буфер. При препълване на буфери атакуващите подават функция, която съдържа толкова нежелани данни, колкото могат да се справят, последвано от злонамерен полезен товар. Полезният товар ще презапише данните, които програмата възнамерява да получи. Инструкциите за прескачане на друга точка в кода са общ полезен товар. Известният метод JailbreakMe за jailbreaking iOS 4 например използва атака на буфер, която принуждава Apple да добави ASLR към iOS 4.3.

Препълването на буферите изисква нападател да знае къде са разположени всяка част от програмата в паметта. Изчисляването на това обикновено е труден процес на изпитание и грешка. След като определят това, те трябва да изработят полезен товар и да намерят подходящо място за инжектиране. Ако атакуващият не знае къде се намира целевият му код, може да бъде трудно или невъзможно да го използвате.

ASLR работи заедно с управлението на виртуалната памет, за да разпредели местата на различните части на програмата в паметта. Всеки път, когато програмата се изпълнява, компонентите (включително стека, купчината и библиотеките) се преместват на друг адрес във виртуална памет. Нападателите вече не могат да научат къде се намира целта им чрез изпитание и грешка, защото адресът ще бъде различен всеки път. Обикновено приложенията трябва да бъдат компилирани с поддръжка на ASLR, но това става по подразбиране и дори се изисква при Android 5.0 и по-нови версии.

Така ли ASLR все още ви предпазва?

Миналия вторник, изследователи от SUNY Binghamton и Университета на Калифорния, Ривърсайд, представиха хартия, наречена Jump Over ASLR: Атакуващи клонове предсказващи да заобиколят ASLR. Хартията разяснява начина, по който да атакува буферния целеви буфер (BTB). BTB е част от процесора, който ускорява, ако изявленията се прогнозират за резултата. Чрез метода на авторите е възможно да се определят местоположенията на известни указания за отрасъла в работеща програма. Въпросната атака бе извършена на машина с Linux с процесор Intel Haswell (първият пуснат през 2013 г.), но вероятно би могъл да бъде приложен към всяка модерна операционна система и процесор.

Това каза, че не трябва непременно да се отчайвате. Документът предлага няколко начина, по които разработчиците на хардуер и операционна система могат да смекчат тази заплаха. По-новите, фини зърна ASLR техники ще изискват повече усилия от страна на атакуващия и увеличаването на количеството ентропия (случайност) може да направи атаката Jump Over невъзможна. Най-вероятно по-новите операционни системи и процесори ще бъдат имунизирани срещу тази атака.

И така, какво остава ти да направя? Байпасът Jump Over е нов и все още не е забелязан в дивата природа. Когато атакуващите го експлоатират, недостатъкът ще увеличи потенциалното увреждане, което нападателят може да причини на вашето устройство. Това ниво на достъп не е безпрецедентно; Microsoft и Apple са внедрили ASLR в своите операционни системи, издадени през 2007 г. и по-късно. Дори ако този стил на атака стане често срещано, няма да бъдете по-лоши, отколкото сте били в дните на Windows XP.

Имайте предвид, че атакуващите все още трябва да получат своя код на устройството ви, за да навредят. Този недостатък не им предоставя допълнителни начини да ви заразят. Както винаги, трябва да следвате най-добрите практики за сигурност. Използвайте антивирус, останете далеч от скитни уеб сайтове и програми и актуализирайте софтуера си. Като следвате тези стъпки и държите злонамерени актьори от компютъра си, ще бъдете толкова сигурни, колкото някога сте били.

Image Credit: Steve / Flickr