Последствия многопоточного javascript для безопасности

StackOverflow https://stackoverflow.com/questions/39983

  •  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, я не вижу, как это действительно может добавить какие-либо возможные проблемы безопасности движку / интерпретатору, если только в реализации нет недостатков.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top