Google обяви поддръжка на т.нар. пясъчна кутия V8 (V8 Sandbox )в уеб браузъра Chrome, за да се справи с проблемите, свързани с повреждането на паметта.
Според техническия ръководител на отдела за сигурност на V8 Самуел Грос пясъчникът има за цел да предотврати „разпространението на повреди в паметта на V8 в рамките на хостпроцеса“.
Гигантът в областта на търсенето описва V8 Sandbox като лека, вътрешнопроцесна пясъчна кутия за двигателя JavaScript и WebAssembly, която е предназначена за намаляване на често срещаните уязвимости на V8.
Идеята е да се ограничи въздействието на уязвимостите на V8, като се ограничи кодът, изпълняван от V8, до подмножество на виртуалното адресно пространство на процеса („пясъчник“) и се изолира от останалата част на процеса.
Недостатъците, засягащи V8, представляват значителна част от уязвимостите от типа „нулев ден“, които Google е отстранил между 2021 и 2023 г., като за този период са открити цели 16 пропуски в сигурността.
„Пясъчната кутия предполага, че атакуващият може произволно и едновременно да модифицира всяка памет в адресното пространство на пясъчната кутия, тъй като този примитив може да бъде конструиран от типични уязвимости на V8“, заяви екипът на Chromium.
„Освен това се предполага, че нападателят ще може да чете памет извън пясъчника, например чрез странични хардуерни канали. Тогава пясъчникът има за цел да защити останалата част от процеса от такъв нападател. По този начин всяко увреждане на паметта извън адресното пространство на пясъчната кутия се счита за нарушение на пясъчната кутия.“
Грос подчерта предизвикателствата при справянето с уязвимостите на V8 чрез преминаване към безопасен за паметта език като Rust или към хардуерни подходи за безопасност на паметта, като например маркиране на паметта, предвид „фините логически проблеми“, които могат да бъдат използвани за повреждане на паметта, за разлика от класическите грешки, свързани с безопасността на паметта, като use-after-free, out-of-bound accesses и други.
„Почти всички уязвимости, открити и експлоатирани в V8 днес, имат една обща черта: евентуалното повреждане на паметта задължително се случва вътре в купчината на V8, тъй като компилаторът и времето за изпълнение (почти) изключително оперират с екземпляри на V8 HeapObject“, казва Грос.
Като се има предвид, че тези проблеми не могат да бъдат защитени със същите техники, използвани за типичните уязвимости, свързани с повреда на паметта, пясъчникът на V8 е проектиран така, че да изолира паметта на купчината на V8, така че ако възникне повреда на паметта, тя да не може да се измъкне от ограниченията за сигурност към други части от паметта на процеса.
Това се постига чрез замяна на всички типове данни, които могат да имат достъп до памет извън пясъчника, с алтернативи, „съвместими с пясъчника“, като по този начин ефективно се предотвратява достъпът на нападателя до друга памет. Пясъчникът може да бъде активиран чрез задаване на стойност true на „v8_enable_sandbox“ в аргументите на gn.
Резултатите от бенчмарковете Speedometer и JetStream показват, че функцията за сигурност добавя наднормени разходи от около 1% при типични натоварвания, което позволява тя да бъде включена по подразбиране, започвайки от версия 123 на Chrome, обхващаща Android, ChromeOS, Linux, macOS и Windows.
„V8 Sandbox изисква 64-битова система, тъй като трябва да резервира голямо количество виртуално адресно пространство, в момента един терабайт“, каза Грос.
„Пясъчникът е мотивиран от факта, че настоящите технологии за безопасност на паметта са до голяма степен неприложими за оптимизиране на JavaScript двигатели. Въпреки че тези технологии не успяват да предотвратят повреда на паметта в самия V8, те всъщност могат да защитят повърхността за атаки на пясъчника на V8. Следователно пясъчната кутия е необходима стъпка към безопасността на паметта.“
Разработката идва в момент, когато Google изтъкна ролята на Kernel Address Sanitizer(KASan) за откриване на грешки в паметта в нативния код и спомага за укрепване на сигурността на фърмуера на Android, като добави, че е използвала базирания на компилатора инструмент за откриването на повече от 40 грешки.
„Използването на компилации с активиран KASan по време на тестване и/или fuzzing може да помогне за улавянето на уязвимости, свързани с повреда на паметта, и проблеми със стабилността, преди те да се появят на потребителските устройства“, заявиха Евгений Родионов и Иван Лозано от екипа на Android.
АБОНИРАЙТЕ СЕ ЗА НАШИЯ Е-БЮЛЕТИН И ПОЛУЧАВАЙТЕ НОВИНИ И СЪВЕТИ НА ТЕМА КИБЕРСИГУРНОСТ.
© 2022 Фондация “Киберсигурност за Всеки” с ЕИК 206932045. Всички права запазени. Политики за поверителност.
ж.к. Гео Милев бл. 117, вх.А
София 1113, България
support[@]e-security.bg
Фондация “Киберсигурност за Всеки” с ЕИК 206932045 е ЮЛНЦ в обществена полза, регистрирано в ЕС, работещо в съответствие с мисията и целите си.
Моля, имайте предвид, че всички споменати продукти и/или имена на компании са търговски марки ™ или ® на съответните им притежатели. Уебсайтът/фондацията няма никаква свързаност и/или одобрение за/от тях – тези търговски марки се използват само за образователни цели като примери. Настоящият уебсайт е онлайн информационна платформа, управлявана от доброволна фондация в обществена полза. Благодарим ви, че сте тук и за всякакви допълнителни въпроси, не се колебайте да се свържете с нас.
Мисията на Фондация “Киберсигурност за Всеки” е да допринесе за подобряване на киберсигурността, информационна сигурност и защита на системите и да повиши културата на обществото и организациите по тези и свързани с тях теми. Ние насърчаване безопасността и поверителността на потребителите, като повишаваме осведомеността, информираме за най-добрите и нови практики и помагаме на хора и организации да преодолеят съвременните предизвикателства за сигурността на мрежата и опазването на техните дигиталните активи.
На посоченият от Вас e-mail е изпратено съобщение за потвърждаване на абонамента.
Моля, проверете електронната си поща за да потвърдите.