Компания Mozilla обяви за започване на масово тестване в нощните сборки и бета версии на Firefox режим на стриктна изолация на сайтовете, разработван в рамките на проекта Fission. Режимът разширява приложението на многопроцесната архитектура — вместо фиксиран пул от процеси, за всеки сайт се създава отделен процес. Управлението на включването на режима Fission се осъществява чрез променлива «fission.autostart=true» в about:config или на страницата about:preferences#experimental.
Напомняме, че прилаганата в Firefox до момента многопроцесна модел предвиждаше стартиране на пул от обработващи процеси: по подразбиране 8 основни процеса за обработка на съдържание, 2 допълнителни непривилегировани процеса за web-съдържание и 4 помощни процеса за добавки, взаимодействие с GPU, мрежови операции и декодиране на мултимедийни данни. Разпределението на разделите по процеси ставаше произволно, например, в един процес можеше да попадне обработка на сайт на банка и не заслужаващ доверие съмнителен ресурс.
Новият режим изнася в отделен процес обработването на всеки сайт с разделяне не по раздели, а по домейни, което позволява допълнителна изолация на съдържанието на външни скриптове и iframe блокове. За разделно обработване на поддомейни на типови услуги, свързани с различни сайтове, се прилага разделяне не по формални, а по фактически (eTLD) домейни от най-високо ниво, отбелязани в списъка Public Suffix (т.е. сайтове «a.github.io» и «b.github.io» ще бъдат изнесени в различни процеси).
Режимът на стриктна изолация позволява защита от атаки по странични канали, например, свързани с уязвимости от клас Spectre, водещи до изтичане на информация вътре в един процес. Изтичането на обработвани в същия процес конфиденциални данни е възможно при изпълнение на недоверен външен код в джит енджини. виртуални машини. В контекста на уеб браузерите злоумен JavaScript код от един сайт може да получи информация за паролите, ключовете за достъп и номер на кредитни карти, въведени на друг сайт, обработван в същия процес. Първоначално, за да се защитят от атаки чрез странични канали, разработчиците на браузъри ограничиха прецизността на таймера и блокираха достъпа до API SharedArrayBuffer, но тези мерки само усложниха и забавиха проведенето на атаката (например, наскоро бе предложен метод за извличане на данни от кеша на CPU, работещ изобщо без JavaScript).
Сред другите предимства на режима на строга изолация се посочва намаляване на фрагментацията на паметта, по-ефективно връщане на паметта на операционната система, минимизиране на влиянието на събирането на боклук и интензивните изчисления върху страниците в други процеси, увеличаване на ефективността при разпределението на натоварването между различни ядра на CPU, повишаване на стабилността (сривът на процеса, обработващ iframe, няма да повлече основния сайт и други табове).
Сред известните проблеми, които възникват при използване на Fission, се отбелязва значителното увеличаване на консумацията на памет, съединения X11 и файлови дескриптори при отваряне на голям брой табове, а също така нарушаване на работата на някои добавки, изчезване на съдържанието на iframe при печат и извикване на функцията за запис на скрийншот, намаляване на ефективността на кеширането на документи с iframe, загуба на съдържанието на попълнени, но не изпратени формуляри при възстановяване на сесията след срив.
Източник: opennet.ru
