Последствия многопоточного javascript для безопасности
-
09-06-2019 - |
Вопрос
Читая до конца этот вопрос в многопоточном javascript мне было интересно, будут ли какие-либо последствия для безопасности, если разрешить javascript создавать несколько потоков.Например, существует ли риск того, что вредоносный скрипт повторно создаст поток за потоком в попытке перегрузить операционную систему или интерпретатор и вызвать вход в "область неопределенного поведения", или это в значительной степени не проблема?Есть ли другие способы, с помощью которых атака может использовать гипотетическую реализацию javascript, поддерживающую потоки, к которым непоточная реализация была бы невосприимчива?
Обновить: Обратите внимание, что блокировка браузера - это не то же самое, что создание эксплойта с неопределенным поведением.
Решение
Нет, несколько потоков не добавят дополнительных проблем безопасности в идеальной реализации. Потоковый javascript привел бы к усложнению интерпретатора javascript, что повысило бы вероятность использования уязвимости. Но одни только потоки не собираются добавлять проблемы безопасности. Р>
Темы отсутствуют в javascript, потому что " Threads Suck " - читайте больше от дизайнера языка ( http: //weblogs.mozillazine. орг / дорожной карты / архивы / 2007/02 / threads_suck.html )
Другие советы
Ну, вы уже можете заблокировать браузер и серьезно замедлить работу системы с плохим поведением JS. Просветленные браузеры реализовали проверки для такого рода вещей, и остановят его, прежде чем он выйдет из-под контроля. Р>
Я бы предположил, что с потоками будут обращаться аналогичным образом. Р> <Ч>
Возможно, вы могли бы объяснить, что вы подразумеваете под "неопределенным поведением" затем? Интерпретатор, который позволял бы ненадежному сценарию напрямую контролировать количество запускаемых собственных потоков ОС, был бы невероятно наивным - я не знаю, как работает Gears, но, поскольку API сосредоточен вокруг Worker
в WorkerPool
, и я был бы очень удивлен, если бы они не ограничивали общее количество используемых собственных потоков некоторым очень низким числом. Р>
Ну, я думаю, что единственный основной пример многопоточного javascript - это хром Google (БУДУТ ОНА ВЫПУСКАЕТ ЭТО УЖЕ JEEZ), и если я понимаю, javascript будет выполнять только один процесс на каждую вкладку, поэтому, если он не начал вызывать вкладки (всплывающие окна) Я предположил бы, что это будет нулевой проблемой, но я думаю, что Google все равно имеет это в тайне, все javascript работают в песочнице.
Опять же, нам нужно провести различие между 1) многопоточной поддержкой в языке (что, я думаю, всерьез не обсуждается как нечто, что произойдет) и 2) использованием нескольких потоков в движке JavaScript / интерпретаторе в браузере.
Что касается # 2, я не вижу, как это действительно может добавить какие-либо возможные проблемы безопасности движку / интерпретатору, если только в реализации нет недостатков.