Здравствуйте, Евгений Музыченко, Вы писали:
vsb>>А уж после открытия возможности читать не свою память через тайминги
ЕМ>Я еще с того момента, как все встали на уши, пытаюсь найти пример кода, демонстрирующего эту возможность. Пока не преуспел. А Вы?
Я не пытался, я в этом не настолько разбираюсь и верю исследователям. Тем более, что сейчас средства митигации и в биосе, и в операционных системах, поэтому попытка повторить известный эксплоит может не сработать, тут надо прям хорошо в этой теме разобраться, чтобы осознанно это всё повторить.
vsb>>Разработчики браузеров взвалили на себя титаническую задачу выполнять произвольный код из интернета и не допускать уязвимостей.
ЕМ>Если б они выполняли произвольный двоичный код, в котором могут встречаться произвольные команды и обращения к произвольным адресам памяти, ее можно было бы считать "титанической". А задача безопасного выполнения кода на JS — вполне себе рутинная, такие языки для того и придуманы, чтобы обеспечение безопасности не являлось непосильной задачей. Но разработчики браузеров, судя по всему, хотят выглядеть героическими борцами со вселенским злом, причем как можно дольше.
Во-первых современный движок JS — штука сложная. Которая генерирует машинный код и тд. Понятно, что при отсутствии багов безопасность будет. Но пробитие "песочницы" случается регулярно. Поэтому баги были, есть и будут. Нужно больше слоёв защиты.
Во-вторых в современном браузере выполняется куча кода на C. В том числе и старого. XSLT-движок, к примеру, есть, какой-то древний. Куча медиа-форматов. Работа с USB, Bluetooth и прочей периферией. В какой-то момент логика всё равно приходит в код на С и совсем не факт, что там все аргументы и их комбинации были проверены и провалидированы на 100%. Баги случаются. Тут тоже дополнительный слой защиты нужен.
Я как-то смотрел описание полного пробития всех систем защиты. Пробивают даже все. Иногда. Но это требует целого сочетания уязвимостей во многих компонентах. Очевидно, что это увеличивает защиту.
Re[6]: Для чего в браузеры _навязчиво_ тянут многопроцессность?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>... А задача безопасного выполнения кода на JS — вполне себе рутинная, такие языки для того и придуманы, чтобы обеспечение безопасности не являлось непосильной задачей.
Браузер предоставляет всякие разные API, которые реализованы частично или полностью на C/C++, т.е. у вас нет чистого JS, а есть бутерброд, где например из JS синхронно вызывается код написанный на C/C++, который в свою очередь может сделать обратный вызов JS. И у вас есть не только JS объекты в управляемой куче, но объекты в неуправляемой куче, и ссылающиеся друг на друга. И в обратном вызове JS можно сделать действия, на которые код на C/C++ не рассчитан и получить висящие указатели и далее use-after-free.
Другой пример — итерация по std::vector с использованием итератора. Если из тела цикла есть возможность вызвать JS, то разработчик должен проверить, что у JS нет возможности модифицировать вектор, а если она есть, то например делать локальную копию вектора перед циклом и ездить по ней, чтобы не получить инвалидный итератор.
И тд и тп.
ЕМ>Но разработчики браузеров, судя по всему, хотят выглядеть героическими борцами со вселенским злом, причем как можно дольше.
Переписать миллионы строк кода совсем нелегко. И еще неизвестно какой будет результат такой переделки. На выходе можно получить более надежный браузер, но супер тормозной или жрущий больше ресурсов, такой, что никто им не будет пользоваться.
Re: Для чего в браузеры _навязчиво_ тянут многопроцессность?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Когда-то в Firefox можно было задать ограничение в меню настроек. Потом это выпилили, но оставили возможность ограничить в общем наборе настроек (about:config). Теперь, насколько я понимаю, выпилили и оттуда
Это не должно касаться пользователя, это сугубо внутреннее дело разработчиков.
ЕМ>сейчас оно плодит процессы десятками (в одном из профилей я насчитал 25).
А почему тебя это беспокоит? Хендлов жалко?
Re[5]: Для чего в браузеры _навязчиво_ тянут многопроцессность?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, m2user, Вы писали:
M>>я подразумевал 1 процесс на одну вкладку.
ЕМ>Подход "отдельный процесс для каждой вкладки" (как и в варианте "для каждого домена") подразумевает заявление разработчиков, типа "мы совершенно не в состоянии обеспечить сколько-нибудь вменяемую защиту вкладок друг от друга, поэтому умываем руки и отдаем всю безопасность на откуп ОС".
А ты в состоянии предложить механизм такой защиты в рамках одного процесса? Думаешь, никто не думал об этом?
ЕМ>Это ж, по сути, уже до неприличия убого.
Нет. Использовать механизмы ОС по максимуму это грамотное архитектурное решение. Альтернатива это разрабатывать "ОС внутри ОС" и повторять все эти готовые механизмы своими руками за свои деньги. Без доступа к режиму ядра. А потом постоянно следить, не протекает ли где и постоянно затыкать дыры.
Re: Для чего в браузеры _навязчиво_ тянут многопроцессность?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Но еще более непонятно, почему это столь навязчиво. Когда-то в Firefox можно было задать ограничение в меню настроек. Потом это выпилили, но оставили возможность ограничить в общем наборе настроек (about:config). Теперь, насколько я понимаю, выпилили и оттуда, и сейчас оно плодит процессы десятками (в одном из профилей я насчитал 25).
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, m2user, Вы писали:
M>>я подразумевал 1 процесс на одну вкладку.
ЕМ>Подход "отдельный процесс для каждой вкладки" (как и в варианте "для каждого домена") подразумевает заявление разработчиков, типа "мы совершенно не в состоянии обеспечить сколько-нибудь вменяемую защиту вкладок друг от друга, поэтому умываем руки и отдаем всю безопасность на откуп ОС".
ЕМ>Это ж, по сути, уже до неприличия убого. Я еще понимаю, если б код для HTML писался на ассемблере, C/C++, паскале или подобных языках, где практически нет ограничений на доступ в память и выполнение операций. Но, блин, насколько ж нужно все просрать, чтоб не суметь обеспечить изоляцию для жабаскрипта???
Всем плевать на твое понимание убогости, если упомянутым образом обеспечивается реализация задачи наименьшими силами для разработчика, и оно никак не травмирует среднего пользователя.
Re: Для чего в браузеры _навязчиво_ тянут многопроцессность?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Этому есть внятные объяснения? Сколько ни читал — везде что-то мямлят, но неубедительно.
А собственно, что тут такого ?
Процесс не мистическая сущность, а всего лишь одна из структур операционной системы. И да, процессы хорошо изолированы друг от друга. Почему этим не воспользоваться ?
Возможно, создание процесса требует больше времени , чем создание потока, а его функционирование — больше ресурсов, чем потока. Но, в общем, если процесс создается на новую вкладку, то тут и помимо создания процесса столько действий, что само создание процесса не такая уж большая часть. А памяти сейчас много...
Кстати, не только браузеры. Количество процессов svchost в последнее время растет чуть ли не по экспоненте. Да и другие приложения ненамного отстают. У меня запущено 2 копии Skype, при этом процессов с именем Skype аж 12. И 6 процессов с именем Slack. И даже thunderbird, который вообще-то сидит и молчит почти все время своей работы, тоже обзавелся 3 процессами. А еще есть 7 RuntimeBroker, 2 SearchApp и др.
Вот FAR упорно держится и ему 1 процесса хватает.
With best regards
Pavel Dvorkin
Re[2]: Для чего в браузеры _навязчиво_ тянут многопроцессность?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>А собственно, что тут такого ?
Предположу, чьл у Евгения, как у Windows разработчика с большим опытом, крепко сидит в голове стереотип: "плодить процессы в Windows дорого, нужно ограничиться потоками". Но времена давно изменились.
Re: Для чего в браузеры _навязчиво_ тянут многопроцессность?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Теперь, насколько я понимаю, выпилили и оттуда, и сейчас оно плодит процессы десятками (в одном из профилей я насчитал 25).
Там ещё под одному процессу на каждый плагин стартует — чтобы они тоже изолированно работали. Так что на одну страничку может быть дофига процессов.
Re: Для чего в браузеры _навязчиво_ тянут многопроцессность?
Здравствуйте, wildwind, Вы писали:
PD>>А собственно, что тут такого ?
W>Предположу, чьл у Евгения, как у Windows разработчика с большим опытом, крепко сидит в голове стереотип: "плодить процессы в Windows дорого, нужно ограничиться потоками". Но времена давно изменились.
Евгений уже лет 20 не имеет никакого отношения к Far. И что такого изменилось, что плодить процессы в винде стало дёшево?
Здравствуйте, Marty, Вы писали:
PD>>>А собственно, что тут такого ?
W>>Предположу, чьл у Евгения, как у Windows разработчика с большим опытом, крепко сидит в голове стереотип: "плодить процессы в Windows дорого, нужно ограничиться потоками". Но времена давно изменились.
M>Евгений уже лет 20 не имеет никакого отношения к Far. И что такого изменилось, что плодить процессы в винде стало дёшево?
Продолжая оффтоп: коллега Marty, вы очень похожи на чата-бота, который только ему известным набором весовых коэффициентов (или чем там оперирует ChatGPT) смог создать контекст в связке Far -> Eugene Roshal
Мне, как обычному смертному, была очевидна отсылка к Евгению-топикстартеру, и потребовалась пара минут, чтобы вспомнить про Евгения, создателя Far, который уже давно к нему не имеет отношения.
Re[5]: Для чего в браузеры _навязчиво_ тянут многопроцессность?
Здравствуйте, PM, Вы писали:
M>>Евгений уже лет 20 не имеет никакого отношения к Far. И что такого изменилось, что плодить процессы в винде стало дёшево?
PM>Продолжая оффтоп: коллега Marty, вы очень похожи на чата-бота, который только ему известным набором весовых коэффициентов (или чем там оперирует ChatGPT) смог создать контекст в связке Far -> Eugene Roshal
Возможно и похож. Продуктами Евгения Рошаля я пользуюсь больше 20ти лет, а продуктами ТС, Евгения Музыченко, я никогда не пользовался. Я, когда влез в эту тему, даже не выяснял, кто там топик-стартер, так-то
А в подветку я влез после фразы "Вот FAR упорно держится и ему 1 процесса хватает"
PM>Мне, как обычному смертному, была очевидна отсылка к Евгению-топикстартеру, и потребовалась пара минут, чтобы вспомнить про Евгения, создателя Far, который уже давно к нему не имеет отношения.
А мне, как чатботу, была очевидна отсылка к Рошалю через фразу "Вот FAR упорно держится и ему 1 процесса хватает". Я как человек-чатбот, не смог найти никакой связи между Far'ом и Евгением топикстартером, при этом имея старую нейронную связь между Far и Eugene Roshal.
Здравствуйте, Marty, Вы писали:
M>А мне, как чатботу, была очевидна отсылка к Рошалю через фразу "Вот FAR упорно держится и ему 1 процесса хватает". Я как человек-чатбот, не смог найти никакой связи между Far'ом и Евгением топикстартером, при этом имея старую нейронную связь между Far и Eugene Roshal.
По ответу видно что вы человек, или его отличная имитация
Приятно было пообщаться с флудером старой закалки
Re[7]: Для чего в браузеры _навязчиво_ тянут многопроцессность?
Здравствуйте, PM, Вы писали:
M>>А мне, как чатботу, была очевидна отсылка к Рошалю через фразу "Вот FAR упорно держится и ему 1 процесса хватает". Я как человек-чатбот, не смог найти никакой связи между Far'ом и Евгением топикстартером, при этом имея старую нейронную связь между Far и Eugene Roshal.
PM>По ответу видно что вы человек, или его отличная имитация PM>Приятно было пообщаться с флудером старой закалки
ChatGPT5, отслеживаю контекст на несколько постов выше по ветке в разных чатиках