По-подробно за изолацията на сайтовете или защо заради защитата от Spectre браузърът Chrome използва повече памет

8
1398

Изминаха почти две години откакто през месец януари 2018 година експертите на Google Project Zero и някои други специалисти разкриха първите три хардуерни уязвимости в процесорите на Intel. Те бяха класифицирани като уязвимости от съвсем нов клас, които засягат процесорите със спекулативно изпълнение на командите. Разкритите хардуерни уязвимости получиха имената Spectre (1 и 2) и Meltdown. Чрез използване на механизмите за спекулативно изпълнение на процесорните инструкции хакерът може периодично да заобикаля както явните, така и неявните проверки на безопасността, които не би трябвало да позволяват на програмите да четат чувствителната информация от забранените участъци на паметта.

Но най-печалното е, че атаките Spectre е възможно да бъдат осъществени с възможностите на стандартния JavaScript. А това дава възможност на сайтове с JavaScript код да проникват в секторите с чувствителна информация и да се намесват в процесите на заредените в браузъра други уеб страници – например в страницата за банкиране.

За да се справи този проблем миналата година Google внедри в десктоп версията на Chrome изолация на сайтовете, всеки от които започна да работи в собствен отделен процес. Именно тогава екипът V8, който решаваше този проблем разясни, че атаката Spectre в основни линии се състои от две части:

  1. Изтичане на данни от забранените от процесора по хардуерен път зони на паметта. Всички известни видове атаки тип Spectre използват спекулативното изпълнение на процесорните инструкции, за да прочетат съдържанието на кеша на процесора, където остават чувствителните данни
  2. Измерване на време с много голяма точност, чрез което се определя кои точно данни в процесорния кеш са от забранените зони

На теория, достатъчно е да се елиминират тези два компонента на атаките. Но това е хардуерна уязвимост и няма как по софтуерен път да бъде изцяло блокиран дори и един от тези елементи. Ето защо бяха създадени софтуерни решения за смекчаване въздействието на тези два основни елемента и по този начин значително да се съкрати количеството информация, изтичаща в кеша на CPU.

Използвани методи:
  • Защита за таймера обикновено чрез намаляване на неговата точност
  • Четене на данни без ограничаване до размера на процесорния кеш
  • Изолация на сайтовете

Изолацията на сайтовете

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

Този метод изолира уеб сайтовете в отделни процеси, за да се попречи на един сайт да се намесва и следи работата на друг сайт. Очевидно е, че по този начин могат да бъдат откраднати данните за онлайн банкирането, когато в браузъра едновременно са заредени страницата на банката, както и хакерската страница. Освен това, изолацията на сайтовете в десктоп компютрите защитава и от други сериозни уязвимости за информационната безопасност, например при възникване на повреда в паметта или допуснати логически грешки в универсалните UXSS (Universal Cross-Site Scripting) скриптове.

Изолацията на сайтовете в ОС Android

Миналата седмица Google направи следващата логична стъпка и активира същият този механизъм за осигуряване на безопасността и в Android версията на браузъра – в случая Chrome 77, който излезе през месец септември тази година. Едновременно с това бе усъвършенствана защитата срещу компрометираните процеси на рендиране и UXSS грешките.

Изолацията в Android работи по аналогичния начин като в десктоп версията, но по-избирателно. За да се намали натоварването на процесора и паметта, защитата се активира само за сайтовете, които искат въвеждането на парола – банки, интернет магазини и т.н. Идеята е да бъдат защитени именно конфиденциалните данни на потребителите. Ясно е, че в сайтовете с пароли има много повече чувствителна информация.

Въпреки ограничената версия на защитата от Spectre, това води до от 3% до 5% повече изразходвана памет.

Изолацията на сайтовете по подразбиране е включена за всички Android смартфони с оперативна памет минимум 2 GB. Самата защита е задействана за 99% от потребителите, като при един процент от тях тя нарочно не е включена и тази част се използва като контролна група за мониторинг.

Веднага след като Chrome забележи въвеждането на парола или записана сесия след логване, този сайт се включва във списъка с уеб ресурси, за които функцията за изолация трябва да бъде активирана. Ако в даден раздел се премине към друг сайт, разделът веднага сменя процеса, а информацията от предишния раздел се премества в отделен голям процес, в който са записани временните състояния на посетените сайтове.

Chrome записва локално списъка със сайтовете за които е необходима изолация и го изтрива всеки път, когато потребителят изтрива историята на браузъра или натрупаните данни за конкретен сайт.

Точно както и при десктоп версията, Chrome за Android генерира повече процеси, което до известна степен намалява производителността. От една страна, всеки процес е по-малък, по бързо приключва и има по-малко конфликти. Но в реалността се използва повече памет и се изразходва повече процесорен ресурс. Именно върху решаването на тези проблеми усилено работят програмистите на Google сега и постепенно оптимизират поведението на процесите.

Пълната изолация за всички сайтове може да бъде включена от настройките с помощта на флага:

chrome://flags/#enable-site-per-process

По този начин Chrome за Android ще се приближи до десктоп версията на браузъра по увеличеното използване на памет: от 10% до 13%.

8
ДОБАВИ КОМЕНТАР

avatar
3 Коментари
5 Отговори на коментарите
0 Последователи
 
Коментарът с най-много реакции
Най-горещият коментар
  Абонирай се  
нови стари оценка
Извести ме за
Борис Михайлов
Борис Михайлов

Има и сандбокснат броузер- стартира броузера виртуално и не му дава достъп до реалните ресурси на компа. Но не дава да се зап;исва навсякъде- разрешете му където ви трябва. Ако е стартирана поверителна страница заедно с хакерска- може би не помага

Капиталист
Капиталист

Хром вече има виртуализация. Проблема на дупките е, че преминават през тази виртуализация и минават през нея. Сандбокса е опция, в които процесите минават в по-изолирана виртуализация. Но дори и той не е напълно сигурен.

AxOx
AxOx

Използването на повече памет няма нищо общо със защитата. Алгоритмите и начина на работа решават дали да се разреши или забрани процес… а за огромната нужда от паметта е просто извинение, защото те отдавна спряха да ги оптимизират. Да не говорим, че превърнаха браузъра в нещо ужасно.. като почнем от следенато на потребителя, слухтене в това какво има в компютъра… и е пълен с устройства за програмисти (?!?!). Една програмка за лека виртуална реалност като Sandboxie е супер бърза и взима нищожни ресурси и прави 1000 пъти по-добри резултати да защити компютъра като изолира програмата, та да не минават с… Виж още »

Капиталист
Капиталист

Говориш пълни глупости. Уеб пространството тотално се трансформира през последните 10 години. UNIX системите, както и Хром браузъра оптимизират на максимум НАЛИЧНАТА Рам. Когато ОС има нужда от тази рам, тя взима от тази използвана РАМ и я дава на друг софтуер. „Празния“ или „свободния“ РАМ е напълно безсмислена Уиндоус-ка концепция. Имам машина с 128 ГБ РАМ, искам Хром да я ползва на максимум за да има минимална латенция, а не да кешира в диска.

Кокошка
Кокошка

От една страна си прав, от друга, концепцията ти вече е малко остаряла. Защо, например, трябва да товариш излишно оперативната памет, когато можеш да кешираш в SSD-то? Смисъл има ако си HHD.
За сървърче, разбирам, за работна станция е излишно изхвърляне толкова много РАМ

Капиталист
Капиталист

Защото латенцията на твоята РАМ е в пъти по-добра от тази на твоето SSD. Свободната РАМ са пари на вятъра. UNIX системите управляват РАМ-та по-добре, затова всички сървъри са на тях, затова моя МакОС и Линукс/BSD домашните десктопи на другите утилизират РАМ-та по-добре, затова и МакОС/Линукс/BSD върви много по-мазно на такива системи, защото Уиндоус не му пука колко РАМ имаш и не ги използва. Ти си технически некомпетентен. Само си губя времето. Само ще ти кажа, за тест в бързината, под МакОС може да усетиш разлика до 128 ГБ РАМ в самата ОС. Под Уиндоус, без програми, над 32 ГБ… Виж още »

ceco
ceco

Spectre и Meltdown са уязвимости на интел и x86 архитектурата, при смартфоните с ARM защо да правим това упражнение ?

Vanhai
Vanhai

Нарича се превенция, нещо което е мит в България.
Прави се нещо, за да не се случи нещо.
А в България, случва се нещо и след него се прави, за да не се повтаря.